Tahle utilitka slouží k udržování informací o vláknech v E-mailových diskusích (pokud se někomu povede to donutit věšet prádlo, nemám nic proti…). Princip je takový, že si průběžně udržuje, které E-maily patří k sobě a dovoluje si k nim poznamenat nějaké informace. Když přijde nový E-mail, tak k němu přiřadí všechny informace, které má o daném vláknu.
Ke svému běhu to potřebuje perl a nejspíš to poběží jen na UNIXových a jim podobných systémech. Na takových systémech by mělo stačit to stáhnout a dát někam do PATH (k ostatním programům) a učinit jej spustitelným. Doporučuji také přejmenovat na něco, co nemá v sobě číslo verze, aby, až vznikne nová verze, nebylo třeba nastavení celého systému měnit.
Nyní začíná ta zábavnější část. Vlastní program není třeba nastavovat, ten by si měl nějak poradit sám. Ale je třeba nastavit E-mailové filtry a příkazy v klientovi.
Veškerá příchozí pošta musí jít skrz tento program, tedy musí být použit jako filtr. V procmailu by to vypadalo nějak takto:
:0 f:thread_tagger.lock
|thread_tagger.pl f
Díky tomu, že jdou všechny E-maily skrz si může program pamatovat, které zprávy patří k sobě. Navíc ke každé zprávě, která už "někam patří" přidá všechny informace k tomuto vláknu přiřazené (jako hlavičku Thread-Tags).
Nyní je občas potřeba k nějakému vláknu přidat nebo odebrat informaci. To se provede tak, že se libovolná zpráva tohoto vlákna prožene programem stejným způsobem, jako když přišla. Jako argumenty se programu dají příkazy s informacemi. Příkaz je buď + a nebo - následované danou informací. + informaci přidá, - ji odebere. Následující příkaz (v nastavení muttu) přiřadí klávese ) označení vlákna za ignorované a přečtené.
macro index ) "|thread_tagger.pl -IgnoreThread\n\cr"
Lze si všimnout chybějícího parametru f, který byl použit u prvotního filtrování zprávy. Toto f slouží k tomu, aby byla změněná zpráva "vrácena" a dala se dále zpracovat, což nyní není potřeba.
Posledním krokem nastavení je využít těchto přívěšků na nově příchozí zprávě. Totiž, každá nová zpráva z tohoto vlákna sice dostane hlavičku, ale je na filtrech, aby se podle ní zachovaly. Takto označené zprávy lze chytit v procmailu tímto pravidlem:
:0
* ^Thread-Tags:.*IgnoreThread
Program si udržuje všechny informace v souborech ~/.threads_ids a ~/.threads_tags. Pokud je třeba provést "amnestii", stačí tyto programy smazat. Program sám zapomíná vlákna neaktivní déle než měsíc, aby tyto soubory nerostly donekonečna.
Aktuálně to používám na udržování ignorovaných vláken ve velmi aktivních diskuzích a k poznání opravdových odpovědí na mé E-maily, aby nebyly předhazovány spamovým filtrům. Pokud někoho napadne další využití, vylepšení, způsob jak to zničit a podobně, jsem otevřen připomínkám.