Fix error MethodError in Chewy::Strategy::Sidekiq::Worker (#17912)
Also refactor a bit to reduce code duplication.
This commit is contained in:
		
					parent
					
						
							
								8c7223f4ea
							
						
					
				
			
			
				commit
				
					
						ef196c913c
					
				
			
		
					 4 changed files with 12 additions and 11 deletions
				
			
		|  | @ -59,7 +59,7 @@ class StatusesIndex < Chewy::Index | |||
|     field :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' | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ module FormattingHelper | |||
|   def extract_status_plain_text(status) | ||||
|     PlainTextFormatter.new(status.text, status.local?).to_s | ||||
|   end | ||||
|   module_function :extract_status_plain_text | ||||
| 
 | ||||
|   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) : [])) | ||||
|  |  | |||
|  | @ -5,7 +5,6 @@ require 'singleton' | |||
| class FeedManager | ||||
|   include Singleton | ||||
|   include Redisable | ||||
|   include FormattingHelper | ||||
| 
 | ||||
|   # Maximum number of items stored in a single feed | ||||
|   MAX_ITEMS = 400 | ||||
|  | @ -443,16 +442,8 @@ class FeedManager | |||
|     return false if active_filters.empty? | ||||
| 
 | ||||
|     combined_regex = Regexp.union(active_filters) | ||||
|     status         = status.reblog if status.reblog? | ||||
| 
 | ||||
|     combined_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) | ||||
|     combined_regex.match?(status.proper.searchable_text) | ||||
|   end | ||||
| 
 | ||||
|   # Adds a status to an account's feed, returning true if a status was | ||||
|  |  | |||
|  | @ -155,6 +155,15 @@ class Status < ApplicationRecord | |||
|     ids.uniq | ||||
|   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? | ||||
|     !in_reply_to_id.nil? || attributes['reply'] | ||||
|   end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue