qbittorrent를 사용하면서 시드를 다운로드 완료했을때 해당 시드를 자동 삭제하고싶은 기능을 계속 찾았지만 마땅한 것이 없었습니다 그래서 직접 구현해봅니다.
저는 쉘스크립트로 트리거를하였습니다. 파이선도있고 다른 방법도있겠지만 다른 디펜던시 또는 프로그램 설치를 하고싶지 않아서 쉘스크립트로 합니다.
제가 구성한 qbittorrent docker-compose
services:
app:
image: lscr.io/linuxserver/qbittorrent:latest
environment:
- PUID=789
- PGID=3501
- TZ=Asia/Seoul
- WEBUI_PORT=8080
volumes:
- ./scripts:/scripts
restart: unless-stopped
Code language: YAML (yaml)
이제 scripts에 필요한 스크립트를 추가할 것입니다.
환경설정 > 내려받기 > 외부 프로그램 실행
그리고 qbittorrent web api를 호출하기위해서 고민을 하였습니다. curl로 해야할까? 아니면 다른 방법을 찾을까?
일단 저는 n8n에서 qbittorrent api를 호출하는 플로우를 만들었습니다.
#!bin/bash
# torrent 시드제거
curl -X GET "http://webhook" \
-u "username:password"
Code language: Bash (bash)
이렇게 토렌트 다운로드가 끝나면 test.sh
를 실행하고 해당 스크립트는 webhook을 호출해서 토렌트 전체 목록에서 다운로드가 완료된 토렌트를 모두 제거하는 플로우를 만들었다
qbittorrent에서 다운로드 완료 스크립트에 인자로 완료된 해쉬만 넘겨서 처리할 수도있는데 저는 완료된 모든 시드를 제거하도록하였습니다.