scan-feeds: Accept a list of users
[iron-blogger] / scan-feeds.py
index 7e27b8c2a5c8e0e9012b744a19f2950747e7e9ff..82438bb1b6c4fceaf6572eec9460cc98e0170157 100755 (executable)
@@ -21,9 +21,9 @@ def parse_published(pub):
     return parse(pub).astimezone(tz.tzlocal()).replace(tzinfo=None)
 
 def get_date(post):
-    if 'published' in post:
-        return post.published
-    return post.updated
+    for k in ('published', 'created', 'updated'):
+        if k in post:
+            return post[k]
 
 def get_link(post):
     return post.link
@@ -48,10 +48,16 @@ def parse_feeds(weeks, uri):
         if post['url'] not in [p['url'] for p in weeks[wn]]:
             weeks[wn].append(post)
 
-for (username, u) in users.items():
-    weeks = log.setdefault(username, [])
-    for l in u['links']:
-        parse_feeds(weeks, l[2])
+if len(sys.argv) > 1:
+    for username in sys.argv[1:]:
+        weeks = log.setdefault(username, [])
+        for l in users[username]['links']:
+            parse_feeds(weeks, l[2])
+else:
+    for (username, u) in users.items():
+        weeks = log.setdefault(username, [])
+        for l in u['links']:
+            parse_feeds(weeks, l[2])
 
 with open('out/report.yml', 'w') as f:
     yaml.safe_dump(log, f)

Benjamin Mako Hill || Want to submit a patch?