diff --git a/API/RequestHandler.cs b/API/RequestHandler.cs index 9c4970e..f23c8fa 100644 --- a/API/RequestHandler.cs +++ b/API/RequestHandler.cs @@ -152,7 +152,7 @@ public class RequestHandler _taskManager.GetAvailableConnectors().FirstOrDefault(con => con.Key == connectorName1).Value; if (connector1 is null) return; - Publication? publication1 = _taskManager.GetAllPublications().FirstOrDefault(pub => pub.internalId == internalId1); + Publication? publication1 = _taskManager.GetAllPublications().FirstOrDefault(pub => string.Concat(TrangaSettings.CleanIdRex.Matches(pub.internalId)) == string.Concat(TrangaSettings.CleanIdRex.Matches(internalId1))); if (publication1 is null) return; _taskManager.AddTask(new MonitorPublicationTask(connectorName1, (Publication)publication1, TimeSpan.Parse(reoccurrenceTime1), language1 ?? "en")); @@ -174,7 +174,7 @@ public class RequestHandler _taskManager.GetAvailableConnectors().FirstOrDefault(con => con.Key == connectorName2).Value; if (connector2 is null) return; - Publication? publication2 = _taskManager.GetAllPublications().FirstOrDefault(pub => pub.internalId == internalId2); + Publication? publication2 = _taskManager.GetAllPublications().FirstOrDefault(pub => string.Concat(TrangaSettings.CleanIdRex.Matches(pub.internalId)) == string.Concat(TrangaSettings.CleanIdRex.Matches(internalId2))); if (publication2 is null) return; @@ -261,7 +261,7 @@ public class RequestHandler variables.TryGetValue("internalId", out string? internalId1); if(internalId1 is null) return _taskManager.GetAllPublications(); - return new [] { _taskManager.GetAllPublications().FirstOrDefault(pub => pub.internalId == internalId1) }; + return new [] { _taskManager.GetAllPublications().FirstOrDefault(pub => string.Concat(TrangaSettings.CleanIdRex.Matches(pub.internalId)) == string.Concat(TrangaSettings.CleanIdRex.Matches(internalId1))) }; case "/Publications/FromConnector": variables.TryGetValue("connectorName", out string? connectorName1); variables.TryGetValue("title", out string? title); @@ -288,7 +288,7 @@ public class RequestHandler Connector? connector2 = _taskManager.GetAvailableConnectors().FirstOrDefault(con => con.Key == connectorName2).Value; if (connector2 is null) return null; - Publication? publication = _taskManager.GetAllPublications().FirstOrDefault(pub => pub.internalId == internalId2); + Publication? publication = _taskManager.GetAllPublications().FirstOrDefault(pub => string.Concat(TrangaSettings.CleanIdRex.Matches(pub.internalId)) == string.Concat(TrangaSettings.CleanIdRex.Matches(internalId2))); if (publication is null) return null; diff --git a/Tranga/TaskManager.cs b/Tranga/TaskManager.cs index 75abdaa..ee3bd5d 100644 --- a/Tranga/TaskManager.cs +++ b/Tranga/TaskManager.cs @@ -180,7 +180,7 @@ public class TaskManager { return _allTasks.Where(mTask => mTask is MonitorPublicationTask mpt && mpt.connectorName == connectorName && - string.Concat(settings.CleanIdRex.Matches(mpt.publication.internalId)) == string.Concat(settings.CleanIdRex.Matches(internalId))); + string.Concat(TrangaSettings.CleanIdRex.Matches(mpt.publication.internalId)) == string.Concat(TrangaSettings.CleanIdRex.Matches(internalId))); } else return _allTasks.Where(tTask => @@ -200,7 +200,7 @@ public class TaskManager { return _allTasks.Where(mTask => mTask is DownloadChapterTask dct && dct.connectorName == connectorName && - string.Concat(settings.CleanIdRex.Matches(dct.publication.internalId)) == string.Concat(settings.CleanIdRex.Matches(internalId)) && + string.Concat(TrangaSettings.CleanIdRex.Matches(dct.publication.internalId)) == string.Concat(TrangaSettings.CleanIdRex.Matches(internalId)) && dct.chapter.sortNumber == chapterSortNumber); } else diff --git a/Tranga/TrangaSettings.cs b/Tranga/TrangaSettings.cs index 2ffe654..a9eae51 100644 --- a/Tranga/TrangaSettings.cs +++ b/Tranga/TrangaSettings.cs @@ -16,7 +16,7 @@ public class TrangaSettings [JsonIgnore] public string coverImageCache => Path.Join(workingDirectory, "imageCache"); public HashSet libraryManagers { get; } public HashSet notificationManagers { get; } - [JsonIgnore]internal Regex CleanIdRex = new (@"[a-zA-Z0-9]*-*_*"); + [JsonIgnore] public static Regex CleanIdRex = new (@"([a-zA-Z0-9]*-*_*)*"); public TrangaSettings(string downloadLocation, string workingDirectory, HashSet? libraryManagers, HashSet? notificationManagers)