import Config # Configure Swoosh SMTP adapter to skip TLS certificate verification # This is needed for IONOS SMTP server which has certificate key usage issues config :asciinema, Asciinema.Emails.Mailer, adapter: Swoosh.Adapters.SMTP, relay: System.get_env("SMTP_HOST"), username: System.get_env("SMTP_USERNAME"), password: System.get_env("SMTP_PASSWORD"), port: System.get_env("SMTP_PORT") || 587, tls: :always, auth: :always, ssl: false, tls_options: [ verify: :verify_none, versions: [:"tlsv1.2", :"tlsv1.3"] ] # Custom Plug to inject theme JavaScript into HTML responses defmodule CustomThemeInjector do @behaviour Plug def init(opts), do: opts def call(conn, _opts) do Plug.Conn.register_before_send(conn, fn conn -> if html_response?(conn) do inject_custom_script(conn) else conn end end) end defp html_response?(conn) do case Plug.Conn.get_resp_header(conn, "content-type") do [content_type | _] -> String.contains?(content_type, "text/html") [] -> false end end defp inject_custom_script(conn) do {status, headers, body} = Plug.Conn.sent_resp(conn) if is_binary(body) and String.contains?(body, "") do script_tag = ~s(\n) modified_body = String.replace(body, "", "#{script_tag}", global: false) %{conn | status: status, resp_headers: headers, resp_body: modified_body} else conn end end end # Add the custom plug to the endpoint config :asciinema, AsciinemaWeb.Endpoint, http: [plug: CustomThemeInjector]