From 6e76cbb0e41a9fc8c79989fe919071e2f9aac450 Mon Sep 17 00:00:00 2001 From: Sho Kusano Date: Sun, 18 Feb 2024 20:49:29 +0900 Subject: [PATCH] Reject spammer --- app/lib/activitypub/activity/create.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 58d094023..0ddd798a5 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -84,8 +84,16 @@ class ActivityPub::Activity::Create < ActivityPub::Activity ApplicationRecord.transaction do @status = Status.create!(@params) attach_tags(@status) + + # Delete status on zero follower user and nearly created account with include some replies + if like_a_spam? + @status = nil + raise ActiveRecord::Rollback + end end + return if @status.nil? + resolve_thread(@status) fetch_replies(@status) distribute @@ -445,4 +453,12 @@ class ActivityPub::Activity::Create < ActivityPub::Activity rescue nil end + def like_a_spam? + ( + !@status.account.local? && + @status.account.followers_count.zero? && + @status.account.created_at > 1.day.ago && + @mentions.count >= 2 + ) + end end