popstas / transmission-cli
用于自动化weburg.net下载的Transmission客户端
Requires
- php: >=7.0
- influxdb/influxdb-php: ^1.0.0
- martial/transmission-api: ^2.0.0
- stecman/symfony-console-completion: ^0.7.0
- symfony/console: ^3.4.0
- symfony/yaml: ^3.4.0
Requires (Dev)
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发送指标的宿主机
可用命令
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
- 将指标发送到InfluxDBweburg-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-download
、weburg-series-add
仅与 weburg.net 交互,而不是请求 Transmission 或 InfluxDb。
您可以使用 download-filename-whitelist
和 download-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
- 使用 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
- 将 InfluxDB 添加为 Grafana 的数据源 "influxdb",选择数据库 "transmission"。
- 导入仪表板 - 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。