implement post change report
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
require "big_query"
|
||||
|
||||
module BigQuery
|
||||
module GoogleBigQuery
|
||||
class Base
|
||||
def query(q)
|
||||
client.query(q)
|
||||
@@ -20,7 +20,7 @@ module BigQuery
|
||||
|
||||
def client_options
|
||||
@_client_options ||= {
|
||||
google_key_path: "/var/www/danbooru/shared/google-key.json",
|
||||
google_key_path: Danbooru.config.google_api_json_key_path,
|
||||
google_data_set: "danbooru_#{Rails.env}"
|
||||
}
|
||||
end
|
||||
@@ -28,5 +28,9 @@ module BigQuery
|
||||
def google_config
|
||||
@_google_config ||= JSON.parse(File.read(client_options[:google_key_path]))
|
||||
end
|
||||
|
||||
def data_set
|
||||
client_options[:google_data_set]
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,15 +1,15 @@
|
||||
module BigQuery
|
||||
module GoogleBigQuery
|
||||
class PostVersion < Base
|
||||
def find_removed(tag, limit = 1_000)
|
||||
tag = escape(tag)
|
||||
limit = limit.to_i
|
||||
query("select id, post_id, updated_at, updater_id, updater_ip_addr, tags, added_tags, removed_tags, parent_id, rating, source from [danbooru_#{Rails.env}.post_versions] where regexp_match(removed_tags, \"(?:^| )#{tag}(?:$| )\") order by updated_at desc limit #{limit}")
|
||||
query("select id, post_id, updated_at, updater_id, updater_ip_addr, tags, added_tags, removed_tags, parent_id, rating, source from [#{data_set}.post_versions] where regexp_match(removed_tags, \"(?:^| )#{tag}(?:$| )\") order by updated_at desc limit #{limit}")
|
||||
end
|
||||
|
||||
def find_added(tag, limit = 1_000)
|
||||
tag = escape(tag)
|
||||
limit = limit.to_i
|
||||
query("select id, post_id, updated_at, updater_id, updater_ip_addr, tags, added_tags, removed_tags, parent_id, rating, source from [danbooru_#{Rails.env}.post_versions] where regexp_match(added_tags, \"(?:^| )#{tag}(?:$| )\") order by updated_at desc limit #{limit}")
|
||||
query("select id, post_id, updated_at, updater_id, updater_ip_addr, tags, added_tags, removed_tags, parent_id, rating, source from [#{data_set}.post_versions] where regexp_match(added_tags, \"(?:^| )#{tag}(?:$| )\") order by updated_at desc limit #{limit}")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -6,13 +6,13 @@ module Reports
|
||||
@tag = tag
|
||||
|
||||
if query_type == "added"
|
||||
@query = BigQuery::PostVersion.new.find_added(tag)
|
||||
@query = GoogleBigQuery::PostVersion.new.find_added(tag)
|
||||
else
|
||||
@query = BigQuery::PostVersion.new.find_removed(tag)
|
||||
@query = GoogleBigQuery::PostVersion.new.find_removed(tag)
|
||||
end
|
||||
end
|
||||
|
||||
def mock_version(raw)
|
||||
def mock_version(row)
|
||||
PostVersion.new.tap do |x|
|
||||
x.id = row["f"][0]["v"]
|
||||
x.post_id = row["f"][1]["v"]
|
||||
|
||||
@@ -50,4 +50,3 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<%= numbered_paginator(post_versions) %>
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<%= render "post_sets/blank" %>
|
||||
<% else %>
|
||||
<%= render "listing", :post_versions => @post_versions %>
|
||||
|
||||
<%= numbered_paginator(@post_versions) %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<%= text_field_tag "tag" %>
|
||||
<%= select_tag "type", options_for_select(%w(added removed)) %>
|
||||
</div>
|
||||
<%= submit_tag "Submit", :data => { :disable_with => "Submitting..." } %>
|
||||
<%= submit_tag "Submit" %>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div id="c-reports">
|
||||
<div id="a-post-versions">
|
||||
<div id="c-post-versions">
|
||||
<div id="a-index">
|
||||
<h1>Post Changes Report</h1>
|
||||
|
||||
<p>Only the 1,000 most recent changes are displayed.</p>
|
||||
|
||||
@@ -421,6 +421,10 @@ module Danbooru
|
||||
def google_api_project
|
||||
end
|
||||
|
||||
def google_api_json_key_path
|
||||
"/var/www/danbooru/shared/config/google-key.json"
|
||||
end
|
||||
|
||||
# AWS config options
|
||||
def aws_access_key_id
|
||||
nil
|
||||
|
||||
Reference in New Issue
Block a user