diff options
Diffstat (limited to 'devscripts')
| -rw-r--r-- | devscripts/bash-completion.in | 2 | ||||
| -rwxr-xr-x | devscripts/gh-pages/update-feed.py | 92 | ||||
| -rwxr-xr-x | devscripts/make_readme.py | 10 | 
3 files changed, 64 insertions, 40 deletions
| diff --git a/devscripts/bash-completion.in b/devscripts/bash-completion.in index 3af87a378..28bd23727 100644 --- a/devscripts/bash-completion.in +++ b/devscripts/bash-completion.in @@ -6,7 +6,7 @@ __youtube_dl()      prev="${COMP_WORDS[COMP_CWORD-1]}"      opts="{{flags}}"      keywords=":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" -    fileopts="-a|--batch-file|--download-archive|--cookies" +    fileopts="-a|--batch-file|--download-archive|--cookies|--load-info"      diropts="--cache-dir"      if [[ ${prev} =~ ${fileopts} ]]; then diff --git a/devscripts/gh-pages/update-feed.py b/devscripts/gh-pages/update-feed.py index 16571a924..0ba15ae0f 100755 --- a/devscripts/gh-pages/update-feed.py +++ b/devscripts/gh-pages/update-feed.py @@ -1,56 +1,76 @@  #!/usr/bin/env python3  import datetime - +import io +import json  import textwrap -import json -atom_template=textwrap.dedent("""\ -								<?xml version='1.0' encoding='utf-8'?> -								<atom:feed xmlns:atom="http://www.w3.org/2005/Atom"> -									<atom:title>youtube-dl releases</atom:title> -									<atom:id>youtube-dl-updates-feed</atom:id> -									<atom:updated>@TIMESTAMP@</atom:updated> -									@ENTRIES@ -								</atom:feed>""") - -entry_template=textwrap.dedent(""" -								<atom:entry> -									<atom:id>youtube-dl-@VERSION@</atom:id> -									<atom:title>New version @VERSION@</atom:title> -									<atom:link href="http://rg3.github.io/youtube-dl" /> -									<atom:content type="xhtml"> -										<div xmlns="http://www.w3.org/1999/xhtml"> -											Downloads available at <a href="https://yt-dl.org/downloads/@VERSION@/">https://yt-dl.org/downloads/@VERSION@/</a> -										</div> -									</atom:content> -									<atom:author> -										<atom:name>The youtube-dl maintainers</atom:name> -									</atom:author> -									<atom:updated>@TIMESTAMP@</atom:updated> -								</atom:entry> -								""") +atom_template = textwrap.dedent("""\ +    <?xml version="1.0" encoding="utf-8"?> +    <feed xmlns="http://www.w3.org/2005/Atom"> +        <link rel="self" href="http://rg3.github.io/youtube-dl/update/releases.atom" /> +        <title>youtube-dl releases</title> +        <id>https://yt-dl.org/feed/youtube-dl-updates-feed</id> +        <updated>@TIMESTAMP@</updated> +        @ENTRIES@ +    </feed>""") -now = datetime.datetime.now() -now_iso = now.isoformat() +entry_template = textwrap.dedent(""" +    <entry> +        <id>https://yt-dl.org/feed/youtube-dl-updates-feed/youtube-dl-@VERSION@</id> +        <title>New version @VERSION@</title> +        <link href="http://rg3.github.io/youtube-dl" /> +        <content type="xhtml"> +            <div xmlns="http://www.w3.org/1999/xhtml"> +                Downloads available at <a href="https://yt-dl.org/downloads/@VERSION@/">https://yt-dl.org/downloads/@VERSION@/</a> +            </div> +        </content> +        <author> +            <name>The youtube-dl maintainers</name> +        </author> +        <updated>@TIMESTAMP@</updated> +    </entry> +    """) -atom_template = atom_template.replace('@TIMESTAMP@',now_iso) +now = datetime.datetime.now() +now_iso = now.isoformat() + 'Z' -entries=[] +atom_template = atom_template.replace('@TIMESTAMP@', now_iso)  versions_info = json.load(open('update/versions.json'))  versions = list(versions_info['versions'].keys())  versions.sort() +entries = []  for v in versions: -	entry = entry_template.replace('@TIMESTAMP@',v.replace('.','-')) -	entry = entry.replace('@VERSION@',v) -	entries.append(entry) +    fields = v.split('.') +    year, month, day = map(int, fields[:3]) +    faked = 0 +    patchlevel = 0 +    while True: +        try: +            datetime.date(year, month, day) +        except ValueError: +            day -= 1 +            faked += 1 +            assert day > 0 +            continue +        break +    if len(fields) >= 4: +        try: +            patchlevel = int(fields[3]) +        except ValueError: +            patchlevel = 1 +    timestamp = '%04d-%02d-%02dT00:%02d:%02dZ' % (year, month, day, faked, patchlevel) + +    entry = entry_template.replace('@TIMESTAMP@', timestamp) +    entry = entry.replace('@VERSION@', v) +    entries.append(entry)  entries_str = textwrap.indent(''.join(entries), '\t')  atom_template = atom_template.replace('@ENTRIES@', entries_str) -with open('update/releases.atom','w',encoding='utf-8') as atom_file: -	atom_file.write(atom_template) +with io.open('update/releases.atom', 'w', encoding='utf-8') as atom_file: +    atom_file.write(atom_template) diff --git a/devscripts/make_readme.py b/devscripts/make_readme.py index 7f2ea319c..cae1fa4f2 100755 --- a/devscripts/make_readme.py +++ b/devscripts/make_readme.py @@ -1,20 +1,24 @@ +import io  import sys  import re  README_FILE = 'README.md'  helptext = sys.stdin.read() -with open(README_FILE) as f: +if isinstance(helptext, bytes): +    helptext = helptext.decode('utf-8') + +with io.open(README_FILE, encoding='utf-8') as f:      oldreadme = f.read()  header = oldreadme[:oldreadme.index('# OPTIONS')]  footer = oldreadme[oldreadme.index('# CONFIGURATION'):] -options = helptext[helptext.index('  General Options:')+19:] +options = helptext[helptext.index('  General Options:') + 19:]  options = re.sub(r'^  (\w.+)$', r'## \1', options, flags=re.M)  options = '# OPTIONS\n' + options + '\n' -with open(README_FILE, 'w') as f: +with io.open(README_FILE, 'w', encoding='utf-8') as f:      f.write(header)      f.write(options)      f.write(footer) | 
