diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/channels.cr | 3 | ||||
| -rw-r--r-- | src/invidious/jobs.cr | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/invidious/channels.cr b/src/invidious/channels.cr index 956450d5..ccaf2487 100644 --- a/src/invidious/channels.cr +++ b/src/invidious/channels.cr @@ -3,6 +3,7 @@ class InvidiousChannel id: String, author: String, updated: Time, + deleted: Bool, }) end @@ -187,7 +188,7 @@ def fetch_channel(ucid, client, db, pull_all_videos = true, locale = nil) db.exec("DELETE FROM channel_videos * WHERE NOT id = ANY ('{#{ids.map { |id| %("#{id}") }.join(",")}}') AND ucid = $1", ucid) end - channel = InvidiousChannel.new(ucid, author, Time.now) + channel = InvidiousChannel.new(ucid, author, Time.now, false) return channel end diff --git a/src/invidious/jobs.cr b/src/invidious/jobs.cr index f6e2d8fe..04816efd 100644 --- a/src/invidious/jobs.cr +++ b/src/invidious/jobs.cr @@ -55,7 +55,7 @@ def refresh_channels(db, logger, max_threads = 1, full_refresh = false) active_channel = Channel(Bool).new loop do - db.query("SELECT id FROM channels ORDER BY updated") do |rs| + db.query("SELECT id FROM channels WHERE deleted = false ORDER BY updated") do |rs| rs.each do id = rs.read(String) @@ -73,6 +73,9 @@ def refresh_channels(db, logger, max_threads = 1, full_refresh = false) db.exec("UPDATE channels SET updated = $1, author = $2 WHERE id = $3", Time.now, channel.author, id) rescue ex + if ex.message == "Deleted or invalid channel" + db.exec("UPDATE channels SET deleted = true WHERE id = $1", id) + end logger.write("#{id} : #{ex.message}\n") end |
