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"],
53 ["v1.5.1-0", "v2.0.0-0"],
58 "X-GitHub-Api-Version": "2022-11-28",
59 "User-Agent": stuff.EXT_USER_AGENT,
60 "Authorization": f"Bearer {os.environ['GITHUB_TOKEN']}"
64 for repo in range(num_repos):
65 ret[f"githubApiCache-{repo}-0"] = versions[repo]
67 for version in versions[repo]:
68 owner = stuff.ownerOfRepository(repo)
69 name = stuff.repoNameOfRepository(repo)
71 f"{stuff.GITHUB_API_BASE_URL}/repos/{owner}/{name}/releases/tags/{version}",
74 data = json.loads(x.content)
76 for asset in data["assets"]:
79 "name": asset["name"],
80 "browser_download_url": asset["browser_download_url"]
84 "assetsUrl": data["assets_url"]
87 ret[f"githubApiCache-{repo}-1-{version}"] = data
90 for k, v in ret.items():
91 idx = int(k.split('-')[1])
92 print(f"{k} is {stuff.GithubRepository[idx]}")
93 if isinstance(v, list):
98 with open(f"data/{stuff.CURRENT_DATA_VERSION}/github-cache.json", "w") as f:
99 json.dump(ret, f, indent=2)