EOT - Expire Old Threads

Submitted by gwolf on Sun, 02/03/2008 - 15:39
Written in...: 
2003

Copyright (c) 2003, 2005 Gunnar Wolf - gwolf@gwolf.org

RATIONALE

I started using mutt as my mail reader a couple of months ago. One of the features I most liked about mutt is that the messages are by default sorted by thread - this really helps following a long conversation in a very active mailing list!

In order to have the threading as complete as possible, I started archiving all my old messages - of course, as mutt users do, I now save each mailing list to a different folder. Life was great.

Life was not perfect, though. After a couple of weeks, some of my mailing lists had too much traffic, and -at over 2000 archived messages- mutt took some time to open them. I am currently using mbox-formatted mailboxes - switching to maildir might have solved the problem for a couple of weeks, but it would happen again. I did not want to artificially cut my mailbox at a specific date, as I would lose all the benefits of my beloved threads.

I came across the fine and overwhelmingly complete Mail::Box Perl module, and I found how easy would it be to move old threads to a different mailbox, instead of moving individual messages.

USAGE

Usage is quite straightforward - first of all, as usual:
eot -h
will give you a list of EOT's options, all of which are optional (but usually you will want to specify at least -f and -F).

The valid options are:

  1. eot -f <from_mailbox> -t <from_type> -F <to_mailbox> -T <to_type> -p <period>
  2. All arguments are optional.
  3. opt description default
  4. ======================================================================
  5. -f Which source mailbox to use mailbox
  6. -t What format is this mailbox in (mbox, maildir, mh) mbox
  7. -F Which destination mailbox to use mailbox.arch
  8. -T What format is this mailbox in (mbox, maildir, mh) mbox
  9. -p Period of time to declare a thread as old, in days 7
  10. -v Whether to report work statistics to STDOUT 0

-f and -F refer to a mailbox - either to a file (if it is a mbox mailbox) or to a directory (if it is a maildir or MH mailbox) in the local directory, or the full (or relative) path to the mailbox in question.

-t and -T refer to the kind of mailbox to open - mbox, maildir or mh.

-p indicates how old (in days) should the last message in a thread be for the whole thread to be considered inactive.

If -v is not specified, EOT will run quietly. If -v is specified, a short summary will be reported after running.

LICENSE

EOT is licensed under the GNU GPL version 2 or higher, at your option.
The full text of the GNU GPL can be found here.

REQUIREMENTS

EOT is written in Perl, and therefore requires Perl (version 5 or higher) to be installed. Additionally, EOT requires the following Perl
modules:
Mail::Box (tested with 2.038)
Date::Parse - part of TimeDate (tested with 1.1400)

You can find them at the CPAN. If you use a Debian system, they are resepctively in the libmail-box-perl and libtimedate-perl packages.

AUTHOR

EOT was created by Gunnar Wolf (gwolf@gwolf.org) in May 2003. You
can use it freely for whatever you want as long as you abide by the
GNU GPL license.

DOWNLOAD

Ok, so I got you interested? ;-)

You can download version 1.1 of EOT here.

Resumen: 

Copyright (c) 2003,2005 Gunnar Wolf - gwolf@gwolf.org

RAZONES

Comencé a usar mutt como mi lector de correo hace un par de meses. Una de las características que más me gustaron de mutt es que los mensajes normalmente aparecen ordenados por hilo - esto ayuda realmente a seguir una conversación larga en una lista muy activa!

Para preservar el hilado de los mensajes, decidí archivar todos mis mensajes viejos - claro, tal como acostumbran hacer los usuarios de mutt. Cada lista va para un folder diferente, y la vida es bella.

Sin embargo, la vida no era perfecta. Después de un par de semanas, algunas de mis listas tenían tanto tráfico -con más de 2000 mensajes archivados- que a mutt le tomaba demasiado tiempo ya abrirlos. Y si bien parte de la culpa puedo echársela a que uso buzones en formato mbox, el cambiar a maildir no haría más que posponer este mismo problema por un par de semanas. Y no quería cortar artificialmente el buzón cada cierto tiempo, pues perdería los beneficios de mis queridos hilos.

Me encontré con el maravilloso y tremendamente completo módulo de Perl Mail::Box, y me dí cuenta que mover hilos completos era muy simple, así que escribí este programita que expirara hilos en vez de mensajes individuales.

USO

El uso es muy simple. Antes que nada, como siempre:
eot -h
te dará una lista de las opciones de EOT, todas ellas opcionales (aunque usualmente querrás especificar al menos -f y -F).

Las opciones válidas son:

  1. eot -f <from_mailbox> -t <from_type> -F <to_mailbox> -T <to_type> -p <period>
  2. All arguments are optional.
  3. opt description default
  4. ======================================================================
  5. -f Which source mailbox to use mailbox
  6. -t What format is this mailbox in (mbox, maildir, mh) mbox
  7. -F Which destination mailbox to use mailbox.arch
  8. -T What format is this mailbox in (mbox, maildir, mh) mbox
  9. -p Period of time to declare a thread as old, in days 7
  10. -v Whether to report work statistics to STDOUT 0

-f and -F se refieren a un buzón -un archvio si es tipo mbox o un directorio si es tipo maildir o MH- en el directorio local, o un path completo o relativo al buzón en cuestión.

-t y -T indican el tipo de buzón a abrir - mbox, maildir or mh.

-p indicates how old (in days) should the last message in a thread be
for the whole thread to be considered inactive.

Si no especificas -v, EOT correrá en silencio. Si especificas -v un
corto resumen de actividad aparecerá después de correr.

LICENCIA

EOT is está cubierto por la GNU GPL versión 2 o superior, a tu discreción.
El texto completo de la GNU GPL puede ser encontrado aquí.

REQUISITOS

EOT fue escrito en Perl, y por tanto requiere Perl (versión 5 o
superior). Además de esto, EOT requiere de los siguientes módulos de
Perl:
Mail::Box (probado con 2.038)
Date::Parse - parte de TimeDate (probado con 1.1400)

Puedes encontrarlos en el CPAN. Si usas un sistema Debian, están respectivamente en los paquetes libmail-box-perl y libtimedate-perl.

AUTOR

EOT fue creado por Gunnar Wolf (gwolf@gwolf.org) en mayo del 2003. Puedes usarlo libremente para el propósito que sea, siempre que te
atengas a la licencia GNU GPL.

BAJARLO

Ok, veo que te interesó ;-)

Puedes bajar la versión 1.1 de EOT aquí.