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
This commit is contained in:
syeopite 2024-12-19 13:18:04 -08:00
parent 9892604758
commit 3dc4054c5b
No known key found for this signature in database
GPG Key ID: A73C186DA3955A1A
6 changed files with 9 additions and 35 deletions

View File

@ -18,7 +18,7 @@ shards:
exception_page:
git: https://github.com/crystal-loot/exception_page.git
version: 0.2.2
version: 0.4.1
http_proxy:
git: https://github.com/mamantoha/http_proxy.git
@ -26,11 +26,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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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"
@ -221,8 +219,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

View File

@ -55,12 +55,11 @@ macro templated(_filename, template = "template", navbar_search = true)
{{ 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