]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/user.rb
Merge remote-tracking branch 'upstream/pull/5694'
[rails.git] / app / models / user.rb
index ec3883bc6f0fd9cde8aaf91334eae86af05567b2..8d061e26bb626cd7c1a42fe9d6c6fb8e72e044fe 100644 (file)
@@ -282,8 +282,8 @@ class User < ApplicationRecord
     OSM::GreatCircle.new(home_lat, home_lon).distance(nearby_user.home_lat, nearby_user.home_lon)
   end
 
-  def friends_with?(new_friend)
-    follows.exists?(:following => new_friend)
+  def follows?(user)
+    follows.exists?(:following => user)
   end
 
   ##
@@ -359,11 +359,13 @@ class User < ApplicationRecord
     trace_score = traces.size * 50
     diary_entry_score = diary_entries.visible.inject(0) { |acc, elem| acc + elem.body.spam_score }
     diary_comment_score = diary_comments.visible.inject(0) { |acc, elem| acc + elem.body.spam_score }
+    report_score = Report.where(:category => "spam", :issue => issues.with_status("open")).distinct.count(:user_id) * 20
 
     score = description.spam_score / 4.0
     score += diary_entries.visible.where("created_at > ?", 1.day.ago).count * 10
     score += diary_entry_score / diary_entries.visible.length unless diary_entries.visible.empty?
     score += diary_comment_score / diary_comments.visible.length unless diary_comments.visible.empty?
+    score += report_score
     score -= changeset_score
     score -= trace_score
 
@@ -411,12 +413,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