RMR 已停止维护, 如有需要, 请使用 Vertex => Vertex 顶点

RMR - Rss Manage Reseed

RMR - 一款支持 rss/抓取免费种/自动删除/自动辅种/客户端状态监控 的脚本工具
cover.jpg

功能点

rss

支持根据 种子大小/关键词/免费状态/ HR 状态 筛选

支持为添加种子限速

支持将 rss 结果推送至 Telegram

抓取免费种

根据 页面标签 确定种子优惠状态, 仅推送 free 或 2xfree 种子.

抓取流程以及特别说明

流程:

抓取 rss => 根据筛选条件预筛 => 请求种子页面 => 根据优惠状态确定是否推送种子至客户端

特别说明:

每个种子 仅会在获取 rss 列表之后请求一次种子页面, 因此某些后加的种子优惠不会推送!

请结合站点功能合理使用本功能, 比如仅 rss 官种的情况下, 请不要使用本功能!

自动删除

根据 硬盘剩余空间/做种时间/下载时间 等信息删除种子.

自动辅种 (实验性功能)

在 rss 的同时, 比对新种与所连接的客户端正在做种的种子, 若判断为同一种子, 则自动跳过检验辅种.

判断流程以及特别说明

流程:

抓取 rss => 根据 大小 预筛 => 下载种子并比对顶层文件名是否一致

特别说明:

判断过程略简单, 虽然说根据大小以及顶层文件夹基本可以判断是否是同意种子, 但是不能排除掉部分例外情况, 因此建议在 排除官种 的情况下使用本功能.

并且, 使用本功能可能会造成账号受到 警告或者封禁, 慎用.

客户端状态监控

根据设定好的频率将 客户端的上传下载速度\客户端剩余空间\上传或下载在前列的种子信息 推送至 Telegram.

安装与配置

支持 docker 与手动安装.

推荐使用 docker 安装

安装 - docker

docker 链接 => lswl/rmr

初始数据库文件 => sql.db

# $DB_FILE 为种子 hash 数据库保存路径, 即下载初始数据库文件后的路径
# $TASK_YAML 为任务清单配置文件的保存路径, 文件示例会在 配置 章节中提到
# $LOGS_FOLDER 为日志文件的保存目录, 注意是 目录
docker run -d \
--name rmr \
-v $DB_FILE:/db/sql.db \
-v $TASK_YAML:/config/task.yaml \
-v $LOGS_FOLDER:/logs \
lswl/rmr

安装 - 手动安装

手动安装仅适用于有 node npm 相关经验的用户.

git 链接 => lswl/rmr

初始数据库文件 => sql.db

环境依赖: nodejs npm

将仓库 clone 到本地后, 进入 rmr 文件夹执行

npm i --save # 执行此命令可能需要提前安装包括但不限于以下依赖: python libc-dev make gcc g++
npm run start

除此之外, 也可以使用 pm2 运行.
npm i --save
npm i -g pm2
pm2 start ./pm2.yaml

配置

配置文件是 .yaml 文件, .yaml 文件对缩进以及格式的要求较为严格, 在修改时请注意格式.

配置文件例子: example.yaml

telegrams:
- &Telegram
alias: Telegram
botToken: '123456789:bottoken' # Telegram Bot Token 若不推送可不修改。

global:
RFT: true # 每个 rss 任务均拒绝第一次的获取到的种子 (Reject for the first time)

