From 3ec80c7aec4c95c64c4cafb511610eab5fa31b1e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 28 Sep 2019 01:33:16 +0200 Subject: Fix preview card image not being re-fetched even if link is re-posted (#11981) Fix #11956 --- app/models/preview_card.rb | 4 ++++ app/services/fetch_link_card_service.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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 -- cgit