diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/concerns/remotable.rb | 34 | ||||
-rw-r--r-- | app/models/notification.rb | 8 |
2 files changed, 21 insertions, 21 deletions
diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb index 69685ec83..0f18c5d96 100644 --- a/app/models/concerns/remotable.rb +++ b/app/models/concerns/remotable.rb @@ -21,23 +21,23 @@ module Remotable return if !%w(http https).include?(parsed_url.scheme) || parsed_url.host.empty? || self[attribute_name] == url begin - response = Request.new(:get, url).perform - - return if response.code != 200 - - matches = response.headers['content-disposition']&.match(/filename="([^"]*)"/) - filename = matches.nil? ? parsed_url.path.split('/').last : matches[1] - basename = SecureRandom.hex(8) - extname = if filename.nil? - '' - else - File.extname(filename) - end - - send("#{attachment_name}=", StringIO.new(response.to_s)) - send("#{attachment_name}_file_name=", basename + extname) - - self[attribute_name] = url if has_attribute?(attribute_name) + Request.new(:get, url).perform do |response| + next if response.code != 200 + + matches = response.headers['content-disposition']&.match(/filename="([^"]*)"/) + filename = matches.nil? ? parsed_url.path.split('/').last : matches[1] + basename = SecureRandom.hex(8) + extname = if filename.nil? + '' + else + File.extname(filename) + end + + send("#{attachment_name}=", StringIO.new(response.to_s)) + send("#{attachment_name}_file_name=", basename + extname) + + self[attribute_name] = url if has_attribute?(attribute_name) + end rescue HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError, Paperclip::Errors::NotIdentifiedByImageMagickError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError => e Rails.logger.debug "Error fetching remote #{attachment_name}: #{e}" nil diff --git a/app/models/notification.rb b/app/models/notification.rb index 7f8dae5ec..be9964087 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -4,12 +4,12 @@ # Table name: notifications # # id :integer not null, primary key -# activity_id :integer -# activity_type :string +# activity_id :integer not null +# activity_type :string not null # created_at :datetime not null # updated_at :datetime not null -# account_id :integer -# from_account_id :integer +# account_id :integer not null +# from_account_id :integer not null # class Notification < ApplicationRecord |