Added MangaDex Api. Updated project structure.
This commit is contained in:
6
MangaReader.Core/Metadata/IMangaMetadataProvider.cs
Normal file
6
MangaReader.Core/Metadata/IMangaMetadataProvider.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace MangaReader.Core.Metadata;
|
||||
|
||||
public interface IMangaMetadataProvider
|
||||
{
|
||||
SourceManga GetManga(string url);
|
||||
}
|
||||
8
MangaReader.Core/Metadata/MangaStatus.cs
Normal file
8
MangaReader.Core/Metadata/MangaStatus.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace MangaReader.Core.Metadata;
|
||||
|
||||
public enum MangaStatus
|
||||
{
|
||||
Unknown,
|
||||
Ongoing,
|
||||
Complete
|
||||
}
|
||||
18
MangaReader.Core/Metadata/MangaWebCrawler.cs
Normal file
18
MangaReader.Core/Metadata/MangaWebCrawler.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
17
MangaReader.Core/Metadata/SourceManga.cs
Normal file
17
MangaReader.Core/Metadata/SourceManga.cs
Normal 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; } = [];
|
||||
}
|
||||
11
MangaReader.Core/Metadata/SourceMangaChapter.cs
Normal file
11
MangaReader.Core/Metadata/SourceMangaChapter.cs
Normal 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; }
|
||||
}
|
||||
Reference in New Issue
Block a user