summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious.cr12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index df0ea978..36c104dc 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -435,6 +435,7 @@ get "/search" do |env|
duration = ""
features = [] of String
sort = "relevance"
+ subscriptions = nil
operators = query.split(" ").select { |a| a.match(/\w+:[\w,]+/) }
operators.each do |operator|
@@ -451,6 +452,8 @@ get "/search" do |env|
features = value.split(",")
when "sort"
sort = value
+ when "subscriptions"
+ subscriptions = value == "true"
end
end
@@ -458,6 +461,15 @@ get "/search" do |env|
if channel
count, videos = channel_search(search_query, page, channel)
+ elsif subscriptions
+ videos = PG_DB.query_all("SELECT id,title,published,updated,ucid,author FROM (
+ SELECT *,
+ to_tsvector(channel_videos.title) ||
+ to_tsvector(channel_videos.author)
+ as document
+ FROM channel_videos
+ ) v_search WHERE v_search.document @@ plainto_tsquery($1) LIMIT 20 OFFSET $2;", search_query, (page - 1) * 20, as: ChannelVideo)
+ count = videos.size
else
search_params = build_search_params(sort: sort, date: date, content_type: "video",
duration: duration, features: features)