add apk filters, about descriptions, version extraction regex to app configs. fix Cemu versioning. refactor: store additionalSettings as real JSON in source file, stringify at export boundaries in scripts

This commit is contained in:
Richard Macias
2026-02-28 00:04:34 -06:00
parent 9c9cbe0bc8
commit 5a0ff4f4de
11 changed files with 1756 additions and 185 deletions

View File

@@ -46,6 +46,24 @@ def get_application_url(app: dict[str, Any]) -> str:
return app.get("meta", {}).get("urlOverride") or app.get("url", "")
def get_additional_settings(app: dict[str, Any]) -> dict[str, Any]:
"""Return additionalSettings as a dict, whether stored as object or JSON string."""
raw = app.get("additionalSettings", {})
if isinstance(raw, str):
return json.loads(raw) if raw else {}
if isinstance(raw, dict):
return raw
return {}
def stringify_additional_settings(app: dict[str, Any]) -> str:
"""Return additionalSettings as a compact JSON string for Obtainium consumption."""
raw = app.get("additionalSettings", {})
if isinstance(raw, str):
return raw
return json.dumps(raw, separators=(",", ":"))
def make_obtainium_link(app: dict[str, Any]) -> str:
payload = {
"id": app["id"],
@@ -55,7 +73,7 @@ def make_obtainium_link(app: dict[str, Any]) -> str:
"otherAssetUrls": app.get("otherAssetUrls"),
"apkUrls": app.get("apkUrls"),
"preferredApkIndex": app.get("preferredApkIndex"),
"additionalSettings": app.get("additionalSettings"),
"additionalSettings": stringify_additional_settings(app),
"categories": app.get("categories"),
"overrideSource": app.get("overrideSource"),
"allowIdChange": app.get("allowIdChange"),