More Atom feed improvements (#2081)
authorPhilipp Hagemeister <phihag@phihag.de>
Sun, 5 Jan 2014 04:16:16 +0000 (05:16 +0100)
committerPhilipp Hagemeister <phihag@phihag.de>
Sun, 5 Jan 2014 04:16:16 +0000 (05:16 +0100)
devscripts/gh-pages/update-feed.py

index 3b49a56f1637d98e28e81fa937efd96bcac3b334..0ba15ae0f7c83a4eb2ac6b2b56aeb72d55b3a951 100755 (executable)
@@ -9,6 +9,7 @@ import textwrap
 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>
@@ -43,7 +44,27 @@ versions.sort()
 
 entries = []
 for v in versions:
-    entry = entry_template.replace('@TIMESTAMP@', v.replace('.', '-') + 'T00:00:00Z')
+    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)