summaryrefslogtreecommitdiff
path: root/lib/plugins/link/quirks.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins/link/quirks.ex')
-rw-r--r--lib/plugins/link/quirks.ex45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/plugins/link/quirks.ex b/lib/plugins/link/quirks.ex
new file mode 100644
index 0000000..6f46f6b
--- /dev/null
+++ b/lib/plugins/link/quirks.ex
@@ -0,0 +1,45 @@
+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