Compare commits
No commits in common. "963ad375e8b9b036cb8b3337ab7c41dfe8da5499" and "6adbda23594054b63167766a607d36475bfeb6eb" have entirely different histories.
963ad375e8
...
6adbda2359
@ -4,7 +4,7 @@ namespace Tranga.Jobs;
|
|||||||
|
|
||||||
public class DownloadNewChapters : Job
|
public class DownloadNewChapters : Job
|
||||||
{
|
{
|
||||||
public Manga manga { get; set; }
|
public Manga manga { get; init; }
|
||||||
public string translatedLanguage { get; init; }
|
public string translatedLanguage { get; init; }
|
||||||
|
|
||||||
public DownloadNewChapters(GlobalBase clone, MangaConnector connector, Manga manga, DateTime lastExecution,
|
public DownloadNewChapters(GlobalBase clone, MangaConnector connector, Manga manga, DateTime lastExecution,
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
using Tranga.MangaConnectors;
|
|
||||||
|
|
||||||
namespace Tranga.Jobs;
|
|
||||||
|
|
||||||
public class UpdateMetadata : Job
|
|
||||||
{
|
|
||||||
private Manga manga { get; set; }
|
|
||||||
private JobBoss jobBoss { get; init; }
|
|
||||||
|
|
||||||
public UpdateMetadata(GlobalBase clone, MangaConnector connector, Manga manga, JobBoss jobBoss, DateTime lastExecution, string? parentJobId = null) : base(clone, connector, lastExecution, parentJobId: parentJobId)
|
|
||||||
{
|
|
||||||
this.manga = manga;
|
|
||||||
this.jobBoss = jobBoss;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UpdateMetadata(GlobalBase clone, MangaConnector connector, Manga manga, JobBoss jobBoss, string? parentJobId = null) : base(clone, connector, parentJobId: parentJobId)
|
|
||||||
{
|
|
||||||
this.manga = manga;
|
|
||||||
this.jobBoss = jobBoss;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string GetId()
|
|
||||||
{
|
|
||||||
return $"{GetType()}-{manga.internalId}";
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return $"{id} Manga: {manga}";
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override IEnumerable<Job> ExecuteReturnSubTasksInternal()
|
|
||||||
{
|
|
||||||
if(manga.websiteUrl is null)
|
|
||||||
{
|
|
||||||
Log($"Legacy manga {manga}");
|
|
||||||
return Array.Empty<Job>();
|
|
||||||
}
|
|
||||||
if (parentJobId is null)
|
|
||||||
{
|
|
||||||
Log($"Missing parentJob {this}");
|
|
||||||
return Array.Empty<Job>();
|
|
||||||
}
|
|
||||||
Manga? possibleUpdatedManga = mangaConnector.GetMangaFromUrl(manga.websiteUrl);
|
|
||||||
if (possibleUpdatedManga is { } updatedManga)
|
|
||||||
{
|
|
||||||
cachedPublications.Remove(this.manga);
|
|
||||||
this.manga = updatedManga;
|
|
||||||
cachedPublications.Add(updatedManga);
|
|
||||||
this.manga.SaveSeriesInfoJson(settings.downloadLocation, true);
|
|
||||||
|
|
||||||
DownloadNewChapters dncJob = this.jobBoss.GetJobById(this.parentJobId) as DownloadNewChapters ??
|
|
||||||
throw new Exception("Jobtype has to be DownloadNewChapters");
|
|
||||||
dncJob.manga = updatedManga;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Log($"Could not find Manga {manga}");
|
|
||||||
return Array.Empty<Job>();
|
|
||||||
}
|
|
||||||
return Array.Empty<Job>();
|
|
||||||
}
|
|
||||||
}
|
|
@ -43,12 +43,11 @@ public struct Manga
|
|||||||
public float ignoreChaptersBelow { get; set; }
|
public float ignoreChaptersBelow { get; set; }
|
||||||
public float latestChapterDownloaded { get; set; }
|
public float latestChapterDownloaded { get; set; }
|
||||||
public float latestChapterAvailable { get; set; }
|
public float latestChapterAvailable { get; set; }
|
||||||
public string? websiteUrl { get; }
|
|
||||||
|
|
||||||
private static readonly Regex LegalCharacters = new (@"[A-Z]*[a-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? folderName = null, float? ignoreChaptersBelow = 0)
|
||||||
{
|
{
|
||||||
this.sortName = sortName;
|
this.sortName = sortName;
|
||||||
this.authors = authors;
|
this.authors = authors;
|
||||||
@ -71,7 +70,6 @@ public struct Manga
|
|||||||
this.latestChapterDownloaded = 0;
|
this.latestChapterDownloaded = 0;
|
||||||
this.latestChapterAvailable = 0;
|
this.latestChapterAvailable = 0;
|
||||||
this.releaseStatus = releaseStatus;
|
this.releaseStatus = releaseStatus;
|
||||||
this.websiteUrl = websiteUrl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
@ -104,11 +102,11 @@ public struct Manga
|
|||||||
latestChapterDownloaded = latestChapterDownloaded < chapterNumber ? chapterNumber : latestChapterDownloaded;
|
latestChapterDownloaded = latestChapterDownloaded < chapterNumber ? chapterNumber : latestChapterDownloaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveSeriesInfoJson(string downloadDirectory, bool overwrite = false)
|
public void SaveSeriesInfoJson(string downloadDirectory)
|
||||||
{
|
{
|
||||||
string publicationFolder = CreatePublicationFolder(downloadDirectory);
|
string publicationFolder = CreatePublicationFolder(downloadDirectory);
|
||||||
string seriesInfoPath = Path.Join(publicationFolder, "series.json");
|
string seriesInfoPath = Path.Join(publicationFolder, "series.json");
|
||||||
if(overwrite || (!overwrite && !File.Exists(seriesInfoPath)))
|
if(!File.Exists(seriesInfoPath))
|
||||||
File.WriteAllText(seriesInfoPath,this.GetSeriesInfoJson());
|
File.WriteAllText(seriesInfoPath,this.GetSeriesInfoJson());
|
||||||
if(RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
if(RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
||||||
File.SetUnixFileMode(seriesInfoPath, GroupRead | GroupWrite | OtherRead | OtherWrite | UserRead | UserWrite);
|
File.SetUnixFileMode(seriesInfoPath, GroupRead | GroupWrite | OtherRead | OtherWrite | UserRead | UserWrite);
|
||||||
|
Loading…
Reference in New Issue
Block a user