Fix preview card image not being re-fetched even if link is re-posted (#11981)
Fix #11956
This commit is contained in:
		
							parent
							
								
									32ff78f749
								
							
						
					
					
						commit
						3ec80c7aec
					
				
					 2 changed files with 5 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue