@@ -4,6 +4,7 @@ namespace MusicBeePlugin
4
4
using MusicBeePlugin . DiscordTools ;
5
5
using MusicBeePlugin . DiscordTools . Assets ;
6
6
using MusicBeePlugin . DiscordTools . Assets . Uploader ;
7
+ using MusicBeePlugin . S3Client ;
7
8
using MusicBeePlugin . UI ;
8
9
using System ;
9
10
using System . Collections . Generic ;
@@ -31,6 +32,7 @@ public partial class Plugin
31
32
private readonly Timer _updateTimer = new Timer ( 300 ) ;
32
33
private string _imgurAssetCachePath ;
33
34
private string _imgurAlbum ;
35
+ private string _s3AssetCachePath ;
34
36
35
37
public Plugin ( )
36
38
{
@@ -80,13 +82,32 @@ public PluginInfo Initialise(IntPtr apiInterfacePtr)
80
82
var settingsFilePath = $ "{ workingDir } \\ { _about . Name } .settings";
81
83
_imgurAssetCachePath = $ "{ workingDir } \\ { _about . Name } -Imgur.cache";
82
84
_imgurAlbum = $ "{ workingDir } \\ { _about . Name } -Imgur.album";
85
+ _s3AssetCachePath = $ "{ workingDir } \\ { _about . Name } -S3.cache";
83
86
84
87
_settings = Settings . GetInstance ( settingsFilePath ) ;
85
88
_settings . SettingChanged += SettingChangedCallback ;
86
89
87
90
_discordClient . ArtworkUploadEnabled = _settings . UploadArtwork ;
88
91
_discordClient . DiscordId = _settings . DiscordAppId ;
89
- UpdateAssetManager ( _imgurAssetCachePath , new ImgurUploader ( _imgurAlbum , _settings . ImgurClientId ) ) ;
92
+
93
+ switch ( _settings . ArtworkUploader )
94
+ {
95
+ case "Imgur" :
96
+ UpdateAssetManager ( _imgurAssetCachePath , new ImgurUploader ( _imgurAlbum , _settings . ImgurClientId ) ) ;
97
+ break ;
98
+ case "Amazon S3" :
99
+ UpdateAssetManager ( _s3AssetCachePath , new S3Uploader ( new S3Config
100
+ {
101
+ AccessKeyId = _settings . S3AccessKeyId ,
102
+ SecretAccessKey = _settings . S3SecretAccessKey ,
103
+ Endpoint = _settings . S3Endpoint ,
104
+ BucketName = _settings . S3BucketName ,
105
+ Prefix = _settings . S3Prefix ,
106
+ CustomDomain = _settings . S3CustomDomain
107
+ } ) ) ;
108
+ break ;
109
+ }
110
+
90
111
ToolStripMenuItem mainMenuItem = ( ToolStripMenuItem ) _mbApiInterface . MB_AddMenuItem ( $ "mnuTools/{ _about . Name } ", null , null ) ;
91
112
mainMenuItem . DropDown . Items . Add ( "Uploader Health" , null , ShowUploaderHealth ) ;
92
113
@@ -138,10 +159,30 @@ private void SettingChangedCallback(object sender, Settings.SettingChangedEventA
138
159
{
139
160
_discordClient . ArtworkUploadEnabled = _settings . UploadArtwork ;
140
161
}
141
- if ( e . SettingProperty . Equals ( "ImgurClientId" ) )
162
+ if ( _settings . ArtworkUploader . Equals ( "Imgur" ) && e . SettingProperty . Equals ( "ImgurClientId" ) )
142
163
{
143
164
UpdateAssetManager ( _imgurAssetCachePath , new ImgurUploader ( _imgurAlbum , _settings . ImgurClientId ) ) ;
144
165
}
166
+ if ( _settings . ArtworkUploader . Equals ( "Amazon S3" ) )
167
+ {
168
+ if ( e . SettingProperty . Equals ( "S3AccessKeyId" ) ||
169
+ e . SettingProperty . Equals ( "S3SecretAccessKey" ) ||
170
+ e . SettingProperty . Equals ( "S3Endpoint" ) ||
171
+ e . SettingProperty . Equals ( "S3BucketName" ) ||
172
+ e . SettingProperty . Equals ( "S3Prefix" ) ||
173
+ e . SettingProperty . Equals ( "S3CustomDomain" ) )
174
+ {
175
+ UpdateAssetManager ( _s3AssetCachePath , new S3Uploader ( new S3Config
176
+ {
177
+ AccessKeyId = _settings . S3AccessKeyId ,
178
+ SecretAccessKey = _settings . S3SecretAccessKey ,
179
+ Endpoint = _settings . S3Endpoint ,
180
+ BucketName = _settings . S3BucketName ,
181
+ Prefix = _settings . S3Prefix ,
182
+ CustomDomain = _settings . S3CustomDomain
183
+ } ) ) ;
184
+ }
185
+ }
145
186
}
146
187
147
188
public string GetVersionString ( )
0 commit comments