删种规则

类型

  • 普通规则 即通过条件列表用来筛选种子, 根据匹配情况进行删种

  • javascript 通过 Javascript 代码, 依据代码段的返回值进行判断删种

普通规则

说明

  1. 分享率一: 上传 / 种子大小 的结果

  2. 分享率二: 上传 / 下载 的结果

  3. 站点域名: 种子的 Tracker 地址的域名部分

  4. 各类时间: 选项时间到当前时间的差值, 单位为 秒/s

  5. 各类大小: 单位为 字节 / Byte, 可以使用 * 做乘法运算

  6. 各类速度: 单位为 字节/s / Byte/s

  7. 种子状态: 参照 qBittorrent 对种子状态的定义, 主要包含以下几类: 上传中: uploading, 下载中: downloading 等待下载: stalledDL, 做种但无上传: stalledUP 更多状态请参照 qBittorrent Wiki, 若想删除等待下载状态下的种子, 应填写 stalledDL

  8. 返回信息: 种子 Tracker 列表中由 Tracker 返回的信息

  9. 当前时间: 当天 0 点到当前时间的秒数 例: 填写 当前时间大于 8*3600 与 当前时间小于 22*3600 则只会在当天上午 8 点之后到 22 点之前删种 0 点的时间戳取决于 Vertex 安装环境的时区

  10. 全局速度: 当前下载器的速度

  11. 做种下载连接: 仅计算已连接上的数量, 也即 qBittorrent WebUI 内括号外的数字

  12. 做种下载任务: 任务的数量, 做种包含上传中状态与做种状态, 下载包含下载中与等待下载状态

  13. 比较类型中的 包含 / 包含于 或 不包含 / 不包含于: 值部分需以半角逗号 , 为分割符, 如种子分类不包含于 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;
};

最后更新于