diff --git a/models/site.rb b/models/site.rb index 8791b5f9..2f09c110 100644 --- a/models/site.rb +++ b/models/site.rb @@ -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 diff --git a/views/site.erb b/views/site.erb index 0c47c494..a619777d 100644 --- a/views/site.erb +++ b/views/site.erb @@ -83,7 +83,11 @@ <% unless current_site.commenting_allowed? %>

- To prevent spam, you cannot comment until you have updated your site <%= Site::COMMENTING_ALLOWED_UPDATED_COUNT %> times (on <%= Site::COMMENTING_ALLOWED_UPDATED_COUNT %> separate days), and your account is one week old. While waiting, now is a great time to start building your awesome site! + <% if current_site.commenting_too_much? %> + To prevent spam, we have a <%= Site::MAX_COMMENTS_PER_DAY %> comment per day limit. Please try commenting again tomorrow! + <% else %> + To prevent spam, you cannot comment until you have updated your site <%= Site::COMMENTING_ALLOWED_UPDATED_COUNT %> times (on <%= Site::COMMENTING_ALLOWED_UPDATED_COUNT %> separate days), and your account is one week old. While waiting, now is a great time to start building your awesome site! + <% end %>

<% end %>