#!/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 = 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')

    args = parser.parse_args()
    update_appdata(args.version, args.appdata)