clients:
# 客户端例 1
-
clientAlias: qb # 客户端别名
type: qBittorrent # 客户端类型 仅支持 qBittorrent 与 deluge, 区分大小写
username: username # 用户名, 仅 客户端类型 为 qBittorrent 时需要
password: password # 密码
clientUrl: http://10.10.10.10:7302 # 客户端 webui 链接
pushMessage: true # 是否向 Telegram 推送消息
telegram: *Telegram # telegram *Telegram 表示 引用前文提到的 &Telegram, 用此选择推送使用的机器人
torrentsChannel: -1234567890 # 客户端状态信息推送频道 id
notifyChannel: -1234567891 # rss 通知推送频道 id
cron: '*/4 * * * * *' # 客户端 maindata 更新 cron 表达式, 必填
autoReannounce: true # 是否在种子添加之后 4 分钟左右自动汇报
maxSpeed: 83886080 # 最大速度, 若客户端 上传速度 或 下载速度 在本速度以上, 则不添加种子
sameServerClients: [0, 1] # 同一服务器的客户端, 在计算 最大速度 时计算同一服务器 所有客户端 的速度和
# 若注释 sameServerClients 行, 则只计算本客户端速度, [0, 1] 指 客户端索引
# 若填写 [0, 1], 应当为 0 和 1 同时填写
autoDelete: # 自动删种
enable: true # 自动删种使能, 设置为 false 时, 不启用自动删种
cron: '* * * * *' # 自动删种任务 cron 表达式
# 以下为删种条件
maxFreeSpace: 53687091200 # 最大剩余空间, 若客户端剩余空间 低于 本大小时, 删除种子, 本行不可注释, 若不想删种留 -1 即可, 单位为 Byte
# maxRatio: 3 # 最大分享率, 种子分享率超过本值时删除, 本行可注释, 注释后不因分享率删种
maxAvailability: 3 # 最大可用率, 种子可用率超过本值时删除, 本行可注释, 注释后不因可用率删种
maxSeedTime: 345600 # 最大做种时间, 种子 做种时间 超过本值时删除, 本行可注释, 注释后不因做种时间删种, 单位为 秒
maxLeechTime: 86400 # 最大下载时间, 种子 下载时间 超过本值时删除, 本行可注释, 注释后不因下载时间删种, 单位为 秒
minSpeed: 31457280 # 最小速度, 若客户端 上传速度 在本速度以上, 则不删除种子, 仅适用于 maxFreeSpace 与 maxAvailability 引起的删种操作, 单位为 Byte
excludeCategory: # 排除的类别, qb 客户端内为 分类(Category), de 为 label
- dont_delete
- seeding
# 客户端例 2
-
clientAlias: de
type: deluge
password: password
clientUrl: http://10.10.10.10:7303
pushMessage: true
telegram: *Telegram
torrentsChannel: -1234567890
notifyChannel: -1234567891
cron: '*/4 * * * * *' # 每四秒种一次
autoReannounce: true
maxSpeed: 83886080
sameServerClients: [0, 1] # 同一服务器的客户端, 在计算 最大速度 时计算同一服务器 所有客户端 的速度和
# 若注释 sameServerClients 行, 则只计算本客户端速度, [0, 1] 指 客户端索引
# 若填写 [0, 1], 应当为 0 和 1 同时填写
autoDelete:
enable: false
cron: '* * * * *'
maxFreeSpace: 53687091200

rssTasks:
# rss 任务例 1: 正常 rss
-
taskName: 'task 1' # 任务名称
rssUrl: 'https://example.top/torrentrss.php?passkey=passkey' # rss url
enable: true # 任务使能(开关)
client: 0 # 客户端索引, 从 0 开始, clients 下 客户端的序号
autoReseed: false # 是否开启自动辅种, 为 true 时开启自动辅种
onlyReseed: false # 是否仅开启自动辅种, 为 true 时仅限自动辅种
skipSameTorrent: true # 是否跳过相同种子, 在添加种子前验证 所有 客户端内是否存在 同一 种子, 若存在, 则跳过
minSize: 10737418240 # 最小种子大小, 种子在本大小以下的种子, 不会添加, 单位为 Byte
maxSize: 1073741824000 # 最大种子大小, 种子在本大小以上的种子, 不会添加, 单位为 Byte
savePath: '/Downloads' # 保存路径, 不填写 (必须注释本行才算不填写) 则使用默认路径
category: 'seeding' # 标签, 若无需要, 请注释, 若填写, 请注意是否应该关闭 qb 的 自动管理种子 功能
conditions: # 关键词, 支持 包含 与 不包含 两种情况, 为数组, 各个元素为 并且 的关系
# type 类型, 仅支持 include 与 exclude, 分别为 包含 与 不包含
-
type: include # 类型为包含
words: # 关键词, 类型为 包含 时, 各个元素为 或 的关系
-
type: exclude # 类型为不包含
words: # 关键词, 类型为 包含 时, 各个元素为 并且 的关系
speedLimit: # 限速
upload: 0 # 上传, 单位为 Byte, 0 为不限速
download: 0 # 下载, 单位为 Byte, 0 为不限速
cron: '* * * * *'
# rss 任务例 2 仅自动辅种 (自动辅种属于 实验性 功能, 慎用)
-
taskName: 'task 2'
rssUrl: 'https://example.net/torrentrss.php'
enable: true
client: 0
autoReseed: true # 开启自动辅种
onlyReseed: true # 开启仅辅种功能
minSize: 1073741824
maxSize: 1073741824000
conditions:
-
type: include
words:
-
type: exclude
words:
- 'PTH' # 排除掉关键词 PTH, 避免辅到官种
- 'PTHome'
speedLimit:
upload: 0
download: 0
cron: '* * * * *'
# rss 任务例 3 抓取免费种, 避免 HR
-
taskName: free
rssUrl: 'https://example.org/torrentrss.php'
cookie: 'cookie' # cookie 需要抓取 免费种 或 HR 时必须填写.
enable: true
client: 0
autoReseed: true
onlyReseed: false # 关闭 仅辅种
skipSameTorrent: true
scrapeFree: true # 是否开启抓取免费种
scrapeHr: true # 是否开启抓取 HR 并避免
minSize: 1073741824
maxSize: 1073741824000
conditions:
-
type: include
words:
-
type: exclude
words:
- 'example' # 排除官种关键词
speedLimit:
upload: 0
download: 0
cron: '* * * * *'