mirror of
				https://gitea.invidious.io/iv-org/invidious-copy-2023-06-08.git
				synced 2024-08-15 00:53:38 +00:00 
			
		
		
		
	Add /api/v1/search/suggestions
This commit is contained in:
		
							parent
							
								
									196ee1aa8b
								
							
						
					
					
						commit
						fb383458d7
					
				
					 1 changed files with 36 additions and 0 deletions
				
			
		| 
						 | 
					@ -3840,6 +3840,42 @@ get "/api/v1/search" do |env|
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					get "/api/v1/search/suggestions" do |env|
 | 
				
			||||||
 | 
					  locale = LOCALES[env.get("preferences").as(Preferences).locale]?
 | 
				
			||||||
 | 
					  region = env.params.query["region"]?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  env.response.content_type = "application/json"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  query = env.params.query["q"]?
 | 
				
			||||||
 | 
					  query ||= ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  begin
 | 
				
			||||||
 | 
					    client = make_client(URI.parse("https://suggestqueries.google.com"))
 | 
				
			||||||
 | 
					    response = client.get("/complete/search?hl=en&gl=#{region}&client=youtube&ds=yt&q=#{URI.escape(query)}&callback=suggestCallback").body
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    body = response[35..-2]
 | 
				
			||||||
 | 
					    body = JSON.parse(body).as_a
 | 
				
			||||||
 | 
					    suggestions = body[1].as_a[0..-2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    JSON.build do |json|
 | 
				
			||||||
 | 
					      json.object do
 | 
				
			||||||
 | 
					        json.field "query", body[0].as_s
 | 
				
			||||||
 | 
					        json.field "suggestions" do
 | 
				
			||||||
 | 
					          json.array do
 | 
				
			||||||
 | 
					            suggestions.each do |suggestion|
 | 
				
			||||||
 | 
					              json.string suggestion[0].as_s
 | 
				
			||||||
 | 
					            end
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  rescue ex
 | 
				
			||||||
 | 
					    env.response.status_code = 500
 | 
				
			||||||
 | 
					    error_message = {"error" => ex.message}.to_json
 | 
				
			||||||
 | 
					    next error_message
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
get "/api/v1/playlists/:plid" do |env|
 | 
					get "/api/v1/playlists/:plid" do |env|
 | 
				
			||||||
  locale = LOCALES[env.get("preferences").as(Preferences).locale]?
 | 
					  locale = LOCALES[env.get("preferences").as(Preferences).locale]?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue