caryyu / jellyfin-plugin-opendouban

Douban metadata provider for Jellyfin
188 stars 15 forks source link

部分字段不正确,对应错了字段,例如:Original title: #16

Closed whitecodes closed 2 years ago

whitecodes commented 2 years ago

metadata 中部分字段取错了

例如 Original title 使用了 “又名”字段,这里应该是原始名字。 例如 失控玩家 Free Guy ,豆瓣id 30337388:Original title 应该是 “Free Guy”,而不是 “分身人 / 爆机自由仁(港) / 脱稿玩家(台) / 自由之人 / 自由人”

另外缺少 Release date 的信息:douban-openapi-server 中已经取到了(字段应该是 screen),但是在插件中没有使用

caryyu commented 2 years ago

Hi @whitecodes 非常感谢你的提问;对于提出的以下问题:

  1. 搜刮到的信息不准确 - 能否进一步提供日志中打印的搜索关键字,插件会利用该关键字调用豆瓣搜索获取第一条结果
  2. 对于 Release Date 的问题我后面确认一下,请保持对该 PR 关注,谢谢
whitecodes commented 2 years ago
  1. 搜索到的电影是正确的,不对的是 metadata 的赋值 douban-openapi-server 项目中 httprequest_provider.py 中 78L 定义了 subname 是豆瓣页面上的 “又名” jellyfin-plugin-opendouban 项目中 OddbMovieProvider.cs 中 133L 将 subname 赋值给 OriginalTitle 这里应该是赋值错了
caryyu commented 2 years ago

@whitecodes 非常感谢你对该问题的剖析,我明天测试完毕之后发个版进行修复,如果你感兴趣你可以提一个变更 PR 我直接在你变更的上面测试也行。

caryyu commented 2 years ago

@whitecodes 该问题已经在 v1.0.11 解决了,你升级新版本试试。

whitecodes commented 2 years ago

Release date 修正了 但是剧集的 Original title 还是不对,带了 第X季 Screenshot_20211017_152720

caryyu commented 2 years ago

@whitecodes 你搜索的关键字能否发出来看看;另外,豆瓣的搜索功能第一条的返回结果的标题是什么呢?对于该项的期待值我的理解是你希望 “第7季” 出现在 title 中,对吗?

whitecodes commented 2 years ago

根据豆瓣id来搜索的:35471063 返回的结果如下 Screenshot_20211017_185616 Screenshot_20211017_185641

是的,希望 “第7季” 出现在 title 。豆瓣上是每季都是独立的id

caryyu commented 2 years ago

@whitecodes 感谢你的反馈,标题字符串拆分算法看来需要分策略进行优先级拆分,比如下述两个例子:

字符串策略优先级算法从上至下:

另外:希望能够有更多的标题示例来论证该算法是否能够完全解决此问题。

caryyu commented 2 years ago

@whitecodes 再试试 v1.0.12 版本(服务端版本需要 >= 5c9a195),目前正则实现上述策略规则参考:https://github.com/caryyu/douban-openapi-server/blob/main/provider/httprequest_provider.py#L70

whitecodes commented 2 years ago

用起来没问题了。虽然看正则如果季数超过9季,两位数的话这个正则就出错了。但是现在的电视剧基本都不会有这么长的,这个问题先关闭了