Hi there,

I propose to add a "list_id" property to messages, just like
list_subscribe, list_unsubscribe and list_address.

I am using list_address.email to automatically generate labels for
messages that are coming from mailing lists (that field uses the value
of the List-Post header of the raw message). It seems that some
mailing lists are not including that header though. In those lists
where I do not see List-Post, I have found that List-Id is still
present. Therefore I propose to add that header to the message class
for filtering purposes.

The change is minimal, and as far as I have found out, it does not
affect any other part of Sup (like for instance the index of
messages). I am attaching the patch below.

Cheers,
Israel

---
 lib/sup/mbox.rb    |    1 +
 lib/sup/message.rb |    8 +++++++-
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/lib/sup/mbox.rb b/lib/sup/mbox.rb
index f267b3b..35d0283 100644
--- a/lib/sup/mbox.rb
+++ b/lib/sup/mbox.rb
@@ -32,6 +32,7 @@ module MBox
         /^(List-Post):\s*(.*?)\s*$/i,
         /^(List-Subscribe):\s*(.*?)\s*$/i,
         /^(List-Unsubscribe):\s*(.*?)\s*$/i,
+        /^(List-Id):\s*(.*?)\s*$/i,
         /^(Status):\s*(.*?)\s*$/i: header[last = $1] = $2
       when /^(Message-Id):\s*(.*?)\s*$/i: header[mid_field = last = $1] = $2
 
diff --git a/lib/sup/message.rb b/lib/sup/message.rb
index 249b6c6..3952236 100644
--- a/lib/sup/message.rb
+++ b/lib/sup/message.rb
@@ -38,7 +38,7 @@ class Message
 
   attr_reader :id, :date, :from, :subj, :refs, :replytos, :to, :source,
               :cc, :bcc, :labels, :list_address, :recipient_email, :replyto,
-              :source_info, :list_subscribe, :list_unsubscribe
+              :source_info, :list_subscribe, :list_unsubscribe, :list_id
 
   bool_reader :dirty, :source_marked_read, :snippet_contains_encrypted_content
 
@@ -128,6 +128,12 @@ class Message
     @source_marked_read = header["status"] == "RO"
     @list_subscribe = header["list-subscribe"]
     @list_unsubscribe = header["list-unsubscribe"]
+    @list_id = 
+      if header["list-id"]
+        @list_id = PersonManager.person_for header["list-id"]
+      else
+        nil
+      end
   end
   private :parse_header
 
-- 
1.5.5

_______________________________________________
sup-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/sup-talk

Reply via email to