From f5ea832721f376d429fd9cbd33918827db1c3439 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Tue, 19 Jun 2018 16:20:08 -0500 Subject: [PATCH] Upgrade to Crystal 0.25 and update signature --- shard.yml | 4 ++-- src/helpers.cr | 14 ++++++++------ src/invidious.cr | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/shard.yml b/shard.yml index dee35dff..c8ec5807 100644 --- a/shard.yml +++ b/shard.yml @@ -1,5 +1,5 @@ name: invidious -version: 0.1.0 +version: 0.2.0 authors: - Omar Roth @@ -19,6 +19,6 @@ dependencies: github: detectlanguage/detectlanguage-crystal branch: master -crystal: 0.24.2 +crystal: 0.25.0 license: AGPLv3 diff --git a/src/helpers.cr b/src/helpers.cr index 1d0fc537..8e92cbc9 100644 --- a/src/helpers.cr +++ b/src/helpers.cr @@ -227,7 +227,7 @@ def fetch_video(id, client) published = published.split(" ") published = published[-3..-1].join(" ") if !published.includes?("ago") - published = Time.parse(published, "%b %-d, %Y") + published = Time.parse(published, "%b %-d, %Y", Time::Location.local) else # Time matches format "20 hours ago", "40 minutes ago"... delta = published.split(" ")[0].to_i @@ -298,10 +298,12 @@ end def decrypt_signature(a) a = a.split("") - a.delete_at(0..2) - a = splice(a, 44) + a = splice(a, 60) a.delete_at(0..1) - a = splice(a, 34) + a = splice(a, 31) + a.reverse! + a = splice(a, 33) + a.delete_at(0..2) return a.join("") end @@ -574,8 +576,8 @@ def fetch_channel(ucid, client, db, pull_videos = true) rss.xpath_nodes("//feed/entry").each do |entry| video_id = entry.xpath_node("videoid").not_nil!.content title = entry.xpath_node("title").not_nil!.content - published = Time.parse(entry.xpath_node("published").not_nil!.content, "%FT%X%z") - updated = Time.parse(entry.xpath_node("updated").not_nil!.content, "%FT%X%z") + published = Time.parse(entry.xpath_node("published").not_nil!.content, "%FT%X%z", Time::Location.local) + updated = Time.parse(entry.xpath_node("updated").not_nil!.content, "%FT%X%z", Time::Location.local) author = entry.xpath_node("author/name").not_nil!.content ucid = entry.xpath_node("channelid").not_nil!.content diff --git a/src/invidious.cr b/src/invidious.cr index 71a0f0b6..c0581944 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -1000,7 +1000,7 @@ end # Add redirect if SSL is enabled if Kemal.config.ssl spawn do - server = HTTP::Server.new("0.0.0.0", 80) do |context| + server = HTTP::Server.new do |context| redirect_url = "https://#{context.request.host}#{context.request.path}" if context.request.query redirect_url += "?#{context.request.query}" @@ -1009,6 +1009,7 @@ if Kemal.config.ssl context.response.status_code = 301 end + server.bind_tcp "0.0.0.0", 80 server.listen end