* updated posts are now "threaded" - adds a References header with the previous
authorBrett Parker <iDunno@sommitrealweird.co.uk>
Fri, 21 Dec 2007 18:51:40 +0000 (18:51 +0000)
committerBrett Parker <iDunno@sommitrealweird.co.uk>
Fri, 21 Dec 2007 18:51:40 +0000 (18:51 +0000)
  message-id in it, then adds the previous message id to the current message-id
  so that further updates can reference that properly

rss2maildir.py

index 268d1922561cb8aacde58ba3d0fa7bbec812b8f8..931de3ae5307bbae1fe860dbc3bff739c8cfb783 100755 (executable)
@@ -278,9 +278,13 @@ def parse_and_deliver(maildir, url, statedir):
 
         md5sum = md5.md5(content.encode("utf-8")).hexdigest()
 
+        prevmessageid = None
+
         if db.has_key(url + "|" + item["link"]):
             data = db[url + "|" + item["link"]]
             data = cgi.parse_qs(data)
+            if data.has_key("message-id"):
+                prevmessageid = data["message-id"][0]
             if data["contentmd5"][0] == md5sum:
                 continue
 
@@ -303,6 +307,8 @@ def parse_and_deliver(maildir, url, statedir):
         msg.set_unixfrom("\"%s\" <rss2maildir@localhost>" %(url))
         msg.add_header("From", "\"%s\" <rss2maildir@localhost>" %(author))
         msg.add_header("To", "\"%s\" <rss2maildir@localhost>" %(url))
+        if prevmessageid:
+            msg.add_header("References", prevmessageid)
         createddate = datetime.datetime(*item["updated_parsed"][0:6]) \
             .strftime("%a, %e %b %Y %T -0000")
         msg.add_header("Date", createddate)
@@ -337,6 +343,8 @@ def parse_and_deliver(maildir, url, statedir):
         os.unlink(fn)
 
         # now add to the database about the item
+        if prevmessageid:
+            messageid = prevmessageid + " " + messageid
         data = urllib.urlencode((
             ("message-id", messageid), \
             ("created", createddate), \