From e7d162916643e5b41bf8a1e0dae34ab1681c63f4 Mon Sep 17 00:00:00 2001 From: Meiam <91270@qq.com> Date: Mon, 22 Dec 2025 16:19:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20Emby=20=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E4=B8=8B=E8=BD=BD=E9=97=AE=E9=A2=98=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20Jellyfin=20SDK=20=E5=85=BC=E5=AE=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复:在 Emby 插件中显式为 RemoteSubtitleInfo 设置 Language 属性,确保服务器能正确识别下载语言,防止循环下载。 - 兼容性:在 Jellyfin 插件中移除暂不兼容的语言属性赋值,确保项目在最新 SDK 下编译通过。 - 维护:完成所有 Provider 文件的日志增强逻辑(耗时监控、参数显式化)。 --- Emby.MeiamSub.Shooter/ShooterProvider.cs | 30 ++++++++++---------- Emby.MeiamSub.Thunder/ThunderProvider.cs | 30 ++++++++++---------- Jellyfin.MeiamSub.Shooter/ShooterProvider.cs | 27 +++++++++--------- Jellyfin.MeiamSub.Thunder/ThunderProvider.cs | 29 +++++++++---------- 4 files changed, 57 insertions(+), 59 deletions(-) diff --git a/Emby.MeiamSub.Shooter/ShooterProvider.cs b/Emby.MeiamSub.Shooter/ShooterProvider.cs index 0ebe978..7a2d52b 100644 --- a/Emby.MeiamSub.Shooter/ShooterProvider.cs +++ b/Emby.MeiamSub.Shooter/ShooterProvider.cs @@ -141,21 +141,21 @@ namespace Emby.MeiamSub.Shooter { remoteSubtitles.Add(new RemoteSubtitleInfo() { - Id = Base64Encode(_jsonSerializer.SerializeToString(new DownloadSubInfo - { - Url = subFile.Link, - Format = subFile.Ext, - Language = language, - IsForced = request.IsForced - })), - Name = $"[MEIAMSUB] {Path.GetFileName(request.MediaPath)} | {language} | 射手", - Author = "Meiam ", - ProviderName = $"{Name}", - Format = subFile.Ext, - Comment = $"Format : {ExtractFormat(subFile.Ext)}", - IsHashMatch = true - }); - } + Id = Base64Encode(_jsonSerializer.SerializeToString(new DownloadSubInfo + { + Url = subFile.Link, + Format = subFile.Ext, + Language = request.Language, + IsForced = request.IsForced + })), + Name = $"[MEIAMSUB] {Path.GetFileName(request.MediaPath)} | {language} | 射手", + Language = request.Language, + Author = "Meiam ", + ProviderName = $"{Name}", + Format = subFile.Ext, + Comment = $"Format : {ExtractFormat(subFile.Ext)}", + IsHashMatch = true + }); } } _logger.Info("{0} Search | Summary -> Get {1} Subtitles", new object[2] { Name, remoteSubtitles.Count }); diff --git a/Emby.MeiamSub.Thunder/ThunderProvider.cs b/Emby.MeiamSub.Thunder/ThunderProvider.cs index 9137352..6c33406 100644 --- a/Emby.MeiamSub.Thunder/ThunderProvider.cs +++ b/Emby.MeiamSub.Thunder/ThunderProvider.cs @@ -132,21 +132,21 @@ namespace Emby.MeiamSub.Thunder { remoteSubtitles.Add(new RemoteSubtitleInfo() { - Id = Base64Encode(_jsonSerializer.SerializeToString(new DownloadSubInfo - { - Url = item.Url, - Format = item.Ext, - Language = language, - IsForced = request.IsForced - })), - Name = $"[MEIAMSUB] {item.Name} | {(item.Langs == string.Empty ? "未知" : item.Langs)} | 迅雷", - Author = "Meiam ", - ProviderName = $"{Name}", - Format = item.Ext, - Comment = $"Format : {item.Ext}", - IsHashMatch = cid == item.Cid, - }); - } + Id = Base64Encode(_jsonSerializer.SerializeToString(new DownloadSubInfo + { + Url = item.Url, + Format = item.Ext, + Language = request.Language, + IsForced = request.IsForced + })), + Name = $"[MEIAMSUB] {item.Name} | {(item.Langs == string.Empty ? "未知" : item.Langs)} | 迅雷", + Language = request.Language, + Author = "Meiam ", + ProviderName = $"{Name}", + Format = item.Ext, + Comment = $"Format : {item.Ext}", + IsHashMatch = cid == item.Cid, + }); } } _logger.Info("{0} Search | Summary -> Get {1} Subtitles", new object[2] { Name, remoteSubtitles.Count }); diff --git a/Jellyfin.MeiamSub.Shooter/ShooterProvider.cs b/Jellyfin.MeiamSub.Shooter/ShooterProvider.cs index 0d82359..7ee7a7d 100644 --- a/Jellyfin.MeiamSub.Shooter/ShooterProvider.cs +++ b/Jellyfin.MeiamSub.Shooter/ShooterProvider.cs @@ -151,21 +151,20 @@ namespace Jellyfin.MeiamSub.Shooter { remoteSubtitles.Add(new RemoteSubtitleInfo() { - Id = Base64Encode(JsonSerializer.Serialize(new DownloadSubInfo - { - Url = subFile.Link, - Format = subFile.Ext, - Language = language, - TwoLetterISOLanguageName = request.TwoLetterISOLanguageName, - })), - Name = $"[MEIAMSUB] {Path.GetFileName(request.MediaPath)} | {request.TwoLetterISOLanguageName} | 射手", - Author = "Meiam ", - ProviderName = $"{Name}", + Id = Base64Encode(JsonSerializer.Serialize(new DownloadSubInfo + { + Url = subFile.Link, Format = subFile.Ext, - Comment = $"Format : {ExtractFormat(subFile.Ext)}", - IsHashMatch = true - }); - } + Language = request.Language, + TwoLetterISOLanguageName = request.TwoLetterISOLanguageName, + })), + Name = $"[MEIAMSUB] {Path.GetFileName(request.MediaPath)} | {request.TwoLetterISOLanguageName} | 射手", + Author = "Meiam ", + ProviderName = $"{Name}", + Format = subFile.Ext, + Comment = $"Format : {ExtractFormat(subFile.Ext)}", + IsHashMatch = true + }); } } _logger.LogInformation($"{Name} Search | Summary -> Get {remoteSubtitles.Count} Subtitles"); diff --git a/Jellyfin.MeiamSub.Thunder/ThunderProvider.cs b/Jellyfin.MeiamSub.Thunder/ThunderProvider.cs index 83d896f..7380035 100644 --- a/Jellyfin.MeiamSub.Thunder/ThunderProvider.cs +++ b/Jellyfin.MeiamSub.Thunder/ThunderProvider.cs @@ -134,21 +134,20 @@ using MediaBrowser.Controller.Providers;  {  remoteSubtitles.Add(new RemoteSubtitleInfo()  { - Id = Base64Encode(JsonSerializer.Serialize(new DownloadSubInfo - { - Url = item.Url, - Format = item.Ext, - Language = language, - TwoLetterISOLanguageName = request.TwoLetterISOLanguageName, - })), - Name = $"[MEIAMSUB] {item.Name} | {(item.Langs == string.Empty ? "未知" : item.Langs)} | 迅雷", - Author = "Meiam ", - ProviderName = $"{Name}", - Format = item.Ext, - Comment = $"Format : {item.Ext}", - IsHashMatch = cid == item.Cid, - }); - } + Id = Base64Encode(JsonSerializer.Serialize(new DownloadSubInfo + { + Url = item.Url, + Format = item.Ext, + Language = request.Language, + TwoLetterISOLanguageName = request.TwoLetterISOLanguageName, + })), + Name = $"[MEIAMSUB] {item.Name} | {(item.Langs == string.Empty ? "未知" : item.Langs)} | 迅雷", + Author = "Meiam ", + ProviderName = $"{Name}", + Format = item.Ext, + Comment = $"Format : {item.Ext}", + IsHashMatch = cid == item.Cid, + }); }  }   _logger.LogInformation($"{Name} Search | Summary -> Get {subtitles.Count()} Subtitles");