diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-09-28 01:33:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-28 01:33:16 +0200 |
commit | 3ec80c7aec4c95c64c4cafb511610eab5fa31b1e (patch) | |
tree | 6168d726acbee829a1378105fe34ec364d4e99a9 | |
parent | 32ff78f7496012d9fca5b1ad13cddb650184b5ec (diff) |
Fix preview card image not being re-fetched even if link is re-posted (#11981)
Fix #11956
-rw-r--r-- | app/models/preview_card.rb | 4 | ||||
-rw-r--r-- | app/services/fetch_link_card_service.rb | 2 |
2 files changed, 5 insertions, 1 deletions
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 |