amtoaer / bili-sync

由 Rust & Tokio 驱动的哔哩哔哩同步工具
https://bili-sync.allwens.work
MIT License
528 stars 42 forks source link

请问如果更改nfo_time_type后,能更新已经下载视频的nfo文件吗? #133

Open chdykai opened 3 months ago

chdykai commented 3 months ago

开始下载把nfo_time_type设置成了favtime,现在希望改成pubtime,好按照视频发布时间去排序,如果只是更改config.toml里的设置,是不是也不能更新已经下载视频的nfo文件,有没有什么方法能强制刷新一下所有nfo文件吗?

amtoaer commented 3 months ago

是的,设置不会对过往的文件有效,现在还不支持强制刷新的行为。 目前想要实现这一点只能同时修改数据库中 video 和 page 的 status 字段,将最高位与生成 nfo 任务对应的位设置为 0,这样在下次运行时检查到 nfo 未下载会自动触发下载。video 和 page 的 status 都是32位的整数,具体的定义在这里,如果可以理解的话可以手动操作一下。 这类功能在我设想里是程序支持前端后通过前端的某个按钮触发的,目前的这种不暴露外部接口的单程序运行模式不太好做这类交互。等把 todo 里的任务做完后会尝试写个前端来支持这类操作。

chdykai commented 3 months ago

谢谢啦,问题可能有点小白,数据库是指.config文件夹里的data.sqlite文件吗?

amtoaer commented 3 months ago

是的,这个文件可以使用 SQlite Browser 之类的软件打开。

chdykai commented 3 months ago

OK,谢谢~

chdykai commented 3 months ago

是的,设置不会对过往的文件有效,现在还不支持强制刷新的行为。 目前想要实现这一点只能同时修改数据库中 video 和 page 的 status 字段,将最高位与生成 nfo 任务对应的位设置为 0,这样在下次运行时检查到 nfo 未下载会自动触发下载。video 和 page 的 status 都是32位的整数,具体的定义在这里,如果可以理解的话可以手动操作一下。 这类功能在我设想里是程序支持前端后通过前端的某个按钮触发的,目前的这种不暴露外部接口的单程序运行模式不太好做这类交互。等把 todo 里的任务做完后会尝试写个前端来支持这类操作。

有个小的建议,是否可以在文件夹命名设置上,允许加上时间字段(pubtime或者favtime)选项,数据库中本来就有这个数据,这样视频时间就比较直观,排序也更方便

amtoaer commented 3 months ago

嗯嗯,这个功能倒是很简单,但需要考虑用户的预期。 时间本身是一个单独的类型,转成字符串时可以被格式化为很多样式,比如 xxxx-xx-xx xx:xx:xxxxxx-xx-xxxx-xx 或裸数字时间戳等。因此引入这个功能最好同时引入时间格式化字符串,不过也不复杂,等把 up 主投稿做完会把这个做掉。