From 12e4a82db33535cd7464f8a21278f9ffbe17109d Mon Sep 17 00:00:00 2001 From: r888888888 Date: Tue, 28 Feb 2017 16:28:58 -0800 Subject: [PATCH] fix upload tags report --- app/controllers/reports_controller.rb | 1 - app/logical/reports/upload_tags.rb | 69 +++++++++++++++++++++++++++ app/models/amazon_backup.rb | 4 +- app/models/upload_tags_report.rb | 67 -------------------------- 4 files changed, 71 insertions(+), 70 deletions(-) create mode 100644 app/logical/reports/upload_tags.rb delete mode 100644 app/models/upload_tags_report.rb diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index bd9d89166..164dd2424 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -22,6 +22,5 @@ class ReportsController < ApplicationController def upload_tags @user = User.find(params[:user_id]) @upload_reports = Reports::UploadTags.for_user(params[:user_id]).order("id desc").paginate(params[:page], :limit => params[:limit]) - respond_with(@upload_reports) end end diff --git a/app/logical/reports/upload_tags.rb b/app/logical/reports/upload_tags.rb new file mode 100644 index 000000000..72867c29d --- /dev/null +++ b/app/logical/reports/upload_tags.rb @@ -0,0 +1,69 @@ +module Reports + class UploadTags < ::Post + + def readonly? + true + end + + module ApiMethods + + def as_json(options = {}) + options ||= {} + options[:only] ||= [:id] + super(options) + end + + def to_xml(options = {}, &block) + options ||= {} + options[:only] ||= [:id, :uploader_id] + super(options, &block) + end + + def method_attributes + [:uploader_tags, :added_tags, :removed_tags] + end + + end + + include ApiMethods + + def uploader_tags_array + @uploader_tags ||= begin + added_tags = [] + PostArchive.where(post_id: id, updater_id: uploader_id).each do |version| + added_tags += version.changes[:added_tags] + end + added_tags.uniq.sort + end + end + + def current_tags_array + latest_tags = tag_array + latest_tags << "rating:#{rating}" if rating.present? + latest_tags << "parent:#{parent_id}" if parent_id.present? + latest_tags << "source:#{source}" if source.present? + latest_tags + end + + def added_tags_array + current_tags_array - uploader_tags_array + end + + def removed_tags_array + uploader_tags_array - current_tags_array + end + + def uploader_tags + uploader_tags_array.join(' ') + end + + def added_tags + added_tags_array.join(' ') + end + + def removed_tags + removed_tags_array.join(' ') + end + + end +end diff --git a/app/models/amazon_backup.rb b/app/models/amazon_backup.rb index d7835fe70..53d319b6f 100644 --- a/app/models/amazon_backup.rb +++ b/app/models/amazon_backup.rb @@ -12,7 +12,7 @@ class AmazonBackup < ActiveRecord::Base first.update_column(:last_id, new_id) end - def self.restore_from_glacier(min_id, max_id) + def self.restore_from_glacier(min_id = 1_431_595, max_id = 2_000_000) credentials = Aws::Credentials.new(Danbooru.config.aws_access_key_id, Danbooru.config.aws_secret_access_key) Aws.config.update({ region: "us-east-1", @@ -73,7 +73,7 @@ class AmazonBackup < ActiveRecord::Base end end - def self.copy_to_standard(min_id, max_id) + def self.copy_to_standard(min_id = 1_191_247, max_id = 2_000_000) credentials = Aws::Credentials.new(Danbooru.config.aws_access_key_id, Danbooru.config.aws_secret_access_key) Aws.config.update({ region: "us-east-1", diff --git a/app/models/upload_tags_report.rb b/app/models/upload_tags_report.rb deleted file mode 100644 index 2bb201706..000000000 --- a/app/models/upload_tags_report.rb +++ /dev/null @@ -1,67 +0,0 @@ -class UploadTagsReport < Post - - def readonly? - true - end - - module ApiMethods - - def as_json(options = {}) - options ||= {} - options[:only] ||= [:id] - super(options) - end - - def to_xml(options = {}, &block) - options ||= {} - options[:only] ||= [:id, :uploader_id] - super(options, &block) - end - - def method_attributes - [:uploader_tags, :added_tags, :removed_tags] - end - - end - - include ApiMethods - - def uploader_tags_array - @uploader_tags ||= begin - added_tags = [] - PostArchive.where(post_id: id, updater_id: uploader_id).each do |version| - added_tags += version.changes[:added_tags] - end - added_tags.uniq.sort - end - end - - def current_tags_array - latest_tags = tag_array - latest_tags << "rating:#{rating}" if rating.present? - latest_tags << "parent:#{parent_id}" if parent_id.present? - latest_tags << "source:#{source}" if source.present? - latest_tags - end - - def added_tags_array - current_tags_array - uploader_tags_array - end - - def removed_tags_array - uploader_tags_array - current_tags_array - end - - def uploader_tags - uploader_tags_array.join(' ') - end - - def added_tags - added_tags_array.join(' ') - end - - def removed_tags - removed_tags_array.join(' ') - end - -end \ No newline at end of file