Remove watched videos from notifications

This commit is contained in:
Omar Roth 2019-06-01 09:51:31 -05:00
parent 86d0de4b0e
commit 701b5ea561
No known key found for this signature in database
GPG key ID: B8254FB7EC3D37F2

View file

@ -350,6 +350,7 @@ get "/watch" do |env|
if user if user
subscriptions = user.subscriptions subscriptions = user.subscriptions
watched = user.watched watched = user.watched
notifications = user.notifications
end end
subscriptions ||= [] of String 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) PG_DB.exec("UPDATE users SET watched = watched || $1 WHERE email = $2", [id], user.as(User).email)
end 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 nojs
if preferences if preferences
source = preferences.comments[0] source = preferences.comments[0]
@ -558,6 +565,7 @@ get "/embed/:id" do |env|
if user if user
subscriptions = user.subscriptions subscriptions = user.subscriptions
watched = user.watched watched = user.watched
notifications = user.notifications
end end
subscriptions ||= [] of String 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) PG_DB.exec("UPDATE users SET watched = watched || $1 WHERE email = $2", [id], user.as(User).email)
end 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) fmt_stream = video.fmt_stream(decrypt_function)
adaptive_fmts = video.adaptive_fmts(decrypt_function) adaptive_fmts = video.adaptive_fmts(decrypt_function)
@ -1696,10 +1710,10 @@ post "/subscription_ajax" do |env|
when .starts_with? "action_create" when .starts_with? "action_create"
if !user.subscriptions.includes? channel_id if !user.subscriptions.includes? channel_id
get_channel(channel_id, PG_DB, false, false) 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 end
when .starts_with? "action_remove" 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 end
payload = { payload = {
@ -4534,7 +4548,7 @@ delete "/api/v1/auth/subscriptions/:ucid" do |env|
ucid = env.params.url["ucid"] 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 = { payload = {
"email" => user.email, "email" => user.email,
"action" => "refresh", "action" => "refresh",