diff --git a/gaseous-server/Classes/ImportGames.cs b/gaseous-server/Classes/ImportGames.cs index 2cddbe9..fd2c474 100644 --- a/gaseous-server/Classes/ImportGames.cs +++ b/gaseous-server/Classes/ImportGames.cs @@ -94,7 +94,7 @@ namespace gaseous_server.Classes //Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(discoveredSignature)); - IGDB.Models.Platform determinedPlatform = Platforms.GetPlatform(discoveredSignature.Flags.IGDBPlatformId); + IGDB.Models.Platform determinedPlatform = Metadata.Platforms.GetPlatform(discoveredSignature.Flags.IGDBPlatformId); } } } diff --git a/gaseous-server/Classes/Metadata/PlatformLogos.cs b/gaseous-server/Classes/Metadata/PlatformLogos.cs new file mode 100644 index 0000000..1f0785a --- /dev/null +++ b/gaseous-server/Classes/Metadata/PlatformLogos.cs @@ -0,0 +1,40 @@ +using System; +using gaseous_tools; +using IGDB; +using IGDB.Models; +using MySqlX.XDevAPI.Common; +using static gaseous_tools.Config.ConfigFile; + +namespace gaseous_server.Classes.Metadata +{ + public class PlatformLogos + { + public PlatformLogos() + { + } + + private static IGDBClient igdb = new IGDBClient( + // Found in Twitch Developer portal for your app + Config.IGDB.ClientId, + Config.IGDB.Secret + ); + + public async static void GetPlatformLogo(long Id, string LogoPath) + { + var logo_results = await igdb.QueryAsync(IGDBClient.Endpoints.PlatformLogos, query: "fields alpha_channel,animated,checksum,height,image_id,url,width; where id = " + Id + ";"); + var logo_result = logo_results.First(); + + using (var client = new HttpClient()) + { + using (var s = client.GetStreamAsync("https:" + logo_result.Url)) + { + using (var fs = new FileStream(LogoPath, FileMode.OpenOrCreate)) + { + s.Result.CopyTo(fs); + } + } + } + } + } +} + diff --git a/gaseous-server/Classes/Metadata/Platforms.cs b/gaseous-server/Classes/Metadata/Platforms.cs index 4d3d76f..17ef5d7 100644 --- a/gaseous-server/Classes/Metadata/Platforms.cs +++ b/gaseous-server/Classes/Metadata/Platforms.cs @@ -96,19 +96,7 @@ namespace gaseous_server.Classes.Metadata // get platform logo if (result.PlatformLogo != null) { - var logo_results = await igdb.QueryAsync(IGDBClient.Endpoints.PlatformLogos, query: "fields alpha_channel,animated,checksum,height,image_id,url,width; where id = " + result.PlatformLogo.Id + ";"); - var logo_result = logo_results.First(); - - using (var client = new HttpClient()) - { - using (var s = client.GetStreamAsync("https:" + logo_result.Url)) - { - using (var fs = new FileStream(Path.Combine(Config.LibraryConfiguration.LibraryMetadataDirectory_Platform(result), "platform_logo.jpg"), FileMode.OpenOrCreate)) - { - s.Result.CopyTo(fs); - } - } - } + PlatformLogos.GetPlatformLogo((long)result.PlatformLogo.Id, Path.Combine(Config.LibraryConfiguration.LibraryMetadataDirectory_Platform(result), "platform_logo.jpg")); } return result; diff --git a/gaseous-server/gaseous-server.csproj b/gaseous-server/gaseous-server.csproj index c66b20b..8c81cda 100644 --- a/gaseous-server/gaseous-server.csproj +++ b/gaseous-server/gaseous-server.csproj @@ -23,6 +23,7 @@ + @@ -31,6 +32,7 @@ + diff --git a/gaseous-tools/Config.cs b/gaseous-tools/Config.cs index 941ee47..5ca8588 100644 --- a/gaseous-tools/Config.cs +++ b/gaseous-tools/Config.cs @@ -2,6 +2,7 @@ using System.Data; using Google.Protobuf.WellKnownTypes; using Newtonsoft.Json; +using IGDB.Models; namespace gaseous_tools { @@ -246,6 +247,21 @@ namespace gaseous_tools } } + public string LibraryMetadataDirectory + { + get + { + return Path.Combine(LibraryRootDirectory, "Metadata"); + } + } + + public string LibraryMetadataDirectory_Platform(Platform platform) + { + string MetadataPath = Path.Combine(LibraryMetadataDirectory, platform.Slug); + if (!Directory.Exists(MetadataPath)) { Directory.CreateDirectory(MetadataPath); } + return MetadataPath; + } + public string LibrarySignatureImportDirectory { get @@ -267,6 +283,7 @@ namespace gaseous_tools if (!Directory.Exists(LibraryRootDirectory)) { Directory.CreateDirectory(LibraryRootDirectory); } if (!Directory.Exists(LibraryImportDirectory)) { Directory.CreateDirectory(LibraryImportDirectory); } if (!Directory.Exists(LibraryDataDirectory)) { Directory.CreateDirectory(LibraryDataDirectory); } + if (!Directory.Exists(LibraryMetadataDirectory)) { Directory.CreateDirectory(LibraryMetadataDirectory); } if (!Directory.Exists(LibrarySignatureImportDirectory)) { Directory.CreateDirectory(LibrarySignatureImportDirectory); } if (!Directory.Exists(LibrarySignatureImportDirectory_TOSEC)) { Directory.CreateDirectory(LibrarySignatureImportDirectory_TOSEC); } } diff --git a/gaseous-tools/gaseous-tools.csproj b/gaseous-tools/gaseous-tools.csproj index 351f32e..025a8d2 100644 --- a/gaseous-tools/gaseous-tools.csproj +++ b/gaseous-tools/gaseous-tools.csproj @@ -10,6 +10,7 @@ +