Reject spammer

This commit is contained in:
Sho Kusano 2024-02-18 20:49:29 +09:00 committed by YoheiZuho
parent 1b06c5befc
commit 6e76cbb0e4

View File

@ -84,8 +84,16 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
ApplicationRecord.transaction do ApplicationRecord.transaction do
@status = Status.create!(@params) @status = Status.create!(@params)
attach_tags(@status) 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 end
return if @status.nil?
resolve_thread(@status) resolve_thread(@status)
fetch_replies(@status) fetch_replies(@status)
distribute distribute
@ -445,4 +453,12 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
rescue rescue
nil nil
end 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 end