mirror of
https://git.nadeko.net/Fijxu/invidious.git
synced 2025-12-17 18:38:50 +00:00
Move DB queries related to statistics in a separate module
This commit is contained in:
49
src/invidious/database/statistics.cr
Normal file
49
src/invidious/database/statistics.cr
Normal file
@@ -0,0 +1,49 @@
|
||||
require "./base.cr"
|
||||
|
||||
module Invidious::Database::Statistics
|
||||
extend self
|
||||
|
||||
# -------------------
|
||||
# User stats
|
||||
# -------------------
|
||||
|
||||
def count_users_total : Int64
|
||||
request = <<-SQL
|
||||
SELECT count(*) FROM users
|
||||
SQL
|
||||
|
||||
PG_DB.query_one(request, as: Int64)
|
||||
end
|
||||
|
||||
def count_users_active_1m : Int64
|
||||
request = <<-SQL
|
||||
SELECT count(*) FROM users
|
||||
WHERE CURRENT_TIMESTAMP - updated < '6 months'
|
||||
SQL
|
||||
|
||||
PG_DB.query_one(request, as: Int64)
|
||||
end
|
||||
|
||||
def count_users_active_6m : Int64
|
||||
request = <<-SQL
|
||||
SELECT count(*) FROM users
|
||||
WHERE CURRENT_TIMESTAMP - updated < '1 month'
|
||||
SQL
|
||||
|
||||
PG_DB.query_one(request, as: Int64)
|
||||
end
|
||||
|
||||
# -------------------
|
||||
# Channel stats
|
||||
# -------------------
|
||||
|
||||
def channel_last_update : Time?
|
||||
request = <<-SQL
|
||||
SELECT updated FROM channels
|
||||
ORDER BY updated DESC
|
||||
LIMIT 1
|
||||
SQL
|
||||
|
||||
PG_DB.query_one?(request, as: Time)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user