diff --git a/src/invidious.cr b/src/invidious.cr index 5497ad3a..5373a84d 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -63,7 +63,11 @@ threads.times do ids << id end + pool << client + loop do + client = get_client(pool) + if ids.empty? search(random.base64(3), client) do |id| ids << id @@ -72,10 +76,9 @@ threads.times do if rand(300) < 1 pool << make_client(URL, CONTEXT) + client = get_client(pool) end - time = Time.now - begin id = ids[0] video = get_video(id, client, PG_DB) @@ -104,7 +107,7 @@ threads.times do end end - # io << Time.now << " 200 GET www.youtube.com/watch?v=" << video.id << " " << elapsed_text(Time.now - time) << "\n" + pool << client end end end @@ -113,7 +116,7 @@ top_videos = [] of Video spawn do loop do - top = rank_videos(PG_DB, 120) + top = rank_videos(PG_DB, 40) client = get_client(pool) args = [] of String @@ -121,16 +124,18 @@ spawn do args << "($#{top.size}) " args = args.join("") + videos = [] of Video + PG_DB.query("SELECT * FROM videos d INNER JOIN (VALUES #{args}) v(id) USING (id)", top) do |rs| rs.each do video = rs.read(Video) - top_videos << video + videos << video end end - pool << client + top_videos = videos - sleep 5.minutes + pool << client end end