mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Remove deprecated uploads url site settings.
The site settings have been replaced with direct image upload since Discourse 2.3.
This commit is contained in:
@@ -1,92 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Jobs
|
||||
class MigrateUrlSiteSettings < ::Jobs::Onceoff
|
||||
SETTINGS = [
|
||||
['logo_url', 'logo'],
|
||||
['logo_small_url', 'logo_small'],
|
||||
['digest_logo_url', 'digest_logo'],
|
||||
['mobile_logo_url', 'mobile_logo'],
|
||||
['large_icon_url', 'large_icon'],
|
||||
['favicon_url', 'favicon'],
|
||||
['apple_touch_icon_url', 'apple_touch_icon'],
|
||||
['default_opengraph_image_url', 'opengraph_image'],
|
||||
['twitter_summary_large_image_url', 'twitter_summary_large_image'],
|
||||
['push_notifications_icon_url', 'push_notifications_icon'],
|
||||
]
|
||||
|
||||
def execute_onceoff(args)
|
||||
SETTINGS.each do |old_setting, new_setting|
|
||||
upload = SiteSetting.get(new_setting)
|
||||
|
||||
next if upload && upload.id >= Upload::SEEDED_ID_THRESHOLD
|
||||
|
||||
old_url = DB.query_single(
|
||||
"SELECT value FROM site_settings WHERE name = '#{old_setting}'"
|
||||
).first
|
||||
|
||||
next if old_url.blank?
|
||||
|
||||
count = 0
|
||||
file = nil
|
||||
sleep_interval = 5
|
||||
|
||||
loop do
|
||||
url = UrlHelper.absolute_without_cdn(old_url)
|
||||
|
||||
begin
|
||||
file = FileHelper.download(
|
||||
url,
|
||||
max_file_size: [
|
||||
SiteSetting.max_image_size_kb.kilobytes,
|
||||
20.megabytes
|
||||
].max,
|
||||
tmp_file_name: 'tmp_site_setting_logo',
|
||||
skip_rate_limit: true,
|
||||
follow_redirect: true
|
||||
)
|
||||
rescue OpenURI::HTTPError,
|
||||
OpenSSL::SSL::SSLError,
|
||||
Net::OpenTimeout,
|
||||
Net::ReadTimeout,
|
||||
Errno::ECONNREFUSED,
|
||||
EOFError,
|
||||
SocketError,
|
||||
Discourse::InvalidParameters => e
|
||||
|
||||
logger.warn(
|
||||
"Error encountered when trying to download file " +
|
||||
"for #{new_setting}.\n#{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"
|
||||
)
|
||||
end
|
||||
|
||||
count += 1
|
||||
break if file || (file.blank? && count >= 3)
|
||||
|
||||
logger.info(
|
||||
"Failed to download upload from #{url} for #{new_setting}. Retrying..."
|
||||
)
|
||||
|
||||
sleep(count * sleep_interval)
|
||||
end
|
||||
|
||||
next if file.blank?
|
||||
|
||||
upload = UploadCreator.new(
|
||||
file,
|
||||
"#{new_setting}",
|
||||
origin: UrlHelper.absolute(old_url),
|
||||
for_site_setting: true
|
||||
).create_for(Discourse.system_user.id)
|
||||
|
||||
SiteSetting.set(new_setting, upload)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def logger
|
||||
Rails.logger
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,16 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Jobs
|
||||
class CleanUpDeprecatedUrlSiteSettings < ::Jobs::Scheduled
|
||||
every 1.day
|
||||
|
||||
def execute(args)
|
||||
::Jobs::MigrateUrlSiteSettings::SETTINGS.each do |old_setting, new_setting|
|
||||
if SiteSetting.where("name = ? AND value IS NOT NULL", new_setting).exists?
|
||||
SiteSetting.set(old_setting, nil, warn: false)
|
||||
SiteSetting.find_by(name: old_setting).destroy!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -27,15 +27,6 @@ module Jobs
|
||||
|
||||
# Any URLs in site settings are fair game
|
||||
ignore_urls = [
|
||||
SiteSetting.logo_url(warn: false),
|
||||
SiteSetting.logo_small_url(warn: false),
|
||||
SiteSetting.digest_logo_url(warn: false),
|
||||
SiteSetting.mobile_logo_url(warn: false),
|
||||
SiteSetting.large_icon_url(warn: false),
|
||||
SiteSetting.favicon_url(warn: false),
|
||||
SiteSetting.default_opengraph_image_url(warn: false),
|
||||
SiteSetting.twitter_summary_large_image_url(warn: false),
|
||||
SiteSetting.apple_touch_icon_url(warn: false),
|
||||
*SiteSetting.selectable_avatars.split("\n"),
|
||||
].flatten.map do |url|
|
||||
if url.present?
|
||||
|
||||
Reference in New Issue
Block a user