defmodule Nola.Plugins.Link.Quirks do @rewrite_hosts "./lib/plugins/link/data/quirks_rewrite_host.txt" |> Util.read_file_list!() |> Enum.map(fn line -> [old, new] = String.split(line, ":") {old, new} end) |> Enum.map(fn {old, new} -> [{old, new}, {"www.#{old}", new}] end) |> List.flatten() |> then(fn list -> IO.puts("Link Quirks: rewrite_hosts: #{inspect(list)}") list end) for {old, new} <- @rewrite_hosts do def uri(%URI{host: unquote(old)} = uri) do %URI{uri | host: unquote(new)} end end def uri(url) do url end @telegram_bot_hosts "./lib/plugins/link/data/quirks_telegram_bot_user_agent.txt" |> Util.read_file_list!() |> Enum.map(fn h -> [h, "www.#{h}"] end) |> List.flatten() |> then(fn list -> IO.puts("Link Quirks: telegram_bot_hosts: #{inspect(list)}") list end) def user_agent(host) when host in @telegram_bot_hosts do "TelegramBot (like TwitterBot)" end def user_agent(_host) do "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" end def list() do [rewrite_hosts: @rewrite_hosts, telegram_bot_hosts: @telegram_bot_hosts] end end