Merge branch 'main' into glitch-soc/merge-upstream
This commit is contained in:
		@@ -59,7 +59,7 @@ class StatusesIndex < Chewy::Index
 | 
				
			|||||||
    field :id, type: 'long'
 | 
					    field :id, type: 'long'
 | 
				
			||||||
    field :account_id, type: 'long'
 | 
					    field :account_id, type: 'long'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    field :text, type: 'text', value: ->(status) { [status.spoiler_text, extract_status_plain_text(status)].concat(status.ordered_media_attachments.map(&:description)).concat(status.preloadable_poll ? status.preloadable_poll.options : []).join("\n\n") } do
 | 
					    field :text, type: 'text', value: ->(status) { status.searchable_text } do
 | 
				
			||||||
      field :stemmed, type: 'text', analyzer: 'content'
 | 
					      field :stemmed, type: 'text', analyzer: 'content'
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,7 @@ module FormattingHelper
 | 
				
			|||||||
  def extract_status_plain_text(status)
 | 
					  def extract_status_plain_text(status)
 | 
				
			||||||
    PlainTextFormatter.new(status.text, status.local?).to_s
 | 
					    PlainTextFormatter.new(status.text, status.local?).to_s
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					  module_function :extract_status_plain_text
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def status_content_format(status)
 | 
					  def status_content_format(status)
 | 
				
			||||||
    html_aware_format(status.text, status.local?, preloaded_accounts: [status.account] + (status.respond_to?(:active_mentions) ? status.active_mentions.map(&:account) : []), content_type: status.content_type)
 | 
					    html_aware_format(status.text, status.local?, preloaded_accounts: [status.account] + (status.respond_to?(:active_mentions) ? status.active_mentions.map(&:account) : []), content_type: status.content_type)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,6 @@ require 'singleton'
 | 
				
			|||||||
class FeedManager
 | 
					class FeedManager
 | 
				
			||||||
  include Singleton
 | 
					  include Singleton
 | 
				
			||||||
  include Redisable
 | 
					  include Redisable
 | 
				
			||||||
  include FormattingHelper
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Maximum number of items stored in a single feed
 | 
					  # Maximum number of items stored in a single feed
 | 
				
			||||||
  MAX_ITEMS = 400
 | 
					  MAX_ITEMS = 400
 | 
				
			||||||
@@ -501,16 +500,8 @@ class FeedManager
 | 
				
			|||||||
    return false if active_filters.empty?
 | 
					    return false if active_filters.empty?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    combined_regex = Regexp.union(active_filters)
 | 
					    combined_regex = Regexp.union(active_filters)
 | 
				
			||||||
    status         = status.reblog if status.reblog?
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    combined_text = [
 | 
					    combined_regex.match?(status.proper.searchable_text)
 | 
				
			||||||
      extract_status_plain_text(status),
 | 
					 | 
				
			||||||
      status.spoiler_text,
 | 
					 | 
				
			||||||
      status.preloadable_poll ? status.preloadable_poll.options.join("\n\n") : nil,
 | 
					 | 
				
			||||||
      status.ordered_media_attachments.map(&:description).join("\n\n"),
 | 
					 | 
				
			||||||
    ].compact.join("\n\n")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    combined_regex.match?(combined_text)
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Adds a status to an account's feed, returning true if a status was
 | 
					  # Adds a status to an account's feed, returning true if a status was
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -160,6 +160,15 @@ class Status < ApplicationRecord
 | 
				
			|||||||
    ids.uniq
 | 
					    ids.uniq
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def searchable_text
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
 | 
					      spoiler_text,
 | 
				
			||||||
 | 
					      FormattingHelper.extract_status_plain_text(self),
 | 
				
			||||||
 | 
					      preloadable_poll ? preloadable_poll.options.join("\n\n") : nil,
 | 
				
			||||||
 | 
					      ordered_media_attachments.map(&:description).join("\n\n"),
 | 
				
			||||||
 | 
					    ].compact.join("\n\n")
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def reply?
 | 
					  def reply?
 | 
				
			||||||
    !in_reply_to_id.nil? || attributes['reply']
 | 
					    !in_reply_to_id.nil? || attributes['reply']
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user