Esempio n. 1
0
        public static async Task DownloadManga(Illustration illustration, string rootPath)
        {
            if (!illustration.IsManga)
            {
                throw new InvalidOperationException();
            }

            var mangaDir = TextBuffer.GetOrCreateDirectory(Path.Combine(rootPath, $"[{Texts.FormatPath(illustration.UserName)}]{illustration.Id}"));

            for (var i = 0; i < illustration.MangaMetadata.Length; i++)
            {
                var url = illustration.MangaMetadata[i].Origin.IsNullOrEmpty() ? illustration.MangaMetadata[i].Large : illustration.MangaMetadata[i].Origin;
#if DEBUG
                Trace.WriteLine(url);
#endif
                await File.WriteAllBytesAsync(Path.Combine(mangaDir, $"{i}{GetExtension(url)}"), await FromUrlInternal(url));
            }
        }
Esempio n. 2
0
        public static async Task DownloadIllust(Illustration illustration, string rootPath)
        {
            var path = Directory.CreateDirectory(rootPath).FullName;

            if (illustration.IsManga)
            {
                await DownloadManga(illustration, path);
            }
            else if (illustration.IsUgoira)
            {
                await DownloadUgoira(illustration, path);
            }
            else
            {
                var url = illustration.Origin.IsNullOrEmpty() ? illustration.Large : illustration.Origin;
                await File.WriteAllBytesAsync(Path.Combine(path, $"[{Texts.FormatPath(illustration.UserName)}]{illustration.Id}{Texts.GetExtension(url)}"), await FromUrlInternal(url));
            }
        }