From 477c84deb158e461135d32a688a057e20fa4db5c Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Fri, 28 Sep 2018 09:23:28 -0500 Subject: [PATCH] Don't deliver new notifications for YouTube Red videos --- src/invidious/channels.cr | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/invidious/channels.cr b/src/invidious/channels.cr index 672d3c04..2e9e9fb3 100644 --- a/src/invidious/channels.cr +++ b/src/invidious/channels.cr @@ -104,13 +104,17 @@ def fetch_channel(ucid, client, db, pull_all_videos = true) videos.each do |video| ids << video.id - db.exec("UPDATE users SET notifications = notifications || $1 \ + + # FIXME: Red videos don't provide published date, so the best we can do is ignore them + if Time.now - video.published > 1.minute + db.exec("UPDATE users SET notifications = notifications || $1 \ WHERE updated < $2 AND $3 = ANY(subscriptions) AND $1 <> ALL(notifications)", video.id, video.published, video.ucid) - video_array = video.to_a - args = arg_array(video_array) - db.exec("INSERT INTO channel_videos VALUES (#{args}) ON CONFLICT (id) DO UPDATE SET title = $2, \ + video_array = video.to_a + args = arg_array(video_array) + db.exec("INSERT INTO channel_videos VALUES (#{args}) ON CONFLICT (id) DO UPDATE SET title = $2, \ published = $3, updated = $4, ucid = $5, author = $6", video_array) + end end if count < 30