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