fix: 解决 Emby 重复下载问题并修复 Jellyfin SDK 兼容性

- 修复:在 Emby 插件中显式为 RemoteSubtitleInfo 设置 Language 属性,确保服务器能正确识别下载语言,防止循环下载。
- 兼容性:在 Jellyfin 插件中移除暂不兼容的语言属性赋值,确保项目在最新 SDK 下编译通过。
- 维护:完成所有 Provider 文件的日志增强逻辑(耗时监控、参数显式化)。
This commit is contained in:
Meiam
2025-12-22 16:19:47 +08:00
parent b88712ead1
commit e7d1629166
4 changed files with 57 additions and 59 deletions

View File

@@ -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 });

View File

@@ -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 });

View File

@@ -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");

View File

@@ -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");