Added MangaDex Api. Updated project structure.

This commit is contained in:
2025-05-26 17:16:25 -04:00
parent 648aa95f32
commit ea8b4a36ff
61 changed files with 4937 additions and 197 deletions

View File

@@ -0,0 +1,6 @@
namespace MangaReader.Core.Metadata;
public interface IMangaMetadataProvider
{
SourceManga GetManga(string url);
}

View File

@@ -0,0 +1,8 @@
namespace MangaReader.Core.Metadata;
public enum MangaStatus
{
Unknown,
Ongoing,
Complete
}

View File

@@ -0,0 +1,18 @@
using HtmlAgilityPack;
namespace MangaReader.Core.Metadata;
public abstract class MangaWebCrawler : IMangaMetadataProvider
{
public abstract SourceManga GetManga(string url);
protected virtual HtmlDocument GetHtmlDocument(string url)
{
HtmlWeb web = new()
{
UsingCacheIfExists = false
};
return web.Load(url);
}
}

View File

@@ -0,0 +1,17 @@
namespace MangaReader.Core.Metadata;
public class SourceManga
{
public required string Title { get; set; }
public string? Description { get; set; }
public List<string> AlternateTitles { get; set; } = [];
public List<string> Authors { get; set; } = [];
public List<string> Artists { get; set; } = [];
public MangaStatus Status { get; set; } = MangaStatus.Unknown;
public List<string> Genres { get; set; } = [];
public DateTime? UpdateDate { get; set; }
public long? Views { get; set; }
public float? RatingPercent { get; set; }
public int? Votes { get; set; }
public List<SourceMangaChapter> Chapters { get; set; } = [];
}

View File

@@ -0,0 +1,11 @@
namespace MangaReader.Core.Metadata;
public class SourceMangaChapter
{
public int? Volume { get; set; }
public required float Number { get; set; }
public string? Name { get; set; }
public required string Url { get; set; }
public long? Views { get; set; }
public DateTime? UploadDate { get; set; }
}