From 5e60c28ce5ac3b6c4625336405735ede13f23bf4 Mon Sep 17 00:00:00 2001 From: kuu7o Date: Tue, 18 Nov 2025 15:51:32 -0300 Subject: [PATCH] feat: add SoundCloud -> SoundCloak replacement support --- src/formatters.nim | 7 +++++++ src/prefs_impl.nim | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/formatters.nim b/src/formatters.nim index 479243b..6d89fd3 100644 --- a/src/formatters.nim +++ b/src/formatters.nim @@ -17,6 +17,8 @@ let imgurLinkRegex = re"""(i\.)?imgur\.com(\S+)""" fandomRegex = re"(?<=(?([a-z0-9-]+)\.fandom\.com(\S+)""" + soundcloudRegex = re"(?<=(?(www\.)?soundcloud\.com(\S+)""" ytRegex = re(r"([A-z.]+\.)?youtu(be\.com|\.be)", {reStudy, reIgnoreCase}) @@ -87,6 +89,11 @@ proc replaceUrls*(body: string; prefs: Prefs; absolute=""): string = result = result.replacef(fandomLinkRegex, a( prefs.replaceFandom & "/$1$2", href = https & prefs.replaceFandom & "/$1$2")) + if prefs.replaceSoundCloud.len > 0 and "soundcloud.com" in result: + result = result.replace(soundcloudRegex, prefs.replaceSoundCloud) + result = result.replacef(soundcloudLinkRegex, a( + prefs.replaceSoundCloud & "$4", href = https & prefs.replaceSoundCloud & "$2")) + if prefs.replaceReddit.len > 0 and ("reddit.com" in result or "redd.it" in result): result = result.replace(rdShortRegex, prefs.replaceReddit & "/comments/") result = result.replace(rdRegex, prefs.replaceReddit) diff --git a/src/prefs_impl.nim b/src/prefs_impl.nim index c12cc58..28703c6 100644 --- a/src/prefs_impl.nim +++ b/src/prefs_impl.nim @@ -115,6 +115,10 @@ genPrefs: "Fandom -> Phantom" placeholder: "Phantom hostname" + replaceSoundCloud(input, ""): + "SoundCloud -> SoundCloak" + placeholder: "SoundCloak hostname" + iterator allPrefs*(): Pref = for k, v in prefList: for pref in v: