diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index 9187fce9c..02c35d329 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -10,4 +10,8 @@ class ReportsController < ApplicationController def contributors @report = Reports::Contributors.new end + + def uploads + @report = Reports::Uploads.new(params[:min_date], params[:max_date], params[:queries]) + end end diff --git a/app/logical/reports/uploads.rb b/app/logical/reports/uploads.rb new file mode 100644 index 000000000..6ee484eb8 --- /dev/null +++ b/app/logical/reports/uploads.rb @@ -0,0 +1,26 @@ +module Reports + class Uploads + attr_reader :min_date, :max_date, :queries + + def initialize(min_date, max_date, queries) + if min_date.present? + @min_date = min_date + else + @min_date = 30.days.ago.to_date + end + + if max_date.present? + @max_date = max_date + else + @max_date = Date.today + end + + @queries = queries.to_s.split(/,\s*/).join(",") + end + + def generate_sig + digest = OpenSSL::Digest.new("sha256") + OpenSSL::HMAC.hexdigest(digest, Danbooru.config.shared_remote_key, "#{min_date},#{max_date},#{queries}") + end + end +end diff --git a/app/views/reports/uploads.html.erb b/app/views/reports/uploads.html.erb new file mode 100644 index 000000000..97e49dd4a --- /dev/null +++ b/app/views/reports/uploads.html.erb @@ -0,0 +1,33 @@ +