From 701b5ea56134f2c8d8e8f54036b9f6467095b47b Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Sat, 1 Jun 2019 09:51:31 -0500 Subject: [PATCH] Remove watched videos from notifications --- src/invidious.cr | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/invidious.cr b/src/invidious.cr index fa4ac44d1..de1349473 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -350,6 +350,7 @@ get "/watch" do |env| if user subscriptions = user.subscriptions watched = user.watched + notifications = user.notifications end subscriptions ||= [] of String @@ -377,6 +378,12 @@ get "/watch" do |env| PG_DB.exec("UPDATE users SET watched = watched || $1 WHERE email = $2", [id], user.as(User).email) end + if notifications && notifications.includes? id + PG_DB.exec("UPDATE users SET notifications = array_remove(notifications, $1) WHERE email = $2", id, user.as(User).email) + env.get("user").as(User).notifications.delete(id) + notifications.delete(id) + end + if nojs if preferences source = preferences.comments[0] @@ -558,6 +565,7 @@ get "/embed/:id" do |env| if user subscriptions = user.subscriptions watched = user.watched + notifications = user.notifications end subscriptions ||= [] of String @@ -580,6 +588,12 @@ get "/embed/:id" do |env| PG_DB.exec("UPDATE users SET watched = watched || $1 WHERE email = $2", [id], user.as(User).email) end + if notifications && notifications.includes? id + PG_DB.exec("UPDATE users SET notifications = array_remove(notifications, $1) WHERE email = $2", id, user.as(User).email) + env.get("user").as(User).notifications.delete(id) + notifications.delete(id) + end + fmt_stream = video.fmt_stream(decrypt_function) adaptive_fmts = video.adaptive_fmts(decrypt_function) @@ -1696,10 +1710,10 @@ post "/subscription_ajax" do |env| when .starts_with? "action_create" if !user.subscriptions.includes? channel_id get_channel(channel_id, PG_DB, false, false) - PG_DB.exec("UPDATE users SET subscriptions = array_append(subscriptions,$1) WHERE email = $2", channel_id, email) + PG_DB.exec("UPDATE users SET subscriptions = array_append(subscriptions, $1) WHERE email = $2", channel_id, email) end when .starts_with? "action_remove" - PG_DB.exec("UPDATE users SET subscriptions = array_remove(subscriptions,$1) WHERE email = $2", channel_id, email) + PG_DB.exec("UPDATE users SET subscriptions = array_remove(subscriptions, $1) WHERE email = $2", channel_id, email) end payload = { @@ -4534,7 +4548,7 @@ delete "/api/v1/auth/subscriptions/:ucid" do |env| ucid = env.params.url["ucid"] - PG_DB.exec("UPDATE users SET subscriptions = array_remove(subscriptions,$1) WHERE email = $2", ucid, user.email) + PG_DB.exec("UPDATE users SET subscriptions = array_remove(subscriptions, $1) WHERE email = $2", ucid, user.email) payload = { "email" => user.email, "action" => "refresh",