Introduction
Introduction Statistics Contact Development Disclaimer Help
Add support for JOIN/PART/QUIT for opening #bitreich-sauna. - annna - Annna the…
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6…
Log
Files
Refs
Tags
README
---
commit 8471158cfa5562df4d5ed84d3f870ddd4c585ff7
parent cd7453bdb4a27630ae2753b09dba0a3095d2f811
Author: Annna Robert-Houdin <[email protected]>
Date: Sun, 3 Aug 2025 21:48:33 +0200
Add support for JOIN/PART/QUIT for opening #bitreich-sauna.
Diffstat:
M annna-channel-message | 22 ++++++++--------------
M annna-channel-service | 31 ++++++++++++++++++++++++++++-…
M annna-message-common | 1 +
M annna-message-gopherproject | 1 +
M annna-message-radio | 1 +
A annna-message-sauna | 26 ++++++++++++++++++++++++++
M annna-message-wikigame | 1 +
7 files changed, 66 insertions(+), 17 deletions(-)
---
diff --git a/annna-channel-message b/annna-channel-message
@@ -4,6 +4,7 @@ server="$1"
channel="$2"
user="$3"
text="$4"
+cmd="$5"
cfgbase="$(pwd)"
ircbase="$(cat ${cfgbase}/ircbase)"
@@ -12,21 +13,14 @@ serverbase="${ircbase}/${server}"
modbase="$(cat ${cfgbase}/modbase)"
case "${channel}" in
-\#bitreich-radio)
- annna-message-radio "${server}" "${channel}" "${user}" "${text}"
- ;;
-\#gopherproject)
- annna-message-gopherproject "${server}" "${channel}" "${user}" "${text…
- ;;
-\#bitreich-wikigame)
- annna-message-wikigame "${server}" "${channel}" "${user}" "${text}"
- ;;
+\#bitreich-radio) annna-message-radio "${server}" "${channel}" "${user}" "${te…
+\#gopherproject) annna-message-gopherproject "${server}" "${channel}" "${user}…
+\#bitreich-wikigame) annna-message-wikigame "${server}" "${channel}" "${user}"…
+\#bitreich-sauna) annna-message-sauna "${server}" "${channel}" "${user}" "${te…
\#bitreich-idle)
- # This one runs its own daemon, so we have to give it a raw message.
- printf "$(date +%s) <%s> %s\n" >> "${serverbase}/${channel}/out"
- ;;
-*)
- annna-message-common "${server}" "${channel}" "${user}" "${text}"
+ # This one runs its own daemon, so we have to give it a raw message. T…
+ [ "${cmd}" == "PRIVMSG" ] && printf "$(date +%s) <%s> %s\n" >> "${serv…
;;
+*) annna-message-common "${server}" "${channel}" "${user}" "${text}" "${cmd}";;
esac
diff --git a/annna-channel-service b/annna-channel-service
@@ -30,11 +30,36 @@ esac
ls "${serverbase}/${channel}/out" \
| entr tail -n 1 "${serverbase}/${channel}/out" 2>/dev/null \
- | sed -nu 's,[0-9]* <\([^ >]*\)> \(.*\),\1 \2,p' \
| {
-while read -r user text;
+while read -r line;
do
- annna-channel-message "${server}" "${channel}" "${user}" "${text}"
+ secondword="$(printf "%s\n" "${line}" | cut -d' ' -f 2)"
+ case "${secondword}" in
+ "-!-")
+ fifthword="$(printf "%s\n" "${line}" | cut -d' ' -f 5)"
+ cmd=""
+ # TODO: Add error, mode, nick, topic, kick, notice support.
+ case "${fifthword}" in
+ joined) cmd="JOIN";;
+ left) cmd="PART";;
+ quit) cmd="QUIT";;
+ esac
+ [ -z "$cmd" ] && break
+ user="$(printf "%s\n" "${line}" | cut -d' ' -f 3 | cut -d'(' -…
+ annna-channel-message "${server}" "${channel}" "${user}" "" "$…
+ ;;
+ "<"*">")
+ cmd="PRIVMSG"
+ printf "%s\n" "${line}" \
+ | sed -nu 's,[0-9]* <\([^ >]*\)> \(.*\),\1 \2,p' \
+ | {
+ while read -r user text;
+ do
+ annna-channel-message "${server}" "${channel}" "${user…
+ done
+ }
+ ;;
+ esac
done
}
diff --git a/annna-message-common b/annna-message-common
@@ -18,6 +18,7 @@ ircuser="$(cat ${cfgbase}/${server}/ircuser)"
channel="$2"
user="$3"
text="$4"
+cmd="$5"
annnasumerian="𒈹"
annnabirthday="1989-05-18"
diff --git a/annna-message-gopherproject b/annna-message-gopherproject
@@ -9,6 +9,7 @@ ircuser="$(cat ${cfgbase}/${server}/ircuser)"
channel="$2"
user="$3"
text="$4"
+cmd="$5"
[ "$user" = "${ircuser}" ] && exit
diff --git a/annna-message-radio b/annna-message-radio
@@ -11,6 +11,7 @@ ircuser="$(cat ${cfgbase}/${server}/ircuser)"
channel="$2"
user="$3"
text="$4"
+cmd="$5"
[ "$user" = "${ircuser}" ] && exit
diff --git a/annna-message-sauna b/annna-message-sauna
@@ -0,0 +1,26 @@
+#!/bin/sh -e
+
+export PATH="/br/bin:$PATH"
+
+cfgbase="$(pwd)"
+ircbase="$(cat ${cfgbase}/ircbase)"
+modbase="$(cat ${cfgbase}/modbase)"
+
+server="$1"
+ircuser="$(cat ${cfgbase}/${server}/ircuser)"
+channel="$2"
+user="$3"
+text="$4"
+cmd="$5"
+
+[ "$user" = "${ircuser}" ] && exit
+
+case "${cmd}" in
+JOIN) annna-say -s "${server}" -c "${channel}" "Welcome ${user}! Please grab a…
+esac
+
+case "${text}" in
+esac
+
+annna-message-common "${server}" "${channel}" "${user}" "${text}"
+
diff --git a/annna-message-wikigame b/annna-message-wikigame
@@ -9,6 +9,7 @@ ircuser="$(cat ${cfgbase}/${server}/ircuser)"
channel="$2"
user="$3"
text="$4"
+cmd="$5"
[ "$user" = "${ircuser}" ] && exit
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.