Revert "fixes #2530: improved ip addr search"

This reverts commit 1eb2d515fd.

Conflicts:
	app/views/moderator/ip_addrs/index.html.erb
This commit is contained in:
r888888888
2015-10-15 12:12:21 -07:00
parent 821c7bc2a5
commit d8e84a90dc
4 changed files with 7 additions and 54 deletions

View File

@@ -19,46 +19,11 @@ module Moderator
end
end
def find_common_users
user = User.find_by_name(params[:user_name])
ip_addrs = Set.new
user_ids = {}
ip_addrs.merge(find_distinct_ip_addrs("comments", "ip_addr", "creator_id", user.id))
ip_addrs.merge(find_distinct_ip_addrs("post_versions", "updater_ip_addr", "updater_id", user.id))
ip_addrs.merge(find_distinct_ip_addrs("note_versions", "updater_ip_addr", "updater_id", user.id))
ip_addrs.merge(find_distinct_ip_addrs("pool_versions", "updater_ip_addr", "updater_id", user.id))
ip_addrs.merge(find_distinct_ip_addrs("wiki_page_versions", "updater_ip_addr", "updater_id", user.id))
ip_addrs.merge(find_distinct_ip_addrs("dmails", "creator_ip_addr", "from_id", user.id))
ip_addrs.each do |ip_addr|
find_distinct_user_ids(user_ids, "comments", "ip_addr", "creator_id", ip_addrs.to_a)
find_distinct_user_ids(user_ids, "post_versions", "updater_ip_addr", "updater_id", ip_addrs.to_a)
find_distinct_user_ids(user_ids, "note_versions", "updater_ip_addr", "updater_id", ip_addrs.to_a)
find_distinct_user_ids(user_ids, "pool_versions", "updater_ip_addr", "updater_id", ip_addrs.to_a)
find_distinct_user_ids(user_ids, "wiki_page_versions", "updater_ip_addr", "updater_id", ip_addrs.to_a)
find_distinct_user_ids(user_ids, "dmails", "creator_ip_addr", "from_id", ip_addrs.to_a)
end
user_ids
end
private
def select_all_sql(sql, *params)
ActiveRecord::Base.select_all_sql(sql, *params)
end
def find_distinct_ip_addrs(table_name, ip_field_name, user_field_name, user_id)
select_all_sql("select #{ip_field_name} from #{table_name} where updated_at >= ? and #{user_field_name} = ? group by #{ip_field_name}", 3.months.ago, user_id).rows.flatten
end
def find_distinct_user_ids(user_ids, table_name, ip_field_name, user_field_name, ip_addrs)
select_all_sql("select #{user_field_name}, count(*) from #{table_name} where updated_at >= ? and #{ip_field_name} in (?) group by #{user_field_name}", 3.months.ago, ip_addrs).rows.each do |user_id, count|
user_ids[user_id] ||= 0
user_ids[user_id] += count.to_i
end
end
def search_by_ip_addr(ip_addrs)
sums = Hash.new {|h, k| h[k] = 0}

View File

@@ -2,24 +2,11 @@
<div id="a-index">
<h1>IP Addresses</h1>
<p>The following users share IP addresses used by <%= params[:search][:user_name] %>. This searches across comments, post changes, note changes, pool changes, wiki changes, and dmails over the past 3 months.</p>
<table class="striped">
<thead>
<tr>
<th>User</th>
<th>Count</th>
</tr>
</thead>
<tbody>
<% @search.find_common_users.each do |user_id, count| %>
<tr>
<td><%= link_to User.id_to_name(user_id), user_path(user_id) %></td>
<td><%= count %></td>
</tr>
<% end %>
</tbody>
</table>
<% if params[:search][:user_id].present? || params[:search][:user_name].present? %>
<%= render "ip_listing" %>
<% else %>
<%= render "user_listing" %>
<% end %>
</div>
</div>

View File

@@ -4,6 +4,7 @@
<%= form_tag(moderator_ip_addrs_path, :method => :get, :class => "simple_form") do %>
<%= search_field "user_name", :label => "User" %>
<%= search_field "ip_addr", :label => "IP Addr" %>
<%= submit_tag "Search" %>
<% end %>
</div>

View File

@@ -4,7 +4,7 @@ module Danbooru
class Configuration
# The version of this Danbooru.
def version
"2.94.0"
"2.93.0"
end
# The name of this Danbooru.