mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 17:53:40 +08:00
e1fcbf4aef
All site settings are now shadowed by global settings, so there is no need to lookup the global setting explicitly
37 lines
1.3 KiB
Ruby
37 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Jobs
|
|
class VersionCheck < ::Jobs::Scheduled
|
|
every 1.day
|
|
|
|
def execute(args)
|
|
if SiteSetting.version_checks? && (DiscourseUpdates.updated_at.nil? || DiscourseUpdates.updated_at < (1.minute.ago))
|
|
begin
|
|
prev_missing_versions_count = DiscourseUpdates.missing_versions_count || 0
|
|
|
|
json = DiscourseHub.discourse_version_check
|
|
DiscourseUpdates.last_installed_version = Discourse::VERSION::STRING
|
|
DiscourseUpdates.latest_version = json['latestVersion']
|
|
DiscourseUpdates.critical_updates_available = json['criticalUpdates']
|
|
DiscourseUpdates.missing_versions_count = json['missingVersionsCount']
|
|
DiscourseUpdates.updated_at = Time.zone.now
|
|
DiscourseUpdates.missing_versions = json['versions']
|
|
|
|
if SiteSetting.new_version_emails &&
|
|
json['missingVersionsCount'] > (0) &&
|
|
prev_missing_versions_count < (json['missingVersionsCount'].to_i)
|
|
|
|
message = VersionMailer.send_notice
|
|
Email::Sender.new(message, :new_version).send
|
|
|
|
end
|
|
rescue => e
|
|
raise e unless Rails.env.development? # Fail version check silently in development mode
|
|
end
|
|
end
|
|
true
|
|
end
|
|
|
|
end
|
|
end
|