kookxiang / jellyfin-plugin-bangumi

bgm.tv plugin for jellyfin
GNU General Public License v2.0
577 stars 24 forks source link

Jellyfin 下番剧季度名获取不正确,覆盖获取的剧集信息不反映到界面。 #126

Open Lancercmd opened 4 months ago

Lancercmd commented 4 months ago

Jellyfin 版本 10.9.2 ,Bangumi 插件版本 1.6.0.0,设置为 使用 Bangumi 词条作为季名称 始终根据配置的 Bangumi ID 获取元数据 转换元数据信息中的换行符 使用 AnitomySharp 猜测集数

任意番剧,在正常情况下能获取季度标题为 第 1 季 的,在首次获取或尝试覆盖获取元数据的时候,会获取为 我的朋友很少 Add-on disk 。可以直接将错误的季度标题修改为 第 1 季 ,但尝试覆盖获取元数据的时候,会被以 我的朋友很少 Add-on disk 覆盖。

我的媒体库里实际上确实有 我的朋友很少 Add-on disk ,所以尝试复现的话也可能会是别的。

且当剧集没有正确刮削时,不会关联 bangumiid 并且也就不会获取元数据(这个是正常的),手动关联 bangumiid 后使用覆盖获取元数据时,可以从终端看到获取到的和 bangumiid 所关联的具体剧集信息(及nfo文件的内容)是正确的,但更新后的信息不会反映到 Jellyfin 界面中。

这个可能是 Jellyfin 本身的问题,但还是一并提一下。

kookxiang commented 4 months ago

已知更新到 10.9.x 会有这个问题,临时方法是删除 nfo 文件再刷新元数据

Lancercmd commented 4 months ago

已知更新到 10.9.x 会有这个问题,临时方法是删除 nfo 文件再刷新元数据

试了下剧集信息确实能反映了,但季度标题的问题依旧。

季度标题的问题,目前更新 Bangumi 插件到 1.6.1.0 后解决了,但在尝试为番剧获取元数据时,会于终端打印以下错误日志。

[09:39:42] [ERR] [31] MediaBrowser.Providers.TV.SeasonMetadataService: Error in Bangumi
System.ArgumentNullException: Value cannot be null. (Parameter 'path')
   at System.ArgumentNullException.Throw(String paramName)
   at System.ArgumentNullException.ThrowIfNull(Object argument, String paramName)
   at System.ArgumentException.ThrowNullOrEmptyException(String argument, String paramName)
   at System.ArgumentException.ThrowIfNullOrEmpty(String argument, String paramName)
   at Emby.Server.Implementations.Library.LibraryManager.FindByPath(String path, Nullable`1 isFolder)
   at Jellyfin.Plugin.Bangumi.Providers.SeasonProvider.GetMetadata(SeasonInfo info, CancellationToken token)
   at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)
wuyu8512 commented 4 months ago

季度标题的问题,目前更新 Bangumi 插件到 1.6.1.0 后解决了,但在尝试为番剧获取元数据时,会于终端打印以下错误日志。

我也遇到了,看了一下,发现Jellyfin传过来的 SeasonInfo.Pathnull

kookxiang commented 4 months ago

试试 10.9.4 版本看看?我试了下重启好像也没问题了

Lancercmd commented 4 months ago

试试 10.9.4 版本看看?我试了下重启好像也没问题了

我这儿试了依旧会报错,Jellyfin 的要先删除 nfo 才会更新界面的问题也存在。

对于界面信息不更新的问题,以及更新后导致的新的问题(比如 jellyfin/jellyfin#11885 和 jellyfin/jellyfin#11937),可以在 jellyfin/jellyfin#11619 追番的。

[07:43:10] [ERR] [86] MediaBrowser.Providers.TV.SeasonMetadataService: Error in Bangumi
System.ArgumentNullException: Value cannot be null. (Parameter 'path')
at System.ArgumentNullException.Throw(String paramName)
at System.ArgumentNullException.ThrowIfNull(Object argument, String paramName)
at System.ArgumentException.ThrowNullOrEmptyException(String argument, String paramName)
at Emby.Server.Implementations.Library.LibraryManager.FindByPath(String path, Nullable`1 isFolder)
at Jellyfin.Plugin.Bangumi.Providers.SeasonProvider.GetMetadata(SeasonInfo info, CancellationToken token)
at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)

上述报错直至 10.9.6 仍存在,它还有以下一种情况。

[14:54:52] [ERR] [71] MediaBrowser.Providers.TV.SeasonMetadataService: Error in Bangumi
System.FormatException: The input string '' was not in a correct format.
at System.Number.ThrowFormatException[TChar](ReadOnlySpan`1 value)
at Jellyfin.Plugin.Bangumi.Providers.SeasonProvider.<>c.<GetMetadata>b__10_1(BaseItem x)
at System.Linq.Enumerable.MaxBy[TSource,TKey](IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer)
at Jellyfin.Plugin.Bangumi.Providers.SeasonProvider.GetMetadata(SeasonInfo info, CancellationToken token)
at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)
kookxiang commented 4 months ago

发现 10.9.4 的问题越来越严重了,有种想降级回 10.8.x 的冲动

moondigi commented 3 months ago

刚更新到10.9.6,同样有类似错误

[2024-06-07 09:59:38.034 +08:00] [ERR] [32] MediaBrowser.Providers.TV.SeasonMetadataService: Error in "Bangumi"
System.ArgumentNullException: Value cannot be null. (Parameter 'path')
   at System.ArgumentNullException.Throw(String paramName)
   at System.ArgumentNullException.ThrowIfNull(Object argument, String paramName)
   at System.ArgumentException.ThrowNullOrEmptyException(String argument, String paramName)
   at Emby.Server.Implementations.Library.LibraryManager.FindByPath(String path, Nullable`1 isFolder)
   at Jellyfin.Plugin.Bangumi.Providers.SeasonProvider.GetMetadata(SeasonInfo info, CancellationToken token)
   at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)
RandomNamer commented 3 months ago
[14:54:52] [ERR] [71] MediaBrowser.Providers.TV.SeasonMetadataService: Error in Bangumi
System.FormatException: The input string '' was not in a correct format.
   at System.Number.ThrowFormatException[TChar](ReadOnlySpan`1 value)
   at Jellyfin.Plugin.Bangumi.Providers.SeasonProvider.<>c.<GetMetadata>b__10_1(BaseItem x)
   at System.Linq.Enumerable.MaxBy[TSource,TKey](IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer)
   at Jellyfin.Plugin.Bangumi.Providers.SeasonProvider.GetMetadata(SeasonInfo info, CancellationToken token)
   at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)

我这边也一直不能用这个功能,改一下就好了。顺便也很好奇为啥别人之前都还能用季度识别,跑到int.Parse(string.Empty)不是一定会出错的嘛......