Tranga-Website/Tranga-CLI/Program.cs

60 lines
2.1 KiB
C#
Raw Normal View History

2023-05-18 15:49:08 +02:00
// See https://aka.ms/new-console-template for more information
using Tranga;
using Tranga.Connectors;
public class Program
{
public static void Main(string[] args)
{
MangaDex mangaDexConnector = new MangaDex("D:");
2023-05-18 17:42:47 +02:00
Console.WriteLine("Search query (leave empty for all):");
string? query = Console.ReadLine();
Publication[] publications = mangaDexConnector.GetPublications(query ?? "");
int pIndex = 0;
foreach(Publication publication in publications)
Console.WriteLine($"{pIndex++}: {publication.sortName}");
Console.WriteLine($"Select publication to Download (0-{publications.Length - 1}):");
string? selected = Console.ReadLine();
while(selected is null || selected.Length < 1)
selected = Console.ReadLine();
Publication selectedPub = publications[Convert.ToInt32(selected)];
Chapter[] chapters = mangaDexConnector.GetChapters(selectedPub);
int cIndex = 0;
foreach (Chapter ch in chapters)
{
string name = ch.name is not null && ch.name.Length > 0 ? ch.name : cIndex.ToString();
Console.WriteLine($"{cIndex++}: {name}");
}
Console.WriteLine($"Select Chapters to download (0-{chapters.Length - 1}) [range x-y or 'a' for all]: ");
selected = Console.ReadLine();
while(selected is null || selected.Length < 1)
selected = Console.ReadLine();
int start = 0;
int end = 0;
if (selected == "a")
end = chapters.Length - 1;
else if (selected.Contains('-'))
{
string[] split = selected.Split('-');
start = Convert.ToInt32(split[0]);
end = Convert.ToInt32(split[1]);
}
else
{
start = Convert.ToInt32(selected);
end = Convert.ToInt32(selected);
}
for (int i = start; i < end + 1; i++)
{
Console.WriteLine($"Downloading {selectedPub.sortName} Chapter {i}");
mangaDexConnector.DownloadChapter(selectedPub, chapters[start]);
}
2023-05-18 15:49:08 +02:00
}
}