Recently Written · git

dmodurl

Convenient URL v

git clone https://github.com/equwal/dmodurl

Log | Files | Refs


commit 6c61e22dd2ed40f242b0133ec407d55932faea50
Spenser Truex <truex@equwal.com>
2025-09-01 18:16:12 -0400

Initial commit

 dmodurl     | 24 ++++++++++++++++++++++++
 dmodurl.sed | 12 ++++++++++++
 drss.sed    | 11 +++++++++++
 drssurl     | 17 +++++++++++++++++
 modurl      |  3 +++
 rssurl      |  3 +++
 6 files changed, 70 insertions(+)
diff --git a/dmodurl b/dmodurl
new file mode 100755
index 0000000..ac0aae4
--- /dev/null
+++ b/dmodurl
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# Requires modurl
+#
+
+test -s $HOME/.dmenurc && . $HOME/.dmenurc
+PROMPT="url: "
+
+# Trying to show an interactive url list here somehow. Probably need to
+# use a DSL rather than a raw sed file in order to Do The Right Thing
+#URLLIST="$(sed 's:^s#::
+#s:\(#.*\)#.*$:\1:
+#s:' "$XDG_CONFIG_HOME"/dmodurl.sed)"
+
+url="$(xclip -o | dmenu -p "$PROMPT")"
+
+newurl=$(modurl "$url")
+url="$newurl"
+
+test -z "${url}" && exit
+
+choice="$(echo "copy\nbrowse" | dmenu -p "$url -- choice: ")"
+[ "$choice" = "copy" ]   && echo "$url" | xclip -i -sel clip
+[ "$choice" = "browse" ] && dbrowsel "$url"
diff --git a/dmodurl.sed b/dmodurl.sed
new file mode 100644
index 0000000..a4ae9eb
--- /dev/null
+++ b/dmodurl.sed
@@ -0,0 +1,12 @@
+# FORMAT:
+# s#\(https\?://\)\?\(www\.\)\?OLDSITE#NEWSITE:
+# we use # separator
+
+
+# stuff to consider, which doesn't have a canonical link:
+# FF send
+# https://github.com/timvisee/send-instances/
+#
+
+# search
+s#\(https\?://\)\?\(www\.\)\?google\.com#duckduckgo.com#
diff --git a/drss.sed b/drss.sed
new file mode 100644
index 0000000..25b2ee6
--- /dev/null
+++ b/drss.sed
@@ -0,0 +1,11 @@
+# FORMAT:
+# s#\(https\?://\)\?\(www\.\)\?OLDSITE#NEWSITE:
+# we use # separator
+
+
+# stuff to consider, which doesn't have a canonical link:
+# FF send
+# https://github.com/timvisee/send-instances/
+#
+s#\(https\?://\)\?\(www\.\)\?youtube.com/c/\(.*/?\)#youtube.com/feeds/videos.xml?channel_id=\3#
+s#\(https\?://\)\?\(www\.\)\?youtube.com/channel/\(.*/?\)#youtube.com/feeds/videos.xml?channel_id=\3#
diff --git a/drssurl b/drssurl
new file mode 100755
index 0000000..d9af81e
--- /dev/null
+++ b/drssurl
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# Requires rssurl
+#
+
+test -s $HOME/.dmenurc && . $HOME/.dmenurc
+PROMPT="url: "
+
+url="$(xclip -o | dmenu -p "$PROMPT")"
+
+newurl=$(rssurl "$url")
+url="$newurl"
+
+test -z "${url}" && exit
+
+#choice="$(echo "copy\nbrowse" | dmenu -p "$url -- choice: ")"
+echo "$url" | xclip -i -sel clip
diff --git a/modurl b/modurl
new file mode 100755
index 0000000..1017698
--- /dev/null
+++ b/modurl
@@ -0,0 +1,3 @@
+#!/bin/sh
+SCRIPTFILE="$XDG_CONFIG_HOME"/dmodurl.sed
+echo "$1" | sed -f "$SCRIPTFILE"
diff --git a/rssurl b/rssurl
new file mode 100755
index 0000000..1124bbc
--- /dev/null
+++ b/rssurl
@@ -0,0 +1,3 @@
+#!/bin/sh
+SCRIPTFILE="$XDG_CONFIG_HOME"/drss.sed
+echo "$1" | sed -f "$SCRIPTFILE"