Do not fetch preview card for mentioned users (#6934)
This commit is contained in:
		
							parent
							
								
									d4cf963749
								
							
						
					
					
						commit
						7fee968e9f
					
				@ -17,6 +17,7 @@ class FetchLinkCardService < BaseService
 | 
			
		||||
 | 
			
		||||
    return if @url.nil? || @status.preview_cards.any?
 | 
			
		||||
 | 
			
		||||
    @mentions = status.mentions
 | 
			
		||||
    @url      = @url.to_s
 | 
			
		||||
 | 
			
		||||
    RedisLock.acquire(lock_options) do |lock|
 | 
			
		||||
@ -81,9 +82,16 @@ class FetchLinkCardService < BaseService
 | 
			
		||||
    uri.host.blank? || TagManager.instance.local_url?(uri.to_s) || !%w(http https).include?(uri.scheme)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def mention_link?(a)
 | 
			
		||||
    return false if @mentions.nil?
 | 
			
		||||
    @mentions.any? do |mention|
 | 
			
		||||
      a['href'] == TagManager.instance.url_for(mention.target)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def skip_link?(a)
 | 
			
		||||
    # Avoid links for hashtags and mentions (microformats)
 | 
			
		||||
    a['rel']&.include?('tag') || a['class']&.include?('u-url')
 | 
			
		||||
    a['rel']&.include?('tag') || a['class']&.include?('u-url') || mention_link?(a)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def attempt_oembed
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user