diff --git a/seed_armbian_torrents.py b/seed_armbian_torrents.py deleted file mode 100755 index 57f76d2..0000000 --- a/seed_armbian_torrents.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python3 -"""seed_armbian_torrents.py - -Description: -Armbian torrents seed script - -This script will download Armbian torrent files and add them to a qBittorrent -instance. It's intended to be run under /etc/cron.weekly or used in a systemd -timer. - -This is a Python implementation of https://docs.armbian.com/Community_Torrent/ -for qBittorrent. - -Usage: - seed_armbian_torrents.py (HOSTNAME) (USERNAME) (PASSWORD) - seed_armbian_torrents.py -h - -Examples: - seed_armbian_torrents.py "http://localhost:8080" "admin" "adminadmin" - seed_armbian_torrents.py "https://cat.seedhost.eu/lol/qbittorrent" "lol" "pw" - -Options: - -h, --help show this help message and exit. -""" - -import os -from io import BytesIO -from tempfile import TemporaryDirectory -from zipfile import ZipFile - -import requests -from docopt import docopt -from qbittorrent import Client - -if __name__ == "__main__": - args = docopt(__doc__) - - # Initialize client and login - qb = Client(args["HOSTNAME"]) - qb.login(username=args["USERNAME"], password=args["PASSWORD"]) - - with TemporaryDirectory() as tmp_dir: - req = requests.get( - "https://dl.armbian.com/torrent/all-torrents.zip", - stream=True, - timeout=60, - ) - - with ZipFile(BytesIO(req.content)) as zip_file: - zip_file.extractall(tmp_dir) - - for torrent in qb.torrents(): - if "Armbian" in torrent.get("name"): # type: ignore - qb.delete_permanently(torrent.get("hash")) # type: ignore - print(f"Removed {torrent.get('name')}") # type: ignore - - torrent_files = os.listdir(tmp_dir) - for torrent_file in torrent_files: - with open(os.path.join(tmp_dir, torrent_file), "rb") as tf: - qb.download_from_file(tf, category="distro") - print( - f"Added {os.path.basename(os.path.join(tmp_dir, torrent_file))}" - )