From 7f575165e76e13733095c0dad0820a801f3e320a Mon Sep 17 00:00:00 2001 From: CatmanFan Date: Wed, 1 Jan 2025 23:55:55 +0100 Subject: [PATCH] Added alternate image source URL for LibRetro (also, Happy New Year!) --- FriishProduce/_classes/Databases/LibRetro.cs | 24 ++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/FriishProduce/_classes/Databases/LibRetro.cs b/FriishProduce/_classes/Databases/LibRetro.cs index 4306f33d..13f73158 100644 --- a/FriishProduce/_classes/Databases/LibRetro.cs +++ b/FriishProduce/_classes/Databases/LibRetro.cs @@ -78,6 +78,13 @@ private static string db_url(int i) else return null; } + + private static string db_img(string name, int source = 0) + { + return source == 1 + ? "https://archive.org/download/No-Intro_Thumbnails_2016-04-10/" + Uri.EscapeUriString(db_name) + ".zip/" + Uri.EscapeUriString(db_name) + "/Named_Titles/" + Uri.EscapeUriString(name.Replace('/', '_').Replace('&', '_')) + ".png" + : "https://thumbnails.libretro.com/" + Uri.EscapeUriString(db_name) + "/Named_Titles/" + Uri.EscapeUriString(name.Replace('/', '_').Replace('&', '_') + ".png"); + } #endregion public static DataTable Parse(Platform In) @@ -151,7 +158,7 @@ public static DataTable Parse(Platform In) if (name == null && (line.Contains("name \"") || line.Contains("comment \"")) && !line.Contains("rom (")) { name = line.Replace("\t", "").Replace("name \"", "").Replace("comment \"", "").Replace("\"", ""); - image = "https://archive.org/download/No-Intro_Thumbnails_2016-04-10/" + Uri.EscapeUriString(db_name) + ".zip/" + Uri.EscapeUriString(db_name) + "/Named_Titles/" + Uri.EscapeUriString(name.Replace('/', '_')) + ".png"; + image = db_img(name); } if (line.Contains("year ")) @@ -241,7 +248,20 @@ public static (string Name, string Serial, string Year, string Players, string I // Do something } } - catch { rows[0][5] = null; } + catch + { + rows[0][5] = db_img(rows[0][1]?.ToString(), 1); + + try + { + using (WebClient c = new WebClient()) + using (Stream s = c.OpenRead(rows[0][5]?.ToString())) + { + // Do something + } + } + catch { rows[0][5] = null; } + } return (rows[0][1]?.ToString(), rows[0][2]?.ToString(), rows[0][3]?.ToString(), rows[0][4]?.ToString(), rows[0][5]?.ToString()); }