aboutsummaryrefslogtreecommitdiff
path: root/devscripts/gh-pages/generate-download.py
blob: f19729f59935345ad8644d0c54fc42c8d84ee8f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env python3
import hashlib
import shutil
import subprocess
import tempfile
import urllib.request

URL = 'https://github.com/downloads/rg3/youtube-dl/youtube-dl'

with tempfile.NamedTemporaryFile(suffix='youtube-dl', delete=True) as ytdl_file:
    with urllib.request.urlopen(URL) as dl:
        shutil.copyfileobj(dl, ytdl_file)

    ytdl_file.seek(0)
    data = ytdl_file.read()

    ytdl_file.flush()
    version = subprocess.check_output(['python3', ytdl_file.name, '--version']).decode('ascii').strip()

# Read template page
with open('download.html.in', 'r', encoding='utf-8') as tmplf:
    template = tmplf.read()

md5sum = hashlib.md5(data).hexdigest()
sha1sum = hashlib.sha1(data).hexdigest()
sha256sum = hashlib.sha256(data).hexdigest()
template = template.replace('@PROGRAM_VERSION@', version)
template = template.replace('@PROGRAM_URL@', URL)
template = template.replace('@PROGRAM_MD5SUM@', md5sum)
template = template.replace('@PROGRAM_SHA1SUM@', sha1sum)
template = template.replace('@PROGRAM_SHA256SUM@', sha256sum)
with open('download.html', 'w', encoding='utf-8') as dlf:
    dlf.write(template)