diff --git a/Tranga/Jobs/JobBoss.cs b/Tranga/Jobs/JobBoss.cs index b375fea..26ea8da 100644 --- a/Tranga/Jobs/JobBoss.cs +++ b/Tranga/Jobs/JobBoss.cs @@ -192,12 +192,9 @@ public class JobBoss : GlobalBase foreach (string internalId in extraneousIds) RemoveMangaFromCache(internalId); - HashSet coverFileNames = GetAllCachedManga().Select(manga => manga.coverFileNameInCache!).ToHashSet(); - foreach (string fileName in Directory.GetFiles(settings.coverImageCache)) //Cleanup Unused Covers - { - if(!coverFileNames.Any(existingManga => fileName.Contains(existingManga))) + string[] coverFiles = Directory.GetFiles(settings.coverImageCache); + foreach(string fileName in coverFiles.Where(fileName => !GetAllCachedManga().Any(manga => manga.coverFileNameInCache == fileName))) File.Delete(fileName); - } } internal void UpdateJobFile(Job job, string? oldFile = null) diff --git a/Tranga/MangaConnectors/MangaConnector.cs b/Tranga/MangaConnectors/MangaConnector.cs index fdbec1c..7038715 100644 --- a/Tranga/MangaConnectors/MangaConnector.cs +++ b/Tranga/MangaConnectors/MangaConnector.cs @@ -287,8 +287,9 @@ public abstract class MangaConnector : GlobalBase protected string SaveCoverImageToCache(string url, RequestType requestType) { - string filetype = url.Split('/')[^1].Split('?')[0].Split('.')[^1]; - string filename = $"{DateTime.Now.Ticks.ToString()}.{filetype}"; + Regex urlRex = new (@"https?:\/\/((?:[a-zA-Z0-9]+\.)+[a-zA-Z]+)\/(?:.+\/)*(.+\.[a-zA-Z]+)"); + Match match = urlRex.Match(url); + string filename = $"{match.Groups[1].Value}-{match.Groups[2].Value}"; string saveImagePath = Path.Join(settings.coverImageCache, filename); if (File.Exists(saveImagePath))