Compare commits
1 Commits
master
...
v0.1.18-beta
| Author | SHA1 | Date | |
|---|---|---|---|
| 118e072344 |
@@ -136,8 +136,73 @@ jobs:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Asset upload error: {e}")
|
print(f"Asset upload error: {e}")
|
||||||
|
|
||||||
# 3. Update manifest.json on master branch
|
# 3. Build manifest.json dynamically from Gitea Releases API
|
||||||
clean_ver = tag.lstrip("v").split("-")[0]
|
rel_list_req = urllib.request.Request(f"{api_url}/repos/{repo}/releases?per_page=100", headers=headers)
|
||||||
|
all_releases = []
|
||||||
|
try:
|
||||||
|
res_list = urllib.request.urlopen(rel_list_req)
|
||||||
|
all_releases = json.loads(res_list.read().decode("utf-8"))
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Notice fetching releases list: {e}")
|
||||||
|
|
||||||
|
all_versions = []
|
||||||
|
for r in all_releases:
|
||||||
|
rel_tag = r.get("tag_name")
|
||||||
|
if not rel_tag:
|
||||||
|
continue
|
||||||
|
clean_v = rel_tag.lstrip("v").split("-")[0]
|
||||||
|
ts = r.get("published_at") or r.get("created_at") or "2026-09-17T20:00:00Z"
|
||||||
|
assets = r.get("assets", [])
|
||||||
|
|
||||||
|
if rel_tag == tag:
|
||||||
|
all_versions.append({
|
||||||
|
"version": clean_v,
|
||||||
|
"changelog": f"Release {tag} (Jellyfin 12.0)",
|
||||||
|
"targetAbi": "12.0.0.0",
|
||||||
|
"sourceUrl": f"https://gitea.labus.uk/karol/blackBarRemover/releases/download/{tag}/BlackBarRemover_{tag}_jf12.0.zip",
|
||||||
|
"checksum": md5_10,
|
||||||
|
"timestamp": datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
})
|
||||||
|
all_versions.append({
|
||||||
|
"version": clean_v,
|
||||||
|
"changelog": f"Release {tag} (Jellyfin 10.11)",
|
||||||
|
"targetAbi": "10.11.0.0",
|
||||||
|
"sourceUrl": f"https://gitea.labus.uk/karol/blackBarRemover/releases/download/{tag}/BlackBarRemover_{tag}_jf10.11.zip",
|
||||||
|
"checksum": md5_9,
|
||||||
|
"timestamp": datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
a12 = next((a for a in assets if "jf12.0" in a.get("name", "")), None)
|
||||||
|
if a12:
|
||||||
|
all_versions.append({
|
||||||
|
"version": clean_v,
|
||||||
|
"changelog": f"Release {rel_tag} (Jellyfin 12.0)",
|
||||||
|
"targetAbi": "12.0.0.0",
|
||||||
|
"sourceUrl": f"https://gitea.labus.uk/karol/blackBarRemover/releases/download/{rel_tag}/{a12['name']}",
|
||||||
|
"checksum": a12.get("md5") or "",
|
||||||
|
"timestamp": ts
|
||||||
|
})
|
||||||
|
a10 = next((a for a in assets if "jf10.11" in a.get("name", "")), None)
|
||||||
|
if a10:
|
||||||
|
all_versions.append({
|
||||||
|
"version": clean_v,
|
||||||
|
"changelog": f"Release {rel_tag} (Jellyfin 10.11)",
|
||||||
|
"targetAbi": "10.11.0.0",
|
||||||
|
"sourceUrl": f"https://gitea.labus.uk/karol/blackBarRemover/releases/download/{rel_tag}/{a10['name']}",
|
||||||
|
"checksum": a10.get("md5") or "",
|
||||||
|
"timestamp": ts
|
||||||
|
})
|
||||||
|
if not a12 and not a10 and assets:
|
||||||
|
alegacy = assets[0]
|
||||||
|
all_versions.append({
|
||||||
|
"version": clean_v,
|
||||||
|
"changelog": f"Release {rel_tag}",
|
||||||
|
"targetAbi": "10.9.0.0",
|
||||||
|
"sourceUrl": f"https://gitea.labus.uk/karol/blackBarRemover/releases/download/{rel_tag}/{alegacy['name']}",
|
||||||
|
"checksum": alegacy.get("md5") or "",
|
||||||
|
"timestamp": ts
|
||||||
|
})
|
||||||
|
|
||||||
manifest_data = [
|
manifest_data = [
|
||||||
{
|
{
|
||||||
"guid": "12345678-1234-1234-1234-1234567890ab",
|
"guid": "12345678-1234-1234-1234-1234567890ab",
|
||||||
@@ -147,49 +212,36 @@ jobs:
|
|||||||
"owner": "karol",
|
"owner": "karol",
|
||||||
"category": "Playback",
|
"category": "Playback",
|
||||||
"imageUrl": "",
|
"imageUrl": "",
|
||||||
"versions": [
|
"versions": all_versions
|
||||||
{
|
|
||||||
"version": clean_ver,
|
|
||||||
"changelog": f"Automated Release {tag} (Jellyfin 12.0)",
|
|
||||||
"targetAbi": "12.0.0.0",
|
|
||||||
"sourceUrl": f"https://gitea.labus.uk/karol/blackBarRemover/releases/download/{tag}/BlackBarRemover_{tag}_jf12.0.zip",
|
|
||||||
"checksum": md5_10,
|
|
||||||
"timestamp": datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"version": clean_ver,
|
|
||||||
"changelog": f"Automated Release {tag} (Jellyfin 10.11)",
|
|
||||||
"targetAbi": "10.11.0.0",
|
|
||||||
"sourceUrl": f"https://gitea.labus.uk/karol/blackBarRemover/releases/download/{tag}/BlackBarRemover_{tag}_jf10.11.zip",
|
|
||||||
"checksum": md5_9,
|
|
||||||
"timestamp": datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
b64_manifest = base64.b64encode(json.dumps(manifest_data, indent=4).encode("utf-8")).decode("utf-8")
|
b64_manifest = base64.b64encode(json.dumps(manifest_data, indent=4).encode("utf-8")).decode("utf-8")
|
||||||
|
|
||||||
# Update on master branch
|
# Update on master and manifest branches
|
||||||
get_mf_url = f"{api_url}/repos/{repo}/contents/manifest.json?ref=master"
|
for target_branch in ["master", "manifest"]:
|
||||||
req_mf = urllib.request.Request(get_mf_url, headers=headers)
|
get_mf_url = f"{api_url}/repos/{repo}/contents/manifest.json?ref={target_branch}"
|
||||||
file_sha = None
|
req_mf = urllib.request.Request(get_mf_url, headers=headers)
|
||||||
try:
|
file_sha = None
|
||||||
res_mf = urllib.request.urlopen(req_mf)
|
try:
|
||||||
file_sha = json.loads(res_mf.read().decode("utf-8")).get("sha")
|
res_mf = urllib.request.urlopen(req_mf)
|
||||||
except Exception:
|
file_sha = json.loads(res_mf.read().decode("utf-8")).get("sha")
|
||||||
pass
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
put_payload = {
|
put_payload = {
|
||||||
"content": b64_manifest,
|
"content": b64_manifest,
|
||||||
"message": f"Update manifest.json for {tag}",
|
"message": f"Update manifest.json for {tag}",
|
||||||
"branch": "master"
|
"branch": target_branch
|
||||||
}
|
}
|
||||||
if file_sha:
|
if file_sha:
|
||||||
put_payload["sha"] = file_sha
|
put_payload["sha"] = file_sha
|
||||||
|
|
||||||
put_url = f"{api_url}/repos/{repo}/contents/manifest.json"
|
put_url = f"{api_url}/repos/{repo}/contents/manifest.json"
|
||||||
put_req = urllib.request.Request(put_url, data=json.dumps(put_payload).encode("utf-8"), headers=headers, method="PUT")
|
put_req = urllib.request.Request(put_url, data=json.dumps(put_payload).encode("utf-8"), headers=headers, method="PUT")
|
||||||
urllib.request.urlopen(put_req)
|
try:
|
||||||
print("manifest.json updated successfully via API.")
|
urllib.request.urlopen(put_req)
|
||||||
|
print(f"manifest.json updated successfully on branch {target_branch}.")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Notice updating branch {target_branch}: {e}")
|
||||||
'
|
'
|
||||||
|
|||||||
Reference in New Issue
Block a user