forked from midou/invidious
		
	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:
		@@ -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 "/search?q=" + URI.encode_www_form(query)
 | 
			
		||||
      end
 | 
			
		||||
    else
 | 
			
		||||
      env.redirect "/"
 | 
			
		||||
      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 %>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user