diff options
| author | matthewmcgarvey <matthewmcgarvey14@gmail.com> | 2022-01-24 23:14:13 -0600 |
|---|---|---|
| committer | matthewmcgarvey <matthewmcgarvey14@gmail.com> | 2022-01-27 20:12:45 -0600 |
| commit | e92b3779ad6ac530b4979dfeccb66e96d75d14c9 (patch) | |
| tree | 94b5957acef7907725fce94a7fe0af8f18b0e949 /src | |
| parent | a82d21ff78787e24c331478c0fc71e6a8f4df980 (diff) | |
| download | invidious-e92b3779ad6ac530b4979dfeccb66e96d75d14c9.tar.gz invidious-e92b3779ad6ac530b4979dfeccb66e96d75d14c9.tar.bz2 invidious-e92b3779ad6ac530b4979dfeccb66e96d75d14c9.zip | |
Add back in refreshing of channels every 2 days
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/channels/channels.cr | 10 | ||||
| -rw-r--r-- | src/invidious/database/channels.cr | 9 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/invidious/channels/channels.cr b/src/invidious/channels/channels.cr index b9f762e7..6905b6f8 100644 --- a/src/invidious/channels/channels.cr +++ b/src/invidious/channels/channels.cr @@ -152,12 +152,14 @@ def get_batch_channels(channels) return final end -def get_channel(id) +def get_channel(id) : InvidiousChannel channel = Invidious::Database::Channels.select(id) - return channel if channel - channel = fetch_channel(id, pull_all_videos: false) - Invidious::Database::Channels.insert(channel) + if channel.nil? || (Time.utc - channel.updated) > 2.days + channel = fetch_channel(id, pull_all_videos: false) + Invidious::Database::Channels.insert(channel, update_on_conflict: true) + end + return channel end diff --git a/src/invidious/database/channels.cr b/src/invidious/database/channels.cr index e88b4989..134cf59d 100644 --- a/src/invidious/database/channels.cr +++ b/src/invidious/database/channels.cr @@ -10,7 +10,7 @@ module Invidious::Database::Channels # Insert / delete # ------------------- - def insert(channel : InvidiousChannel) + def insert(channel : InvidiousChannel, update_on_conflict : Bool = false) channel_array = channel.to_a request = <<-SQL @@ -18,6 +18,13 @@ module Invidious::Database::Channels VALUES (#{arg_array(channel_array)}) 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) end |
