X-Git-Url: https://git.rapsys.eu/youtubedl/blobdiff_plain/28d5370e4a3ed87a622c07b81844b14420e5bcba..291f6705b350d9f813b12efb37b7963555758994:/devscripts/gh-pages/update-feed.py
diff --git a/devscripts/gh-pages/update-feed.py b/devscripts/gh-pages/update-feed.py
index cfff05f..e93eb60 100755
--- a/devscripts/gh-pages/update-feed.py
+++ b/devscripts/gh-pages/update-feed.py
@@ -1,57 +1,76 @@
#!/usr/bin/env python3
+from __future__ import unicode_literals
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@
-
-
-
-
-
- The youtube-dl maintainers
-
- @TIMESTAMP@
-
- """)
+atom_template = textwrap.dedent("""\
+
+
+
+ youtube-dl releases
+ https://yt-dl.org/feed/youtube-dl-updates-feed
+ @TIMESTAMP@
+ @ENTRIES@
+ """)
-now = datetime.datetime.now()
-now_iso = now.isoformat()
+entry_template = textwrap.dedent("""
+
+ https://yt-dl.org/feed/youtube-dl-updates-feed/youtube-dl-@VERSION@
+ New version @VERSION@
+
+
+
+
+
+ The youtube-dl maintainers
+
+ @TIMESTAMP@
+
+ """)
-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)