mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-04 06:31:57 +00:00 
			
		
		
		
	Add config option for updating feeds on event
This commit is contained in:
		@@ -130,7 +130,7 @@ end
 | 
			
		||||
# Start jobs
 | 
			
		||||
 | 
			
		||||
refresh_channels(PG_DB, logger, config.channel_threads, config.full_refresh)
 | 
			
		||||
refresh_feeds(PG_DB, logger, config.feed_threads)
 | 
			
		||||
refresh_feeds(PG_DB, logger, config.feed_threads, config.use_feed_events)
 | 
			
		||||
subscribe_to_feeds(PG_DB, logger, HMAC_KEY, config)
 | 
			
		||||
 | 
			
		||||
statistics = {
 | 
			
		||||
 
 | 
			
		||||
@@ -105,6 +105,7 @@ struct Config
 | 
			
		||||
    hmac_key:                 String?,                              # HMAC signing key for CSRF tokens and verifying pubsub subscriptions
 | 
			
		||||
    domain:                   String?,                              # Domain to be used for links to resources on the site where an absolute URL is required
 | 
			
		||||
    use_pubsub_feeds:         {type: Bool | Int32, default: false}, # Subscribe to channels using PubSubHubbub (requires domain, hmac_key)
 | 
			
		||||
    use_feed_events:          {type: Bool, default: false},         # Update feeds on receiving notifications
 | 
			
		||||
    default_home:             {type: String, default: "Top"},
 | 
			
		||||
    feed_menu:                {type: Array(String), default: ["Popular", "Top", "Trending", "Subscriptions"]},
 | 
			
		||||
    top_enabled:              {type: Bool, default: true},
 | 
			
		||||
 
 | 
			
		||||
@@ -42,12 +42,12 @@ def refresh_channels(db, logger, max_threads = 1, full_refresh = false)
 | 
			
		||||
  max_channel.send(max_threads)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def refresh_feeds(db, logger, max_threads = 1)
 | 
			
		||||
def refresh_feeds(db, logger, max_threads = 1, use_feed_events = false)
 | 
			
		||||
  max_channel = Channel(Int32).new
 | 
			
		||||
 | 
			
		||||
  # TODO: Make this config option, similar to use_pubsub
 | 
			
		||||
  # TODO: Instead of Fiber.yield, use proper queuing to prevent overloading DB
 | 
			
		||||
  # Spawn thread to handle feed events
 | 
			
		||||
  if max_threads > 0
 | 
			
		||||
  if use_feed_events
 | 
			
		||||
    spawn do
 | 
			
		||||
      PG.connect_listen(PG_URL, "feeds") do |event|
 | 
			
		||||
        spawn do
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user