add targeted post down voting report, add delayed job plugin to disable statement timeout
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
class ReportsController < ApplicationController
|
class ReportsController < ApplicationController
|
||||||
before_filter :member_only, :except => [:upload_tags]
|
before_filter :member_only, :except => [:upload_tags]
|
||||||
before_filter :gold_only, :only => [:similar_users]
|
before_filter :gold_only, :only => [:similar_users]
|
||||||
before_filter :moderator_only, :only => [:post_versions, :post_versions_create]
|
before_filter :moderator_only, :only => [:post_versions, :post_versions_create, :down_voting_post_report, :down_voting_post_report_create]
|
||||||
|
|
||||||
def uploads
|
def uploads
|
||||||
@report = Reports::Uploads.new(params[:min_date], params[:max_date], params[:queries])
|
@report = Reports::Uploads.new(params[:min_date], params[:max_date], params[:queries])
|
||||||
@@ -23,4 +23,16 @@ class ReportsController < ApplicationController
|
|||||||
@user = User.find(params[:user_id])
|
@user = User.find(params[:user_id])
|
||||||
@upload_reports = Reports::UploadTags.includes(versions: { post: :versions }).for_user(params[:user_id]).order("id desc").paginate(params[:page], :limit => params[:limit])
|
@upload_reports = Reports::UploadTags.includes(versions: { post: :versions }).for_user(params[:user_id]).order("id desc").paginate(params[:page], :limit => params[:limit])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def down_voting_post
|
||||||
|
end
|
||||||
|
|
||||||
|
def down_voting_post_create
|
||||||
|
user_id = CurrentUser.id
|
||||||
|
post_id = params[:post_id].to_i
|
||||||
|
sqs = SqsService.new(Danbooru.config.aws_sqs_async_reports)
|
||||||
|
sqs.send_message("targetedpostdownvoting-#{user_id}-#{post_id}")
|
||||||
|
flash[:notice] = "You will be messaged when the report has finished generating"
|
||||||
|
redirect_to reports_down_voting_post_path
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -56,6 +56,10 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<li><%= link_to "Replace Image", new_post_replacement_path(:post_id => post.id), :id => "replace-image" %></li>
|
<li><%= link_to "Replace Image", new_post_replacement_path(:post_id => post.id), :id => "replace-image" %></li>
|
||||||
|
|
||||||
|
<% if CurrentUser.is_moderator? %>
|
||||||
|
<li><%= link_to "Down vote report", reports_down_voting_post_path(post_id: post.id) %></li>
|
||||||
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
17
app/views/reports/down_voting_post.html.erb
Normal file
17
app/views/reports/down_voting_post.html.erb
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<div id="c-reports">
|
||||||
|
<div id="a-down-voting-post-report">
|
||||||
|
<h1>Down Voting Post Report</h1>
|
||||||
|
|
||||||
|
<p>This report uses stastistical analysis to determine if a user's uploads are being targeted by an attacker. It will take some time to generate so you will receive a DMail with the results when it finishes.</p>
|
||||||
|
|
||||||
|
<%= form_tag(reports_down_voting_post_create_path) do %>
|
||||||
|
<%= hidden_field_tag "post_id", params[:post_id] %>
|
||||||
|
<%= submit_tag "Build" %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% content_for(:page_title) do %>
|
||||||
|
Down Voting Post Report - <%= Danbooru.config.app_name %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
@@ -1,2 +1,13 @@
|
|||||||
|
require 'delayed/plugin'
|
||||||
|
|
||||||
|
class DelayedJobTimeoutPlugin < ::Delayed::Plugin
|
||||||
|
callbacks do |lifecycle|
|
||||||
|
lifecycle.before(:execute) do |job|
|
||||||
|
job.class.connection.execute "set statement_timeout = 0"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Delayed::Worker.default_queue_name = "default"
|
Delayed::Worker.default_queue_name = "default"
|
||||||
Delayed::Worker.destroy_failed_jobs = false
|
Delayed::Worker.destroy_failed_jobs = false
|
||||||
|
Delayed::Worker.plugins << DelayedJobTimeoutPlugin
|
||||||
|
|||||||
@@ -243,6 +243,8 @@ Rails.application.routes.draw do
|
|||||||
get "reports/upload_tags" => "reports#upload_tags"
|
get "reports/upload_tags" => "reports#upload_tags"
|
||||||
get "reports/post_versions" => "reports#post_versions"
|
get "reports/post_versions" => "reports#post_versions"
|
||||||
post "reports/post_versions_create" => "reports#post_versions_create"
|
post "reports/post_versions_create" => "reports#post_versions_create"
|
||||||
|
get "reports/down_voting_post" => "reports#down_voting_post"
|
||||||
|
post "reports/down_voting_post_create" => "reports#down_voting_post_create"
|
||||||
resources :saved_searches, :except => [:show] do
|
resources :saved_searches, :except => [:show] do
|
||||||
collection do
|
collection do
|
||||||
get :labels
|
get :labels
|
||||||
|
|||||||
@@ -2,4 +2,5 @@
|
|||||||
|
|
||||||
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
|
||||||
require 'delayed/command'
|
require 'delayed/command'
|
||||||
|
Delayed::Job.connection.execute "set statement_timeout=0"
|
||||||
Delayed::Command.new(ARGV).daemonize
|
Delayed::Command.new(ARGV).daemonize
|
||||||
|
|||||||
Reference in New Issue
Block a user