类型
普通规则 即通过条件列表用来筛选种子, 根据匹配情况进行删种
javascript 通过 Javascript 代码, 依据代码段的返回值进行判断删种
普通规则
说明
站点域名: 种子的 Tracker 地址的域名部分
各类时间: 选项时间到当前时间的差值, 单位为 秒/s
各类大小: 单位为 字节 / Byte, 可以使用 * 做乘法运算
种子状态: 参照 qBittorrent 对种子状态的定义, 主要包含以下几类:
上传中: uploading
, 下载中: downloading
等待下载: stalledDL
, 做种但无上传: stalledUP
更多状态请参照 qBittorrent Wiki, 若想删除等待下载状态下的种子, 应填写 stalledDL
返回信息: 种子 Tracker 列表中由 Tracker 返回的信息
当前时间: 当天 0 点到当前时间的秒数
例: 填写 当前时间大于 8*3600 与 当前时间小于 22*3600
则只会在当天上午 8 点之后到 22 点之前删种
0 点的时间戳取决于 Vertex 安装环境的时区
做种下载连接: 仅计算已连接上的数量, 也即 qBittorrent WebUI 内括号外的数字
做种下载任务: 任务的数量, 做种包含上传中状态与做种状态, 下载包含下载中与等待下载状态
比较类型中的 包含 / 包含于 或 不包含 / 不包含于: 值部分需以半角逗号 , 为分割符, 如种子分类不包含于 KEEP, KEEP2, KEEP3 三个分类, 则应填写: KEEP,KEEP2,KEEP3
Javascript
基本结构
// 提供 maindata 与 torrent 参数, maindata 为 qBittorrent 的全局信息, torrent 为当前操作种子的信息
// 返回 true 则意为符合删种条件, 若未设置持续时间, 则立即删除该种, false 为不删除
(maindata, torrent) => {
return false;
}
maindata
maindata 结构如下
const maindata = {
downloadSpeed: 0,
uploadSpeed: 0,
freeSpaceOnDisk: 0,
leechingCount: 0,
seedingCount: 0,
usedSpace: 0,
queuedIO: 0,
readCacheOverload: 0,
writeCacheOverload: 0,
torrents: [torrent, torrent, torrent....]
}
maindata 各属性释义
torrent
torrent 结构如下
const torrent = {
availability: 0.5,
name: 'torrent name',
uploadSpeed: 0,
downloadSpeed: 0,
size: 0,
progress: 0.1,
tracker: 'tr.ack.er',
completed: 0,
uploaded: 0,
downloaded: 0,
ratio: 0.1,
category: 'category',
state: 'downloading',
addedTime: 0,
completedTime: -1,
savePath: '/root/Downloads',
seeder: 0,
leecher: 0,
trackerStatus: ''
}
torrent 属性与 qBittorrent 所返回的属性对应关系
const torrent = {
availability: 'availability',
name: 'name',
uploadSpeed: 'upspeed',
downloadSpeed: 'dlspeed',
size: 'size',
progress: 'progress',
tracker: 'tracker',
completed: 'completed',
uploaded: 'uploaded',
downloaded: 'downloaded',
ratio: 'ratio',
category: 'category',
state: 'state',
addedTime: 'added_on',
completedTime: 'completion_on',
savePath: 'save_path',
seeder: 'num_seeds',
leecher: 'num_leechs'
}
torrent 各属性释义
关于种子列表, 了解更多 => qBittorrent-Api-Wiki:get-torrent-list
torrent 任务状态释义
关于任务状态, 了解更多 => qBittorrent-Api-Wiki:torrent-management
举栗
黑车
// 黑车
(maindata, torrent) => {
const categoryList = [
"不想",
"删的",
"种子",
"加",
"这些",
"分类"
];
const ruleData = [
{ down: 80, up: 50 },
{ down: 70, up: 40 },
{ down: 60, up: 30 },
{ down: 50, up: 25 },
{ down: 40, up: 20 },
{ down: 20, up: 7 },
{ down: 15, up: 5 },
{ down: 10, up: 2 },
{ down: 5, up: 0.5 }
];
const { state, upspeed, category, dlspeed } = torrent.originProp;
if (categoryList.indexOf(category) !== -1) {
return false;
}
for (const rule of ruleData) {
if (
state == "downloading" &&
dlspeed >= util.calSize(rule.down, "MiB") &&
upspeed <= util.calSize(rule.up, "MiB")
) {
return true;
}
}
return false;
};
慢车
// 慢车 持续时间30s
// 下载状态,上传低于550kb,进度在10-100之间
// 下载人数大于100的种子不删
// 0点-7点,或者客户端下载种子数量小于等于10时不删种
(maindata, torrent) => {
const categoryList = [
"不想",
"删的",
"种子",
"加",
"这些",
"分类"
];
const { state, upspeed, progress, ratio, category } = torrent.originProp;
if (categoryList.indexOf(category) !== -1 || torrent.leecher >= 100) {
return false;
}
if (
(moment().hour() >= 0 && moment().hour() <= 7) ||
maindata.leechingCount <= 10
) {
return false;
}
if (
state === "downloading" &&
upspeed <= util.calSize(1, "MiB") &&
moment().unix() - torrent.addedTime >= 600
) {
return true;
}
return false;
};