funcmail.py: generate notmuch-tags based on headers
authorMichal Vyskocil <mvyskocil@suse.cz>
Fri, 22 Mar 2013 11:56:23 +0000 (12:56 +0100)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:54:01 +0000 (09:54 -0800)
90/c5f2c4d7cfed1c857c2585aebcba6bdb920972 [new file with mode: 0644]

diff --git a/90/c5f2c4d7cfed1c857c2585aebcba6bdb920972 b/90/c5f2c4d7cfed1c857c2585aebcba6bdb920972
new file mode 100644 (file)
index 0000000..be6ff8e
--- /dev/null
@@ -0,0 +1,96 @@
+Return-Path: <mvyskocil@suse.cz>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 4FDDF431FB6\r
+       for <notmuch@notmuchmail.org>; Fri, 22 Mar 2013 04:56:32 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -5\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-5 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_HI=-5] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id O2-bor-GV6yR for <notmuch@notmuchmail.org>;\r
+       Fri, 22 Mar 2013 04:56:31 -0700 (PDT)\r
+Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15])\r
+       by olra.theworths.org (Postfix) with ESMTP id 8412F431FAF\r
+       for <notmuch@notmuchmail.org>; Fri, 22 Mar 2013 04:56:31 -0700 (PDT)\r
+Received: from relay1.suse.de (unknown [195.135.220.254])\r
+       by mx2.suse.de (Postfix) with ESMTP id 32C72A4C0E\r
+       for <notmuch@notmuchmail.org>; Fri, 22 Mar 2013 12:56:28 +0100 (CET)\r
+Date: Fri, 22 Mar 2013 12:56:23 +0100\r
+From: Michal Vyskocil <mvyskocil@suse.cz>\r
+To: notmuch@notmuchmail.org\r
+Subject: funcmail.py: generate notmuch-tags based on headers\r
+Message-ID: <20130322115623.GA18329@linux-xtv2.site>\r
+MIME-Version: 1.0\r
+Content-Type: multipart/signed; micalg=pgp-sha1;\r
+       protocol="application/pgp-signature"; boundary="BOKacYhQ+x31HxR3"\r
+Content-Disposition: inline\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Fri, 22 Mar 2013 11:56:32 -0000\r
+\r
+\r
+--BOKacYhQ+x31HxR3\r
+Content-Type: text/plain; charset=us-ascii\r
+Content-Disposition: inline\r
+\r
+Hi,\r
+\r
+because it seems that notmuch does not index all headers, I've written a\r
+simple, but quite usable tool, which goes through a maildir and generate\r
+an output for notmuch-tag --batch according a simple rules. I've\r
+borrowed the syntax from notmuch-tag --batch format, so it should be\r
+very easy for any notmuch user to configure.\r
+\r
+You can query the content of a paricular header\r
+# tags will be applied when string is in header\r
++notmuch -inbox -- 'notmuch.notmuchmail.org' in 'List-Id'\r
+\r
+or in more than one header\r
++notmuch -inbox -- 'notmuch.notmuchmail.org' in ('List-Id',\r
+'X-Mailinglist')\r
+\r
+Or use the procmail-like grep, where a whole email will be searched for\r
+a pattern.\r
+\r
+# procmail-like rule, the whole email is searched for a pattern\r
++notmuch -inbox -- 'List-Id.*notmuch.notmuchmail.org'\r
+\r
+Note the matchin rule is a normal Python expression, so everything\r
+Python interpreted can evaluate, should be used. I've ever wanted to\r
+learn about those parts of a Python, so this was a nice opportunity to\r
+learn.\r
+\r
+https://gist.github.com/mvyskocil/5220690\r
+\r
+Regards\r
+Michal Vyskocil\r
+\r
+--BOKacYhQ+x31HxR3\r
+Content-Type: application/pgp-signature; name="signature.asc"\r
+Content-Description: Digital signature\r
+\r
+-----BEGIN PGP SIGNATURE-----\r
+Version: GnuPG v2.0.19 (GNU/Linux)\r
+\r
+iEYEARECAAYFAlFMRuYACgkQGwzgx2QvQgQkqACgg4h8pMh9uRXI7juOzicq2IjJ\r
+RSQAnj8ypjW7x7sQG1gkrwKulvWS/gUA\r
+=rkN0\r
+-----END PGP SIGNATURE-----\r
+\r
+--BOKacYhQ+x31HxR3--\r