From mboxrd@z Thu Jan 1 00:00:00 1970 From: israel.herraiz@gmail.com (Israel Herraiz) Date: Wed, 23 Apr 2008 23:23:58 +0200 Subject: [sup-talk] [PATCH] Add list-id as a new property of messages Message-ID: <1208985725-sup-6028@elly> 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