New generate-download for the new build mechanism
This commit is contained in:
		| @@ -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: | URL = 'https://github.com/downloads/rg3/youtube-dl/youtube-dl' | ||||||
| 	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 |  | ||||||
|  |  | ||||||
| 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) | ||||||
|  |  | ||||||
|  |     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 | # Read template page | ||||||
| template = file('download.html.in', 'r').read() | with open('download.html.in', 'r', encoding='utf-8') as tmplf: | ||||||
|  |     template = tmplf.read() | ||||||
|  |  | ||||||
| # 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) |  | ||||||
|  |  | ||||||
| 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) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister