diff --git a/src/helpers.cr b/src/helpers.cr index 9375b3a6..e7a1e688 100644 --- a/src/helpers.cr +++ b/src/helpers.cr @@ -13,6 +13,10 @@ macro templated(filename) render "src/views/#{{{filename}}}.ecr", "src/views/layout.ecr" end +macro rendered(filename) + render "src/views/#{{{filename}}}.ecr" +end + class Config YAML.mapping({ crawl_threads: Int32, @@ -297,7 +301,7 @@ end def decrypt_signature(a) a = a.split("") - + a.reverse! a = splice(a, 50) a.delete_at(0..1) diff --git a/src/invidious.cr b/src/invidious.cr index 2d9062c3..f86d9331 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -386,34 +386,32 @@ get "/search" do |env| html = client.get("/results?q=#{URI.escape(query)}&page=#{page}&sp=EgIQAVAU").body html = XML.parse_html(html) - videos = Array(Hash(String, String)).new + videos = [] of Video html.xpath_nodes(%q(//ol[@class="item-section"]/li)).each do |item| root = item.xpath_node(%q(div[contains(@class,"yt-lockup-video")]/div)) if root - video = {} of String => String - id = root.xpath_node(%q(div[contains(@class,"yt-lockup-thumbnail")]/a/@href)) if id id = id.content.lchop("/watch?v=") end id ||= "" - video["id"] = id title = root.xpath_node(%q(div[@class="yt-lockup-content"]/h3/a)) if title - video["title"] = title.content + title = title.content end - video["title"] ||= "" + title ||= "" author = root.xpath_node(%q(div[@class="yt-lockup-content"]/div/a)) if author - video["author"] = author.content - video["ucid_url"] = author["href"] + ucid = author["href"].rpartition("/")[-1] + author = author.content end - video["author"] ||= "" - video["ucid_url"] ||= "" + author ||= "" + ucid ||= "" + video = Video.new(id, HTTP::Params.parse(""), Time.now, title, 0_i64, 0, 0, 0.0, Time.now, "", nil, author, ucid) videos << video end end diff --git a/src/views/components/subscription_video.ecr b/src/views/components/subscription_video.ecr new file mode 100644 index 00000000..9abbb09f --- /dev/null +++ b/src/views/components/subscription_video.ecr @@ -0,0 +1,14 @@ +
<%= video.title %>
+ + +<%= video.title %>
- - --