mirror of
https://github.com/iv-org/invidious.git
synced 2024-11-25 15:07:22 +00:00
Add search
This commit is contained in:
parent
127e140130
commit
86a8e181bf
@ -213,6 +213,31 @@ get "/watch/:video_id" do |env|
|
|||||||
templated "watch"
|
templated "watch"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
get "/search" do |env|
|
||||||
|
query = URI.escape(env.params.query["q"])
|
||||||
|
client = HTTP::Client.new("www.youtube.com", 443, context)
|
||||||
|
results_html = client.get("https://www.youtube.com/results?q=#{query}&page=1").body
|
||||||
|
html = XML.parse(results_html)
|
||||||
|
|
||||||
|
videos = html.xpath_nodes(%q(//div[@class="style-scope ytd-item-section-renderer"]/ytd-video-renderer))
|
||||||
|
channels = html.xpath_nodes(%q(//div[@class="style-scope ytd-item-section-renderer"]/ytd-channel-renderer))
|
||||||
|
|
||||||
|
if videos.empty?
|
||||||
|
videos = html.xpath_nodes(%q(//div[contains(@class,"yt-lockup-video")]/div/div[contains(@class,"yt-lockup-thumbnail")]/a/@href))
|
||||||
|
channels = html.xpath_nodes(%q(//div[contains(@class,"yt-lockup-channel")]/div/div[contains(@class,"yt-lockup-thumbnail")]/a/@href))
|
||||||
|
end
|
||||||
|
|
||||||
|
templated "search"
|
||||||
|
end
|
||||||
|
|
||||||
|
error 404 do |env|
|
||||||
|
templated "index"
|
||||||
|
end
|
||||||
|
|
||||||
|
error 500 do |env|
|
||||||
|
templated "index"
|
||||||
|
end
|
||||||
|
|
||||||
public_folder "assets"
|
public_folder "assets"
|
||||||
|
|
||||||
Kemal.run
|
Kemal.run
|
||||||
|
3
src/views/search.ecr
Normal file
3
src/views/search.ecr
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<% videos.each do |video| %>
|
||||||
|
<p><a href="<%= video.content %>"><%= video.content %></a></p>
|
||||||
|
<% end %>
|
Loading…
Reference in New Issue
Block a user