diff --git a/src/helpers.cr b/src/helpers.cr index 8026f472b..0ab2ea46f 100644 --- a/src/helpers.cr +++ b/src/helpers.cr @@ -605,7 +605,7 @@ def get_user(sid, client, headers, db) args = arg_array(user_array) db.exec("INSERT INTO users VALUES (#{args}) \ - ON CONFLICT (email) DO UPDATE SET id = $1, updated = $2, notifications = $3, subscriptions = $4", user_array) + ON CONFLICT (email) DO UPDATE SET id = $1, updated = $2, subscriptions = $4", user_array) end else user = fetch_user(sid, client, headers) diff --git a/src/invidious.cr b/src/invidious.cr index 7af339ed7..afa69dd54 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -729,6 +729,11 @@ get "/feed/subscriptions" do |env| videos = PG_DB.query_all("SELECT * FROM channel_videos WHERE ucid IN (#{args}) \ ORDER BY published DESC LIMIT $1 OFFSET $2", [limit, offset] + user.subscriptions, as: ChannelVideo) + notifications = PG_DB.query_one("SELECT notifications FROM users WHERE email = $1", user.email, as: Array(String)) + + notifications = videos.select { |v| notifications.includes? v.id } + vidoes = videos - notifications + if !limit videos = videos[0..max_results] end diff --git a/src/views/subscriptions.ecr b/src/views/subscriptions.ecr index 98e6a18c4..7c6f722d5 100644 --- a/src/views/subscriptions.ecr +++ b/src/views/subscriptions.ecr @@ -2,6 +2,30 @@