Added manga data and pipeline.
This commit is contained in:
@@ -2,5 +2,5 @@
|
||||
|
||||
public interface IMangaWebCrawler
|
||||
{
|
||||
MangaDTO GetManga(string url);
|
||||
SourceManga GetManga(string url);
|
||||
}
|
||||
@@ -6,12 +6,12 @@ namespace MangaReader.Core.WebCrawlers.MangaNato;
|
||||
|
||||
public class MangaNatoWebCrawler : MangaWebCrawler
|
||||
{
|
||||
public override MangaDTO GetManga(string url)
|
||||
public override SourceManga GetManga(string url)
|
||||
{
|
||||
HtmlDocument document = GetHtmlDocument(url);
|
||||
MangaNatoMangaDocument node = new(document);
|
||||
|
||||
MangaDTO manga = new()
|
||||
SourceManga manga = new()
|
||||
{
|
||||
Title = node.TitleNode.InnerText,
|
||||
AlternateTitles = GetAlternateTitles(node.AlternateTitlesNode),
|
||||
@@ -101,9 +101,9 @@ public class MangaNatoWebCrawler : MangaWebCrawler
|
||||
return (int)Math.Round(average / best * 100);
|
||||
}
|
||||
|
||||
private static List<MangaChapterDTO> GetChapters(HtmlNodeCollection chapterNodes)
|
||||
private static List<SourceMangaChapter> GetChapters(HtmlNodeCollection chapterNodes)
|
||||
{
|
||||
List<MangaChapterDTO> chapters = [];
|
||||
List<SourceMangaChapter> chapters = [];
|
||||
|
||||
foreach (var node in chapterNodes)
|
||||
{
|
||||
@@ -111,7 +111,7 @@ public class MangaNatoWebCrawler : MangaWebCrawler
|
||||
HtmlNode chapterViewNode = node.SelectSingleNode(".//span[contains(@class, 'chapter-view')]");
|
||||
HtmlNode chapterTimeNode = node.SelectSingleNode(".//span[contains(@class, 'chapter-time')]");
|
||||
|
||||
MangaChapterDTO chapter = new()
|
||||
SourceMangaChapter chapter = new()
|
||||
{
|
||||
Number = GetChapterNumber(chapterNameNode),
|
||||
Name = chapterNameNode.InnerText,
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace MangaReader.Core.WebCrawlers;
|
||||
|
||||
public abstract class MangaWebCrawler : IMangaWebCrawler
|
||||
{
|
||||
public abstract MangaDTO GetManga(string url);
|
||||
public abstract SourceManga GetManga(string url);
|
||||
|
||||
protected virtual HtmlDocument GetHtmlDocument(string url)
|
||||
{
|
||||
|
||||
@@ -6,12 +6,12 @@ namespace MangaReader.Core.WebCrawlers.NatoManga;
|
||||
|
||||
public class NatoMangaWebCrawler : MangaWebCrawler
|
||||
{
|
||||
public override MangaDTO GetManga(string url)
|
||||
public override SourceManga GetManga(string url)
|
||||
{
|
||||
HtmlDocument document = GetHtmlDocument(url);
|
||||
NatoMangaHtmlDocument node = new(document);
|
||||
|
||||
MangaDTO manga = new()
|
||||
SourceManga manga = new()
|
||||
{
|
||||
Title = node.TitleNode?.InnerText ?? string.Empty,
|
||||
//AlternateTitles = GetAlternateTitles(node.AlternateTitlesNode),
|
||||
@@ -116,9 +116,9 @@ public class NatoMangaWebCrawler : MangaWebCrawler
|
||||
return (int)Math.Round(average / best * 100);
|
||||
}
|
||||
|
||||
private static List<MangaChapterDTO> GetChapters(HtmlNodeCollection? chapterNodes)
|
||||
private static List<SourceMangaChapter> GetChapters(HtmlNodeCollection? chapterNodes)
|
||||
{
|
||||
List<MangaChapterDTO> chapters = [];
|
||||
List<SourceMangaChapter> chapters = [];
|
||||
|
||||
if (chapterNodes == null)
|
||||
return chapters;
|
||||
@@ -137,7 +137,7 @@ public class NatoMangaWebCrawler : MangaWebCrawler
|
||||
if (chapterNameNode == null)
|
||||
continue;
|
||||
|
||||
MangaChapterDTO chapter = new()
|
||||
SourceMangaChapter chapter = new()
|
||||
{
|
||||
Number = GetChapterNumber(chapterNameNode),
|
||||
Name = chapterNameNode.InnerText,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace MangaReader.Core.WebCrawlers;
|
||||
|
||||
public class MangaDTO
|
||||
public class SourceManga
|
||||
{
|
||||
public required string Title { get; set; }
|
||||
public string? Description { get; set; }
|
||||
@@ -12,5 +12,5 @@ public class MangaDTO
|
||||
public long? Views { get; set; }
|
||||
public float? RatingPercent { get; set; }
|
||||
public int? Votes { get; set; }
|
||||
public List<MangaChapterDTO> Chapters { get; set; } = [];
|
||||
public List<SourceMangaChapter> Chapters { get; set; } = [];
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
namespace MangaReader.Core.WebCrawlers;
|
||||
|
||||
public class MangaChapterDTO
|
||||
public class SourceMangaChapter
|
||||
{
|
||||
public int? Volume { get; set; }
|
||||
public float? Number { get; set; }
|
||||
public required float Number { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public required string Url { get; set; }
|
||||
public long? Views { get; set; }
|
||||
Reference in New Issue
Block a user