Add video refresh
This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
				
			|||||||
channel_threads: 5
 | 
					 | 
				
			||||||
threads: 5
 | 
					threads: 5
 | 
				
			||||||
 | 
					channel_threads: 5
 | 
				
			||||||
 | 
					video_threads: 5
 | 
				
			||||||
db:
 | 
					db:
 | 
				
			||||||
  user: kemal
 | 
					  user: kemal
 | 
				
			||||||
  password: kemal
 | 
					  password: kemal
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,7 @@ class Config
 | 
				
			|||||||
  YAML.mapping({
 | 
					  YAML.mapping({
 | 
				
			||||||
    threads:         Int32,
 | 
					    threads:         Int32,
 | 
				
			||||||
    channel_threads: Int32,
 | 
					    channel_threads: Int32,
 | 
				
			||||||
 | 
					    video_threads:   Int32,
 | 
				
			||||||
    db:              NamedTuple(
 | 
					    db:              NamedTuple(
 | 
				
			||||||
      user: String,
 | 
					      user: String,
 | 
				
			||||||
      password: String,
 | 
					      password: String,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,6 +27,7 @@ CONFIG = Config.from_yaml(File.read("config/config.yml"))
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
threads = CONFIG.threads
 | 
					threads = CONFIG.threads
 | 
				
			||||||
channel_threads = CONFIG.channel_threads
 | 
					channel_threads = CONFIG.channel_threads
 | 
				
			||||||
 | 
					video_threads = CONFIG.video_threads
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Kemal.config.extra_options do |parser|
 | 
					Kemal.config.extra_options do |parser|
 | 
				
			||||||
  parser.banner = "Usage: invidious [arguments]"
 | 
					  parser.banner = "Usage: invidious [arguments]"
 | 
				
			||||||
@@ -46,6 +47,14 @@ Kemal.config.extra_options do |parser|
 | 
				
			|||||||
      exit
 | 
					      exit
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					  parser.on("-v THREADS", "--video-threads=THREADS", "Number of threads for refreshing videos (default: #{video_threads})") do |number|
 | 
				
			||||||
 | 
					    begin
 | 
				
			||||||
 | 
					      video_threads = number.to_i
 | 
				
			||||||
 | 
					    rescue ex
 | 
				
			||||||
 | 
					      puts "THREADS must be integer"
 | 
				
			||||||
 | 
					      exit
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Kemal::CLI.new
 | 
					Kemal::CLI.new
 | 
				
			||||||
@@ -139,6 +148,31 @@ channel_threads.times do |i|
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					video_threads.times do |i|
 | 
				
			||||||
 | 
					  spawn do
 | 
				
			||||||
 | 
					    loop do
 | 
				
			||||||
 | 
					      query = "SELECT id FROM videos ORDER BY updated \
 | 
				
			||||||
 | 
					      LIMIT (SELECT count(*)/$2 FROM videos) \
 | 
				
			||||||
 | 
					      OFFSET (SELECT count(*)*$1/$2 FROM videos)"
 | 
				
			||||||
 | 
					      PG_DB.query(query, i, video_threads) do |rs|
 | 
				
			||||||
 | 
					        rs.each do
 | 
				
			||||||
 | 
					          client = make_client(YT_URL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          begin
 | 
				
			||||||
 | 
					            id = rs.read(String)
 | 
				
			||||||
 | 
					            video = get_video(id, client, PG_DB)
 | 
				
			||||||
 | 
					          rescue ex
 | 
				
			||||||
 | 
					            STDOUT << id << " : " << ex.message << "\n"
 | 
				
			||||||
 | 
					            client = make_client(YT_URL)
 | 
				
			||||||
 | 
					            next
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      Fiber.yield
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
top_videos = [] of Video
 | 
					top_videos = [] of Video
 | 
				
			||||||
 | 
					
 | 
				
			||||||
spawn do
 | 
					spawn do
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user