summaryrefslogtreecommitdiffstats
path: root/src/invidious.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/invidious.cr')
-rw-r--r--src/invidious.cr40
1 files changed, 25 insertions, 15 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 9eecf106..5497ad3a 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -109,26 +109,36 @@ threads.times do
end
end
-macro templated(filename)
- render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr"
- end
+top_videos = [] of Video
-get "/" do |env|
- top = rank_videos(PG_DB, 120)
+spawn do
+ loop do
+ top = rank_videos(PG_DB, 120)
+ client = get_client(pool)
- args = [] of String
- 1..(top.size - 1).times { |i| args << "($#{i + 1}), " }
- args << "($#{top.size}) "
- args = args.join("")
+ args = [] of String
+ 1..(top.size - 1).times { |i| args << "($#{i + 1}), " }
+ 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)
- videos << 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
+ end
end
+
+ pool << client
+
+ sleep 5.minutes
+ end
+end
+
+macro templated(filename)
+ render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr"
end
+get "/" do |env|
templated "index"
end
@@ -259,7 +269,7 @@ get "/:path" do |env|
end
error 500 do |env|
- "Error 500"
+ templated "index"
end
public_folder "assets"