mirror of
https://github.com/Realmzer/MySign-Repo.git
synced 2026-01-11 23:31:19 +00:00
105 lines
No EOL
4.1 KiB
Python
105 lines
No EOL
4.1 KiB
Python
from github import Github
|
|
import json
|
|
import argparse
|
|
import pandas as pd
|
|
from get_bundle_id import get_single_bundle_id
|
|
import os
|
|
import shutil
|
|
|
|
REPO_NAME = "Realmzer/MySign-Repo"
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("-t", "--token", help="Github token")
|
|
args = parser.parse_args()
|
|
token = args.token
|
|
|
|
out_file = "apps-repo.json"
|
|
|
|
with open(out_file, "r") as f:
|
|
data = json.load(f)
|
|
|
|
if os.path.isfile("bundleId.csv"):
|
|
df = pd.read_csv("bundleId.csv")
|
|
else:
|
|
df = pd.DataFrame(columns=["name", "bundleId", "genre"])
|
|
|
|
# clear apps
|
|
data["apps"] = []
|
|
|
|
g = Github(token)
|
|
repo = g.get_repo(REPO_NAME)
|
|
releases = repo.get_releases()
|
|
|
|
for release in releases:
|
|
for asset in release.get_assets():
|
|
if (spl := asset.name.split("."))[-1] not in ("ipa", "dylib", "deb"):
|
|
continue
|
|
IS_IPA = spl[-1] == "ipa"
|
|
name = ".".join(spl[:-1])
|
|
date = asset.created_at.strftime("%Y-%m-%d")
|
|
full_date = asset.created_at.strftime("%Y%m%d%H%M%S")
|
|
try:
|
|
app_name, version, tweaks = name.split("_", 2)
|
|
tweaks, _ = tweaks.split("@", 1)
|
|
if tweaks:
|
|
tweaks = f"Injected with {tweaks[:-1].replace("_", " ")}"
|
|
except Exception:
|
|
app_name = name
|
|
version = "Unknown"
|
|
tweaks = None
|
|
|
|
if IS_IPA:
|
|
if app_name in df.name.values:
|
|
info = {"bundle": df[df.name == app_name].bundleId.values[0], "genre": df[df.name == app_name].genre.values[0]}
|
|
else:
|
|
info: dict = get_single_bundle_id(asset.browser_download_url)
|
|
|
|
if "error" in info:
|
|
print(f"[*] error detected in '{name}', deleting")
|
|
asset.delete_asset()
|
|
continue
|
|
|
|
df = pd.concat([df, pd.DataFrame(
|
|
{"name": [app_name], "bundleId": [info["bundle"]], "genre": [info["genre"]]})], ignore_index=True)
|
|
|
|
data["apps"].append({
|
|
"name": app_name,
|
|
"type": int(info["genre"]),
|
|
"bundleID": str(info["bundle"]),
|
|
"bundleIdentifier": str(info["bundle"]),
|
|
"version": version,
|
|
"versionDate": date,
|
|
"fullDate": full_date,
|
|
"size": int(asset.size),
|
|
"down": asset.browser_download_url,
|
|
"downloadURL": asset.browser_download_url,
|
|
"developerName": "",
|
|
"localizedDescription": tweaks,
|
|
"icon": f"https://raw.githubusercontent.com/{REPO_NAME}/main/icons/{info["bundle"]}.png",
|
|
"iconURL": f"https://raw.githubusercontent.com/{REPO_NAME}/main/icons/{info["bundle"]}.png"
|
|
})
|
|
else:
|
|
data["apps"].append({
|
|
"name": app_name,
|
|
"type": 5, # type: dylib
|
|
"bundleId": f"com.mysign.{app_name.lower()}",
|
|
"bundleIdentifier": f"com.mysign.{app_name.lower()}",
|
|
"version": version,
|
|
"versionDate": date,
|
|
"fullDate": full_date,
|
|
"size": int(asset.size),
|
|
"down": asset.browser_download_url,
|
|
"downloadURL": asset.browser_download_url,
|
|
"developerName": "",
|
|
"localizedDescription": app_name,
|
|
"icon": "https://cdn1.realmzer.xyz//IMG_3830-tF.png",
|
|
"iconURL": "https://cdn1.realmzer.xyz//IMG_3830-tF.png"
|
|
})
|
|
|
|
data["apps"].sort(key=lambda x: x["fullDate"], reverse=True)
|
|
df.to_csv("bundleId.csv", index=False)
|
|
|
|
with open(out_file, 'w') as json_file:
|
|
json.dump(data, json_file, indent=4) |