diff options
| author | Ben Busby <contact@benbusby.com> | 2022-06-21 15:01:23 -0600 |
|---|---|---|
| committer | Ben Busby <contact@benbusby.com> | 2022-06-21 15:01:23 -0600 |
| commit | 52833ef89e807ca02b18021b6e0004efe95a0987 (patch) | |
| tree | 400b7c7fb3a8a5a5382ffb00c068652e727c20d0 /lib/farside.ex | |
| parent | fb286398bcd9b4ee4b845f7fbfbeb971550dd89e (diff) | |
| download | farside-52833ef89e807ca02b18021b6e0004efe95a0987.tar.gz | |
Redirect youtu.be links to the correct instance
Farside was previously only looking for links containing "youtube.com"
when performing the redirect for full URLs to youtube, which obviously
doesn't work for youtu.be shortened links. This updates the matching
logic to use a regex element for every key in the services map in order
to match against multiple possible domains for each parent service.
Fixes #40
Diffstat (limited to 'lib/farside.ex')
| -rw-r--r-- | lib/farside.ex | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/farside.ex b/lib/farside.ex index 97a14bc..21e5076 100644 --- a/lib/farside.ex +++ b/lib/farside.ex @@ -7,15 +7,15 @@ defmodule Farside do # This enables Farside to redirect with links such as: # farside.link/https://www.youtube.com/watch?v=dQw4w9WgXcQ @parent_services %{ - "youtube.com" => ["invidious", "piped"], - "reddit.com" => ["libreddit", "teddit"], - "instagram.com" => ["bibliogram"], - "twitter.com" => ["nitter"], - "wikipedia.org" => ["wikiless"], - "medium.com" => ["scribe"], - "odysee.com" => ["librarian"], - "imgur.com" => ["rimgo"], - "translate.google.com" => ["lingva"] + ~r/youtu(.be|be.com)/ => ["invidious", "piped"], + ~r/reddit.com/ => ["libreddit", "teddit"], + ~r/instagram.com/ => ["bibliogram"], + ~r/twitter.com/ => ["nitter"], + ~r/wikipedia.org/ => ["wikiless"], + ~r/medium.com/ => ["scribe"], + ~r/odysee.com/ => ["librarian"], + ~r/imgur.com/ => ["rimgo"], + ~r/translate.google.com/ => ["lingva"] } def get_services_map do @@ -49,7 +49,7 @@ defmodule Farside do Enum.find_value( @parent_services, fn {k, v} -> - service =~ k && Enum.random(v) + String.match?(service, k) && Enum.random(v) end) true -> service |
