[prev] [thread] [next] [lurker] [Date index for 2004/06/30]
--rQ2U398070+RC21q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline -- Richard Clamp <richardc@xxxxxxxxx.xxx> --rQ2U398070+RC21q Content-Type: message/rfc822 Content-Disposition: inline Return-Path: <ben@xxxxxxxx.xxx> X-Original-To: richardc@xxxxxxxxx.xxx Delivered-To: richardc@xxxxx.xxxxx.xx.xx Received: from rongo.sixapart.com (dsl081-057-015.sfo1.dsl.speakeasy.net [64.81.57.15]) by mirth.demon.co.uk (Postfix) with ESMTP id B62C1740001 for <richardc@xxxxxxxxx.xxx>; Mon, 28 Jun 2004 23:49:39 +0100 (BST) Received: from [192.168.100.42] (btrott-laptop.sm.sixapart.com [192.168.100.42]) by rongo.sixapart.com (Postfix) with ESMTP id 485CC47BFD for <richardc@xxxxxxxxx.xxx>; Mon, 28 Jun 2004 14:47:21 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v618) To: richardc@xxxxxxxxx.xxx Message-Id: <6EACEFEB-C955-11D8-9E11-000A95B33128@xxxxxxxx.xxx> Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="Apple-Mail-2-634111383" From: Benjamin Trott <ben@xxxxxxxx.xxx> Subject: Mariachi Pluggability Date: Mon, 28 Jun 2004 15:49:37 -0700 Content-Transfer-Encoding: 7bit X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.618) --Apple-Mail-2-634111383 Content-Type: multipart/mixed; boundary=Apple-Mail-1-634111369 --Apple-Mail-1-634111369 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, I found and started playing around with Mariachi last Friday--very nice! I was looking around for something much more customizable and, well, modern than mhonarc, and Mariachi seems to fit the bill. One of the things I wanted to add right away was an Atom feed of the last 20 messages. It was fairly easy to add by defining a subclass of Mariachi and a new template, but I wondered--is there another plugin mechanism that's available that would allow building multiple plugins that can be called at various phases of the archival process, or invent new stages? Similar to what the Siesta architecture looks like. I've attached the Mariachi/Atom.pm and atom.tt2 files, if you're interested in taking a look at them. Ben --Apple-Mail-1-634111369 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name="Atom.pm" Content-Disposition: attachment; filename=Atom.pm package Mariachi::Atom; use strict; use base qw( Mariachi ); sub generate_atom { my $self = shift; my @msgs = sort { $b->epoch_date <=> $a->epoch_date } @{ $self->messages }; @msgs = @msgs[0..($#msgs > 19 ? 19 : $#msgs)]; $self->generate_pages('atom.tt2', 'atom.xml', content => \@msgs, modified => $msgs[0]->epoch_date, ); } sub perform { my $self = shift; $self->SUPER::perform(@_); $self->generate_atom; $self->_bench('atom'); } package Mariachi::Message; use strict; sub atom_id { my $msg = shift; 'mailto:' . substr($msg->header('message-id'), 1, -1); } 1; --Apple-Mail-1-634111369 Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name="atom.tt2" Content-Disposition: attachment; filename=atom.tt2 <?xml version="1.0" encoding="utf-8"?> [% USE date %] <feed version="0.3" xmlns="http://purl.org/atom/ns#"> <title>[% mariachi.config.name %]</title> <link rel="alternate" type="text/html" href="http://sixapart.com/dev-network/list/" /> <modified>[% date.format(modified, '%Y-%m-%dT%H:%M:%SZ', 'en_US', 1) %]</modified> [% FOR mail=content %] <entry> <id>[% mail.atom_id | html %]</id> <title>[% mail.subject | html %]</title> <link rel="alternate" type="text/html" href="http://sixapart.com/dev-network/list/[% mail.filename %]" /> <issued>[% date.format(mail.epoch_date, '%Y-%m-%dT%H:%M:%SZ', 'en_US', 1) %]</issued> <modified>[% date.format(mail.epoch_date, '%Y-%m-%dT%H:%M:%SZ', 'en_US', 1) %]</modified> <author> <name>[% mail.from | html %]</name> </author> <summary mode="escaped" type="text/plain">[% mail.first_paragraph %]</summary> <content mode="escaped" type="text/html"><pre>[% mail.body_sigless | html | html %]</pre></content> </entry> [% END %] </feed> --Apple-Mail-1-634111369-- --Apple-Mail-2-634111383 content-type: application/pgp-signature; x-mac-type=70674453; name=PGP.sig content-description: This is a digitally signed message part content-disposition: inline; filename=PGP.sig content-transfer-encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFA4KCBzGeEk2uv818RAoGeAKCq8IgOci//EG6uXUFBtUfxk8yhqQCgpU2Z 4PLcFcAa1RTOAQ6Csf55S20= =QCIC -----END PGP SIGNATURE----- --Apple-Mail-2-634111383-- --rQ2U398070+RC21q--
Generated at 09:00 on 03 Aug 2004 by mariachi 0.52