aboutsummaryrefslogtreecommitdiff
path: root/devscripts/gh-pages
diff options
context:
space:
mode:
Diffstat (limited to 'devscripts/gh-pages')
-rwxr-xr-xdevscripts/gh-pages/add-version.py33
-rwxr-xr-xdevscripts/gh-pages/generate-download.py32
-rwxr-xr-xdevscripts/gh-pages/sign-versions.py28
-rwxr-xr-xdevscripts/gh-pages/update-copyright.py21
4 files changed, 114 insertions, 0 deletions
diff --git a/devscripts/gh-pages/add-version.py b/devscripts/gh-pages/add-version.py
new file mode 100755
index 000000000..6af8bb9d8
--- /dev/null
+++ b/devscripts/gh-pages/add-version.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+import json
+import sys
+import hashlib
+import urllib.request
+
+if len(sys.argv) <= 1:
+ print('Specify the version number as parameter')
+ sys.exit()
+version = sys.argv[1]
+
+with open('update/LATEST_VERSION', 'w') as f:
+ f.write(version)
+
+versions_info = json.load(open('update/versions.json'))
+if 'signature' in versions_info:
+ del versions_info['signature']
+
+new_version = {}
+
+filenames = {'bin': 'youtube-dl', 'exe': 'youtube-dl.exe', 'tar': 'youtube-dl-%s.tar.gz' % version}
+for key, filename in filenames.items():
+ print('Downloading and checksumming %s...' %filename)
+ url = 'http://youtube-dl.org/downloads/%s/%s' % (version, filename)
+ data = urllib.request.urlopen(url).read()
+ sha256sum = hashlib.sha256(data).hexdigest()
+ new_version[key] = (url, sha256sum)
+
+versions_info['versions'][version] = new_version
+versions_info['latest'] = version
+
+json.dump(versions_info, open('update/versions.json', 'w'), indent=4, sort_keys=True) \ No newline at end of file
diff --git a/devscripts/gh-pages/generate-download.py b/devscripts/gh-pages/generate-download.py
new file mode 100755
index 000000000..55912e12c
--- /dev/null
+++ b/devscripts/gh-pages/generate-download.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+import hashlib
+import shutil
+import subprocess
+import tempfile
+import urllib.request
+import json
+
+versions_info = json.load(open('update/versions.json'))
+version = versions_info['latest']
+URL = versions_info['versions'][version]['bin'][0]
+
+data = urllib.request.urlopen(URL).read()
+
+# 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)
+template = template.replace('@EXE_URL@', versions_info['versions'][version]['exe'][0])
+template = template.replace('@EXE_SHA256SUM@', versions_info['versions'][version]['exe'][1])
+template = template.replace('@TAR_URL@', versions_info['versions'][version]['tar'][0])
+template = template.replace('@TAR_SHA256SUM@', versions_info['versions'][version]['tar'][1])
+with open('download.html', 'w', encoding='utf-8') as dlf:
+ dlf.write(template)
diff --git a/devscripts/gh-pages/sign-versions.py b/devscripts/gh-pages/sign-versions.py
new file mode 100755
index 000000000..dd126df52
--- /dev/null
+++ b/devscripts/gh-pages/sign-versions.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+
+import rsa
+import json
+from binascii import hexlify
+
+versions_info = json.load(open('update/versions.json'))
+if 'signature' in versions_info:
+ del versions_info['signature']
+
+print('Enter the PKCS1 private key, followed by a blank line:')
+privkey = ''
+while True:
+ try:
+ line = input()
+ except EOFError:
+ break
+ if line == '':
+ break
+ privkey += line + '\n'
+privkey = bytes(privkey, 'ascii')
+privkey = rsa.PrivateKey.load_pkcs1(privkey)
+
+signature = hexlify(rsa.pkcs1.sign(json.dumps(versions_info, sort_keys=True).encode('utf-8'), privkey, 'SHA-256')).decode()
+print('signature: ' + signature)
+
+versions_info['signature'] = signature
+json.dump(versions_info, open('update/versions.json', 'w'), indent=4, sort_keys=True) \ No newline at end of file
diff --git a/devscripts/gh-pages/update-copyright.py b/devscripts/gh-pages/update-copyright.py
new file mode 100755
index 000000000..12c2a9194
--- /dev/null
+++ b/devscripts/gh-pages/update-copyright.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+# coding: utf-8
+
+from __future__ import with_statement
+
+import datetime
+import glob
+import io # For Python 2 compatibilty
+import os
+import re
+
+year = str(datetime.datetime.now().year)
+for fn in glob.glob('*.html*'):
+ with io.open(fn, encoding='utf-8') as f:
+ content = f.read()
+ newc = re.sub(u'(?P<copyright>Copyright © 2006-)(?P<year>[0-9]{4})', u'Copyright © 2006-' + year, content)
+ if content != newc:
+ tmpFn = fn + '.part'
+ with io.open(tmpFn, 'wt', encoding='utf-8') as outf:
+ outf.write(newc)
+ os.rename(tmpFn, fn)