মাস্টোডন-এর স্প্যাম অ্যাকাউন্ট পোস্ট মুছে ফেলার স্ক্রিপ্ট
নমস্কার, আমি অযোগ্য।
মাস্টোডনের স্প্যাম খুব খারাপ, তাই আমি একটি মুছে ফেলার স্ক্রিপ্ট রেখে যাচ্ছি।
এটি স্প্যাম ব্যবহারকারীদের মুছে ফেলার জন্য নয়। এটি পোস্ট এবং ইতিমধ্যে প্রাপ্ত বিজ্ঞপ্তিগুলি মুছে ফেলার জন্য।
এছাড়াও, ব্যবহারের জন্য কোনও গ্যারান্টি দেওয়া হয় না, তাই দয়া করে নিজের ঝুঁকিতে ব্যবহার করুন।
https://github.com/haturatu/mastodon-spam-remove/blob/master/spam_remove.rb
আমার পরিবেশ
Devuan + Mastodon 4.2.7 + Ruby 3.2.0
ব্যবহার পদ্ধতি
※নিরাপত্তার জন্য, অনুগ্রহ করে মাস্টোডন ব্যবহারকারীতে স্যুইচ করুন, অথবা sudo -u mastodon ব্যবহার করে কাজ করুন, অথবা শেষে chown mastodon:mastodon spam_remove.rb ব্যবহার করে মালিকানা অনুমতি সর্বদা মাস্টোডন ব্যবহারকারীর জন্য সেট করে কাজ করুন।
এছাড়াও, আপনার DB এবং মাস্টোডনের ব্যাকআপ নিতে ভুলবেন না।
স্ক্রিপ্টটি wget ব্যবহার করে বা কপি & পেস্ট করে নিন।
আপনি যে মাস্টোডন ডিরেক্টরি ব্যবহার করছেন তার মধ্যে থাকা environment এর পথ পরিবর্তন করুন।
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 এর ক্ষেত্রে:
0 */4 * * * sudo -u mastodon /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb
মাস্টোডন ব্যবহারকারীর ক্ষেত্রে:
0 */4 * * * /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb
উপরোক্ত ক্ষেত্রে, স্ক্রিপ্টটি প্রতি 4 ঘন্টা অন্তর চালানো হবে।
যেসব পোস্টে @ চিহ্ন 5 বা তার বেশি আছে সেগুলো মুছে ফেলা হবে, এমনকি যদি অতীতের সাধারণ পোস্টেও @ চিহ্ন 5টি থাকে তবে সেগুলোও মুছে ফেলা হবে। শনাক্তকরণের শর্ত পরিবর্তন করে এটি সমাধান করুন।
এআই অনুবাদ
নিরাপত্তার জন্য, অনুগ্রহ করে নিশ্চিত করুন যে আপনি মাস্টোডন ব্যবহারকারীতে স্যুইচ করেছেন অথবা অপারেশনটি সম্পাদন করতে sudo -u mastodon ব্যবহার করেছেন। সবশেষে, নিশ্চিত করুন যে আপনি সর্বদা chown mastodon:mastodon spam_remove.rb চালিয়ে মাস্টোডন ব্যবহারকারীর জন্য মালিকানা অনুমতি সেট করে অপারেশনটি সম্পাদন করেছেন। এছাড়াও, এগিয়ে যাওয়ার আগে আপনার DB এবং মাস্টোডনের ব্যাকআপ নিতে ভুলবেন না।
wget ব্যবহার করে স্ক্রিপ্টটি আনুন অথবা কপি & পেস্ট করুন।
আপনি যে মাস্টোডন ডিরেক্টরি ব্যবহার করছেন তার মধ্যে থাকা environment এর পথ পরিবর্তন করুন।
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 ব্যবহার করে এটি নিয়মিত চালানোর জন্য সময়সূচী করুন। (রুট ক্রনট্যাব)
0 */4 * * * sudo -u mastodon /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb
মাস্টোডন ব্যবহারকারীর ক্রনট্যাবের জন্য
0 */4 * * * /your/which/ruby/path/shims/ruby /your/file/path/spam_block.rb
উপরোক্ত উদাহরণে, স্ক্রিপ্টটি প্রতি 4 ঘন্টা অন্তর চালানো হবে।
যেসব পোস্টে পাঁচ বা তার বেশি @ চিহ্ন আছে সেগুলো মুছে ফেলা হবে, এমনকি যদি অতীতের সাধারণ পোস্টেও পাঁচটি @ চিহ্ন থাকে তবে সেগুলোও মুছে ফেলা হবে। সেই অনুযায়ী শনাক্তকরণের মানদণ্ড সামঞ্জস্য করুন।