|
@ -1,34 +1,33 @@ |
|
|
#!/usr/bin/env python |
|
|
|
|
|
|
|
|
#!/usr/bin/env python3 |
|
|
import hashlib |
|
|
import hashlib |
|
|
import os.path |
|
|
|
|
|
|
|
|
import shutil |
|
|
import subprocess |
|
|
import subprocess |
|
|
|
|
|
import tempfile |
|
|
|
|
|
import urllib.request |
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
from subprocess import check_output |
|
|
|
|
|
except ImportError: # Python < 2.7 |
|
|
|
|
|
def check_output(*args, **kwargs): |
|
|
|
|
|
p = subprocess.Popen(*args, stdout=subprocess.PIPE, **kwargs) |
|
|
|
|
|
out,err = p.communicate() |
|
|
|
|
|
if p.returncode != 0: |
|
|
|
|
|
raise subprocess.CalledProcessError(p.returncode, args) |
|
|
|
|
|
return out |
|
|
|
|
|
|
|
|
URL = 'https://github.com/downloads/rg3/youtube-dl/youtube-dl' |
|
|
|
|
|
|
|
|
youtubeDlDir = os.path.join(os.path.dirname(__file__), '..', '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) |
|
|
|
|
|
|
|
|
# Read template page |
|
|
|
|
|
template = file('download.html.in', 'r').read() |
|
|
|
|
|
|
|
|
ytdl_file.seek(0) |
|
|
|
|
|
data = ytdl_file.read() |
|
|
|
|
|
|
|
|
|
|
|
ytdl_file.flush() |
|
|
|
|
|
version = subprocess.check_output(['python3', ytdl_file.name, '--version']).decode('ascii').strip() |
|
|
|
|
|
|
|
|
# Build replacement strings |
|
|
|
|
|
version = check_output([os.path.join(youtubeDlDir, 'youtube-dl'), '--version']).strip() |
|
|
|
|
|
data = check_output(['git', 'show', '%s:youtube-dl' % version], cwd=youtubeDlDir) |
|
|
|
|
|
|
|
|
# Read template page |
|
|
|
|
|
with open('download.html.in', 'r', encoding='utf-8') as tmplf: |
|
|
|
|
|
template = tmplf.read() |
|
|
|
|
|
|
|
|
url = 'https://github.com/rg3/youtube-dl/raw/%s/youtube-dl' % version |
|
|
|
|
|
md5sum = hashlib.md5(data).hexdigest() |
|
|
md5sum = hashlib.md5(data).hexdigest() |
|
|
sha1sum = hashlib.sha1(data).hexdigest() |
|
|
sha1sum = hashlib.sha1(data).hexdigest() |
|
|
sha256sum = hashlib.sha256(data).hexdigest() |
|
|
sha256sum = hashlib.sha256(data).hexdigest() |
|
|
template = template.replace('@PROGRAM_VERSION@', version) |
|
|
template = template.replace('@PROGRAM_VERSION@', version) |
|
|
template = template.replace('@PROGRAM_URL@', url) |
|
|
|
|
|
|
|
|
template = template.replace('@PROGRAM_URL@', URL) |
|
|
template = template.replace('@PROGRAM_MD5SUM@', md5sum) |
|
|
template = template.replace('@PROGRAM_MD5SUM@', md5sum) |
|
|
template = template.replace('@PROGRAM_SHA1SUM@', sha1sum) |
|
|
template = template.replace('@PROGRAM_SHA1SUM@', sha1sum) |
|
|
template = template.replace('@PROGRAM_SHA256SUM@', sha256sum) |
|
|
template = template.replace('@PROGRAM_SHA256SUM@', sha256sum) |
|
|
file('download.html', 'w').write(template) |
|
|
|
|
|
|
|
|
with open('download.html', 'w', encoding='utf-8') as dlf: |
|
|
|
|
|
dlf.write(template) |