Adding #mousetrap-jenga tag. - annna - Annna the nice friendly bot.
HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
---
DIR commit f6e4e72d055c4725c59fa9996a191071bf4fa1df
DIR parent dac0560e58de207f9b9c0f317b2b9784a1f96afe
HTML Author: Annna Robert-Houdin <annna@bitreich.org>
Date: Thu, 1 Jan 2026 18:20:20 +0100
Adding #mousetrap-jenga tag.
Diffstat:
M annna-channel-service | 6 ++----
M annna-message-radio | 24 ++++++++++++++----------
M modules/hashtags/hashtags.txt | 1 +
M modules/radio/radio-channel-servic… | 13 ++++++++++---
M modules/radio/radio-random-channel… | 12 +++++++++++-
5 files changed, 38 insertions(+), 18 deletions(-)
---
DIR diff --git a/annna-channel-service b/annna-channel-service
@@ -7,13 +7,11 @@ case "${IRC_SERVER}" in
export SERVICE_BASE="${ANNNA_MODBASE}/idlerpg"
# TODO: Fix idle service for new architecture.
${SERVICE_BASE}/idlerpg-channel-service.py &
- exit
- ;;
+ exit;;
\#bitreich-radio)
[ -n "$(pgrep -f radio-channel-service.sh)" ] && exit
export SERVICE_BASE="${ANNNA_MODBASE}/radio"
- "${SERVICE_BASE}/radio-channel-service.sh" &
- ;;
+ "${SERVICE_BASE}/radio-channel-service.sh" &;;
esac;;
esac
DIR diff --git a/annna-message-radio b/annna-message-radio
@@ -3,16 +3,20 @@
[ "$IRC_CMD_USER" = "${IRC_USER}" ] && exit
case "${IRC_PRIVMSG_TEXT}" in
-"${IRC_USER}, next song please.") /usr/bin/mpc -q next; exit;;
-"${IRC_USER}, prev song please.") /usr/bin/mpc -q prev; exit;;
-"${IRC_USER}, please shuffle.") /usr/bin/mpc -q shuffle; exit;;
-"${IRC_USER}, please toggle random.") /usr/bin/mpc -q random; exit;;
-"${IRC_USER}, please toggle single.") /usr/bin/mpc -q single; exit;;
-"${IRC_USER}, please toggle consume.") /usr/bin/mpc -q consume; exit;;
-"${IRC_USER}, please rescan.") /usr/bin/mpc -q rescan; exit;;
-"${IRC_USER}, how many people listen to the radio?")
+"${IRC_USER}, next song please"*) /usr/bin/mpc -q next; exit;;
+"${IRC_USER}, prev song please"*) /usr/bin/mpc -q prev; exit;;
+"${IRC_USER}, please shuffle"*) /usr/bin/mpc -q shuffle; exit;;
+"${IRC_USER}, please toggle random"*) /usr/bin/mpc -q random; exit;;
+"${IRC_USER}, please toggle single"*) /usr/bin/mpc -q single; exit;;
+"${IRC_USER}, please toggle consume"*) /usr/bin/mpc -q consume; exit;;
+"${IRC_USER}, please rescan"*) /usr/bin/mpc -q rescan; exit;;
+"${IRC_USER}, how many people listen to the radio"*)
annna-say "${IRC_CMD_USER}, $(/br/bin/bitreich-radio-listener-count)"
exit;;
+"${IRC_USER}, what is playing"*)
+ currentsong="$(mpc current 2>/dev/null)"
+ [ -n "${currentsong}" ] && annna-say "Now playing: ${currentsong}"
+ exit;;
"${IRC_USER}, please radio play "*)
url="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 25- | sed 's,\t, ,g')"
{
@@ -27,7 +31,7 @@ case "${IRC_PRIVMSG_TEXT}" in
annna-say "The speech is done."
} &
exit;;
-"${IRC_USER}, please stop speaking on radio.")
+"${IRC_USER}, please stop speaking on radio"*)
if pkill -f bitreich-radio-speak >/dev/null 2>&1;
then
annna-say "${IRC_CMD_USER}, I stopped speaking."
@@ -35,7 +39,7 @@ case "${IRC_PRIVMSG_TEXT}" in
annna-say "${IRC_CMD_USER}, sorry, no instances found."
fi
exit;;
-"${IRC_USER}, please radio status.")
+"${IRC_USER}, please radio status"*)
mpc_status="$(/usr/bin/mpc status | grep '\[.*\]' -o | tr -d '[]')"
[ -z "$mpc_status" ] && mpc_status="gone"
annna-say "The radio is ${mpc_status}."
DIR diff --git a/modules/hashtags/hashtags.txt b/modules/hashtags/hashtags.txt
@@ -14394,6 +14394,7 @@
#mouse-turbo-scroll gophers://bitreich.org/9/memecache/mouse-turbo-scroll.mkv
#mouse-wheel-simulation gophers://bitreich.org/9/memecache/mouse-wheel-simulation.mp4
#mousepion gophers://bitreich.org/I/memecache/mousepion.jpg
+#mousetrap-jenga gophers://bitreich.org/9/memecache/mousetrap-jenga.mp4
#mousetrap2023 gophers://bitreich.org/I/memecache/mousetrap2023.jpg
#moussystyle gophers://bitreich.org/I/memecache/moussystyle.png
#moustache gophers://bitreich.org/9/memecache/moustache.mp4
DIR diff --git a/modules/radio/radio-channel-service.sh b/modules/radio/radio-channel-service.sh
@@ -1,10 +1,17 @@
#!/bin/sh
+set -x
+
+export PATH="/home/annna/bin:$PATH"
+
while annna-alive;
do
- currentsong="$(mpc current --wait 2>/dev/null)"
- annna-alive || exit 0
- [ -n "${currentsong}" ] && annna-say "Now playing: ${currentsong}"
+ event="$(mpc idle 2>/dev/null)"
+ case "${event}" in
+ *playlist*|*player*)
+ newsong="$(mpc current 2>/dev/null)"
+ [ -n "${newsong}" ] && annna-say "Now playing: ${newsong}";;
+ esac
sleep 5
done
DIR diff --git a/modules/radio/radio-random-channel-cronjob.sh b/modules/radio/radio-random-channel-cronjob.sh
@@ -1,15 +1,25 @@
#!/bin/sh
+set -x
+
randomuri="$(curl -s gophers://bitreich.org/1/radio/lawn/random \
| head -n 1 \
| cut -f 2 \
| cut -d':' -f 2-)"
+
+# Set modes for our logic to work.
+mpc random off >/dev/null 2>&1
+mpc repeat on >/dev/null 2>&1
+mpc consume off >/dev/null 2>&1
# Go into playing, so we can crop.
mpc play >/dev/null 2>&1
+#mpc playlist
# Be sure there is only one thing in the playlist.
-mpc crop >/dev/null 2>&1
+mpc crop #>/dev/null 2>&1
+#mpc playlist
# Add new randum radio at position 2.
printf "%s\n" "${randomuri}" | mpc add >/dev/null 2>&1
+#mpc playlist
# Fade to new radio.
mpc next >/dev/null 2>&1