X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/3c4f32a76075e91d60efd82c91bd64ebff5b6082..63c82ed72f133d9f670c0b1bb03ffd44095f6867:/app/models/user.rb diff --git a/app/models/user.rb b/app/models/user.rb index 42fa40e53..3dbaa688c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -296,6 +296,24 @@ class User < ApplicationRecord digest.hexdigest end + def max_messages_per_hour + account_age_in_seconds = Time.now.utc - creation_time + account_age_in_hours = account_age_in_seconds / 3600 + recent_messages = messages.where("sent_on >= ?", Time.now.utc - 3600).count + active_reports = issues.with_status(:open).sum(:reports_count) + max_messages = account_age_in_hours.ceil + recent_messages - active_reports * 10 + max_messages.clamp(0, Settings.max_messages_per_hour) + end + + def max_friends_per_hour + account_age_in_seconds = Time.now.utc - creation_time + account_age_in_hours = account_age_in_seconds / 3600 + recent_friends = Friendship.where(:befriendee => self).where("created_at >= ?", Time.now.utc - 3600).count + active_reports = issues.with_status(:open).sum(:reports_count) + max_friends = account_age_in_hours.ceil + recent_friends - active_reports * 10 + max_friends.clamp(0, Settings.max_friends_per_hour) + end + private def set_defaults