From 9b12003c3557018dd1443f1291352f196df2621d Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Sun, 5 Jan 2014 04:49:43 +0100 Subject: [PATCH] atom feed generator: Make IDs proper URLs (#2081) --- devscripts/gh-pages/update-feed.py | 66 ++++++++++++++--------------- youtube-dl | Bin 322041 -> 322066 bytes 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/devscripts/gh-pages/update-feed.py b/devscripts/gh-pages/update-feed.py index 16571a924..2219418ce 100755 --- a/devscripts/gh-pages/update-feed.py +++ b/devscripts/gh-pages/update-feed.py @@ -1,41 +1,41 @@ #!/usr/bin/env python3 import datetime - +import io +import json import textwrap -import json -atom_template=textwrap.dedent("""\ - - - youtube-dl releases - youtube-dl-updates-feed - @TIMESTAMP@ - @ENTRIES@ - """) - -entry_template=textwrap.dedent(""" - - youtube-dl-@VERSION@ - New version @VERSION@ - - -
- Downloads available at https://yt-dl.org/downloads/@VERSION@/ -
-
- - The youtube-dl maintainers - - @TIMESTAMP@ -
- """) +atom_template = textwrap.dedent("""\ + + + youtube-dl releases + https://yt-dl.org/feed/youtube-dl-updates-feed + @TIMESTAMP@ + @ENTRIES@ + """) + +entry_template = textwrap.dedent(""" + + https://yt-dl.org/feed/youtube-dl-updates-feed/youtube-dl-@VERSION@ + New version @VERSION@ + + +
+ Downloads available at https://yt-dl.org/downloads/@VERSION@/ +
+
+ + The youtube-dl maintainers + + @TIMESTAMP@ +
+ """) now = datetime.datetime.now() now_iso = now.isoformat() -atom_template = atom_template.replace('@TIMESTAMP@',now_iso) +atom_template = atom_template.replace('@TIMESTAMP@', now_iso) entries=[] @@ -44,13 +44,13 @@ versions = list(versions_info['versions'].keys()) versions.sort() for v in versions: - entry = entry_template.replace('@TIMESTAMP@',v.replace('.','-')) - entry = entry.replace('@VERSION@',v) - entries.append(entry) + entry = entry_template.replace('@TIMESTAMP@',v.replace('.','-')) + 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/youtube-dl b/youtube-dl index 79739ca6026fca3eefbada3428d3ef2734a720cb..1f1e2915a718b91576d9d60b82df36bbe8bafba1 100755 GIT binary patch delta 12628 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

xq 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 delta 12580 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

oPmNN!rAJ8rNZHuDTFsg>Jh(?;WikLqPKN+dT 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 K(xBjb*8c&#km*1G -- 2.22.2