diff --git a/Dockerfile b/Dockerfile index 9514327..7f6abda 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build image -FROM crystallang/crystal:1.10.1-alpine as builder +FROM crystallang/crystal:1.15.1-alpine as builder WORKDIR /opt # Cache dependencies COPY ./shard.yml ./shard.lock /opt/ diff --git a/shard.yml b/shard.yml index 081570e..9748bd7 100644 --- a/shard.yml +++ b/shard.yml @@ -24,6 +24,6 @@ development_dependencies: github: crystal-ameba/ameba version: ~> 1.5.0 -crystal: 1.10.1 +crystal: 1.15 license: MIT diff --git a/src/server.cr b/src/server.cr index f4cae00..a3b2fe6 100644 --- a/src/server.cr +++ b/src/server.cr @@ -26,6 +26,17 @@ get "/" do |env| end end +get "/s/:scheme/:url" do |env| + begin + fallback_url = URI.parse(env.params.url["url"]) + target_uri = URI.parse(env.params.url["url"]) + target_uri.scheme = env.params.url["scheme"] + render "src/views/s.ecr" + rescue udl_error + render "src/views/fallback.ecr" + end +end + get "/.well-known/apple-app-site-association" do |env| env.response.content_type = "application/json" diff --git a/src/views/s.ecr b/src/views/s.ecr new file mode 100644 index 0000000..1fc4067 --- /dev/null +++ b/src/views/s.ecr @@ -0,0 +1,57 @@ + + +
+ + + +