From 5eb4c7c0d167f8a81d4b328c0ac4641ec2b61740 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 17 Jan 2025 22:56:48 +0000 Subject: [PATCH] Rename friends rate limit as follows --- app/controllers/follows_controller.rb | 2 +- app/models/user.rb | 8 ++++---- config/settings.yml | 4 ++-- test/system/follows_test.rb | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/controllers/follows_controller.rb b/app/controllers/follows_controller.rb index 0d8ee272a..39d6191cd 100644 --- a/app/controllers/follows_controller.rb +++ b/app/controllers/follows_controller.rb @@ -22,7 +22,7 @@ class FollowsController < ApplicationController follow.following = @friend if current_user.follows?(@friend) flash[:warning] = t ".already_followed", :name => @friend.display_name - elsif current_user.follows.where(:created_at => Time.now.utc - 1.hour..).count >= current_user.max_friends_per_hour + elsif current_user.follows.where(:created_at => Time.now.utc - 1.hour..).count >= current_user.max_follows_per_hour flash[:error] = t ".limit_exceeded" elsif follow.save flash[:notice] = t ".success", :name => @friend.display_name diff --git a/app/models/user.rb b/app/models/user.rb index 92664a763..16f733c88 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -411,12 +411,12 @@ class User < ApplicationRecord max_messages.clamp(0, Settings.max_messages_per_hour) end - def max_friends_per_hour + def max_follows_per_hour account_age_in_seconds = Time.now.utc - created_at account_age_in_hours = account_age_in_seconds / 3600 - recent_friends = Follow.where(:following => self).where(:created_at => Time.now.utc - 3600..).count - max_friends = account_age_in_hours.ceil + recent_friends - (active_reports * 10) - max_friends.clamp(0, Settings.max_friends_per_hour) + recent_follows = Follow.where(:following => self).where(:created_at => Time.now.utc - 3600..).count + max_follows = account_age_in_hours.ceil + recent_follows - (active_reports * 10) + max_follows.clamp(0, Settings.max_follows_per_hour) end def max_changeset_comments_per_hour diff --git a/config/settings.yml b/config/settings.yml index db871775e..c79199145 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -63,8 +63,8 @@ max_messages_per_hour: 60 default_message_query_limit: 100 # Maximum number of messages returned by inbox and outbox message api max_message_query_limit: 100 -# Rate limit for friending -max_friends_per_hour: 60 +# Rate limit for following +max_follows_per_hour: 60 # Rate limit for changeset comments min_changeset_comments_per_hour: 1 initial_changeset_comments_per_hour: 6 diff --git a/test/system/follows_test.rb b/test/system/follows_test.rb index f9f00ff7f..176a59428 100644 --- a/test/system/follows_test.rb +++ b/test/system/follows_test.rb @@ -6,7 +6,7 @@ class FollowsTest < ApplicationSystemTestCase sign_in_as create(:user) - with_settings(:max_friends_per_hour => 0) do + with_settings(:max_follows_per_hour => 0) do visit user_path(following) assert_link "Follow" -- 2.39.5