群晖自带的 Video Station 是很多人建立私有影院的绝佳选择,其自带的刮削器效果强大,只要按照他规定的命名方式定义视频文件的名称,刮削器就可以智能的利用 The Movie DB 开放的API将影视信息保存到本机。
尽管绝大部分的视频都能够正常识别及保存,对于电视剧、动画等分季多集的作品来说,有时候会遇到作品详情能正常保存,但分级数据却都为空,这是为什么?
经过调查发现,对于不能正常保存的视频都有一个共同的现象——就是他们的评分数据都不规范。正常的评分数据是一个不超过1位的小数,但这些视频往往小数位数都会超过1位。比如我们拉取动画片《賭ケグルイ》的评分时,其用户评分(vote_average)返回的就是“8.251”。而 Video Station 处理这样的数据时,就会提示“数据格式不正确”,继而无法保存,除非手动将“8.251”改为“8.2”这样的1位小数格式。
尽管我们可以通过手动的方式,将剧集数据一集一集的手动修复,但对于程序员来说,能让电脑自己做的事情为什么还要我们亲自动手?况且如果是修复了自动刮削的脚本,我们也不用再操作修复了。
既然提到是修改代码,就已经默认了你是一个具有良好编程经验的程序员,且可以熟练的使用Linux命令,至少可以在搜索引擎的帮助下,可以很快的找到解决问题的方案。因此,我不会给出如何通过XShell
或类似工具连接到群晖服务器的基础教程,这也是因为如果你不具备这些最简单的技巧,你可能会把只有刮削器有故障的 Video Station 变得整个都无法使用。
我们需要做什么?
将刮削器获取到的TheMovieDB的接口数据做修整,将 vote_average
字段的值强制改为 1位小数。
下面是代码,请参考。
声明:本方法仅针对 3.0.5-2503 版本的 VideoStation 生效,其他版本由于我均未做过尝试,故不会对结果负责,有经验的程序员应该可以根据我的思路轻松确认及解决。
# 进入 Video Station 的刮削器插件目录,根据 VideoStation 安装目录的不同,volume1 可能在你的机器上应该变为其他分卷。
cd /volume1/@appstore/VideoStation/plugins/syno_themoviedb
# 备份检索方法的代码(自信不需要做备份和恢复的小伙伴可以忽略)
cp search.py search.py.bak
# 核心改动! 将文件中取评分的逻辑加上保存为1位小数的逻辑
sed -i 's/tv_data\['\''vote_average'\''\]/round(tv_data\['\''vote_average'\''\], 1)/g' search.py