1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-09-18 09:36:24 -07:00
gochan/tools/get_js.py
2025-02-18 20:33:33 -08:00

37 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
# Use this to download the latest version of the pre-transpiled JavaScript files if you don't have Node/NPM installed
# it takes an optional command line argument, which specifies a custom output directory if set (js otherwise)
import gzip
from urllib.request import urlopen
import tarfile
import io
from os import path
import sys
VERSION = "v3.10.2"
DIR = f"gochan-{VERSION}_linux"
DOWNLOAD_URL = f"https://github.com/gochan-org/gochan/releases/download/{VERSION}/{DIR}.tar.gz"
JS_DIR = path.join(DIR, "html/js/")
if __name__ == "__main__":
out_dir = "js"
if len(sys.argv) == 2:
match sys.argv[1]:
case "-h" | "--help":
print(f"usage: {sys.argv[0]} [path/to/out/js/]")
sys.exit(0)
case _:
out_dir = sys.argv[1]
with urlopen(DOWNLOAD_URL) as response: # skipcq: BAN-B310
data = response.read()
tar_bytes = gzip.decompress(data)
buf = io.BytesIO(tar_bytes)
with tarfile.open(fileobj=buf) as tar_file:
files = tar_file.getmembers()
for file in files:
if file.path.startswith(JS_DIR):
file.path = file.path[len(JS_DIR):]
tar_file.extract(file, out_dir, filter=tarfile.tar_filter)