From 8e58c22025a6b22d7c321588b39e28108f71124f Mon Sep 17 00:00:00 2001
From: Brett Parker <iDunno@sommitrealweird.co.uk>
Date: Fri, 21 Dec 2007 18:51:40 +0000
Subject: [PATCH] * updated posts are now "threaded" - adds a References header
 with the previous   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 | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/rss2maildir.py b/rss2maildir.py
index 268d192..931de3a 100755
--- a/rss2maildir.py
+++ b/rss2maildir.py
@@ -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), \
-- 
2.39.5