summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>2021-06-19 07:36:58 +0000
committerGitHub <noreply@github.com>2021-06-19 07:36:58 +0000
commit2b9c6c95b1f8b63460fad97bb39777be6ec65051 (patch)
tree24b52aff4f380701205739b7a870127fc9d56119 /src
parent3f34db549f308715b81bad175f1ad8d3678a8f98 (diff)
parent3de92b337db9388152caf0e931cfbb07822198df (diff)
downloadinvidious-2b9c6c95b1f8b63460fad97bb39777be6ec65051.tar.gz
invidious-2b9c6c95b1f8b63460fad97bb39777be6ec65051.tar.bz2
invidious-2b9c6c95b1f8b63460fad97bb39777be6ec65051.zip
Merge pull request #2155 from SamantazFox/fix-utf8-in-search
Multiple search fixes
Diffstat (limited to 'src')
-rw-r--r--src/invidious/helpers/youtube_api.cr2
-rw-r--r--src/invidious/routes/search.cr51
-rw-r--r--src/invidious/views/search_homepage.ecr2
3 files changed, 30 insertions, 25 deletions
diff --git a/src/invidious/helpers/youtube_api.cr b/src/invidious/helpers/youtube_api.cr
index 544e635b..e27d4088 100644
--- a/src/invidious/helpers/youtube_api.cr
+++ b/src/invidious/helpers/youtube_api.cr
@@ -79,7 +79,7 @@ end
def request_youtube_api_search(search_query : String, params : String, region = nil)
# JSON Request data, required by the API
data = {
- "query" => URI.encode_www_form(search_query),
+ "query" => search_query,
"context" => make_youtube_api_context(region),
"params" => params,
}
diff --git a/src/invidious/routes/search.cr b/src/invidious/routes/search.cr
index a993a17a..513904b8 100644
--- a/src/invidious/routes/search.cr
+++ b/src/invidious/routes/search.cr
@@ -20,15 +20,17 @@ class Invidious::Routes::Search < Invidious::Routes::BaseRoute
query = env.params.query["search_query"]?
query ||= env.params.query["q"]?
- query ||= ""
- page = env.params.query["page"]?.try &.to_i?
- page ||= 1
+ page = env.params.query["page"]?
- if query
- env.redirect "/search?q=#{URI.encode_www_form(query)}&page=#{page}"
+ if query && !query.empty?
+ if page && !page.empty?
+ env.redirect "/search?q=" + URI.encode_www_form(query) + "&page=" + page
+ else
+ env.redirect "/search?q=" + URI.encode_www_form(query)
+ end
else
- env.redirect "/"
+ env.redirect "/search"
end
end
@@ -38,28 +40,31 @@ class Invidious::Routes::Search < Invidious::Routes::BaseRoute
query = env.params.query["search_query"]?
query ||= env.params.query["q"]?
- query ||= ""
- return env.redirect "/" if query.empty?
+ if !query || query.empty?
+ # Display the full page search box implemented in #1977
+ env.set "search", ""
+ templated "search_homepage", navbar_search: false
+ else
+ page = env.params.query["page"]?.try &.to_i?
+ page ||= 1
- page = env.params.query["page"]?.try &.to_i?
- page ||= 1
+ user = env.get? "user"
- user = env.get? "user"
+ begin
+ search_query, count, videos, operators = process_search_query(query, page, user, region: region)
+ rescue ex
+ return error_template(500, ex)
+ end
- begin
- search_query, count, videos, operators = process_search_query(query, page, user, region: nil)
- rescue ex
- return error_template(500, ex)
- end
+ operator_hash = {} of String => String
+ operators.each do |operator|
+ key, value = operator.downcase.split(":")
+ operator_hash[key] = value
+ end
- operator_hash = {} of String => String
- operators.each do |operator|
- key, value = operator.downcase.split(":")
- operator_hash[key] = value
+ env.set "search", query
+ templated "search"
end
-
- env.set "search", query
- templated "search"
end
end
diff --git a/src/invidious/views/search_homepage.ecr b/src/invidious/views/search_homepage.ecr
index 8927c3f1..7d2dab83 100644
--- a/src/invidious/views/search_homepage.ecr
+++ b/src/invidious/views/search_homepage.ecr
@@ -1,7 +1,7 @@
<% content_for "header" do %>
<meta name="description" content="<%= translate(locale, "An alternative front-end to YouTube") %>">
<title>
- Invidious
+ Invidious - <%= translate(locale, "search") %>
</title>
<link rel="stylesheet" href="/css/empty.css?v=<%= ASSET_COMMIT %>">
<% end %>