From 6773efb842cc45c81b6e78714583c7d1b710d80e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E8=AF=9A?= Date: Thu, 17 Apr 2025 19:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20IChineseNfoRegistry=20?= =?UTF-8?q?=E5=92=8C=20ChineseNfoRegistry=20=E7=B1=BB=E4=B8=AD=E7=9A=84=20?= =?UTF-8?q?Job=20=E6=96=B9=E6=B3=95=EF=BC=8C=E5=B0=86=20tmdbId=20=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=9B=B4=E6=94=B9=E4=B8=BA=20path=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E5=9C=A8=20JobExecute=20=E6=96=B9=E6=B3=95=E4=B8=AD=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=B7=AF=E5=BE=84=E3=80=81=E5=AD=A3=E5=8F=B7=E5=92=8C?= =?UTF-8?q?=E9=9B=86=E5=8F=B7=E7=9A=84=E9=AA=8C=E8=AF=81=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E8=BF=9B=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=BB=A5=E5=A2=9E=E5=BC=BA=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Interface/Jobs/IChineseNfoRegistry.cs | 2 +- src/Service/Jobs/ChineseNfoRegistry.cs | 48 +++++++++++++++++-- .../Controllers/JobTriggerController.cs | 12 +++-- 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/src/Interface/Jobs/IChineseNfoRegistry.cs b/src/Interface/Jobs/IChineseNfoRegistry.cs index 95bfdfe..5d8deb7 100644 --- a/src/Interface/Jobs/IChineseNfoRegistry.cs +++ b/src/Interface/Jobs/IChineseNfoRegistry.cs @@ -3,7 +3,7 @@ namespace Interface.Jobs; public interface IChineseNfoRegistry { void Job( - string? tmdbId = null, + string? path = null, string? seasonNumber = null, string? episodeNumber = null, bool ignoreLocked = false, diff --git a/src/Service/Jobs/ChineseNfoRegistry.cs b/src/Service/Jobs/ChineseNfoRegistry.cs index e77c474..18e2dc9 100644 --- a/src/Service/Jobs/ChineseNfoRegistry.cs +++ b/src/Service/Jobs/ChineseNfoRegistry.cs @@ -49,7 +49,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry } public async void Job( - string? tmdbId = null, + string? path = null, string? seasonNumber = null, string? episodeNumber = null, bool ignoreLocked = false, @@ -58,7 +58,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry { try { - await JobExecute(tmdbId, seasonNumber, episodeNumber, ignoreLocked, ignoreCompleted); + await JobExecute(path, seasonNumber, episodeNumber, ignoreLocked, ignoreCompleted); } catch (Exception e) { @@ -67,9 +67,9 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry } private async Task JobExecute( - string? tmdbId = null, - string? seasonNumber = null, - string? episodeNumber = null, + string? requestPath = null, + string? requestSeasonNumber = null, + string? requestEpisodeNumber = null, bool ignoreLocked = false, bool ignoreCompleted = false) { @@ -95,8 +95,19 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry return; } + + foreach (var tv in tvNfos) { + if (!string.IsNullOrEmpty(requestPath)) + { + if (!tv.Contains(requestPath)) + { + _logger.LogInformation("ChineseNfoRegistry.Job() tv is not contains path"); + continue; + } + } + try { await HandleTv(tv); @@ -326,6 +337,18 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry return; } + if (!string.IsNullOrEmpty(requestPath)) + { + if (!string.IsNullOrEmpty(requestSeasonNumber)) + { + if (seasonNumber != int.Parse(requestSeasonNumber)) + { + _logger.LogInformation("ChineseNfoRegistry.Job() seasonNumber is not equal"); + return; + } + } + } + var seasonInfo = await GetTmdbSeason(seasonNfo, tmdbId, seasonNumber); if (seasonInfo == null) @@ -473,6 +496,21 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry return; } + if (!string.IsNullOrEmpty(requestPath)) + { + if (!string.IsNullOrEmpty(requestSeasonNumber)) + { + if (!string.IsNullOrEmpty(requestEpisodeNumber)) + { + if (seasonNumber != int.Parse(requestSeasonNumber) || episodeNumber != int.Parse(requestEpisodeNumber)) + { + _logger.LogInformation("ChineseNfoRegistry.Job() episodeNumber is not equal"); + return; + } + } + } + } + var episodeInfo = await GetTmdbEpisode(episodeNfo, tmdbId, seasonNumber, episodeNumber); if (episodeInfo == null) diff --git a/src/WebApi/Controllers/JobTriggerController.cs b/src/WebApi/Controllers/JobTriggerController.cs index ead000d..ddb5a16 100644 --- a/src/WebApi/Controllers/JobTriggerController.cs +++ b/src/WebApi/Controllers/JobTriggerController.cs @@ -116,15 +116,19 @@ public class JobTriggerController : BaseController var json = JsonNode.Parse(text); + var eventType = json?["eventType"]?.ToString(); + + if (eventType != "Download") + { + return "OK"; + } + var tmdbId = json?["series"]?["tmdbId"]?.ToString(); var seasonNumber = json?["episodes"]?[0]?["seasonNumber"]?.ToString(); var episodeNumber = json?["episodes"]?[0]?["episodeNumber"]?.ToString(); var path = json?["series"]?["path"]?.ToString(); - var eventType = json?["eventType"]?.ToString(); - await WxNotify.SendCommonAsync($"SonarrChangedConvertChineseNfo: {tmdbId}, {seasonNumber}, {episodeNumber}, {path}, {eventType}"); - - _chineseNfoRegistry.Job(ignoreLocked: true, ignoreCompleted: true); + _chineseNfoRegistry.Job(path: path, seasonNumber: seasonNumber, episodeNumber: episodeNumber, ignoreLocked: true, ignoreCompleted: true); return "OK"; }