Como habrán notado en mi post anterior, estuve agregando un plugin anti spam en un Trac que tiene submit de tickets anómimo. Una vez que TracSpamFilter está instalado como mencioné en tal post y habiendo instalado WebAdmin también, queda andando de una.

Un comentario antes de pasar al punto de este post. El plugin funciona con un sistema de karma. Un post arranca con karma 0 y luego se le va cambiando a medida que los distintos filtros se disparan o no. El tema es que algunos suman y otros restan karma. Pero esto no se deduce fácilmente de la página de configuración, pues todos los valores son positivos. Bueno, les comento: el único positivo es el SessionFilterStrategy y el resto son negativos.

Esto quiere decir por ejemplo que por default, un usuario con login (SessionFilterStrategy, +9) puede mandar muchos links externos (ExternalLinksFilterStrategy, -2) y que además matcheen contra BadContent (ése es el RegexFilterStrategy, -5) sin que lo marque como spam.

Volviendo al punto, el problema es que una vez instalado sólo filtra spam entrante, pero no lo que ya hay. Cómo sacárselo de encima? No encontré mejor solución que hackear la base de datos. En mi caso particular, que creo que es el que está afectando a muchos, encontré que los summaries eran muy cortos, por lo que con esto alcanzó:

delete from ticket where length(summary)<11;

También es posible que les hayan llenado comentarios de tickets con spam. No es mi caso directo, sino más bien la forma en que testeaba el plugin. Habiendo hecho lo anterior, los comentarios (y en realidad, cualquier cambio sobre los mismos) de esos tickets quedaron huérfanos. Se los puede borrar con:

delete from ticket_change where ticket not in (select id from ticket);

deletes similares deberían poderse aplicar a otras partes del trac que estén abiertas.

sysadmin trac spam

Posted Wed 27 Jan 2010 11:55:55 PM CET Tags: spam