summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2023-05-03 00:34:04 +0200
committerSamantaz Fox <coding@samantaz.fr>2023-05-03 00:34:04 +0200
commit1eb1bae3706204908fa57b6c91fe00041d4346c5 (patch)
treed28c14d66193780fffb5d7f25afb65b179398656 /src
parent5017176e39ba4d19f4ccea23d93a3805d34d0e01 (diff)
parent025e7555420a88757aa8709419e8f09ba654854d (diff)
downloadinvidious-1eb1bae3706204908fa57b6c91fe00041d4346c5.tar.gz
invidious-1eb1bae3706204908fa57b6c91fe00041d4346c5.tar.bz2
invidious-1eb1bae3706204908fa57b6c91fe00041d4346c5.zip
Fix watch history order (#3653)
Diffstat (limited to 'src')
-rw-r--r--src/invidious/database/users.cr2
-rw-r--r--src/invidious/routes/watch.cr6
-rw-r--r--src/invidious/user/imports.cr2
3 files changed, 4 insertions, 6 deletions
diff --git a/src/invidious/database/users.cr b/src/invidious/database/users.cr
index 0a4a4fd8..d54e6a76 100644
--- a/src/invidious/database/users.cr
+++ b/src/invidious/database/users.cr
@@ -52,7 +52,7 @@ module Invidious::Database::Users
def mark_watched(user : User, vid : String)
request = <<-SQL
UPDATE users
- SET watched = array_append(watched, $1)
+ SET watched = array_append(array_remove(watched, $1), $1)
WHERE email = $2
SQL
diff --git a/src/invidious/routes/watch.cr b/src/invidious/routes/watch.cr
index 5d3845c3..813cb0f4 100644
--- a/src/invidious/routes/watch.cr
+++ b/src/invidious/routes/watch.cr
@@ -76,7 +76,7 @@ module Invidious::Routes::Watch
end
env.params.query.delete_all("iv_load_policy")
- if watched && preferences.watch_history && !watched.includes? id
+ if watched && preferences.watch_history
Invidious::Database::Users.mark_watched(user.as(User), id)
end
@@ -259,9 +259,7 @@ module Invidious::Routes::Watch
case action
when "action_mark_watched"
- if !user.watched.includes? id
- Invidious::Database::Users.mark_watched(user, id)
- end
+ Invidious::Database::Users.mark_watched(user, id)
when "action_mark_unwatched"
Invidious::Database::Users.mark_unwatched(user, id)
else
diff --git a/src/invidious/user/imports.cr b/src/invidious/user/imports.cr
index 20ae0d47..aa947456 100644
--- a/src/invidious/user/imports.cr
+++ b/src/invidious/user/imports.cr
@@ -48,7 +48,7 @@ struct Invidious::User
if data["watch_history"]?
user.watched += data["watch_history"].as_a.map(&.as_s)
- user.watched.uniq!
+ user.watched.reverse!.uniq!.reverse!
Invidious::Database::Users.update_watch_history(user)
end