From f39ed3d145a58aa967b194805fd616769b5a9b21 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Sun, 16 Sep 2018 21:28:00 -0500 Subject: [PATCH] Add subscriptions search filter --- src/invidious.cr | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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)