* refactor aws config options
* fix aws calls in savedsearch * remove unused scripts
This commit is contained in:
@@ -4,7 +4,7 @@ class SavedSearchesController < ApplicationController
|
||||
|
||||
def index
|
||||
if Danbooru.config.listbooru_server
|
||||
SavedSearch.delay(:queue => "default").refresh_listbooru(CurrentUser.id)
|
||||
SavedSearch.refresh_listbooru(CurrentUser.id)
|
||||
end
|
||||
|
||||
@saved_searches = saved_searches.order("tag_query")
|
||||
|
||||
33
app/logical/sqs_service.rb
Normal file
33
app/logical/sqs_service.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
class SqsService
|
||||
attr_reader :url
|
||||
|
||||
def initialize(url)
|
||||
@url = url
|
||||
end
|
||||
|
||||
def send_message(string, options = {})
|
||||
return unless Danbooru.config.aws_sqs_enabled?
|
||||
|
||||
sqs.send_message(
|
||||
options.merge(
|
||||
message_body: string,
|
||||
queue_url: url
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sqs
|
||||
@sqs ||= begin
|
||||
credentials = Aws::Credentials.new(
|
||||
Danbooru.config.aws_access_key_id,
|
||||
Danbooru.config.aws_secret_access_key
|
||||
)
|
||||
Aws::SQS::Client.new(
|
||||
credentials: credentials,
|
||||
region: Danbooru.config.aws_sqs_region
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -13,14 +13,16 @@ class AmazonBackup < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def self.execute
|
||||
return false unless Danbooru.config.aws_s3_enabled?
|
||||
|
||||
last_id = AmazonBackup.last_id
|
||||
credentials = Aws::Credentials.new(Danbooru.config.amazon_s3_access_key_id, Danbooru.config.amazon_s3_secret_access_key)
|
||||
credentials = Aws::Credentials.new(Danbooru.config.aws_access_key_id, Danbooru.config.aws_secret_access_key)
|
||||
Aws.config.update({
|
||||
region: "us-east-1",
|
||||
credentials: credentials
|
||||
})
|
||||
client = Aws::S3::Client.new
|
||||
bucket = Danbooru.config.amazon_s3_bucket_name
|
||||
bucket = Danbooru.config.aws_s3_bucket_name
|
||||
|
||||
Post.where("id > ?", last_id).limit(1000).order("id").each do |post|
|
||||
if File.exists?(post.file_path)
|
||||
|
||||
@@ -3,87 +3,48 @@ class SavedSearch < ActiveRecord::Base
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
module ClassMethods
|
||||
def posts_search_available?
|
||||
Danbooru.config.listbooru_server.present? && CurrentUser.is_gold?
|
||||
end
|
||||
|
||||
def refresh_listbooru(user_id)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
user = User.find(user_id)
|
||||
return unless user.is_gold?
|
||||
|
||||
params = {
|
||||
:user_id => user_id,
|
||||
:key => Danbooru.config.listbooru_auth_key
|
||||
}
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/users")
|
||||
uri.query = URI.encode_www_form(params)
|
||||
Net::HTTP.get_response(uri)
|
||||
return false unless Danbooru.config.listbooru_enabled?
|
||||
|
||||
sqs = SqsService.new(Danbooru.config.aws_sqs_queue_url)
|
||||
sqs.send_message("refresh\n#{user_id}")
|
||||
end
|
||||
|
||||
def reset_listbooru(user_id)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
||||
Net::HTTP.start(uri.host, uri.port) do |http|
|
||||
req = Net::HTTP::Delete.new("/searches")
|
||||
req.set_form_data("user_id" => user_id, "all" => "true", "key" => Danbooru.config.listbooru_auth_key)
|
||||
http.request(req)
|
||||
end
|
||||
return false unless Danbooru.config.listbooru_enabled?
|
||||
|
||||
sqs = SqsService.new(Danbooru.config.aws_sqs_queue_url)
|
||||
user = User.find(user_id)
|
||||
|
||||
sqs.send_message("delete\n#{user_id}\nall\n")
|
||||
|
||||
user.saved_searches.each do |saved_search|
|
||||
update_listbooru_on_create(user_id, saved_search.category, saved_search.tag_query)
|
||||
sqs.send_message("create\n#{user_id}\n#{saved_search.category}\n#{saved_search.tag_query}", :delay_seconds => 30)
|
||||
end
|
||||
end
|
||||
|
||||
def update_listbooru_on_create(user_id, name, query)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
||||
Net::HTTP.post_form(uri, {"user_id" => user_id, "name" => name.try(:downcase), "query" => query, "key" => Danbooru.config.listbooru_auth_key})
|
||||
end
|
||||
|
||||
def update_listbooru_on_destroy(user_id, name, query)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
||||
Net::HTTP.start(uri.host, uri.port) do |http|
|
||||
req = Net::HTTP::Delete.new("/searches")
|
||||
req.set_form_data("user_id" => user_id, "name" => name.try(:downcase), "query" => query, "key" => Danbooru.config.listbooru_auth_key)
|
||||
http.request(req)
|
||||
end
|
||||
end
|
||||
|
||||
def update_listbooru_on_update(user_id, old_name, old_query, new_name, new_query)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
||||
Net::HTTP.start(uri.host, uri.port) do |http|
|
||||
req = Net::HTTP::Put.new("/searches")
|
||||
req.set_form_data(
|
||||
"user_id" => user_id,
|
||||
"old_name" => old_name.try(:downcase),
|
||||
"old_query" => old_query,
|
||||
"new_name" => new_name.try(:downcase),
|
||||
"new_query" => new_query,
|
||||
"key" => Danbooru.config.listbooru_auth_key
|
||||
)
|
||||
http.request(req)
|
||||
end
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
def update_listbooru_on_create
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
SavedSearch.delay(:queue => "default").update_listbooru_on_create(user_id, category, tag_query)
|
||||
return false unless Danbooru.config.listbooru_enabled?
|
||||
|
||||
sqs = SqsService.new(Danbooru.config.aws_sqs_queue_url)
|
||||
sqs.send_message("create\n#{user_id}\n#{category}\n#{tag_query}")
|
||||
end
|
||||
|
||||
def update_listbooru_on_destroy
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
SavedSearch.delay(:queue => "default").update_listbooru_on_destroy(user_id, category, tag_query)
|
||||
return false unless Danbooru.config.listbooru_enabled?
|
||||
|
||||
sqs = SqsService.new(Danbooru.config.aws_sqs_queue_url)
|
||||
sqs.send_message("delete\n#{user_id}\n#{category}\n#{tag_query}")
|
||||
end
|
||||
|
||||
def update_listbooru_on_update
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
SavedSearch.delay(:queue => "default").update_listbooru_on_update(user_id, category_was, tag_query_was, category, tag_query)
|
||||
return false unless Danbooru.config.listbooru_enabled?
|
||||
|
||||
sqs = SqsService.new(Danbooru.config.aws_sqs_queue_url)
|
||||
sqs.send_message("update\n#{user_id}\n#{category_was}\n#{tag_query_was}\n#{category}\n#{tag_query}")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -110,6 +71,8 @@ class SavedSearch < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def self.post_ids(user_id, name = nil)
|
||||
return [] unless Danbooru.config.listbooru_enabled?
|
||||
|
||||
params = {
|
||||
"key" => Danbooru.config.listbooru_auth_key,
|
||||
"user_id" => user_id,
|
||||
|
||||
Reference in New Issue
Block a user