aboutsummaryrefslogtreecommitdiff
path: root/src/invidious/search/processors.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/invidious/search/processors.cr')
-rw-r--r--src/invidious/search/processors.cr18
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