Archive of RubyForge sup-talk mailing list
 help / color / mirror / Atom feed
From: israel.herraiz@gmail.com (Israel Herraiz)
Subject: [sup-talk] [PATCH] Add list-id as a new property of messages
Date: Wed, 23 Apr 2008 23:23:58 +0200	[thread overview]
Message-ID: <1208985725-sup-6028@elly> (raw)

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



             reply	other threads:[~2008-04-23 21:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-23 21:23 Israel Herraiz [this message]
2008-04-24  8:54 ` Marcus Williams
2008-04-25 20:46   ` Israel Herraiz
2008-04-25 21:15     ` Marcus Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1208985725-sup-6028@elly \
    --to=israel.herraiz@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox