-
-
Notifications
You must be signed in to change notification settings - Fork 83
Open
Labels
enhancementNew feature or requestNew feature or request
Description
原因
qb下载后提倡做做种,增加点分享精神 以及避免被拉黑ip
个人使用环境
我个人使用环境为群晖 docker 环境,因此使用方式为使用 python3 运行 EpisodeReName.py 文件,windows 环境下暂时不清楚是如何调用的,因此下文的讨论将基于该文件的代码
可能的优化更名方式 os.link
通过查看源码可看到在 812 行进行了如下操作:
tmp_name = new + '.new'
os.rename(old, tmp_name)
# 目标文件已存在, 先删除
if os.path.exists(new):
os.remove(new)
# 临时文件重命名
os.rename(tmp_name, new)可以看到程序是直接将原文件(old)使用 os.rename 方法进行了重命名。
是否可以考虑使用 os.link 方法来创建硬链接呢?硬链接与原文件指向的是同一个内容区块,同时不会占用实际空间,昨晚尝试之后在 jellyfin 中也可以顺利识别到。
缺陷在于该方法仅在 windows 环境与 unix 环境下可使用不过该项目的目标环境本来也就这俩吧
示例截图
查看文件,S01E11 是创建的硬链接,可以看到与下方实际存在的文件指向同一个数据块,第二个则是查看实际占用磁盘空间

jellyfin 中也能正常识别到文件
仍需优化的问题
创建硬链接后与原文件在同一目录下,会对 jellyfin 等的扫描出现干扰,也许可以增加一个前缀,如下所示:
if move_up_to_season_folder:
new_path = format_path(prefix + ‘/’ +season_path + '/' + new_name)
else:
new_path = format_path(prefix + ‘/’ +parent_folder_path + '/' + new_name)这样就可以将另外一个文件夹映射为媒体库了,同时不干扰做种。
不过这个方法还没测试过,先提出一个可能性吧
Nriver and zxy662
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
