예제 #1
0
    private static void ParseAndDownloadDoujins()
    {
        List <Doujin> doujins;

        var extension = Path.GetExtension(InputPath);

        switch (extension)
        {
        case Extensions.JsonExtension:
        {
            using var fs = File.OpenRead(InputPath);
            doujins      = JsonSerializer.Deserialize <IEnumerable <Doujin> >(fs, JsonOptions).ToList();

            // If no doujins in .json file
            if (!doujins.Any())
            {
                Console.WriteLine(Strings.NoDoujinsInInput, Extensions.JsonExtension);

                return;
            }

            JsonPath = InputPath;

            break;
        }

        case Extensions.MarkdownExtension:
        {
            var mdLines = File.ReadAllLines(InputPath);
            doujins = MarkdownParser.ParseMarkdownAsync(mdLines).ToList();

            // If no doujins in .md file
            if (!doujins.Any())
            {
                Console.WriteLine(Strings.NoDoujinsInInput, Extensions.MarkdownExtension);

                return;
            }

            // Write to .json
            using var fs = File.OpenWrite(JsonPath);
            JsonSerializer.Serialize(fs, doujins, JsonOptions);

            break;
        }

        default:
        {
            Console.WriteLine(Strings.NotSupported, extension);

            return;
        }
        }

        // Print some additional info
        PrintCount(doujins);

        // Write urls file
        WriteUrls(doujins, $"{UrlsPath}");

        //TODO: Download doujins through gallery-dl
    }