| 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 | |