Also improve efficiency of the mastodon:maintenance:add_static_avatars taskgh/stable
parent
e43071a2f9
commit
15ec4ae07b
|
@ -3,13 +3,11 @@
|
||||||
class AtomSerializer
|
class AtomSerializer
|
||||||
include RoutingHelper
|
include RoutingHelper
|
||||||
|
|
||||||
INVALID_XML_CHARS = /[^\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]/
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def render(element)
|
def render(element)
|
||||||
document = Ox::Document.new(version: '1.0')
|
document = Ox::Document.new(version: '1.0')
|
||||||
document << element
|
document << element
|
||||||
('<?xml version="1.0"?>' + Ox.dump(element)).force_encoding('UTF-8')
|
('<?xml version="1.0"?>' + Ox.dump(element, effort: :tolerant)).force_encoding('UTF-8')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -319,7 +317,7 @@ class AtomSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
def sanitize_str(raw_str)
|
def sanitize_str(raw_str)
|
||||||
raw_str.to_s.gsub(INVALID_XML_CHARS, '')
|
raw_str.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_namespaces(parent)
|
def add_namespaces(parent)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
attributes :id, :remote_url, :type
|
attributes :id, :remote_url, :type
|
||||||
|
|
||||||
node(:url) { |media| media.file.blank? ? media.remote_url : full_asset_url(media.file.url(:original)) }
|
node(:url) { |media| full_asset_url(media.file.url(:original)) }
|
||||||
node(:preview_url) { |media| media.file.blank? ? media.remote_url : full_asset_url(media.file.url(:small)) }
|
node(:preview_url) { |media| full_asset_url(media.file.url(:small)) }
|
||||||
node(:text_url) { |media| media.local? ? medium_url(media) : nil }
|
node(:text_url) { |media| media.local? ? medium_url(media) : nil }
|
||||||
|
|
|
@ -145,8 +145,8 @@ namespace :mastodon do
|
||||||
|
|
||||||
Account.unscoped.where(avatar_content_type: 'image/gif').or(Account.unscoped.where(header_content_type: 'image/gif')).find_each do |account|
|
Account.unscoped.where(avatar_content_type: 'image/gif').or(Account.unscoped.where(header_content_type: 'image/gif')).find_each do |account|
|
||||||
begin
|
begin
|
||||||
account.avatar.reprocess!
|
account.avatar.reprocess! if account.avatar_content_type == 'image/gif' && !account.avatar.exists?(:static)
|
||||||
account.header.reprocess!
|
account.header.reprocess! if account.header_content_type == 'image/gif' && !account.header.exists?(:static)
|
||||||
rescue StandardError => e
|
rescue StandardError => e
|
||||||
Rails.logger.error "Error while generating static avatars/headers for account #{account.id}: #{e}"
|
Rails.logger.error "Error while generating static avatars/headers for account #{account.id}: #{e}"
|
||||||
next
|
next
|
||||||
|
|
Reference in New Issue