Multiple search fixes
* Remove percent-encoding of the search query when calling youtube API, as it breaks UTF-8 * Empty search redirects to /search, not / * Show the fullscreen search "home page" (from #1977) at /search * Allow 'region=' parameter to be passed to /search * Other minor fixes
This commit is contained in:
parent
fe64e6dbf2
commit
a2f5342a83
|
@ -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,
|
||||
}
|
||||
|
|
|
@ -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 "/"
|
||||
env.redirect "/search?q=" + URI.encode_www_form(query)
|
||||
end
|
||||
else
|
||||
env.redirect "/search"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -38,9 +40,13 @@ 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
|
||||
return
|
||||
end
|
||||
|
||||
page = env.params.query["page"]?.try &.to_i?
|
||||
page ||= 1
|
||||
|
@ -48,7 +54,7 @@ class Invidious::Routes::Search < Invidious::Routes::BaseRoute
|
|||
user = env.get? "user"
|
||||
|
||||
begin
|
||||
search_query, count, videos, operators = process_search_query(query, page, user, region: nil)
|
||||
search_query, count, videos, operators = process_search_query(query, page, user, region: region)
|
||||
rescue ex
|
||||
return error_template(500, ex)
|
||||
end
|
||||
|
|
|
@ -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 %>
|
||||
|
|
Loading…
Reference in a new issue