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
|
||||
before_filter :member_only, :except => [:upload_tags]
|
||||
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
|
||||
@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])
|
||||
@upload_reports = Reports::UploadTags.includes(versions: { post: :versions }).for_user(params[:user_id]).order("id desc").paginate(params[:page], :limit => params[:limit])
|
||||
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
|
||||
|
||||
@@ -56,6 +56,10 @@
|
||||
<% end %>
|
||||
|
||||
<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 %>
|
||||
|
||||
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.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/post_versions" => "reports#post_versions"
|
||||
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
|
||||
collection do
|
||||
get :labels
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
|
||||
require 'delayed/command'
|
||||
Delayed::Job.connection.execute "set statement_timeout=0"
|
||||
Delayed::Command.new(ARGV).daemonize
|
||||
|
||||
Reference in New Issue
Block a user