dl/commands/nyaa-404.py

48 lines
1.4 KiB
Python
Raw Normal View History

2023-04-24 07:02:56 +00:00
#!/usr/bin/env python3
2023-04-23 19:51:03 +00:00
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
2023-04-23 19:51:03 +00:00
parser = ArgumentParser()
2023-06-09 16:30:06 +00:00
parser.add_argument("-u", "--username", required=True)
parser.add_argument("-p", "--password", required=True)
2023-04-23 19:51:03 +00:00
args = parser.parse_args()
LOGGER.setLevel(INFO)
LOGGER.addHandler(StreamHandler(stdout))
class CustomHTTPHandler(DefaultHTTPHandler):
def request(self, url, query, headers, timeout):
2024-01-26 11:46:36 +00:00
headers["User-Agent"] = (
"Mozilla/5.0 (X11; Linux x86_64; rv:111.0) Gecko/20100101 Firefox/111.0"
)
2023-04-23 19:51:03 +00:00
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} - {path.join(torrent.downloadDir, torrent.name)}")
2023-04-23 19:51:03 +00:00
sleep(1)