Скрипт для удаления спам-постов в Mastodon
Здравствуйте, я бездарь.
Спам в 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.