diff options
Diffstat (limited to 'src/invidious/search/processors.cr')
-rw-r--r-- | src/invidious/search/processors.cr | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/invidious/search/processors.cr b/src/invidious/search/processors.cr index 25edb936..10b81c59 100644 --- a/src/invidious/search/processors.cr +++ b/src/invidious/search/processors.cr | |||
@@ -37,18 +37,18 @@ module Invidious::Search | |||
37 | 37 | ||
38 | # Search inside of user subscriptions | 38 | # Search inside of user subscriptions |
39 | def subscriptions(query : Query, user : Invidious::User) : Array(ChannelVideo) | 39 | def subscriptions(query : Query, user : Invidious::User) : Array(ChannelVideo) |
40 | view_name = "subscriptions_#{sha256(user.email)}" | ||
41 | |||
42 | return PG_DB.query_all(" | 40 | return PG_DB.query_all(" |
43 | SELECT id,title,published,updated,ucid,author,length_seconds | 41 | SELECT id,title,published,updated,ucid,author,length_seconds |
44 | FROM ( | 42 | FROM ( |
45 | SELECT *, | 43 | SELECT cv.*, |
46 | to_tsvector(#{view_name}.title) || | 44 | to_tsvector(cv.title) || |
47 | to_tsvector(#{view_name}.author) | 45 | to_tsvector(cv.author) AS document |
48 | as document | 46 | FROM channel_videos cv |
49 | FROM #{view_name} | 47 | JOIN users ON cv.ucid = any(users.subscriptions) |
50 | ) v_search WHERE v_search.document @@ plainto_tsquery($1) LIMIT 20 OFFSET $2;", | 48 | WHERE users.email = $1 AND published > now() - interval '1 month' |
51 | query.text, (query.page - 1) * 20, | 49 | ORDER BY published |
50 | ) v_search WHERE v_search.document @@ plainto_tsquery($2) LIMIT 20 OFFSET $3;", | ||
51 | user.email, query.text, (query.page - 1) * 20, | ||
52 | as: ChannelVideo | 52 | as: ChannelVideo |
53 | ) | 53 | ) |
54 | end | 54 | end |