Bug: the uploads page showed a remote size of 146 bytes for Pixiv uploads. Cause: we didn't spoof the Referer header when making the HEAD request for the image, causing Pixiv to return a 403 error. Also fix the case where the Content-Length header is absent.
25 lines
674 B
Ruby
25 lines
674 B
Ruby
class UploadService
|
|
module ControllerHelper
|
|
def self.prepare(url: nil, file: nil, ref: nil)
|
|
upload = Upload.new
|
|
|
|
if Utils.is_downloadable?(url) && file.nil?
|
|
# this gets called from UploadsController#new so we need to preprocess async
|
|
UploadPreprocessorDelayedStartJob.perform_later(url, ref, CurrentUser.user)
|
|
|
|
strategy = Sources::Strategies.find(url, ref)
|
|
remote_size = strategy.remote_size
|
|
|
|
return [upload, remote_size]
|
|
end
|
|
|
|
if file
|
|
# this gets called via XHR so we can process sync
|
|
Preprocessor.new(file: file).delayed_start(CurrentUser.id)
|
|
end
|
|
|
|
[upload]
|
|
end
|
|
end
|
|
end
|