upload.rb: separate out post creation from upload processing.

This commit is contained in:
evazion
2017-03-31 13:38:48 -05:00
parent 3b414db844
commit b4a38c68b4

View File

@@ -105,7 +105,7 @@ class Upload < ActiveRecord::Base
end end
module ConversionMethods module ConversionMethods
def process_once def process_upload
CurrentUser.scoped(uploader, uploader_ip_addr) do CurrentUser.scoped(uploader, uploader_ip_addr) do
update_attribute(:status, "processing") update_attribute(:status, "processing")
self.source = strip_source self.source = strip_source
@@ -129,6 +129,10 @@ class Upload < ActiveRecord::Base
move_file move_file
validate_md5_confirmation_after_move validate_md5_confirmation_after_move
save save
end
end
def create_post_from_upload
post = convert_to_post post = convert_to_post
post.distribute_files post.distribute_files
if post.save if post.save
@@ -140,13 +144,13 @@ class Upload < ActiveRecord::Base
update_attribute(:status, "error: " + post.errors.full_messages.join(", ")) update_attribute(:status, "error: " + post.errors.full_messages.join(", "))
end end
end end
end
def process!(force = false) def process!(force = false)
@tries ||= 0 @tries ||= 0
return if !force && status =~ /processing|completed|error/ return if !force && status =~ /processing|completed|error/
process_once process_upload
create_post_from_upload
rescue Timeout::Error, Net::HTTP::Persistent::Error => x rescue Timeout::Error, Net::HTTP::Persistent::Error => x
if @tries > 3 if @tries > 3