discourse/app/jobs/onceoff/fix_invalid_gravatar_uploads.rb
Sam 8d06731484 FIX: reduce amount of work onceoff does
In the past onceoff was forcing inline download of gravatars,
this can be so expensive that it will never finish

This fix ensures it only marks avatars stale which will be picked
up by regular schedules
2018-10-16 10:29:16 +11:00

17 lines
589 B
Ruby

module Jobs
class FixInvalidGravatarUploads < Jobs::Onceoff
def execute_onceoff(args)
Upload.where(original_filename: "gravatar.png").find_each do |upload|
# note, this still feels pretty expensive for a once off
# we may need to re-evaluate this
extension = FastImage.type(Discourse.store.path_for(upload))
current_extension = upload.extension
if extension.to_s.downcase != current_extension.to_s.downcase
upload&.user&.user_avatar&.update_columns(last_gravatar_download_attempt: nil)
end
end
end
end
end