changes
This commit is contained in:
27
app/models/jobs/backup_to_s3.rb
Normal file
27
app/models/jobs/backup_to_s3.rb
Normal file
@@ -0,0 +1,27 @@
|
||||
module Jobs
|
||||
class BackupToS3 < Struct.new(:last_id)
|
||||
def perform
|
||||
Post.find(:all, :conditions => ["id > ?", last_id], :limit => 200, :order => "id").each do |post|
|
||||
AWS::S3::Base.establish_connection!(:access_key_id => CONFIG["amazon_s3_access_key_id"], :secret_access_key => CONFIG["amazon_s3_secret_access_key"])
|
||||
if File.exists?(post.file_path)
|
||||
base64_md5 = Base64.encode64(Digest::MD5.digest(File.read(post.file_path)))
|
||||
AWS::S3::S3Object.store(post.file_name, open(post.file_path, "rb"), CONFIG["amazon_s3_bucket_name"], "Content-MD5" => base64_md5)
|
||||
end
|
||||
|
||||
if post.image? && File.exists?(post.preview_path)
|
||||
AWS::S3::S3Object.store("preview/#{post.md5}.jpg", open(post.preview_path, "rb"), CONFIG["amazon_s3_bucket_name"])
|
||||
end
|
||||
|
||||
if File.exists?(post.sample_path)
|
||||
AWS::S3::S3Object.store("sample/" + CONFIG["sample_filename_prefix"] + "#{post.md5}.jpg", open(post.sample_path, "rb"), CONFIG["amazon_s3_bucket_name"])
|
||||
end
|
||||
|
||||
self.last_id = post.id
|
||||
end
|
||||
|
||||
Delayed::Job.enqueue(BackupToS3.new(last_id))
|
||||
rescue Exception => x
|
||||
# probably some network error, retry next time
|
||||
end
|
||||
end
|
||||
end
|
||||
7
app/models/jobs/calculate_post_count.rb
Normal file
7
app/models/jobs/calculate_post_count.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
module Jobs
|
||||
class CalculatePostCount < Struct.new(:tag_name)
|
||||
def perform
|
||||
Tag.recalculate_post_count(tag_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
12
app/models/jobs/calculate_related_tags.rb
Normal file
12
app/models/jobs/calculate_related_tags.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
module Jobs
|
||||
class CalculateRelatedTags < Struct.new(:tag_id)
|
||||
def perform
|
||||
tag = Tag.find_by_id(tag_id)
|
||||
|
||||
if tag
|
||||
tag.update_related
|
||||
tag.save
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
13
app/models/jobs/calculate_uploaded_tags.rb
Normal file
13
app/models/jobs/calculate_uploaded_tags.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
module Jobs
|
||||
class CalculateUploadedTags < Struct.new(:user_id)
|
||||
def perform
|
||||
tags = []
|
||||
user = User.find(user_id)
|
||||
CONFIG["tag_types"].values.uniq.each do |tag_type|
|
||||
tags += user.calculate_uploaded_tags(tag_type)
|
||||
end
|
||||
user.update_attribute(:uploaded_tags, tags.join("\n"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
12
app/models/jobs/create_tag_alias.rb
Normal file
12
app/models/jobs/create_tag_alias.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
module Jobs
|
||||
class CreateTagAlias < Struct.new(:antecedent_name, :consequent_name, :creator_id, :creator_ip_addr)
|
||||
def execute
|
||||
TagAlias.create(
|
||||
:antecedent_name => antecedent_name,
|
||||
:consequent_name => consequent_name,
|
||||
:creator_id => creator_id,
|
||||
:creator_ip_addr => creator_ip_addr
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
12
app/models/jobs/create_tag_implication.rb
Normal file
12
app/models/jobs/create_tag_implication.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
module Jobs
|
||||
class CreateTagImplication < Struct.new(:antecedent_name, :consequent_name, :creator_id, :creator_ip_addr)
|
||||
def perform
|
||||
TagImplication.create(
|
||||
:antecedent_name => antecedent_name,
|
||||
:consequent_name => consequent_name,
|
||||
:creator_id => creator_id,
|
||||
:creator_ip_addr => creator_ip_addr
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
13
app/models/jobs/fix_pixiv_uploads.rb
Normal file
13
app/models/jobs/fix_pixiv_uploads.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
module Jobs
|
||||
class FixPixivUploads < Struct.new(:last_post_id)
|
||||
def perform
|
||||
post_id = nil
|
||||
|
||||
Post.find_each(:conditions => ["GREATEST(width, height) IN (150, 600) AND source LIKE ? AND id > ?", "%pixiv%", last_post_id]) do |post|
|
||||
post_id = post.id
|
||||
end
|
||||
|
||||
update_attributes(:data => {:last_post_id => post_id})
|
||||
end
|
||||
end
|
||||
end
|
||||
7
app/models/jobs/mass_tag_edit.rb
Normal file
7
app/models/jobs/mass_tag_edit.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
module Jobs
|
||||
class MassTagEdit < Struct.new(:start_tags, :result_tags, :updater_id, :updater_ip_addr)
|
||||
def perform
|
||||
Tag.mass_edit(start_tags, result_tags, updater_id, updater_ip_addr)
|
||||
end
|
||||
end
|
||||
end
|
||||
10
app/models/jobs/process_tag_subscriptions.rb
Normal file
10
app/models/jobs/process_tag_subscriptions.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
module Jobs
|
||||
class ProcessTagSubscriptions < Struct.new(:last_run)
|
||||
def perform
|
||||
if last_run.nil? || last_run < 20.minutes.ago
|
||||
TagSubscription.process_all
|
||||
Delayed::Job.enqueue(ProcessTagSubscriptions.new(Time.now))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
9
app/models/jobs/process_uploads.rb
Normal file
9
app/models/jobs/process_uploads.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
module Jobs
|
||||
class ProcessUploads
|
||||
def perform
|
||||
Upload.find_each(:conditions => ["status = ?", "pending"]) do |upload|
|
||||
upload.process!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user