popstas/transmission-cli

用于自动化weburg.net下载的Transmission客户端

v0.11.0 2019-03-02 09:35 UTC

README

transmission-cli是一个控制台PHP应用程序,用于自动化从weburg.net的下载/上传种子文件

博客文章:http://blog.popstas.ru/blog/2016/01/17/torrent-transmission-client-for-weburg/

基于

功能

  • 向InfluxDB发送指标,使用Grafana监控种子文件趋势
  • http://weburg.net下载受欢迎的电影(根据评分、评论和投票排序)
  • http://weburg.net下载跟踪的系列
  • 从Transmission中删除不受欢迎的上传
  • 与多个Transmission实例一起工作
  • 命令行自动完成
  • 使用GET请求添加种子文件

图形

  • 按种子文件和总上传统计的小时上传统计
  • 列出所有向InfluxDB发送指标的宿主机

Screenshot

可用命令

  • help - 显示命令的帮助
  • list - 列出命令
  • torrent-list [--name='series*1080'] [--age='>1 <3 =2'] [--sort=1] [--limit=10], tl - 列出、筛选和排序种子文件
  • torrent-add file|url [file2] [fileX], ta - 安全添加种子文件
  • torrent-remove 1 [2] [3], tr - 根据种子文件ID移除一个或多个种子文件
  • torrent-remove-duplicates, trd - 移除过时的重复种子文件
  • stats-get [--name='name'] [--age='>1 <3 =2'] [profit='>0'] [--days=7] [--sort=1] [--limit=10] [--rm], sg - 从InfluxDB获取指标
  • stats-send, ss - 将指标发送到InfluxDB
  • weburg-download [--limit 1], wd - 从weburg.net下载受欢迎的种子文件和跟踪的系列
  • weburg-download --popular [--movies-url=url] - 仅下载受欢迎的
  • weburg-download --series - 仅下载系列
  • weburg-download --query - 下载第一个结果
  • weburg-download [movie url or id] - 下载电影,不检查受欢迎程度
  • weburg-download [series url or id] [--days=1] - 下载过去x天的系列
  • weburg-series-add, wsa - 将系列添加到监控列表
  • weburg-info, wi - 测试内部weburg解析器

全局命令选项

  • --config - 设置配置文件路径
  • --dry-run - 不更改任何数据
  • -v|vv|vvv - 更详细的输出
  • --transmission-host - 设置Transmission主机
  • --transmission-port - 设置Transmission端口
  • --transmission-user - 设置Transmission用户
  • --transmission-password - 设置Transmission密码

用于添加种子文件的HTTP服务器

node scripts/server-torrent-add.js

然后您可以通过打开如https://:10293/?url=http%3A%2F%2Fbt.weburg.net%2Fgettorrent.php%3Fsecuritykey%3D70c3fcb98000761e78ea2b9c8bedd69e%26user_id%3D151954%26info_hash%3D9f67aa271026be1ca2d7c6b4a88f9417455d64f5的URL来添加种子文件

您还可以将用户脚本添加到浏览器中,scripts/weburg-torrent-add.user.js

安装

PHAR自动安装(推荐)

latest_phar=$(curl -s https://api.github.com/repos/popstas/transmission-cli/releases/latest | grep 'browser_' | cut -d\" -f4)
wget -O /usr/local/bin/transmission-cli "$latest_phar"
chmod +x /usr/local/bin/transmission-cli

PHAR手动安装

从这里下载最新的transmission-cli.phar here,将其设置为可执行,并将其放置在bin目录中。

Composer全局安装

composer global require popstas/transmission-cli

如果在之后无法执行 transmission-cli,可能需要按照以下说明将 ~/.config/composer/vendor/bin 添加到您的 PATH 环境变量中:这里

从源安装 Composer

git clone https://github.com/popstas/transmission-cli
cd transmission-cli
composer install
ln -s "$PWD"/bin/transmission-cli /usr/local/bin/transmission-cli

配置

默认配置位置:~/.transmission-cli.yml。首次运行时创建。您可以在其中更改一些参数。

此外,您可以将配置传递给命令:transmission-cli --config /path/to/config.yml

命令 weburg-downloadweburg-series-add 仅与 weburg.net 交互,而不是请求 Transmission 或 InfluxDb。

您可以使用 download-filename-whitelistdownload-filename-blacklist 列表在下载之前过滤种子。

关于种子重复

默认情况下,当您在 Transmission 中有同名种子时,transmission-cli 会阻止向 InfluxDB 发送统计信息,因为这会使这些种子的统计信息错误。如果您不介意这一点,可以在配置中使用 allow-duplicates 选项。当配置中定义了 allow-duplicates: true 时,transmission-cli 将允许发送带有重复项的统计信息,并在 torrent-add 命令后不会要求删除重复项。

Transmission

如果您想使 torrent-* 命令正常工作,您应该在 Transmission 中启用远程访问,并根据需要添加主机、端口、用户名和密码。

默认情况下,transmission-cli 在 localhost:9091 上请求 Transmission,没有用户名和密码。您可以在 ~/.transmission-cli.yml 中更改它。

您可以通过以下方式覆盖默认配置:--transmission-host--transmission-port--transmission-user--transmission-password

此外,可能您想自动下载电影,而不仅仅是种子文件。为此,在 Transmission 中启用自动下载,并将 --dest= 选项中的目录指向相同的位置。

InfluxDB 和 Grafana

您需要安装它来绘制种子图形。

InfluxDB

安装 InfluxDB 的最简单方法是使用 Docker

docker run --name influxdb -d --restart=always \
    -v /Users/popstas/lib/influxdb:/data \
    -p 8083:8083 -p 8086:8086 \
    influxdb

如果您不想看到关于您种子的详细统计信息,可能不需要安装 InfluxDB,stats-* 命令将不会工作。

Grafana

  1. 使用 Docker 运行 Grafana
docker run --name grafana -d \
    -v /Users/popstas/lib/grafana:/var/lib/grafana \
    -p 3000:3000 \
    -e "GF_SECURITY_ADMIN_USER=admin" \
    -e "GF_SECURITY_ADMIN_PASSWORD=secret" \
    grafana/grafana
  1. 将 InfluxDB 添加为 Grafana 的数据源 "influxdb",选择数据库 "transmission"。
  2. 导入仪表板 - grafana-torrents.json

如果您不想看图表,Grafana 不是必需的。

bash/zsh 的自动补全

source <(transmission-cli _completion --generate-hook)

Cron

然后,将其添加到 cron 任务中,如下所示

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:~/.config/composer/vendor/bin"
59 * * * * transmission-cli torrent-remove-duplicates --yes --transmission-host=localhost
59 * * * * transmission-cli torrent-remove-duplicates --yes --transmission-host=wrtnsq
0  * * * * transmission-cli stats-send --transmission-host=localhost
0  * * * * transmission-cli stats-send --transmission-host=wrtnsq
1  2 * * * transmission-cli weburg-download --yes --download-torrents-dir=/Volumes/media/_planeta/_torrents

如果您使用 composer global 安装了 transmission-cli,别忘了将 ~/.config/composer/vendor/bin 添加到 cron 的 PATH 中!

用法

请参阅 命令 --help

贡献

请参阅 CONTRIBUTING.md