Compare commits
4 Commits
23e5c4a7b1
...
cc8453d4a8
Author | SHA1 | Date | |
---|---|---|---|
cc8453d4a8 | |||
800d4c1ec1 | |||
b4f97eefcf | |||
29f6de2590 |
@ -23,10 +23,11 @@ public class UpdateMetadata : Job
|
|||||||
|
|
||||||
protected override IEnumerable<Job> ExecuteReturnSubTasksInternal(JobBoss jobBoss)
|
protected override IEnumerable<Job> ExecuteReturnSubTasksInternal(JobBoss jobBoss)
|
||||||
{
|
{
|
||||||
|
//Retrieve new Metadata
|
||||||
Manga? possibleUpdatedManga = mangaConnector.GetMangaFromId(manga.publicationId);
|
Manga? possibleUpdatedManga = mangaConnector.GetMangaFromId(manga.publicationId);
|
||||||
if (possibleUpdatedManga is { } updatedManga)
|
if (possibleUpdatedManga is { } updatedManga)
|
||||||
{
|
{
|
||||||
if(updatedManga.Equals(this.manga))
|
if(updatedManga.Equals(this.manga))//Check if anything changed
|
||||||
return Array.Empty<Job>();
|
return Array.Empty<Job>();
|
||||||
|
|
||||||
this.manga.UpdateMetadata(updatedManga);
|
this.manga.UpdateMetadata(updatedManga);
|
||||||
|
@ -44,7 +44,7 @@ public struct Manga
|
|||||||
public float latestChapterDownloaded { get; set; }
|
public float latestChapterDownloaded { get; set; }
|
||||||
public float latestChapterAvailable { get; set; }
|
public float latestChapterAvailable { get; set; }
|
||||||
|
|
||||||
private static readonly Regex LegalCharacters = new (@"[A-Z]*[a-z]*[0-9]* *\.*-*,*'*\'*\)*\(*~*!*");
|
private static readonly Regex LegalCharacters = new (@"[A-Za-zÀ-ÖØ-öø-ÿ0-9 \.\-,'\'\)\(~!\+]*");
|
||||||
|
|
||||||
[JsonConstructor]
|
[JsonConstructor]
|
||||||
public Manga(string sortName, List<string> authors, string? description, Dictionary<string,string> altTitles, string[] tags, string? coverUrl, string? coverFileNameInCache, Dictionary<string,string>? links, int? year, string? originalLanguage, string status, string publicationId, ReleaseStatusByte releaseStatus = 0, string? websiteUrl = null, string? folderName = null, float? ignoreChaptersBelow = 0)
|
public Manga(string sortName, List<string> authors, string? description, Dictionary<string,string> altTitles, string[] tags, string? coverUrl, string? coverFileNameInCache, Dictionary<string,string>? links, int? year, string? originalLanguage, string status, string publicationId, ReleaseStatusByte releaseStatus = 0, string? websiteUrl = null, string? folderName = null, float? ignoreChaptersBelow = 0)
|
||||||
@ -77,7 +77,7 @@ public struct Manga
|
|||||||
this.sortName = newManga.sortName;
|
this.sortName = newManga.sortName;
|
||||||
this.description = newManga.description;
|
this.description = newManga.description;
|
||||||
foreach (string author in newManga.authors)
|
foreach (string author in newManga.authors)
|
||||||
if(this.authors.Contains(author))
|
if(!this.authors.Contains(author))
|
||||||
this.authors.Add(author);
|
this.authors.Add(author);
|
||||||
this.status = newManga.status;
|
this.status = newManga.status;
|
||||||
this.year = newManga.year;
|
this.year = newManga.year;
|
||||||
@ -93,7 +93,7 @@ public struct Manga
|
|||||||
this.releaseStatus == compareManga.releaseStatus &&
|
this.releaseStatus == compareManga.releaseStatus &&
|
||||||
this.sortName == compareManga.sortName &&
|
this.sortName == compareManga.sortName &&
|
||||||
this.latestChapterAvailable.Equals(compareManga.latestChapterAvailable) &&
|
this.latestChapterAvailable.Equals(compareManga.latestChapterAvailable) &&
|
||||||
this.tags.Equals(compareManga.tags);
|
this.tags.SequenceEqual(compareManga.tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
@ -59,14 +59,26 @@ public abstract class MangaConnector : GlobalBase
|
|||||||
{
|
{
|
||||||
Log($"Getting new Chapters for {manga}");
|
Log($"Getting new Chapters for {manga}");
|
||||||
Chapter[] allChapters = this.GetChapters(manga, language);
|
Chapter[] allChapters = this.GetChapters(manga, language);
|
||||||
|
if (allChapters.Length < 1)
|
||||||
|
return Array.Empty<Chapter>();
|
||||||
|
|
||||||
Log($"Checking for duplicates {manga}");
|
Log($"Checking for duplicates {manga}");
|
||||||
List<Chapter> newChaptersList = allChapters.Where(nChapter => float.TryParse(nChapter.chapterNumber, numberFormatDecimalPoint, out float chapterNumber)
|
List<Chapter> newChaptersList = allChapters.Where(nChapter => float.TryParse(nChapter.chapterNumber, numberFormatDecimalPoint, out float chapterNumber)
|
||||||
&& chapterNumber > manga.ignoreChaptersBelow
|
&& chapterNumber > manga.ignoreChaptersBelow
|
||||||
&& !nChapter.CheckChapterIsDownloaded(settings.downloadLocation)).ToList();
|
&& !nChapter.CheckChapterIsDownloaded(settings.downloadLocation)).ToList();
|
||||||
Log($"{newChaptersList.Count} new chapters. {manga}");
|
Log($"{newChaptersList.Count} new chapters. {manga}");
|
||||||
|
try
|
||||||
|
{
|
||||||
Chapter latestChapterAvailable =
|
Chapter latestChapterAvailable =
|
||||||
allChapters.MaxBy(chapter => Convert.ToSingle(chapter.chapterNumber, numberFormatDecimalPoint));
|
allChapters.MaxBy(chapter => Convert.ToSingle(chapter.chapterNumber, numberFormatDecimalPoint));
|
||||||
manga.latestChapterAvailable = Convert.ToSingle(latestChapterAvailable.chapterNumber, numberFormatDecimalPoint);
|
manga.latestChapterAvailable =
|
||||||
|
Convert.ToSingle(latestChapterAvailable.chapterNumber, numberFormatDecimalPoint);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Log(e.ToString());
|
||||||
|
Log($"Failed getting new Chapters for {manga}");
|
||||||
|
}
|
||||||
|
|
||||||
return newChaptersList.ToArray();
|
return newChaptersList.ToArray();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user