Closed tianren closed 8 years ago
bilidan.py 检测 mpv version 的代码有些问题。当前通过比较 tuple of strings 来确定版本。但在 python 中 '9'>'10',因此不论 mpv 的版本,mpv_version_gte_0_10 都会被设为 True。
下面是我暂用的补救措施,其仍然含有 bug (没有检查 str 能否被转为 int),仅供参考
- mpv_version_gte_0_10 = mpv_version_master >= ('0', '10') or (len(mpv_version_master) >= 2 and len(mpv_version_master[1]) >= 3) or mpv_version_master[0] == 'git' - mpv_version_gte_0_6 = mpv_version_gte_0_10 or mpv_version_master >= ('0', '6') or (len(mpv_version_master) >= 2 and len(mpv_version_master[1]) >= 2) or mpv_version_master[0] == 'git' - mpv_version_gte_0_4 = mpv_version_gte_0_6 or mpv_version_master >= ('0', '4') or (len(mpv_version_master) >= 2 and len(mpv_version_master[1]) >= 2) or mpv_version_master[0] == 'git' + mpv_version_gte_0_10 = (len(mpv_version_master) >= 2 and len(mpv_version_master[1]) >= 3) or mpv_version_master[0] == 'git' or tuple(map(int,mpv_version_master)) >= (0, 10) + mpv_version_gte_0_6 = mpv_version_gte_0_10 or (len(mpv_version_master) >= 2 and len(mpv_version_master[1]) >= 2) or tuple(map(int,mpv_version_master)) >= (0, 6) + mpv_version_gte_0_4 = mpv_version_gte_0_6 or tuple(map(int,mpv_version_master)) >= (0, 4)
谢谢反馈。如果发现了比较好的解决方法(可以转门写一个比较版本的函数),欢迎 PR,我会合并。
实际上这几次更新,mpv 的命令行参数都有改变,兼容旧版本也比较累,不如更新到最新版啦。
让 bilidan 只支持 mpv > 0.10 就好了!
问题在于垃圾 Ubuntu、Debian 软件源万年不更新。
我也想只支持最新版啊 。(笑)
bilidan.py 检测 mpv version 的代码有些问题。当前通过比较 tuple of strings 来确定版本。但在 python 中 '9'>'10',因此不论 mpv 的版本,mpv_version_gte_0_10 都会被设为 True。
下面是我暂用的补救措施,其仍然含有 bug (没有检查 str 能否被转为 int),仅供参考