From: Eugen Rochko Date: Fri, 27 Sep 2019 23:33:16 +0000 (+0200) Subject: Fix preview card image not being re-fetched even if link is re-posted (#11981) X-Git-Url: https://git.xn--scling-oua.cat.family/?a=commitdiff_plain;h=3ec80c7aec4c95c64c4cafb511610eab5fa31b1e;p=mastodon.git Fix preview card image not being re-fetched even if link is re-posted (#11981) Fix #11956 --- diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index 9d6c1938a..4e89fbf85 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -47,6 +47,10 @@ class PreviewCard < ApplicationRecord before_save :extract_dimensions, if: :link? + def missing_image? + width.present? && height.present? && image_file_name.blank? + end + def save_with_optional_image! save! rescue ActiveRecord::RecordInvalid diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 4e75c370f..ac5503d46 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -22,7 +22,7 @@ class FetchLinkCardService < BaseService RedisLock.acquire(lock_options) do |lock| if lock.acquired? @card = PreviewCard.find_by(url: @url) - process_url if @card.nil? || @card.updated_at <= 2.weeks.ago + process_url if @card.nil? || @card.updated_at <= 2.weeks.ago || @card.missing_image? else raise Mastodon::RaceConditionError end