29个发布版本
0.5.19 | 2024年4月15日 |
---|---|
0.5.18 | 2024年4月15日 |
0.5.16 | 2023年12月15日 |
0.5.15 | 2023年11月27日 |
0.1.2 | 2023年9月17日 |
#373 in 网络编程
275 每月下载次数
61KB
1.5K SLoC
putioarr
代理,允许将put.io用作sonarr/radarr/whisparr的下载客户端。代理使用Transmission协议。
安装
安装putioarr有几种方法
Cargo
确保您已安装了适当的Rust安装 cargo install putioarr
使用
首先,使用putio generate-config
生成配置。这将在~/.config/putioarr/config.toml
中生成一个配置文件。使用-c
覆盖配置文件位置。
编辑配置文件,并确保配置了用户名和密码,以及sonarr/radarr/whisparr的详细信息。
- 运行代理:
putioarr run
- 在sonarr/radarr/whisparr中配置Transmission下载客户端
- 基本URL:/transmission
- 用户名
- 密码
Docker
Docker镜像基于linuxserver.io镜像。
使用
第一次运行您的Docker容器时,不要使用-d
选项,因为您需要put.io API密钥。当找不到配置时,它会提供一个链接和一个代码,该代码将生成一个API密钥。密钥生成后,putioarr将在您的配置卷中写入默认配置(参见下面的docker compose
和docker cli
)。修改配置(如用户名、密码和sonarr/radarr/whisparr配置)以正确使用putioarr。
支持的架构
我们利用docker manifest进行多平台支持。
只需拉取ghcr.io/wouterdebie/putioarr:latest
即可检索适用于您的架构(amd64或arm64)的正确镜像。
docker-compose(推荐,更多信息请点击这里)
---
version: "2.1"
services:
putioarr:
image: ghcr.io/wouterdebie/putioarr:latest
container_name: putioarr
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/putioarr/config:/config
- /path/to/your/downloads:/downloads
ports:
- 9091:9091
restart: unless-stopped
docker cli(更多信息请点击这里)
docker run -d \
--name=putioarr \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 9091:9091 \
-v /path/to/putioarr/config:/config \
-v /path/to/your/downloads:/downloads \
--restart unless-stopped \
ghcr.io/wouterdebie/putioarr:latest
参数
容器镜像配置使用在运行时传递的参数(如上所示)。这些参数由冒号分隔,分别表示<外部>:<内部>
。例如,-p 8080:80
将从容器内部公开端口80
,使其可以从容器外部的IP地址上的端口8080
访问。
参数 | 功能 |
---|---|
-p9091 |
连接到putioarr的端口 |
-ePUID=1000 |
用户ID - 以下为说明 |
-ePGID=1000 |
组ID - 以下为说明 |
-eTZ=Etc/UTC |
指定要使用的时间区域,请参阅此列表。 |
-v/配置 |
putioarr配置 |
-v/下载 |
种子下载目录 |
行为
代理将种子或磁力链接上传到put.io。然后它将继续监控传输。当传输完成时,所有属于该传输的文件将被下载到指定的下载目录。代理在sonarr/radarr/whisparr导入文件并将put.io完成播种后,将删除文件。代理将跳过名为"样本"的目录。
配置
可以使用-c
指定配置文件,但默认配置文件位置是
- Linux: ~/.config/putioarr/config.toml
- MacOS: ~/Library/Application Support/nl.evenflow.putioarr
使用TOML作为配置格式
# Required. Username and password that sonarr/radarr/whisparr use to connect to the proxy
username = "myusername"
password = "mypassword"
# Required. Directory where the proxy will download files to. This directory has to be readable by
# sonarr/radarr/whisparr in order to import downloads
download_directory = "/path/to/downloads"
# Optional bind address, default "0.0.0.0"
bind_address = "0.0.0.0"
# Optional TCP port, default 9091
port = 9091
# Optional log level, default "info"
loglevel = "info"
# Optional UID, default 1000. Change the owner of the downloaded files to this UID. Requires root.
uid = 1000
# Optional polling interval in secs, default 10.
polling_interval = 10
# Optional skip directories when downloding, default ["sample", "extras"]
skip_directories = ["sample", "extras"]
# Optional number of orchestration workers, default 10. Unless there are many changes coming from
# put.io, you shouldn't have to touch this number. 10 is already overkill.
orchestration_workers = 10
# Optional number of download workers, default 4. This controls how many downloads we run in parallel.
download_workers = 4
[putio]
# Required. Putio API key. You can generate one using `putioarr get-token`
api_key = "MYPUTIOKEY"
# Both [sonarr] and [radarr] are optional, but you'll need at least one of them
[sonarr]
url = "http://mysonarrhost:8989/sonarr"
# Can be found in Settings -> General
api_key = "MYSONARRAPIKEY"
[radarr]
url = "http://myradarrhost:7878/radarr"
# Can be found in Settings -> General
api_key = "MYRADARRAPIKEY"
待办事项
- 更好的错误处理和重试行为
- 提供的会话ID是硬编码的。不确定这是否有关系。
- (添加不删除下载的选项)
- 找出将传输映射到已完成的导入的更好方法。由于一个传输可以包含多个文件(例如,整个季节),我们目前检查是否所有视频文件都已导入。大多数时候这很好,除非有样本视频。sonarr/radarr/whisparr不会导入样本,但不会提及样本被跳过的事实。现在我们检查
skip_directories
列表,这很有效,但可能很麻烦。 - 根据速度自动选择正确的putio代理
感谢
感谢davidchalifoux从kaput-cli借用代码。
依赖关系
~24–42MB
~688K SLoC