24 lines
631 B
Elixir
24 lines
631 B
Elixir
defmodule ZoeyscomputerWeb.DiscordHandler do
|
|
import Plug.Conn
|
|
|
|
def init(opts), do: opts
|
|
|
|
def call(%{path_info: ["images", _id]} = conn, _opts) do
|
|
case get_req_header(conn, "user-agent") do
|
|
["Mozilla/5.0 (compatible; Discordbot/" <> _rest] -> handle_discord(conn)
|
|
_ -> conn
|
|
end
|
|
end
|
|
|
|
def call(conn, _opts), do: conn
|
|
|
|
defp handle_discord(%{path_info: ["images", id]} = conn) do
|
|
url = "https://s3.zoeys.computer/imgs/uploads/#{id}.png"
|
|
|
|
conn
|
|
|> put_resp_header("location", url)
|
|
|> put_resp_content_type("text/plain")
|
|
|> send_resp(302, "Redirecting to image")
|
|
|> halt()
|
|
end
|
|
end
|