dl/commands/tinfoil.py

85 lines
1.9 KiB
Python
Raw Normal View History

2023-09-10 15:38:49 +00:00
#!/usr/bin/env python3
import argparse
import re
import subprocess
import sys
import requests
parser = argparse.ArgumentParser()
2023-09-10 15:44:39 +00:00
parser.add_argument("-r", "--remote", type=str, required=True)
2023-09-10 15:38:49 +00:00
args = parser.parse_args()
remote = args.remote
req_titles = requests.get(
"https://raw.githubusercontent.com/blawar/titledb/master/FR.fr.json"
)
json_titles = req_titles.json()
titles = []
for json_title in json_titles:
titles.append(json_titles[json_title]["id"])
print("Titles OK")
proc_xczs = subprocess.run(
["rclone", "lsf", f"{remote}:xcz"],
check=True,
capture_output=True,
)
xczs = proc_xczs.stdout.decode().split("\n")
print("XCZ OK")
proc_dlcs = subprocess.run(
["rclone", "lsf", f"{remote}:nsz/dlc"],
check=True,
capture_output=True,
)
dlcs = proc_dlcs.stdout.decode().split("\n")
print("DLC OK")
proc_updates = subprocess.run(
["rclone", "lsf", f"{remote}:nsz/updates"],
check=True,
capture_output=True,
)
updates = proc_updates.stdout.decode().split("\n")
print("Updates OK")
for xcz in xczs:
re_id = re.search(r"\[([0-9A-F]*)\]", xcz)
if not re_id:
continue
id = re_id.group(1)
if id not in titles:
continue
id = id[0:-3]
subprocess.run(
2023-09-10 16:14:46 +00:00
["rclone", "copy", "-P", "-v", f"{remote}:xcz/{xcz}", "xcz/"],
2023-09-10 15:38:49 +00:00
stdout=sys.stdout,
)
for dlc in dlcs:
if id in dlc:
subprocess.run(
2023-09-10 16:14:46 +00:00
["rclone", "copy", "-P", "-v", f"{remote}:nsz/dlc/{dlc}", "nsz/dlc/"],
2023-09-10 15:38:49 +00:00
stdout=sys.stdout,
)
for update in updates:
if id in update:
subprocess.run(
2023-09-10 15:58:15 +00:00
[
"rclone",
"copy",
"-P",
2023-09-10 16:14:46 +00:00
"-v",
2023-09-10 16:21:35 +00:00
f"{remote}:nsz/updates/{update}",
2023-09-10 15:58:15 +00:00
"nsz/updates/",
],
2023-09-10 15:38:49 +00:00
stdout=sys.stdout,
)