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) |   def filter?(timeline_type, status, receiver) | ||||||
|     if timeline_type == :home |     if timeline_type == :home | ||||||
|       filter_from_home?(status, receiver) |       filter_from_home?(status, receiver) | ||||||
|     else |     elsif timeline_type == :mentions | ||||||
|       filter_from_mentions?(status, receiver) |       filter_from_mentions?(status, receiver) | ||||||
|  |     else | ||||||
|  |       false | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  | @ -59,13 +61,23 @@ class FeedManager | ||||||
|     $redis |     $redis | ||||||
|   end |   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) |   def filter_from_home?(status, receiver) | ||||||
|     replied_to_user = status.reply? ? status.thread.try(:account) : nil |     should_filter = false | ||||||
|     (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)) | 
 | ||||||
|  |     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 |   end | ||||||
| 
 | 
 | ||||||
|   def filter_from_mentions?(status, receiver) |   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 | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -56,6 +56,7 @@ class ProcessFeedService < BaseService | ||||||
|       process_attachments(entry, status) |       process_attachments(entry, status) | ||||||
|       process_attachments(entry.xpath('./activity:object', activity: ACTIVITY_NS), status.reblog) if status.reblog? |       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) |       DistributionWorker.perform_async(status.id) | ||||||
|       return status |       return status | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  | @ -46,8 +46,8 @@ Rails.application.configure do | ||||||
| 
 | 
 | ||||||
|   # Use a different cache store in production. |   # Use a different cache store in production. | ||||||
|   config.cache_store = :redis_store, { |   config.cache_store = :redis_store, { | ||||||
|     host: ENV['REDIS_HOST'] || 'localhost', |     host: ENV.fetch('REDIS_HOST') { 'localhost' }, | ||||||
|     port: ENV['REDIS_PORT'] || 6379, |     port: ENV.fetch('REDIS_PORT') { 6379 }, | ||||||
|     db: 0, |     db: 0, | ||||||
|     namespace: 'cache' |     namespace: 'cache' | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| Neography.configure do |config| | Neography.configure do |config| | ||||||
|   config.protocol             = "http" |   config.protocol             = "http" | ||||||
|   config.server               = ENV['NEO4J_HOST'] || 'localhost' |   config.server               = ENV.fetch('NEO4J_HOST') { 'localhost' } | ||||||
|   config.port                 = ENV['NEO4J_PORT'] || 7474 |   config.port                 = ENV.fetch('NEO4J_PORT') { 7474 } | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -1,6 +1,8 @@ | ||||||
|  | port = ENV.fetch('PORT') { 3000 } | ||||||
|  | 
 | ||||||
| Rails.application.configure do | Rails.application.configure do | ||||||
|   config.x.local_domain = ENV['LOCAL_DOMAIN'] || "localhost:#{ENV['PORT'] || 3000}" |   config.x.local_domain = ENV.fetch('LOCAL_DOMAIN') { "localhost:#{port}" } | ||||||
|   config.x.hub_url      = ENV['HUB_URL']      || 'https://pubsubhubbub.superfeedr.com' |   config.x.hub_url      = ENV.fetch('HUB_URL')      { 'https://pubsubhubbub.superfeedr.com' } | ||||||
|   config.x.use_https    = ENV['LOCAL_HTTPS'] == 'true' |   config.x.use_https    = ENV['LOCAL_HTTPS'] == 'true' | ||||||
|   config.x.use_s3       = ENV['S3_ENABLED'] == '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' | host = ENV.fetch('REDIS_HOST') { 'localhost' } | ||||||
| port = ENV['REDIS_PORT'] || 6379 | port = ENV.fetch('REDIS_PORT') { 6379 } | ||||||
| 
 | 
 | ||||||
| Sidekiq.configure_server do |config| | Sidekiq.configure_server do |config| | ||||||
|   config.redis = { host: host, port: port } |   config.redis = { host: host, port: port } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue