Skip to content

关于保留原始文件用于做种的可能性探讨 #44

Description

@dddepg

原因

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 是创建的硬链接,可以看到与下方实际存在的文件指向同一个数据块,第二个则是查看实际占用磁盘空间
image

jellyfin 中也能正常识别到文件

image

仍需优化的问题

创建硬链接后与原文件在同一目录下,会对 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)

这样就可以将另外一个文件夹映射为媒体库了,同时不干扰做种。

不过这个方法还没测试过,先提出一个可能性吧

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions