Improved configuration from ENV, cleaned up timeline filter methods
to be more readable, add extra logging to process feed service
This commit is contained in:
		
							parent
							
								
									5d46b8d285
								
							
						
					
					
						commit
						8f0869876b
					
				
					 7 changed files with 33 additions and 14 deletions
				
			
		|  | @ -12,8 +12,10 @@ class FeedManager | |||
|   def filter?(timeline_type, status, receiver) | ||||
|     if timeline_type == :home | ||||
|       filter_from_home?(status, receiver) | ||||
|     else | ||||
|     elsif timeline_type == :mentions | ||||
|       filter_from_mentions?(status, receiver) | ||||
|     else | ||||
|       false | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | @ -59,13 +61,23 @@ class FeedManager | |||
|     $redis | ||||
|   end | ||||
| 
 | ||||
|   # Filter status out of the home feed if it is a reply to someone the user doesn't follow | ||||
|   def filter_from_home?(status, receiver) | ||||
|     replied_to_user = status.reply? ? status.thread.try(:account) : nil | ||||
|     (status.reply? && !(receiver.id == replied_to_user.id || replied_to_user.id == status.account_id || receiver.following?(replied_to_user))) || (status.reblog? && receiver.blocking?(status.reblog.account)) | ||||
|     should_filter = false | ||||
| 
 | ||||
|     if status.reply? && !status.thread.account.nil?                                     # Filter out if it's a reply | ||||
|       should_filter = !receiver.following?(status.thread.account)                       # and I'm not following the person it's a reply to | ||||
|       should_filter = should_filter && !(receiver.id == status.thread.account_id)       # and it's not a reply to me | ||||
|       should_filter = should_filter && !(status.account_id == status.thread.account_id) # and it's not a self-reply | ||||
|     elsif status.reblog?                                                                # Filter out a reblog | ||||
|       should_filter = receiver.blocking?(status.reblog.account)                         # if I'm blocking the reblogged person | ||||
|     end | ||||
| 
 | ||||
|     should_filter | ||||
|   end | ||||
| 
 | ||||
|   def filter_from_mentions?(status, receiver) | ||||
|     receiver.blocking?(status.account) | ||||
|     should_filter = false | ||||
|     should_filter = receiver.blocking?(status.account) # Filter if it's from someone I blocked | ||||
|     should_filter | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -56,6 +56,7 @@ class ProcessFeedService < BaseService | |||
|       process_attachments(entry, status) | ||||
|       process_attachments(entry.xpath('./activity:object', activity: ACTIVITY_NS), status.reblog) if status.reblog? | ||||
| 
 | ||||
|       Rails.logger.debug "Queuing remote status #{status.id} for distribution" | ||||
|       DistributionWorker.perform_async(status.id) | ||||
|       return status | ||||
|     end | ||||
|  |  | |||
|  | @ -46,8 +46,8 @@ Rails.application.configure do | |||
| 
 | ||||
|   # Use a different cache store in production. | ||||
|   config.cache_store = :redis_store, { | ||||
|     host: ENV['REDIS_HOST'] || 'localhost', | ||||
|     port: ENV['REDIS_PORT'] || 6379, | ||||
|     host: ENV.fetch('REDIS_HOST') { 'localhost' }, | ||||
|     port: ENV.fetch('REDIS_PORT') { 6379 }, | ||||
|     db: 0, | ||||
|     namespace: 'cache' | ||||
|   } | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| Neography.configure do |config| | ||||
|   config.protocol             = "http" | ||||
|   config.server               = ENV['NEO4J_HOST'] || 'localhost' | ||||
|   config.port                 = ENV['NEO4J_PORT'] || 7474 | ||||
|   config.server               = ENV.fetch('NEO4J_HOST') { 'localhost' } | ||||
|   config.port                 = ENV.fetch('NEO4J_PORT') { 7474 } | ||||
| end | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| port = ENV.fetch('PORT') { 3000 } | ||||
| 
 | ||||
| Rails.application.configure do | ||||
|   config.x.local_domain = ENV['LOCAL_DOMAIN'] || "localhost:#{ENV['PORT'] || 3000}" | ||||
|   config.x.hub_url      = ENV['HUB_URL']      || 'https://pubsubhubbub.superfeedr.com' | ||||
|   config.x.local_domain = ENV.fetch('LOCAL_DOMAIN') { "localhost:#{port}" } | ||||
|   config.x.hub_url      = ENV.fetch('HUB_URL')      { 'https://pubsubhubbub.superfeedr.com' } | ||||
|   config.x.use_https    = ENV['LOCAL_HTTPS'] == 'true' | ||||
|   config.x.use_s3       = ENV['S3_ENABLED'] == 'true' | ||||
| 
 | ||||
|  |  | |||
|  | @ -1 +1,5 @@ | |||
| $redis = Redis.new(host: ENV['REDIS_HOST'] || 'localhost', port: ENV['REDIS_PORT'] || 6379, driver: :hiredis) | ||||
| $redis = Redis.new({ | ||||
|   host: ENV.fetch('REDIS_HOST') { 'localhost' }, | ||||
|   port: ENV.fetch('REDIS_PORT') { 6379 }, | ||||
|   driver: :hiredis | ||||
| }) | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| host = ENV['REDIS_HOST'] || 'localhost' | ||||
| port = ENV['REDIS_PORT'] || 6379 | ||||
| host = ENV.fetch('REDIS_HOST') { 'localhost' } | ||||
| port = ENV.fetch('REDIS_PORT') { 6379 } | ||||
| 
 | ||||
| Sidekiq.configure_server do |config| | ||||
|   config.redis = { host: host, port: port } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue