Add support for 'region' in search
This commit is contained in:
parent
d625d0ffbd
commit
a7b79824de
|
@ -596,6 +596,7 @@ end
|
||||||
|
|
||||||
get "/search" do |env|
|
get "/search" do |env|
|
||||||
locale = LOCALES[env.get("locale").as(String)]?
|
locale = LOCALES[env.get("locale").as(String)]?
|
||||||
|
region = env.params.query["region"]?
|
||||||
|
|
||||||
query = env.params.query["search_query"]?
|
query = env.params.query["search_query"]?
|
||||||
query ||= env.params.query["q"]?
|
query ||= env.params.query["q"]?
|
||||||
|
@ -671,7 +672,7 @@ get "/search" do |env|
|
||||||
next templated "error"
|
next templated "error"
|
||||||
end
|
end
|
||||||
|
|
||||||
count, videos = search(search_query, page, search_params).as(Tuple)
|
count, videos = search(search_query, page, search_params, proxies, region).as(Tuple)
|
||||||
end
|
end
|
||||||
|
|
||||||
templated "search"
|
templated "search"
|
||||||
|
@ -3199,6 +3200,7 @@ end
|
||||||
|
|
||||||
get "/api/v1/search" do |env|
|
get "/api/v1/search" do |env|
|
||||||
locale = LOCALES[env.get("locale").as(String)]?
|
locale = LOCALES[env.get("locale").as(String)]?
|
||||||
|
region = env.params.query["region"]?
|
||||||
|
|
||||||
env.response.content_type = "application/json"
|
env.response.content_type = "application/json"
|
||||||
|
|
||||||
|
@ -3220,7 +3222,6 @@ get "/api/v1/search" do |env|
|
||||||
features = env.params.query["features"]?.try &.split(",").map { |feature| feature.downcase }
|
features = env.params.query["features"]?.try &.split(",").map { |feature| feature.downcase }
|
||||||
features ||= [] of String
|
features ||= [] of String
|
||||||
|
|
||||||
# TODO: Support other content types
|
|
||||||
content_type = env.params.query["type"]?.try &.downcase
|
content_type = env.params.query["type"]?.try &.downcase
|
||||||
content_type ||= "video"
|
content_type ||= "video"
|
||||||
|
|
||||||
|
@ -3235,7 +3236,7 @@ get "/api/v1/search" do |env|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
count, search_results = search(query, page, search_params).as(Tuple)
|
count, search_results = search(query, page, search_params, proxies, region).as(Tuple)
|
||||||
response = JSON.build do |json|
|
response = JSON.build do |json|
|
||||||
json.array do
|
json.array do
|
||||||
search_results.each do |item|
|
search_results.each do |item|
|
||||||
|
|
|
@ -85,8 +85,8 @@ def channel_search(query, page, channel)
|
||||||
return count, items
|
return count, items
|
||||||
end
|
end
|
||||||
|
|
||||||
def search(query, page = 1, search_params = produce_search_params(content_type: "all"))
|
def search(query, page = 1, search_params = produce_search_params(content_type: "all"), proxies = nil, region = nil)
|
||||||
client = make_client(YT_URL)
|
client = make_client(YT_URL, proxies, region)
|
||||||
if query.empty?
|
if query.empty?
|
||||||
return {0, [] of SearchItem}
|
return {0, [] of SearchItem}
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue