mirror of
https://github.com/iv-org/invidious.git
synced 2024-12-26 10:09:50 +05:30
Prepare to create a 'Channel' module
This commit is contained in:
parent
ce7db8d2cb
commit
8e8ca4fcc5
@ -48,6 +48,13 @@ require "./invidious/search/*"
|
|||||||
require "./invidious/routes/**"
|
require "./invidious/routes/**"
|
||||||
require "./invidious/jobs/**"
|
require "./invidious/jobs/**"
|
||||||
|
|
||||||
|
# Declare the base namespace for invidious
|
||||||
|
module Invidious
|
||||||
|
end
|
||||||
|
|
||||||
|
# Simple alias to make code easier to read
|
||||||
|
alias IV = Invidious
|
||||||
|
|
||||||
CONFIG = Config.load
|
CONFIG = Config.load
|
||||||
HMAC_KEY = CONFIG.hmac_key || Random::Secure.hex(32)
|
HMAC_KEY = CONFIG.hmac_key || Random::Secure.hex(32)
|
||||||
|
|
||||||
@ -172,7 +179,7 @@ if CONFIG.popular_enabled
|
|||||||
Invidious::Jobs.register Invidious::Jobs::PullPopularVideosJob.new(PG_DB)
|
Invidious::Jobs.register Invidious::Jobs::PullPopularVideosJob.new(PG_DB)
|
||||||
end
|
end
|
||||||
|
|
||||||
CONNECTION_CHANNEL = Channel({Bool, Channel(PQ::Notification)}).new(32)
|
CONNECTION_CHANNEL = ::Channel({Bool, ::Channel(PQ::Notification)}).new(32)
|
||||||
Invidious::Jobs.register Invidious::Jobs::NotificationJob.new(CONNECTION_CHANNEL, CONFIG.database_url)
|
Invidious::Jobs.register Invidious::Jobs::NotificationJob.new(CONNECTION_CHANNEL, CONFIG.database_url)
|
||||||
|
|
||||||
Invidious::Jobs.register Invidious::Jobs::ClearExpiredItemsJob.new
|
Invidious::Jobs.register Invidious::Jobs::ClearExpiredItemsJob.new
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
class Invidious::Jobs::NotificationJob < Invidious::Jobs::BaseJob
|
class Invidious::Jobs::NotificationJob < Invidious::Jobs::BaseJob
|
||||||
private getter connection_channel : Channel({Bool, Channel(PQ::Notification)})
|
private getter connection_channel : ::Channel({Bool, ::Channel(PQ::Notification)})
|
||||||
private getter pg_url : URI
|
private getter pg_url : URI
|
||||||
|
|
||||||
def initialize(@connection_channel, @pg_url)
|
def initialize(@connection_channel, @pg_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
def begin
|
def begin
|
||||||
connections = [] of Channel(PQ::Notification)
|
connections = [] of ::Channel(PQ::Notification)
|
||||||
|
|
||||||
PG.connect_listen(pg_url, "notifications") { |event| connections.each(&.send(event)) }
|
PG.connect_listen(pg_url, "notifications") { |event| connections.each(&.send(event)) }
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ class Invidious::Jobs::RefreshChannelsJob < Invidious::Jobs::BaseJob
|
|||||||
max_fibers = CONFIG.channel_threads
|
max_fibers = CONFIG.channel_threads
|
||||||
lim_fibers = max_fibers
|
lim_fibers = max_fibers
|
||||||
active_fibers = 0
|
active_fibers = 0
|
||||||
active_channel = Channel(Bool).new
|
active_channel = ::Channel(Bool).new
|
||||||
backoff = 2.minutes
|
backoff = 2.minutes
|
||||||
|
|
||||||
loop do
|
loop do
|
||||||
|
@ -7,7 +7,7 @@ class Invidious::Jobs::RefreshFeedsJob < Invidious::Jobs::BaseJob
|
|||||||
def begin
|
def begin
|
||||||
max_fibers = CONFIG.feed_threads
|
max_fibers = CONFIG.feed_threads
|
||||||
active_fibers = 0
|
active_fibers = 0
|
||||||
active_channel = Channel(Bool).new
|
active_channel = ::Channel(Bool).new
|
||||||
|
|
||||||
loop do
|
loop do
|
||||||
db.query("SELECT email FROM users WHERE feed_needs_update = true OR feed_needs_update IS NULL") do |rs|
|
db.query("SELECT email FROM users WHERE feed_needs_update = true OR feed_needs_update IS NULL") do |rs|
|
||||||
|
@ -12,7 +12,7 @@ class Invidious::Jobs::SubscribeToFeedsJob < Invidious::Jobs::BaseJob
|
|||||||
end
|
end
|
||||||
|
|
||||||
active_fibers = 0
|
active_fibers = 0
|
||||||
active_channel = Channel(Bool).new
|
active_channel = ::Channel(Bool).new
|
||||||
|
|
||||||
loop do
|
loop do
|
||||||
db.query_all("SELECT id FROM channels WHERE CURRENT_TIMESTAMP - subscribed > interval '4 days' OR subscribed IS NULL") do |rs|
|
db.query_all("SELECT id FROM channels WHERE CURRENT_TIMESTAMP - subscribed > interval '4 days' OR subscribed IS NULL") do |rs|
|
||||||
|
Loading…
Reference in New Issue
Block a user