Archive of RubyForge sup-talk mailing list
 help / color / mirror / Atom feed
From: Tero Tilus <tero@tilus.net>
To: Sup users <sup-talk@rubyforge.org>
Subject: Re: [sup-talk] best method for before-add-message.rb
Date: Sun, 13 Feb 2011 11:51:02 +0200	[thread overview]
Message-ID: <1297589599-sup-596@tilus.net> (raw)
In-Reply-To: <1297560324-sup-4333@niflheimr>

Moritz Wilhelmy, 2011-02-13 03:34:
> what would be the best way to match - for instance - the
> List-Id-Header in case it's present?

List-Id is a whole separate kind of beast.  My stragy dealing with it
looks like this.  Comments in finnish.  Go google translate. ;)

== clip from ~/.sup/hooks/before-add-message.rb ==
hdr = message.raw_header

# Yritetään hakea listalle label List-Id headerista ja jos sellaista
# ei ole (mm. pipermail-arkistot) niin otsikkoriviltä [listanimestä].
# Listaheadereita on montaa sorttia
#
# List-Id: effi-alert.winston.effi.org
# List-Id: <effipalvelin.winston.effi.org>
# List-Id: EFFIn hallituksen keskusteluja <board.effi.org>
# List-Id: =?iso-8859-1?q?Keski-Suomen_EFFIl=E4iset?= <ks-effi.lists.jyu.fi>
# List-Id: "Hear ry:n julkinen tiedotuslista: Radio Hear, Linnunlaulupubi,
# List-Id: =?iso-8859-1?q?El=E4m=E4_on_peli=E4=2C_j=E4rjest=E4j=E4lista?=

if m = (hdr.match(/^List-Id: +[^<]*<([^>\s]+)> *$/i) or # tyyppi 1
        hdr.match(/^List-Id: +([^<>=\s]+) *$/i) or      # tyypit 2-4
        hdr.match(/^Subject: +\[ *([^\] ]+) *\]/i))
  list_id = m[1]
  list_id = 'effi-hallitus' if list_id == 'board.effi.org'
  list_id = 'effi-asiantuntijat' if list_id == 'asiantuntijat.effi.org'
  list_id = 'maahinkainen-jasenet' if list_id == 'jasenet.maahinkainen.org'
  list_id = 'lev' if list_id == 'lev-list'
  list_id = list_id.split('.', 2)[0].downcase
  message.add_label list_id
end

== clip end ==

> Can I pull arbitrary, parsed headers directly out of the message
> object, or do I have to do my own parsing?

Uh, oh.  Looks like no, but it is pretty close, berause
Message#parse_header already builds parsed hash of arbitrary headers
internally.

--
Tero Tilus ## 050 3635 235 ## http://tero.tilus.net/
_______________________________________________
sup-talk mailing list
sup-talk@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-talk

  reply	other threads:[~2011-02-13 10:25 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-10 14:44 Philippe LeCavalier
2011-02-10 16:40 ` Mark Alexander
     [not found]   ` <1297356327-sup-9107@plc.intranet.plecavalier.com>
     [not found]     ` <1297357197-sup-5893@bloovis.org>
2011-02-10 19:19       ` Philippe LeCavalier
2011-02-10 22:09         ` Philippe LeCavalier
2011-02-13  1:34           ` Moritz Wilhelmy
2011-02-13  9:51             ` Tero Tilus [this message]
2011-02-13 13:00               ` [sup-talk] How to treat List-Id headers (Was: best method for before-add-message.rb) Moritz Wilhelmy
2011-02-13 17:45               ` [sup-talk] best method for before-add-message.rb Rich Lane
2011-02-13 17:12             ` Hamish D
2011-02-13 18:08               ` Philippe LeCavalier

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=1297589599-sup-596@tilus.net \
    --to=tero@tilus.net \
    --cc=sup-talk@rubyforge.org \
    /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