mirror of
https://github.com/neocities/neocities.git
synced 2025-07-21 18:16:07 +02:00
limit on comments per day to prevent spam
This commit is contained in:
parent
92abcd6a49
commit
d220d73b0c
2 changed files with 17 additions and 1 deletions
|
@ -164,6 +164,8 @@ class Site < Sequel::Model
|
|||
|
||||
MAXIMUM_EMAIL_CONFIRMATIONS = 20
|
||||
|
||||
MAX_COMMENTS_PER_DAY = 10
|
||||
|
||||
many_to_many :tags
|
||||
|
||||
one_to_many :profile_comments
|
||||
|
@ -503,6 +505,8 @@ class Site < Sequel::Model
|
|||
set commenting_allowed: true
|
||||
save_changes validate: false
|
||||
return true
|
||||
else
|
||||
return false if owner.commenting_too_much?
|
||||
end
|
||||
|
||||
if (account_sites_events_dataset.exclude(site_change_id: nil).count >= COMMENTING_ALLOWED_UPDATED_COUNT || (created_at < Date.new(2014, 12, 25).to_time && changed_count >= COMMENTING_ALLOWED_UPDATED_COUNT )) &&
|
||||
|
@ -515,6 +519,14 @@ class Site < Sequel::Model
|
|||
false
|
||||
end
|
||||
|
||||
def commenting_too_much?
|
||||
recent_comments = Comment.where(actioning_site_id: owner.id).where{created_at > 24.hours.ago}.count
|
||||
recent_profile_comments = owner.profile_commentings_dataset.where{created_at > 24.hours.ago}.count
|
||||
|
||||
return true if (recent_comments + recent_profile_comments) > MAX_COMMENTS_PER_DAY
|
||||
false
|
||||
end
|
||||
|
||||
def blocking_site_ids
|
||||
@blocking_site_ids ||= blockings_dataset.select(:site_id).all.collect {|s| s.site_id}
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue