#!/usr/bin/env python3 from argparse import ArgumentParser from logging import INFO, StreamHandler from os import path from sys import stdout from time import sleep from requests import head from transmissionrpc import LOGGER, Client, DefaultHTTPHandler # type: ignore parser = ArgumentParser() parser.add_argument("-u", "--username", required=True) parser.add_argument("-p", "--password", required=True) args = parser.parse_args() LOGGER.setLevel(INFO) LOGGER.addHandler(StreamHandler(stdout)) class CustomHTTPHandler(DefaultHTTPHandler): def request(self, url, query, headers, timeout): headers["User-Agent"] = ( "Mozilla/5.0 (X11; Linux x86_64; rv:111.0) Gecko/20100101 Firefox/111.0" ) return super().request(url, query, headers, timeout) client = Client( "https://torrent.crystalyx.net/transmission/rpc", port=443, user=args.username, password=args.password, http_handler=CustomHTTPHandler(), ) for torrent in client.get_torrents(): if "nyaa" in torrent.comment: try: response = head(torrent.comment) if response.status_code != 200: print(f"{response.status_code} - {path.join(torrent.downloadDir, torrent.name)}") except Exception: print( f"{response.status_code} - {torrent.comment} - {path.join(torrent.downloadDir, torrent.name)}" # noqa ) sleep(1)