zoeys.computer/lib/zoeyscomputer_web/plugs/discord_handler.ex
2024-10-25 20:09:50 -04:00

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