9 dir_path = os.path.dirname(os.path.realpath(__file__))
10 os.chdir(f"{dir_path}/..")
12 # Extract js for variables
13 with open("dist/extension.cjs", "r") as f:
16 for line in f.readlines():
17 if "const EXT_USER_AGENT =" in line:
19 elif "getAuthorizationHeaders" in line:
21 elif "const CURRENT_DATA_VERSION =" in line:
27 if "const CURRENT_DATA_VERSION =" in line:
30 parsed = js2py.translate_js(txt)
31 with open("tmp.py", "w") as f:
33 sys.path.append(os.getcwd())
37 stuff = tmp.var.to_python()
39 # stuff.GithubRepository has conversions in both directions, so is twice the size
41 for _ in stuff.GithubRepository:
43 num_repos = int(num_repos)
45 print("Num repos", num_repos)
48 # Only provide data for these versions
51 ["v3.28.6", "v3.29.6"],
57 "X-GitHub-Api-Version": "2022-11-28",
58 "User-Agent": stuff.EXT_USER_AGENT,
59 "Authorization": f"Bearer {os.environ['GITHUB_TOKEN']}"
63 for repo in range(num_repos):
64 ret[f"githubApiCache-{repo}-0"] = versions[repo]
66 for version in versions[repo]:
67 owner = stuff.ownerOfRepository(repo)
68 name = stuff.repoNameOfRepository(repo)
70 f"{stuff.GITHUB_API_BASE_URL}/repos/{owner}/{name}/releases/tags/{version}",
73 data = json.loads(x.content)
75 for asset in data["assets"]:
78 "name": asset["name"],
79 "browser_download_url": asset["browser_download_url"]
83 "assetsUrl": data["assets_url"]
86 ret[f"githubApiCache-{repo}-1-{version}"] = data
89 for k, v in ret.items():
90 idx = int(k.split('-')[1])
91 print(f"{k} is {stuff.GithubRepository[idx]}")
92 if isinstance(v, list):
97 with open(f"data/{stuff.CURRENT_DATA_VERSION}/github-cache.json", "w") as f:
98 json.dump(ret, f, indent=2)