Giter Site home page Giter Site logo

pt-check's Introduction

这个开发主要是给自己用的,所以易用性和易读性较差。很多可配置的内容我都没有做,直接写在脚本中,仅供有一定python基础的人参考

一、运行环境简要说明: OS:Ubuntu-19.10
我都是以root用户身份运行的,如果非root用户请自己修改命令: 1、首先你需要安装python:3.7 apt-get install python3 2、安装QB和TR的python接口模块 pip3 install qbittorrent-api pip3 install transmissionrpc 3、在root目录下建立自己的运行环境 mkdir /root/py(如非特别说明,以后的工作目录就是/root/py) 4、获取所有py文件至root/py目录下 5、建立三个目录(这几个目录在pt.py中都有配置,如果想更改就同步修改pt.py中的配置) 1)、data/目录存放自己运行所需备份数据文件, 2)、data/qb_backup/目录存放QB转移种子的备份 3)、log/存放日志文件

二、py文件说明: 1、tags.py是一个qbittorrent的修改tags代码样例 2、pt.py是pt检查和转移等的脚本文件 3、check.py+movie.py是用来检查自己库存盘movie文件夹命名及内容的

三、pt.py工作机制 1、每隔半小时:sleep(1800),如果想更改时间间隔,可以找到这一行修改代码

2、连接qb/tr进行逐个检查种子的状态 3、简单校验完成率为100%的种子下载的文件 a) 每半个小时仅检查第一个文件是否存在,以提高运行效率 b) 每天(转天)做一次检查所有文件是否存在,以及大小是否一致 c) 检查一下种子的下载保存路径是在列表RootFolderList中,不在就记录错误日志。 4、对于QB进行标签设置,通过tracker关键字来设置标签(这一段仅有一个地方需要用到,我就写在脚本中,没有提到py文件前面配置,可以自行修改或者删除) 5、每天记录下种子的上传量(绝对值)并写入备份文件(TorrentListBackup) 6、每天计算一下种子的上传量,如果连续NUMBEROFDAYS天的上传量低于阈值UPLOADTHRESHOLD,且分类不是'保种‘的种子就会暂停种子,我就第二天上午就可以根据暂停的种子来确定要不要删除。
这就有一个问题:QB支持分类,可以设置'保种’分类,TR不支持怎么办呢?我就想了一个办法,把TR保种的种子保存目录都建在某个目录TRSeedFolderList,然后在TRSeedFolderList下建立链接到实际目录。所以,保存目录在TRSeedFolderList的种子都认为是保种。 7、转移QB的种子到TR去保种 因为我的QB经常崩溃,不如TR稳定,我就想了还是QB下载转移到TR去保种吧。 为了避免转移所有种子到TR,我增加了两个前提: 分类为'保种',状态为停止的种子,把它转移到TR去保种。 1) 从QB的BT_backup目录(QBBackupDir)中拷贝待转移的种子文件和快速恢复文件到我自己的保存目录QBTorrentsBackupDir,目的是万一未来需要重新转移回QB,就可以通过它快速恢复 2) 在QB下载种子时如果保存在自定义的路径(未创建子文件夹)时,在TRSeedFolderList[0]目录下创建一个软链接到种子自定义的保存路径 3) TR增加种子,保存路径为TRSeedFolderList[0],不自动开始。 4) 把QB的种子修改分类为'转移'

四、pt.py使用说明 前提:第一步运行环境的已经构建好 1、在pt.py前面有一个运行设置,我就不做配置文件了,全写在脚本前面,如果要使用则需要自己一一修改配置 具体的配置项大部分都在三、pt.py工作机制中提到 2、运行pt.py在后台,他就会定期执行任务 nohup pt.py & 3、如果想仅做一次性检查,可以执行pt.py now 4、如果想检查下指定的路径中的文件夹/文件是否在种子下载路径,可以执行pt.py checkdisk (待检查的路径配置在CheckDiskList中) 我经常删除,转移,添加种子,可能导致某些目录下的文件已经实际不在使用中(不在TR/QB的种子下载文件列表),但我又不敢随便删除或者转移,从而导致种子错误, 这个pt.py checkdisk就可以手动执行检查,会把不在使用中的文件夹/文件记录日志。这样我就根据日志自己去转移日志。 那么有时候,我某些固定文件夹/文件它在我给定的CheckDiskList中,它已经不再使用中,但我又不想转移。就可以在IgnoreListFile中配置

目前这个功能没有放入定期执行任务中。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.