wesnoth/utils/update_appdata
2025-01-30 11:22:58 +01:00

40 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
import sys, requests, argparse
from xml.dom import minidom
def fetch_date(version):
tag_info = requests.get("https://api.github.com/repos/wesnoth/wesnoth/git/refs/tags/"+version)
tag_info.raise_for_status()
url = tag_info.json()["object"]["url"]
result = requests.get(url)
result.raise_for_status()
return result.json()["tagger"]["date"]
def update_appdata(version, appdata_path, date):
if not date:
date = fetch_date(version)
doc = minidom.parse(appdata_path)
releases = doc.getElementsByTagName("releases")
if releases:
releases = releases[0]
else:
releases = doc.getElementsByTagName("component")[-1].appendChild(doc.createElement("releases"))
release = doc.createElement("release")
release.setAttribute("version", version)
release.setAttribute("date", date)
releases.insertBefore(release, releases.firstChild)
doc.writexml(open(appdata_path, "w"))
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('version', metavar='VERSION')
parser.add_argument('appdata', metavar='APPDATA_FILE')
parser.add_argument('date', nargs='?')
args = parser.parse_args()
update_appdata(args.version, args.appdata, args.date)