summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBen Busby <contact@benbusby.com>2023-05-19 10:57:43 -0600
committerBen Busby <contact@benbusby.com>2023-05-19 10:57:43 -0600
commit0ce0832a2855d1bad52898a585e5f416b9dfd9c4 (patch)
treed94296ba88c7a463f74229c8869dab74dc2d83ec /lib
parentdd51523fafba4fd0d63da95d997b1eb64f0ee2f0 (diff)
downloadfarside-0ce0832a2855d1bad52898a585e5f416b9dfd9c4.tar.gz
Add support for BreezeWiki
Includes nightly build support for automatically pulling the most up to date instance list. Closes #104
Diffstat (limited to 'lib')
-rw-r--r--lib/farside.ex19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/farside.ex b/lib/farside.ex
index f31920a..aeec6d8 100644
--- a/lib/farside.ex
+++ b/lib/farside.ex
@@ -1,7 +1,7 @@
defmodule Farside do
- @service_prefix Application.fetch_env!(:farside, :service_prefix)
- @fallback_suffix Application.fetch_env!(:farside, :fallback_suffix)
- @previous_suffix Application.fetch_env!(:farside, :previous_suffix)
+ @service_prefix Application.compile_env!(:farside, :service_prefix)
+ @fallback_suffix Application.compile_env!(:farside, :fallback_suffix)
+ @previous_suffix Application.compile_env!(:farside, :previous_suffix)
# Define relation between available services and their parent service.
# This enables Farside to redirect with links such as:
@@ -19,6 +19,7 @@ defmodule Farside do
@imdb_regex ~r/imdb.com|libremdb/
@quora_regex ~r/quora.com|quetre/
@gsearch_regex ~r/google.com\/search|whoogle/
+ @fandom_regex ~r/fandom.com|breezewiki/
@parent_services %{
@youtube_regex => ["invidious", "piped"],
@@ -33,7 +34,8 @@ defmodule Farside do
@tiktok_regex => ["proxitok"],
@imdb_regex => ["libremdb"],
@quora_regex => ["quetre"],
- @gsearch_regex => ["whoogle"]
+ @gsearch_regex => ["whoogle"],
+ @fandom_regex => ["breezewiki"]
}
def get_services_map do
@@ -127,6 +129,15 @@ defmodule Farside do
else
instance
end
+ String.match?(service, @fandom_regex) ->
+ # Fandom links require the subdomain to be preserved, otherwise the
+ # requested path won't work.
+ if String.contains?(service, ".fandom.com") do
+ wiki = String.replace(service, ".fandom.com", "")
+ "#{instance}/#{wiki}"
+ else
+ instance
+ end
true ->
instance
end