37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
"""Generate click-to-install Obtainium URLs for all apps."""
|
|
|
|
import json
|
|
import sys
|
|
import urllib.parse
|
|
from typing import Any
|
|
|
|
|
|
def generate_obtainium_url(app: dict[str, Any]) -> str:
|
|
"""Generate an Obtainium deep-link URL for an app."""
|
|
obtainium_base = "http://apps.obtainium.imranr.dev/redirect.html?r=obtainium://app/"
|
|
app_json = json.dumps(app, separators=(",", ":"))
|
|
encoded_json = urllib.parse.quote(app_json)
|
|
return f"{obtainium_base}{encoded_json}"
|
|
|
|
|
|
def main(json_file: str) -> None:
|
|
"""Print Obtainium URLs for all apps in the JSON file."""
|
|
with open(json_file, "r", encoding="utf-8") as f:
|
|
data = json.load(f)
|
|
|
|
if "apps" not in data:
|
|
print("Invalid JSON format: Missing 'apps' key.")
|
|
sys.exit(1)
|
|
|
|
for app in data["apps"]:
|
|
obtainium_url = generate_obtainium_url(app)
|
|
print(f"{app['name']}: {obtainium_url}\n")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) != 2:
|
|
print("Usage: python generate_obtainium_urls.py <json_file>")
|
|
sys.exit(1)
|
|
|
|
main(sys.argv[1])
|