From f3d982a88503a94fead3b465a9508bd9b63fa4ba Mon Sep 17 00:00:00 2001 From: syeopite Date: Thu, 19 Dec 2024 13:18:04 -0800 Subject: [PATCH] Update Kemal to 1.6.0 and remove Kilt Kilt is unmaintained and the ECR templating logic has been natively integrated into Kemal with the issues previously seen having been resolved. This commit is mostly a precursor to support the next Kemal release which will add the ability to create error handlers for raised exceptions. See https://github.com/kemalcr/kemal/pull/688 --- shard.lock | 8 ++------ shard.yml | 5 +---- src/ext/kemal_content_for.cr | 16 ---------------- src/ext/kemal_static_file_handler.cr | 2 +- src/invidious.cr | 8 +++----- src/invidious/helpers/macros.cr | 5 ++--- 6 files changed, 9 insertions(+), 35 deletions(-) delete mode 100644 src/ext/kemal_content_for.cr diff --git a/shard.lock b/shard.lock index 1c396a7f..e4d8eeae 100644 --- a/shard.lock +++ b/shard.lock @@ -18,7 +18,7 @@ shards: exception_page: git: https://github.com/crystal-loot/exception_page.git - version: 0.2.2 + version: 0.4.1 inotify: git: https://github.com/petoem/inotify.cr.git @@ -29,11 +29,7 @@ shards: kemal: git: https://github.com/kemalcr/kemal.git - version: 1.1.2 - - kilt: - git: https://github.com/jeromegn/kilt.git - version: 0.6.1 + version: 1.6.0 pg: git: https://github.com/will/crystal-pg.git diff --git a/shard.yml b/shard.yml index 36dec2d5..4deeadb0 100644 --- a/shard.yml +++ b/shard.yml @@ -17,10 +17,7 @@ dependencies: version: ~> 0.21.0 kemal: github: kemalcr/kemal - version: ~> 1.1.2 - kilt: - github: jeromegn/kilt - version: ~> 0.6.1 + version: ~> 1.6.0 protodec: github: iv-org/protodec version: ~> 0.1.5 diff --git a/src/ext/kemal_content_for.cr b/src/ext/kemal_content_for.cr deleted file mode 100644 index a4f3fd96..00000000 --- a/src/ext/kemal_content_for.cr +++ /dev/null @@ -1,16 +0,0 @@ -# Overrides for Kemal's `content_for` macro in order to keep using -# kilt as it was before Kemal v1.1.1 (Kemal PR #618). - -require "kemal" -require "kilt" - -macro content_for(key, file = __FILE__) - %proc = ->() { - __kilt_io__ = IO::Memory.new - {{ yield }} - __kilt_io__.to_s - } - - CONTENT_FOR_BLOCKS[{{key}}] = Tuple.new {{file}}, %proc - nil -end diff --git a/src/ext/kemal_static_file_handler.cr b/src/ext/kemal_static_file_handler.cr index eb068aeb..a5f42261 100644 --- a/src/ext/kemal_static_file_handler.cr +++ b/src/ext/kemal_static_file_handler.cr @@ -71,7 +71,7 @@ def send_file(env : HTTP::Server::Context, file_path : String, data : Slice(UInt filesize = data.bytesize attachment(env, filename, disposition) - Kemal.config.static_headers.try(&.call(env.response, file_path, filestat)) + Kemal.config.static_headers.try(&.call(env, file_path, filestat)) file = IO::Memory.new(data) if env.request.method == "GET" && env.request.headers.has_key?("Range") diff --git a/src/invidious.cr b/src/invidious.cr index 6a236bd6..3bb59b97 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -17,10 +17,8 @@ require "digest/md5" require "file_utils" -# Require kemal, kilt, then our own overrides +# Require kemal, then our own overrides require "kemal" -require "kilt" -require "./ext/kemal_content_for.cr" require "./ext/kemal_static_file_handler.cr" require "http_proxy" @@ -246,8 +244,8 @@ error 500 do |env, ex| error_template(500, ex) end -static_headers do |response| - response.headers.add("Cache-Control", "max-age=2629800") +static_headers do |env| + env.response.headers.add("Cache-Control", "max-age=2629800") end # Init Kemal diff --git a/src/invidious/helpers/macros.cr b/src/invidious/helpers/macros.cr index d55fa6fc..8b2f6457 100644 --- a/src/invidious/helpers/macros.cr +++ b/src/invidious/helpers/macros.cr @@ -56,12 +56,11 @@ macro templated(_filename, template = "template", navbar_search = true, buffer_f {{ layout = "src/invidious/views/" + template + ".ecr" }} __content_filename__ = {{filename}} - content = Kilt.render({{filename}}) - Kilt.render({{layout}}) + render {{filename}}, {{layout}} end macro rendered(filename) - Kilt.render("src/invidious/views/#{{{filename}}}.ecr") + render("src/invidious/views/#{{{filename}}}.ecr") end # Similar to Kemals halt method but works in a