diff --git a/install_jaymod.py b/install_jaymod.py new file mode 100644 index 0000000..f541dc3 --- /dev/null +++ b/install_jaymod.py @@ -0,0 +1,69 @@ +import logging +import os +import platform +import shutil +import time +import urllib3 + +from threading import Thread +from urllib3 import PoolManager + +FORMAT = "%(asctime)s - %(levelname)s - %(message)s" +logging.basicConfig(format=FORMAT, level=logging.INFO) + +URL = "http://et.thegux.fr/jaymod/" +FILES = ( + "1944_beach.pk3", + "baserace.pk3", + "caen.pk3", + "goldendunk_a2.pk3", + "jaymod-2.2.0.pk3", + "mlb_temple.pk3", + "nfl_b2.pk3", + "saberpeak_final.pk3", + "supergoldrush_final.pk3", + "supply_depot_2.pk3", + "tc_base.pk3", + "v2base_te.pk3", + "venice.pk3", +) + + +def get_files(http: PoolManager, filename: str): + with open(filename, "wb") as out: + r = http.request("GET", f"{URL}/{filename}", preload_content=False) + shutil.copyfileobj(r, out) + + +def create_jaymod_directory(): + name = platform.system() + if name == "Windows": + path = os.path.join( + "C:", "Program Files (x86)", "Wolfenstein - Enemy Territory" + ) + os.makedirs(path, "jaymod") + raise Exception("platform not supported") + + +if __name__ == "__main__": + start = time.perf_counter() + logging.info("installing Thegux Jaymod...") + + try: + create_jaymod_directory() + except Exception as e: + logging.fatal(e) + exit(1) + + threads = [] + http = urllib3.PoolManager() + + for f in FILES: + t = Thread(target=get_files, args=[http, f]) + threads.append(t) + t.start() + + for t in threads: + t.join() + + logging.info(f"elapsed time: {time.perf_counter() - start:.2f}s")