From 913a7ad1e345208100f056e3f6ced40165d69138 Mon Sep 17 00:00:00 2001 From: Michael Green <84688932+michael-j-green@users.noreply.github.com> Date: Sun, 9 Apr 2023 23:45:25 +1000 Subject: [PATCH] feat: added platform logos class --- .../Classes/{ => Metadata}/Platforms.cs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) rename gaseous-server/Classes/{ => Metadata}/Platforms.cs (89%) diff --git a/gaseous-server/Classes/Platforms.cs b/gaseous-server/Classes/Metadata/Platforms.cs similarity index 89% rename from gaseous-server/Classes/Platforms.cs rename to gaseous-server/Classes/Metadata/Platforms.cs index eae183d..4d3d76f 100644 --- a/gaseous-server/Classes/Platforms.cs +++ b/gaseous-server/Classes/Metadata/Platforms.cs @@ -1,10 +1,11 @@ using System; using System.Data; +using System.Net; using gaseous_tools; using IGDB; using IGDB.Models; -namespace gaseous_server.Classes +namespace gaseous_server.Classes.Metadata { public class Platforms { @@ -86,11 +87,30 @@ namespace gaseous_server.Classes if (platform == null) { + // get platform metadata var results = await igdb.QueryAsync(IGDBClient.Endpoints.Platforms, query: "fields abbreviation,alternative_name,category,checksum,created_at,generation,name,platform_family,platform_logo,slug,summary,updated_at,url,versions,websites; " + WhereClause + ";"); var result = results.First(); DBInsertPlatform(result, true); + // 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); + } + } + } + } + return result; } else