public static async Task <MangaInfo> Generate(InfoCacheAttribute cacheAttribute) { var info = new MangaInfo(); info.Uri = cacheAttribute.Uri; var manga = await Mangas.CreateFromWeb(new Uri(cacheAttribute.Uri)).ConfigureAwait(false); if (cacheAttribute.Downloadable) { await manga.Download().ConfigureAwait(false); var files = Directory.GetFiles(manga.GetAbsoluteFolderPath(), "*", SearchOption.AllDirectories); var fileInfos = files.Select(f => new FileInfo(f)).ToList(); info.FilesInFolder = fileInfos.Count; info.FolderSize = fileInfos.Sum(f => f.Length); info.AllFilesUnique = 1 == fileInfos.GroupBy(f => f.Length).Max(g => g.Count()); } info.Status = manga.Status; info.Description = manga.Description; return(info); }
public static MangaInfo LoadFromCache(InfoCacheAttribute cacheAttribute) { if (File.Exists(Environment.MangaCache)) { if (_mangaInfos == null) { _mangaInfos = JsonConvert.DeserializeObject <List <MangaInfo> >(File.ReadAllText(Environment.MangaCache)); } return(_mangaInfos.FirstOrDefault(m => m.Uri == cacheAttribute.Uri)); } return(default(MangaInfo)); }