Script para eliminar publicaciones de cuentas de spam en Mastodon
Hola, soy un incompetente.
El spam en Mastodon es terrible, así que dejo un script para eliminarlo.
Esto no es para eliminar usuarios de spam. Es para borrar publicaciones y notificaciones ya recibidas.
Tenga en cuenta que no se ofrece ninguna garantía sobre su uso, así que úselo bajo su propia responsabilidad.
https://github.com/haturatu/mastodon-spam-remove/blob/master/spam_remove.rb
Mi entorno
Devuan + Mastodon 4.2.7 + Ruby 3.2.0
Cómo usarlo
※Por seguridad, cambie al usuario de Mastodon, trabaje con sudo -u mastodon, o asegúrese de que los permisos de propietario sean siempre del usuario de Mastodon con chown mastodon:mastodon spam_remove.rb al final.
Además, no olvide hacer una copia de seguridad de su base de datos y de Mastodon.
Descargue el script con wget o cópielo y péguelo.
Cambie la ruta al archivo environment que se encuentra en el directorio de Mastodon que está utilizando.
require_relative '/your/mastodon/live/config/environment’
La detección se realiza únicamente de la siguiente manera:
Actualmente, se detecta por el número de menciones con '@' en el mensaje.
def spam_detected?(message)
message.scan(/@/).size >= 5
end
Guarde y otorgue permisos de ejecución.
chmod +x spam_remove.rb
Ejecute.
./spam_remove.rb
Tenga cuidado, ya que si hay muchas publicaciones, puede llevar bastante tiempo.
Si funciona correctamente, prográmelo para que se ejecute periódicamente con crontab -e.
Para el crontab del usuario root:
0 */4 * * * sudo -u mastodon /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb
Para el usuario de Mastodon:
0 */4 * * * /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb
En lo anterior, el script se ejecutará cada 4 horas.
Las publicaciones con 5 o más marcas '@' serán eliminadas, incluso si son publicaciones normales del pasado con 5 '@'. Por favor, ajuste las condiciones de detección para manejar esto.