mirror of
https://codeberg.org/hyperreal/admin-scripts
synced 2024-11-25 09:03:41 +01:00
Compare commits
7 Commits
83e26f1428
...
c80c1887bb
Author | SHA1 | Date | |
---|---|---|---|
c80c1887bb | |||
2498fc3b1d | |||
1fdb07e6c0 | |||
90db8fbda4 | |||
4c3e7e227d | |||
172bdfef48 | |||
3d10a07ab9 |
@ -1,4 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "requests",
|
||||
# "bs4",
|
||||
# "docopt",
|
||||
# "rich",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""calculate_mirror_size.py
|
||||
|
||||
|
@ -1,4 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "requests",
|
||||
# "docopt",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""fetch_combined_trackers_list.py
|
||||
|
||||
@ -20,7 +25,7 @@ import requests
|
||||
from docopt import docopt
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = docopt(__doc__) # type: ignore
|
||||
args = docopt(__doc__) # type: ignore
|
||||
|
||||
live_trackers_list_urls = [
|
||||
"https://newtrackon.com/api/stable",
|
||||
|
@ -1,4 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "requests",
|
||||
# "docopt",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""fetch_scihub_infohashes.py
|
||||
|
||||
|
@ -1,4 +1,9 @@
|
||||
#!/home/jas/virtualenvs/list_torrents/bin/python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "qbittorrent-api",
|
||||
# "docopt",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""list_torrents.py
|
||||
|
||||
@ -54,6 +59,7 @@ def print_ssv():
|
||||
sorted_torrents = sorted(
|
||||
qbt_client.torrents_info(), key=lambda d: d.ratio, reverse=True
|
||||
)
|
||||
print("Name Size # of Trackers Ratio Uploaded")
|
||||
for torrent in sorted_torrents:
|
||||
name = torrent.name
|
||||
size = human_bytes(torrent.total_size)
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
let old_head = "<html><style>body { background-color:white;color:black; }</style><body>"
|
||||
let new_head = (
|
||||
["<html><head><title>Torrent Stats</title><link type="text/css" rel="stylesheet" href="https://files.hyperreal.coffee/css/main-style.css"/></head><body><h4>Last updated:", (date now | format date "%F %T%:z"), "</h4>"]
|
||||
["<html><head><title>Torrent Stats</title><link type="text/css" rel="stylesheet" href="https://files.hyperreal.coffee/css/style1.css"/></head><body><h4>Last updated:", (date now | format date "%F %T%:z"), "</h4>"]
|
||||
| str join ' '
|
||||
)
|
||||
|
||||
(
|
||||
/home/jas/admin-scripts/list_torrents.py
|
||||
uv run -q /home/jas/admin-scripts/list_torrents.py
|
||||
| from ssv -m 2
|
||||
| to html
|
||||
| str replace ($old_head) ($new_head)
|
||||
|
@ -1,4 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "qbittorrent-api",
|
||||
# "docopt",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""qbt_sum_size.py
|
||||
|
||||
|
9
qbth.py
9
qbth.py
@ -1,4 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "qbittorrent-api",
|
||||
# "requests",
|
||||
# "bs4",
|
||||
# "docopt",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""qbth.py - qbittorrent helper
|
||||
|
||||
|
@ -1,24 +0,0 @@
|
||||
attr==0.3.2
|
||||
beautifulsoup4==4.12.3
|
||||
colorama==0.4.6
|
||||
ConfigParser==7.1.0
|
||||
cryptography==43.0.3
|
||||
docopt==0.6.2
|
||||
docutils==0.21.2
|
||||
filelock==3.16.1
|
||||
HTMLParser==0.0.2
|
||||
ipython==8.29.0
|
||||
ipywidgets==8.1.5
|
||||
jnius==1.1.0
|
||||
keyring==25.5.0
|
||||
pandas==2.2.3
|
||||
Pillow==11.0.0
|
||||
protobuf==5.28.3
|
||||
pyOpenSSL==24.2.1
|
||||
qbittorrent==0.1.6
|
||||
redis==5.2.0
|
||||
resend==2.4.0
|
||||
Sphinx==8.1.3
|
||||
thread==2.0.5
|
||||
urllib3_secure_extra==0.1.0
|
||||
xmlrpclib==1.0.1
|
@ -1,4 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "qbittorrent-api",
|
||||
# "requests",
|
||||
# "docopt",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""scihub_knapsack.py
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i python3 --packages python3 python312Packages.resend
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "resend",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
import socket
|
||||
import subprocess
|
||||
|
@ -1,5 +1,9 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i python3 --packages python3 python312Packages.resend
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "resend",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
|
||||
import socket
|
||||
import subprocess
|
||||
|
@ -1,4 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# /// script
|
||||
# dependencies = [
|
||||
# "qbittorrent-api",
|
||||
# "docopt",
|
||||
# "rich",
|
||||
# ]
|
||||
# ///
|
||||
|
||||
"""update_tracker.py
|
||||
|
||||
@ -72,37 +78,23 @@ if __name__ == "__main__":
|
||||
|
||||
# Create a NamedTemporaryFile and write all infohashes to it, one per line
|
||||
console.log("Creating temporary file to write infohashes to.")
|
||||
|
||||
with tempfile.NamedTemporaryFile() as ntf:
|
||||
with open(ntf.name, "w") as tf:
|
||||
tf.writelines(format_infohashes)
|
||||
|
||||
# Use scp to copy the infohashes file to the torrent tracker's config
|
||||
# directory on the remote torrent tracker server, overwriting the
|
||||
# whitelist.txt file
|
||||
# Use `sudo cp -f` to copy the infohashes file to the torrent tracker's config
|
||||
# directory, overwriting the whitelist.txt file.
|
||||
console.log(
|
||||
"SSH-copying the temporary infohashes file to the torrent tracker's whitelist."
|
||||
"Copying the temporary infohashes file to the torrent tracker's whitelist."
|
||||
)
|
||||
subprocess.run(
|
||||
[
|
||||
"scp",
|
||||
"-q",
|
||||
ntf.name,
|
||||
f"root@{tracker_domain}:/etc/opentracker/whitelist.txt",
|
||||
]
|
||||
["sudo", "cp", "-f", ntf.name, "/etc/opentracker/whitelist.txt"]
|
||||
)
|
||||
|
||||
# Use SSH to run `systemctl restart opentracker.service` on the remote
|
||||
# torrent tracker server
|
||||
console.log("Restarting opentracker.service on the remote server.")
|
||||
subprocess.run(
|
||||
[
|
||||
"ssh",
|
||||
f"root@{tracker_domain}",
|
||||
"systemctl",
|
||||
"restart",
|
||||
"opentracker.service",
|
||||
]
|
||||
)
|
||||
# Run `sudo systemctl restart opentracker.service`
|
||||
console.log("Restarting opentracker.service")
|
||||
subprocess.run(["sudo", "systemctl", "restart", "opentracker.service"])
|
||||
|
||||
# Reannounce all torrents in each qBittorrent instance to their trackers
|
||||
console.log("Reannouncing all torrents to their trackers.")
|
||||
@ -113,7 +105,7 @@ if __name__ == "__main__":
|
||||
password=item["password"],
|
||||
) as qbt_client:
|
||||
for torrent in qbt_client.torrents_info():
|
||||
torrent.reannounce(torrent.hash)
|
||||
torrent.reannounce()
|
||||
|
||||
console.log("Done!")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user