#!/usr/bin/python3
import re
import os
import sys
import importlib
from collections import defaultdict

# load version.py; needlessly complicated alternative to "imp.load_source":
version_spec = importlib.util.spec_from_file_location('version', 'electrum_ltc/version.py')
version_module = importlib.util.module_from_spec(version_spec)
version_spec.loader.exec_module(version_module)

ELECTRUM_VERSION = version_module.ELECTRUM_VERSION
APK_VERSION = version_module.APK_VERSION
print("version", ELECTRUM_VERSION)

dirname = sys.argv[1]

print("directory", dirname)

download_page = os.path.join(dirname, "panel-download.html")
download_template = download_page + ".template"

with open(download_template) as f:
    string = f.read()

version = version_win = version_mac = version_android = ELECTRUM_VERSION
string = string.replace("##VERSION##", version)
string = string.replace("##VERSION_WIN##", version_win)
string = string.replace("##VERSION_MAC##", version_mac)
string = string.replace("##VERSION_ANDROID##", version_android)
string = string.replace("##VERSION_APK##", APK_VERSION)

files = {
    'tgz': "Electrum-LTC-%s.tar.gz" % version,
    'appimage': "electrum-ltc-%s-x86_64.AppImage" % version,
    'mac': "electrum-ltc-%s.dmg" % version_mac,
    'win': "electrum-ltc-%s.exe" % version_win,
    'win_setup': "electrum-ltc-%s-setup.exe" % version_win,
    'win_portable': "electrum-ltc-%s-portable.exe" % version_win,
    'apk_arm64': "Electrum-LTC-%s-arm64-v8a-release.apk" % APK_VERSION,
    'apk_armeabi': "Electrum-LTC-%s-armeabi-v7a-release.apk" % APK_VERSION,
}

# default signers
signers = ['ThomasV', 'SomberNight']

for k, n in files.items():
    path = "dist/%s"%n
    link = "https://download.electrum-ltc.org/%s/%s"%(version,n)
    if not os.path.exists(path):
        os.system("wget -q %s -O %s" % (link, path))
    if not os.path.getsize(path):
        raise Exception(path)

print("signers:", signers)

gpg_name = lambda x: 'sombernight_releasekey' if x=='SomberNight' else x
signers_list = ', '.join("<a href=\"https://raw.githubusercontent.com/pooler/electrum-ltc/master/pubkeys/%s.asc\">%s</a>"%(gpg_name(x), x) for x in signers)
string = string.replace("##signers_list##", signers_list)

for k, filename in files.items():
    path = "dist/%s"%filename
    assert filename in list_dir
    link = "https://download.electrum-ltc.org/%s/%s"%(version, filename)
    string = string.replace("##link_%s##"%k, link)
    string = string.replace("##sigs_%s##"%k, link+'.asc')

with open(download_page,'w') as f:
    f.write(string)
