changeset 22:f2fafca30ff3

added issue tracking information, though it's not yet being used in any way.
author Atul Varma <varmaa@toolness.com>
date Sun, 03 Jan 2010 04:58:47 -0800
parents 6a6632954dc6
children 8b501dfe7d85
files publish_edition.py
diffstat 1 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/publish_edition.py	Sun Jan 03 04:41:44 2010 -0800
+++ b/publish_edition.py	Sun Jan 03 04:58:47 2010 -0800
@@ -13,6 +13,7 @@
 URLS_FILENAME = 'url_cache.dat'
 WHOISI_FILENAME = 'whoisi_cache.dat'
 ARTICLES_FILENAME = 'articles.dat'
+ISSUES_FILENAME = 'issues.dat'
 JSON_FILENAME = 'daily-edition.json'
 
 def load(filename, default):
@@ -68,7 +69,7 @@
                                'content': content}
                     articles[author].append(article)
 
-def filter_articles(names, articles):
+def filter_articles(names, articles, issues):
     max_date = date.today()
     min_date = max_date - timedelta(days=3)
 
@@ -88,6 +89,8 @@
                 article['pub_date'] < max_date)
             ]
 
+    return filtered_articles
+
 def publish_edition(update_whoisi=False,
                     update_urls=False,
                     update_articles=False):
@@ -139,13 +142,24 @@
                          urls=urls)
         save(articles, ARTICLES_FILENAME)
 
+    issues = load(ISSUES_FILENAME, {'urls': {},
+                                    'pub_dates': []})
+
     filtered_articles = filter_articles(names=names,
-                                        articles=articles)
+                                        articles=articles,
+                                        issues=issues)
+
+    issue_id = len(issues['pub_dates'])
+    issues['pub_dates'].append(datetime.now())
+    for author in filtered_articles:
+        for article in filtered_articles[author]:
+            issues['urls'][article['url']] = issue_id
+    save(issues, ISSUES_FILENAME)
 
     json.dump({'authors': names, 'articles': filtered_articles},
               open(JSON_FILENAME, 'w'))
 
-    logging.info('wrote %s.' % JSON_FILENAME)
+    logging.info('wrote %s (issue #%d).' % (JSON_FILENAME, issue_id))
 
 parser_options = {
     ('-w', '--update-whoisi',):