flags: remove uploader targeting restrictions.
Remove restrictions against flagging too many posts by the same uploader. This had problems with preventing legitimate flags in some cases, particularly with old legacy content. This will be policed manually instead.
This commit is contained in:
@@ -1,44 +0,0 @@
|
||||
module Reports
|
||||
class PostFlags
|
||||
attr_reader :user_id, :date_range
|
||||
|
||||
def initialize(user_id:, date_range:)
|
||||
@user_id = user_id
|
||||
@date_range = date_range
|
||||
end
|
||||
|
||||
def candidates
|
||||
PostFlag.where("posts.uploader_id = ? and posts.created_at >= ? and post_flags.creator_id <> ?", user_id, date_range, User.system.id).joins(:post).pluck("post_flags.creator_id").uniq
|
||||
end
|
||||
|
||||
def attackers
|
||||
matches = []
|
||||
|
||||
build.each do |flagger, uploaders|
|
||||
if uploaders[user_id].to_i > 50
|
||||
matches << flagger
|
||||
end
|
||||
end
|
||||
|
||||
return matches
|
||||
end
|
||||
|
||||
def build
|
||||
flaggers = Hash.new {|h, k| h[k] = {}}
|
||||
|
||||
candidates.each do |candidate|
|
||||
PostFlag.joins(:post).where("post_flags.creator_id = ? and posts.created_at >= ?", candidate, date_range).select("posts.uploader_id").group("posts.uploader_id").having("count(*) > 1").count.each do |uploader_id, count|
|
||||
flaggers[candidate][uploader_id] = count
|
||||
end
|
||||
|
||||
sum = flaggers[candidate].values.sum
|
||||
|
||||
flaggers[candidate].each_key do |user_id|
|
||||
flaggers[candidate][user_id] = DanbooruMath.ci_lower_bound(flaggers[candidate][user_id], sum)
|
||||
end
|
||||
end
|
||||
|
||||
return flaggers
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user