Скрипт для удаления спам-постов в Mastodon

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

Здравствуйте, я бездарь.

Спам в Mastodon ужасен, поэтому я оставляю здесь скрипт для удаления.

Это не для удаления спам-пользователей. Он предназначен для удаления сообщений и уже полученных уведомлений.
Обратите внимание, что я не могу дать никаких гарантий относительно его использования, поэтому используйте его на свой страх и риск.

https://github.com/haturatu/mastodon-spam-remove/blob/master/spam_remove.rb

Моя среда

Devuan + Mastodon 4.2.7 + Ruby 3.2.0

Как использовать

※В целях безопасности переключитесь на пользователя Mastodon, работайте с помощью sudo -u mastodon или, наконец, всегда выполняйте операции с правами владельца пользователя Mastodon, используя chown mastodon:mastodon spam_remove.rb.
Также не забудьте сделать резервную копию вашей БД и Mastodon.

Загрузите скрипт с помощью wget или скопируйте и вставьте его.

Измените путь на тот, где находится environment в каталоге Mastodon, который вы используете.

require_relative '/your/mastodon/live/config/environment

Определение производится только следующим образом.
В настоящее время оно основано на количестве упоминаний @ в сообщении.

def spam_detected?(message)
message.scan(/@/).size >= 5
end

Сохраните и предоставьте права на выполнение.

chmod +x spam_remove.rb

Выполните.

./spam_remove.rb

Будьте осторожны, так как это может занять значительное время, если постов много.

Если он работает правильно, настройте его на регулярное выполнение с помощью crontab -e.
Для crontab пользователя root:

0 */4 * * * sudo -u mastodon /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb

Для пользователя Mastodon:

0 */4 * * * /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb

В приведенном выше примере скрипт будет выполняться каждые 4 часа.

Сообщения с пятью или более символами @ будут удалены, даже если это обычные сообщения из прошлого с пятью @. Измените условия обнаружения, чтобы решить эту проблему.


Перевод ИИ

For safety, please ensure that you switch to the Mastodon user or use sudo -u mastodon to perform the operation. Lastly, ensure that you always perform the operation with the ownership permissions set to the Mastodon user by running chown mastodon:mastodon spam_remove.rb. Also, remember to backup your DB and Mastodon before proceeding.

Fetch the script using wget or copy & paste it.

Change the path to the environment located in the Mastodon directory you are using.

require_relative '/your/mastodon/live/config/environment'

The detection is based solely on the number of mentions in a message.

def spam_detected?(message) message.scan(/@/).size >= 5 end

Save and grant execution permissions.

chmod +x spam_remove.rb

Execute the script.

./spam_remove.rb

Be cautious as it may take considerable time if there are many posts.

If it operates correctly, schedule it to run periodically with crontab -e.(root crontab)

0 */4 * * * sudo -u mastodon /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb

For mastodon user crontab

0 */4 * * * /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb

In the above example, the script will run every 4 hours.

Posts with five or more @ marks will be deleted, even if they are regular posts with five @ marks in the past. Adjust the detection criteria accordingly.

Related Posts