Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
        }