Compare commits
No commits in common. "cc8453d4a88af01479df80751c1483c8b8a2e37e" and "23e5c4a7b13be64966a38b2624c80e9f75c91193" have entirely different histories.
cc8453d4a8
...
23e5c4a7b1
@ -23,11 +23,10 @@ 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))//Check if anything changed
|
if(updatedManga.Equals(this.manga))
|
||||||
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-Za-zÀ-ÖØ-öø-ÿ0-9 \.\-,'\'\)\(~!\+]*");
|
private static readonly Regex LegalCharacters = new (@"[A-Z]*[a-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.SequenceEqual(compareManga.tags);
|
this.tags.Equals(compareManga.tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
@ -59,26 +59,14 @@ 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 =
|
||||||
{
|
allChapters.MaxBy(chapter => Convert.ToSingle(chapter.chapterNumber, numberFormatDecimalPoint));
|
||||||
Chapter latestChapterAvailable =
|
manga.latestChapterAvailable = Convert.ToSingle(latestChapterAvailable.chapterNumber, numberFormatDecimalPoint);
|
||||||
allChapters.MaxBy(chapter => Convert.ToSingle(chapter.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