Added abstraction layeer IHtmlLoader. Finished reorganizing test project folder structure.

This commit is contained in:
2025-06-09 00:09:59 -04:00
parent b5d22c3c7e
commit c26ed11bfc
30 changed files with 1966 additions and 132 deletions

View File

@@ -1,21 +1,17 @@
using HtmlAgilityPack;
namespace MangaReader.Core.Metadata;
namespace MangaReader.Core.Metadata;
public abstract class MangaWebCrawler : IMangaMetadataProvider
{
public abstract string SourceId { get; }
public abstract Task<SourceManga?> GetMangaAsync(string url, CancellationToken cancellationToken);
protected virtual async Task<HtmlDocument> GetHtmlDocumentAsync(string url, CancellationToken cancellationToken)
{
HtmlWeb web = new()
{
UsingCacheIfExists = false
};
//protected virtual async Task<HtmlDocument> GetHtmlDocumentAsync(string url, CancellationToken cancellationToken)
//{
// HtmlWeb web = new()
// {
// UsingCacheIfExists = false
// };
//return web.Load(url);
return await web.LoadFromWebAsync(url, cancellationToken);
}
// return await web.LoadFromWebAsync(url, cancellationToken);
//}
}

View File

@@ -2,8 +2,8 @@
public class SourceManga
{
public required string Title { get; set; }
public string? Description { get; set; }
public required SourceMangaTitle Title { get; set; }
public SourceMangaDescription? Description { get; set; }
public List<SourceMangaTitle> AlternateTitles { get; set; } = [];
public SourceMangaContributor[] Contributors { get; set; } = [];
public MangaStatus Status { get; set; } = MangaStatus.Unknown;

View File

@@ -0,0 +1,9 @@
using MangaReader.Core.Common;
namespace MangaReader.Core.Metadata;
public class SourceMangaDescription
{
public required string Name { get; set; }
public Language Language { get; set; }
}

View File

@@ -4,6 +4,6 @@ namespace MangaReader.Core.Metadata;
public class SourceMangaTitle
{
public required string Title { get; set; }
public required string Name { get; set; }
public Language Language { get; set; }
}