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 网络编程

Download history 10/week @ 2024-05-21 141/week @ 2024-07-02 196/week @ 2024-07-23 79/week @ 2024-07-30

275 每月下载次数

MIT 协议

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 composedocker cli)。修改配置(如用户名、密码和sonarr/radarr/whisparr配置)以正确使用putioarr。

支持的架构

我们利用docker manifest进行多平台支持。

只需拉取ghcr.io/wouterdebie/putioarr:latest即可检索适用于您的架构(amd64或arm64)的正确镜像。

---
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