Add back in refreshing of channels every 2 days

pull/2833/head
matthewmcgarvey 3 years ago
parent a82d21ff78
commit e92b3779ad

@ -152,12 +152,14 @@ def get_batch_channels(channels)
return final return final
end end
def get_channel(id) def get_channel(id) : InvidiousChannel
channel = Invidious::Database::Channels.select(id) channel = Invidious::Database::Channels.select(id)
return channel if channel
if channel.nil? || (Time.utc - channel.updated) > 2.days
channel = fetch_channel(id, pull_all_videos: false) channel = fetch_channel(id, pull_all_videos: false)
Invidious::Database::Channels.insert(channel) Invidious::Database::Channels.insert(channel, update_on_conflict: true)
end
return channel return channel
end end

@ -10,7 +10,7 @@ module Invidious::Database::Channels
# Insert / delete # Insert / delete
# ------------------- # -------------------
def insert(channel : InvidiousChannel) def insert(channel : InvidiousChannel, update_on_conflict : Bool = false)
channel_array = channel.to_a channel_array = channel.to_a
request = <<-SQL request = <<-SQL
@ -18,6 +18,13 @@ module Invidious::Database::Channels
VALUES (#{arg_array(channel_array)}) VALUES (#{arg_array(channel_array)})
SQL SQL
if update_on_conflict
request += <<-SQL
ON CONFLICT (id) DO UPDATE
SET author = $2, updated = $3
SQL
end
PG_DB.exec(request, args: channel_array) PG_DB.exec(request, args: channel_array)
end end

Loading…
Cancel
Save