| HUGE refactoring of call convention between scripts. - annna - Annna the nice f… | |
| git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
| Log | |
| Files | |
| Refs | |
| Tags | |
| README | |
| --- | |
| commit 21fb3dcd88a47fc4f38506131e22d601a86947de | |
| parent ff9d3c63deee7dbae89d954ba2fb03c89e419cd1 | |
| Author: Annna Robert-Houdin <[email protected]> | |
| Date: Mon, 13 Oct 2025 22:08:34 +0200 | |
| HUGE refactoring of call convention between scripts. | |
| Diffstat: | |
| M annna-alive | 4 ++-- | |
| M annna-channel-message | 25 +++++++------------------ | |
| M annna-channel-service | 38 +++++++++++++++--------------… | |
| M annna-join-channels | 35 ++++++++++++-----------------… | |
| M annna-message-common | 1299 +++++++++++++++--------------… | |
| D annna-message-gopherproject | 19 ------------------- | |
| M annna-message-radio | 59 ++++++++++++-----------------… | |
| M annna-message-sauna | 23 +++++------------------ | |
| M annna-message-wikigame | 35 +++++++++--------------------… | |
| M annna-say | 55 +++++++++++++----------------… | |
| A annna-sleeps | 13 +++++++++++++ | |
| M annna-start | 52 ++++++++++++++++++++++-------… | |
| D annna-start-main | 113 -----------------------------… | |
| A annna-start-server | 83 +++++++++++++++++++++++++++++… | |
| M annna-start-service | 35 ++++++++++-------------------… | |
| M stable-diffusion-emoji | 2 -- | |
| 16 files changed, 891 insertions(+), 999 deletions(-) | |
| --- | |
| diff --git a/annna-alive b/annna-alive | |
| @@ -7,6 +7,6 @@ | |
| # | |
| -[ -z "$(pgrep -U annna -x ii)" ] && exit 1 | |
| -exit 0 | |
| +[ -f "${ANNNA_BASE}/running" ] && exit 0 | |
| +exit 1 | |
| diff --git a/annna-channel-message b/annna-channel-message | |
| @@ -1,26 +1,15 @@ | |
| #!/bin/sh | |
| -server="$1" | |
| -channel="$2" | |
| -user="$3" | |
| -text="$4" | |
| -cmd="$5" | |
| +set -x | |
| -cfgbase="$(pwd)" | |
| -ircbase="$(cat ${cfgbase}/ircbase)" | |
| -ircuser="$(cat ${cfgbase}/${server}/ircuser)" | |
| -serverbase="${ircbase}/${server}" | |
| -modbase="$(cat ${cfgbase}/modbase)" | |
| - | |
| -case "${channel}" in | |
| -\#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… | |
| +case "${IRC_CHANNEL}" in | |
| +\#bitreich-radio) annna-message-radio;; | |
| +\#bitreich-wikigame) annna-message-wikigame;; | |
| +\#bitreich-sauna) annna-message-sauna;; | |
| \#bitreich-idle) | |
| # 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… | |
| + [ "${IRC_CMD}" == "PRIVMSG" ] && printf "$(date +%s) <%s> %s\n" "$IRC_… | |
| ;; | |
| -*) annna-message-common "${server}" "${channel}" "${user}" "${text}" "${cmd}";; | |
| +*) annna-message-common;; | |
| esac | |
| diff --git a/annna-channel-service b/annna-channel-service | |
| @@ -1,35 +1,28 @@ | |
| #!/bin/sh | |
| # | |
| -# Per-channel daemon that monitors incoming messages from ii out script. | |
| +# Per-IRC_CHANNEL daemon that monitors incoming messages from ii out script. | |
| # | |
| +set -x | |
| + | |
| pgrep -f "$0 $*" | grep -vxq "$$" && exec echo "$0 $* already running" | |
| #trap 'exec pkill -U annna -f "entr .* ${PWD}/out"' INT TERM EXIT HUP | |
| -server="$1" | |
| -channel="$2" | |
| - | |
| -cfgbase="$(pwd)" | |
| -ircbase="$(cat ${cfgbase}/ircbase)" | |
| -ircuser="$(cat ${cfgbase}/${server}/ircuser)" | |
| -serverbase="${ircbase}/${server}" | |
| -modbase="$(cat ${cfgbase}/modbase)" | |
| - | |
| -case "${channel}" in | |
| +case "${IRC_CHANNEL}" in | |
| \#bitreich-idle) | |
| - idlebase="${modbase}/idlerpg" | |
| + idlebase="${ANNNA_MODBASE}/idlerpg" | |
| $idlebase/idlerpg-channel-service.py \ | |
| - "${ircuser}" "${idlebase}" "${ircbase}" "${server}" "${channel… | |
| + "${IRC_USER}" "${idlebase}" "${ANNNA_IRCBASE}" "${IRC_SERVER}"… | |
| exit $? | |
| ;; | |
| \#bitreich-radio) | |
| - radiobase="${modbase}/radio" | |
| + radiobase="${ANNNA_MODBASE}/radio" | |
| $radiobase/radio-channel-service.sh \ | |
| - "${ircuser}" "${radiobase}" "${ircbase}" "${server}" "${channe… | |
| + "${IRC_USER}" "${radiobase}" "${ANNNA_IRCBASE}" "${IRC_SERVER}… | |
| esac | |
| -ls "${serverbase}/${channel}/out" \ | |
| - | entr tail -n 1 "${serverbase}/${channel}/out" 2>/dev/null \ | |
| +ls "${IRC_SERVERBASE}/${IRC_CHANNEL}/out" \ | |
| + | entr tail -n 1 "${IRC_SERVERBASE}/${IRC_CHANNEL}/out" 2>/dev/null \ | |
| | { | |
| while read -r line; | |
| do | |
| @@ -45,8 +38,10 @@ do | |
| quit) cmd="QUIT";; | |
| esac | |
| [ -z "$cmd" ] && break | |
| - user="$(printf "%s\n" "${line}" | cut -d' ' -f 3 | cut -d'(' -… | |
| - annna-channel-message "${server}" "${channel}" "${user}" "" "$… | |
| + export IRC_CMD="${cmd}" | |
| + export IRC_CMD_USER="$(printf "%s\n" "${line}" | cut -d' ' -f … | |
| + export IRC_PRIVMSG_TEXT="" | |
| + annna-channel-message | |
| ;; | |
| "<"*">") | |
| cmd="PRIVMSG" | |
| @@ -55,7 +50,10 @@ do | |
| | { | |
| while read -r user text; | |
| do | |
| - annna-channel-message "${server}" "${channel}" "${user… | |
| + export IRC_PRIVMSG_TEXT="${text}" | |
| + export IRC_CMD="${cmd}" | |
| + export IRC_CMD_USER="${user}" | |
| + annna-channel-message | |
| done | |
| } | |
| ;; | |
| diff --git a/annna-join-channels b/annna-join-channels | |
| @@ -1,55 +1,46 @@ | |
| #!/bin/sh | |
| -export PATH="$PATH:/home/annna/bin" | |
| - | |
| -cfgbase="$(pwd)" | |
| -ircbase="$(cat ${cfgbase}/ircbase)" | |
| - | |
| -server="$1" | |
| -channels="$2" | |
| - | |
| -export ircuser="$(cat ${cfgbase}/${server}/ircuser 2>/dev/null)" | |
| +set -x | |
| maxretries=32 | |
| # Channels | |
| -for chan in ${channels}; | |
| +for chan in ${IRC_CHANNELS}; | |
| do | |
| - printf "/j %s\n" "${chan}" > ${ircbase}/${server}/in | |
| - | |
| - # Do not flood. | |
| + export IRC_CHANNEL="${chan}" | |
| + printf "/j %s\n" "${chan}" > "${IRC_SERVERBASE}/in" | |
| sleep 1 | |
| ## Make sure the pipes are there. | |
| tries=0 | |
| - while [ ! -e "${ircbase}/${server}/${chan}/out" ]; | |
| + while [ ! -e "${IRC_SERVERBASE}/${chan}/out" ]; | |
| do | |
| - [ ! -f ${cfgbase}/running ] && exit 1 | |
| + [ ! annna-alive ] && exit 1 | |
| tries=$(($tries + 1)) | |
| [ $tries -gt $maxretries ] && exit 1 | |
| sleep 1 | |
| done | |
| tries=0 | |
| - while [ ! -e "${ircbase}/${server}/${chan}/in" ]; | |
| + while [ ! -e "${IRC_SERVERBASE}/${chan}/in" ]; | |
| do | |
| - [ ! -f ${cfgbase}/running ] && exit 1 | |
| + [ ! annna-alive ] && exit 1 | |
| tries=$(($tries + 1)) | |
| [ $tries -gt $maxretries ] && exit 1 | |
| sleep 1 | |
| done | |
| tries=0 | |
| - ## Check if we have joined and received the message from the server. | |
| - while [ -z "$(cat ${ircbase}/${server}/${chan}/out \ | |
| + ## Check if we have joined and received the message from the IRC_SERVE… | |
| + while [ -z "$(cat "${IRC_SERVERBASE}/${chan}/out" \ | |
| | head -n 1 \ | |
| - | grep ".* ${ircuser}.* ${chan}.*")" ]; | |
| + | grep ".* ${IRC_USER}.* ${chan}.*")" ]; | |
| do | |
| - [ ! -f ${cfgbase}/running ] && exit 1 | |
| + [ ! annna-alive ] && exit 1 | |
| tries=$(($tries + 1)) | |
| [ $tries -gt $maxretries ] && exit 1 | |
| sleep 2 | |
| done | |
| - annna-start-service "${server}" "${chan}" | |
| + annna-start-service | |
| done | |
| diff --git a/annna-message-common b/annna-message-common | |
| @@ -1,24 +1,20 @@ | |
| #!/bin/bash | |
| -export PATH="/br/bin:$PATH" | |
| +set -x | |
| -cfgbase="$(pwd)" | |
| -ircbase="$(cat ${cfgbase}/ircbase)" | |
| -modbase="$(cat ${cfgbase}/modbase)" | |
| -hashtagfile="${modbase}/hashtags/hashtags.txt" | |
| -idontcaredb="${modbase}/i-dont-care/i-dont-care.txt" | |
| +#printf "%s %s %s %s\n" "${0##*/}" "${IRC_CHANNEL}" "${IRC_CMD_USER}" "${IRC_P… | |
| + | |
| +[ "${IRC_CMD_USER}" = "${IRC_USER}" ] && exit 0 | |
| +[ -z "${IRC_PRIVMSG_TEXT}" ] && exit 0 | |
| + | |
| +hashtagfile="${ANNNA_MODBASE}/hashtags/hashtags.txt" | |
| +idontcaredb="${ANNNA_MODBASE}/i-dont-care/i-dont-care.txt" | |
| printnhashtags=2 | |
| brmembers="__20h__ Evil_Bob chripo posativ quinq stateless solene josuah paraz… | |
| referees="__20h__" | |
| ignorednicks="eidolon" | |
| linkbrotherchannels="#bitreich-meme" | |
| -server="$1" | |
| -ircuser="$(cat ${cfgbase}/${server}/ircuser)" | |
| -channel="$2" | |
| -user="$3" | |
| -text="$4" | |
| -cmd="$5" | |
| annnasumerian="𒈹" | |
| annnabirthday="1989-05-18" | |
| @@ -37,10 +33,6 @@ regeximatch() { | |
| printf '%s' "$1" | grep -i -E -q "$2" | |
| } | |
| -#printf "%s %s %s %s\n" "${0##*/}" "${channel}" "${user}" "${text}" | |
| - | |
| -[ "$user" = "${ircuser}" ] && exit 0 | |
| - | |
| isignored=0 | |
| for ignorednick in $ignorednicks; | |
| do | |
| @@ -57,8 +49,7 @@ dospoil=0 | |
| # Expand meme hashtag and show recommendations. | |
| doexpand=0 | |
| -[ -z "${text}" ] && exit 0 | |
| -case "${text}" in | |
| +case "${IRC_PRIVMSG_TEXT}" in | |
| *\#nospoil*) | |
| nospoil=1 | |
| ;; | |
| @@ -68,37 +59,37 @@ case "${text}" in | |
| *::*::*) | |
| if [ $(pgrep -f stable-diffusion-emoji 2>/dev/null | wc -l) -gt 3 ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, sorry, goph… | |
| + annna-say "${IRC_CMD_USER}, sorry, gophers://bitreich.org/I/me… | |
| else | |
| { | |
| - query=${text#**::} query=${query%%::*} | |
| + query=${IRC_PRIVMSG_TEXT#**::} query=${query%%::*} | |
| emojiuri="$(stable-diffusion-emoji "${query}")" | |
| if [ -n "${emojiuri}" ]; | |
| then | |
| - if [ -n "${user}" ] && [ "${user}" != "annna-c… | |
| + if [ -n "${IRC_CMD_USER}" ] && [ "${IRC_CMD_US… | |
| then | |
| - annna-say -s "${server}" -c "${channel… | |
| + annna-say "${IRC_CMD_USER}, ${emojiuri… | |
| else | |
| - annna-say -s "${server}" -c "${channel… | |
| + annna-say "${emojiuri}" | |
| fi | |
| fi | |
| } & | |
| fi | |
| ;; | |
| *http*://*|*ytdl://*) | |
| - case "${text}" in | |
| + case "${IRC_PRIVMSG_TEXT}" in | |
| *"#spoil"*) | |
| dospoil=1 | |
| ;; | |
| esac | |
| - case "${text}" in | |
| + case "${IRC_PRIVMSG_TEXT}" in | |
| *http*://*) | |
| - uri="$(printf "%s\n" "${text}" \ | |
| + uri="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | sed -n '/.*\(https\{0,1\}:\/\/[^ ]\{1,\}\).*/s//\1/p… | |
| ;; | |
| *ytdl://*) | |
| - ytid="$(printf "%s\n" "${text}" \ | |
| + ytid="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | sed -n '/.*ytdl:\/\/\([^ ]\{1,\}\).*/s//\1/p')" | |
| uri="$(printf "https://www.youtube.com/watch?v=%s" "${ytid}")" | |
| ;; | |
| @@ -153,11 +144,11 @@ case "${text}" in | |
| "") | |
| ;; | |
| *Gunther*|*GUNTHER*|*Günther*|*GÜNTHER*) | |
| - annna-say -s "${server}" -c "${channel}" "Oh Günther! ❤ �… | |
| + annna-say "Oh Günther! ❤ ❤ ❤ ${urititle}" | |
| uriexpansion=1 | |
| ;; | |
| *\|\ Cloudflare*|"Just a moment...") | |
| - annna-say -s "${server}" -c "${channel}" "Mind your own busine… | |
| + annna-say "Mind your own business! We got clownflared: gophers… | |
| titleend=1 | |
| uriexpansion=1 | |
| ;; | |
| @@ -333,7 +324,7 @@ case "${text}" in | |
| [ -n "${urititle}" ] && outputstr="${outputstr} title: ${uriti… | |
| [ -n "${suri}" ] && outputstr="${outputstr} screen: ${suri} ;" | |
| [ -n "${sturi}" ] && outputstr="${outputstr} subtitles: ${stur… | |
| - annna-say -s "${server}" -c "${channel}" "${outputstr}" | |
| + annna-say "${outputstr}" | |
| uriexpansion=1 | |
| fi | |
| rm -f "${tmpf}" | |
| @@ -343,164 +334,164 @@ esac | |
| runlinkbrother=0 | |
| for linkbrotherchannel in $linkbrotherchannels; | |
| do | |
| - [ "$channel" = "$linkbrotherchannel" ] && runlinkbrother=1 | |
| + [ "$IRC_CHANNEL" = "$linkbrotherchannel" ] && runlinkbrother=1 | |
| done | |
| if [ $runlinkbrother -eq 1 ] && [ $nospoil -eq 0 ]; | |
| then | |
| - critique=$($modbase/linkbrother/linkbrother.sh "$modbase/linkbrother/d… | |
| + critique=$($ANNNA_MODBASE/linkbrother/linkbrother.sh "$ANNNA_MODBASE/l… | |
| if [ "$critique" ]; then | |
| - annna-say -s "${server}" -c "${channel}" "$critique" | |
| + annna-say "$critique" | |
| fi | |
| fi | |
| -case "${text}" in | |
| -"${ircuser}"?) | |
| - exclamation="$(printf "%s\n" "${text}" | sed "s,${ircuser}\(.\),\1,g")" | |
| - exclamationsintime=$(exclamatio "${user}") | |
| +case "${IRC_PRIVMSG_TEXT}" in | |
| +"${IRC_USER}"?) | |
| + exclamation="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed "s,${IRC_USER… | |
| + exclamationsintime=$(exclamatio "${IRC_CMD_USER}") | |
| finalexclamation="${exclamation}" | |
| while [ $exclamationsintime -gt 1 ]; | |
| do | |
| finalexclamation="${finalexclamation}${exclamation}" | |
| exclamationsintime=$(($exclamationsintime - 1)) | |
| done | |
| - annna-say -s "${server}" -c "${channel}" "${user}${finalexclamation}" | |
| + annna-say "${IRC_CMD_USER}${finalexclamation}" | |
| ;; | |
| -"${ircuser}, how old are you?") | |
| +"${IRC_USER}, how old are you?") | |
| age="$(ddiff ${annnabirthday} today -f "%y")" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I am ${age} years o… | |
| + annna-say "${IRC_CMD_USER}, I am ${age} years old." | |
| ;; | |
| -"${ircuser}, when is your birthday?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I am born on ${annn… | |
| +"${IRC_USER}, when is your birthday?") | |
| + annna-say "${IRC_CMD_USER}, I am born on ${annnabirthday}." | |
| ;; | |
| -"${ircuser}, asl"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, age: born on 1989-0… | |
| +"${IRC_USER}, asl"*) | |
| + annna-say "${IRC_CMD_USER}, age: born on 1989-05-18; sex: IRC bot; loc… | |
| ;; | |
| -"${ircuser}, woop") | |
| +"${IRC_USER}, woop") | |
| # Using the same database for funny hacks. | |
| - exclamation="$(printf "%s\n" "${text}" | sed "s;${ircuser}, \(.\);\1;g… | |
| - exclamationsintime=$(exclamatio "${user}") | |
| + exclamation="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed "s;${IRC_USER… | |
| + exclamationsintime=$(exclamatio "${IRC_CMD_USER}") | |
| finalexclamation="${exclamation}" | |
| while [ $exclamationsintime -gt 1 ]; | |
| do | |
| finalexclamation="${finalexclamation} ${exclamation}" | |
| exclamationsintime=$(($exclamationsintime - 1)) | |
| done | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${finalexclamation}" | |
| + annna-say "${IRC_CMD_USER}, ${finalexclamation}" | |
| ;; | |
| -"${ircuser}, hype") | |
| +"${IRC_USER}, hype") | |
| # Using the same database for funny hacks. | |
| - exclamation="$(printf "%s\n" "${text}" | sed "s;${ircuser}, \(.\);\1;g… | |
| - exclamationsintime=$(exclamatio "${user}") | |
| + exclamation="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed "s;${IRC_USER… | |
| + exclamationsintime=$(exclamatio "${IRC_CMD_USER}") | |
| finalexclamation="${exclamation}" | |
| while [ $exclamationsintime -gt 1 ]; | |
| do | |
| finalexclamation="${finalexclamation} ${exclamation}" | |
| exclamationsintime=$(($exclamationsintime - 1)) | |
| done | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${finalexclamation}" | |
| + annna-say "${IRC_CMD_USER}, ${finalexclamation}" | |
| ;; | |
| *">:3"*) | |
| - annna-say -s "${server}" -c "${channel}" "OMG IT'S A LION GET IN THE C… | |
| + annna-say "OMG IT'S A LION GET IN THE CAR!" | |
| ;; | |
| *"<3"*) | |
| - love "${user}++" | |
| - annna-say -s "${server}" -c "${channel}" "*o.o*" | |
| + love "${IRC_CMD_USER}++" | |
| + annna-say "*o.o*" | |
| ;; | |
| *"m(") | |
| - annna-say -s "${server}" -c "${channel}" "(-‸ლ)" | |
| + annna-say "(-‸ლ)" | |
| ;; | |
| *"*shrug*"*) | |
| - annna-say -s "${server}" -c "${channel}" "¯\\_(ツ)_/¯" | |
| + annna-say "¯\\_(ツ)_/¯" | |
| ;; | |
| *"*glare*"*) | |
| - annna-say -s "${server}" -c "${channel}" "ಠ_ಠ" | |
| + annna-say "ಠ_ಠ" | |
| ;; | |
| *"*finger*"*) | |
| - annna-say -s "${server}" -c "${channel}" "╭∩╮(ಠ_ಠ)╭∩╮" | |
| + annna-say "╭∩╮(ಠ_ಠ)╭∩╮" | |
| ;; | |
| *"*yolo*"*) | |
| - annna-say -s "${server}" -c "${channel}" "Yᵒᵘ Oᶰˡʸ Lᶤᵛᵉ … | |
| + annna-say "Yᵒᵘ Oᶰˡʸ Lᶤᵛᵉ Oᶰᶜᵉ" | |
| ;; | |
| *":'(") | |
| - annna-say -s "${server}" -c "${channel}" "(╯︵╰,)" | |
| + annna-say "(╯︵╰,)" | |
| ;; | |
| -"Thanks ${ircuser}"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, you are welcome." | |
| +"Thanks ${IRC_USER}"*) | |
| + annna-say "${IRC_CMD_USER}, you are welcome." | |
| ;; | |
| *" ope sorry"*|"ope sorry"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, 😃pe sorry." | |
| + annna-say "${IRC_CMD_USER}, 😃pe sorry." | |
| ;; | |
| -"${ircuser}, snake.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ssSSsSssSssSsssssSS… | |
| +"${IRC_USER}, snake.") | |
| + annna-say "${IRC_CMD_USER}, ssSSsSssSssSsssssSSsSSSSsSssSSSSsssSSSSsss… | |
| ;; | |
| -"${ircuser}, snoke.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, snoke again?" | |
| +"${IRC_USER}, snoke.") | |
| + annna-say "${IRC_CMD_USER}, snoke again?" | |
| ;; | |
| -"${ircuser}, amirite?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, Yep, you're the mos… | |
| +"${IRC_USER}, amirite?") | |
| + annna-say "${IRC_CMD_USER}, Yep, you're the most correct of them all." | |
| ;; | |
| -"${ircuser}, ping.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, pong." | |
| +"${IRC_USER}, ping.") | |
| + annna-say "${IRC_CMD_USER}, pong." | |
| ;; | |
| -"${ircuser}, how lame is my nick?") | |
| - lamenessstr="$(lameness "${user}")" | |
| - annna-say -s "${server}" -c "${channel}" "${lamenessstr}" | |
| +"${IRC_USER}, how lame is my nick?") | |
| + lamenessstr="$(lameness "${IRC_CMD_USER}")" | |
| + annna-say "${lamenessstr}" | |
| ;; | |
| -"${ircuser}, ding.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, dong." | |
| +"${IRC_USER}, ding.") | |
| + annna-say "${IRC_CMD_USER}, dong." | |
| ;; | |
| -"${ircuser}, irly"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I love you too." | |
| +"${IRC_USER}, irly"*) | |
| + annna-say "${IRC_CMD_USER}, I love you too." | |
| ;; | |
| -"${ircuser}, bleep bloop.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, bloop bleep." | |
| +"${IRC_USER}, bleep bloop.") | |
| + annna-say "${IRC_CMD_USER}, bloop bleep." | |
| ;; | |
| -"${ircuser}, snare.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, not snare again!" | |
| +"${IRC_USER}, snare.") | |
| + annna-say "${IRC_CMD_USER}, not snare again!" | |
| ;; | |
| -"${ircuser}, I am mad.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, we have a MAD SCIEN… | |
| +"${IRC_USER}, I am mad.") | |
| + annna-say "${IRC_CMD_USER}, we have a MAD SCIENTIST ONBOARD :>" | |
| ;; | |
| -"${ircuser}, I am holy.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, Holy shit this guy … | |
| +"${IRC_USER}, I am holy.") | |
| + annna-say "${IRC_CMD_USER}, Holy shit this guy is totally NUTS!!!" | |
| ;; | |
| -"${ircuser}, please compliment me.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, you rock!" | |
| +"${IRC_USER}, please compliment me.") | |
| + annna-say "${IRC_CMD_USER}, you rock!" | |
| ;; | |
| -"${ircuser}, what the karma?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
| +"${IRC_USER}, what the karma?") | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/1/irc/karma" | |
| ;; | |
| -"${ircuser}, who is lovely?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
| +"${IRC_USER}, who is lovely?") | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/1/irc/love" | |
| ;; | |
| -"${ircuser}, what the brcon score?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
| +"${IRC_USER}, what the brcon score?") | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/1/con/$(date +%Y)/s… | |
| ;; | |
| -"${ircuser}, what the shame?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
| +"${IRC_USER}, what the shame?") | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/1/irc/shame" | |
| ;; | |
| -"${ircuser}, please generate a password for me.") | |
| +"${IRC_USER}, please generate a password for me.") | |
| newpws="$(pwgen -B1ny 20 10 | paste -sd ' ')" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, as you wish: ${newp… | |
| + annna-say "${IRC_CMD_USER}, as you wish: ${newpws}" | |
| ;; | |
| *"don't care"*) | |
| dontcaresay="$(shuf -n 1 ${idontcaredb})" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${dontcaresay}" | |
| + annna-say "${IRC_CMD_USER}, ${dontcaresay}" | |
| ;; | |
| -"${ircuser}, how can I phlog on bitreich?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, please read: gopher… | |
| +"${IRC_USER}, how can I phlog on bitreich?") | |
| + annna-say "${IRC_CMD_USER}, please read: gophers://bitreich.org/0/usr/… | |
| ;; | |
| -"${ircuser}, what's my type?") | |
| +"${IRC_USER}, what's my type?") | |
| { | |
| cd /br/gopher | |
| usertype="$(find memecache/type-?.png -type f \ | |
| | shuf -n 1 \ | |
| | xargs -n 1 printf "gophers://bitreich.org/9%s\n")" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, your type i… | |
| + annna-say "${IRC_CMD_USER}, your type is ${usertype}" | |
| } | |
| ;; | |
| -"${ircuser}, please show me a video about "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 37-)" | |
| +"${IRC_USER}, please show me a video about "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 37-)" | |
| case "$word" in | |
| *\?) | |
| word="$(printf "%s\n" "${word}" | cut -c -"$((${#word} - 1))")" | |
| @@ -509,20 +500,20 @@ case "${text}" in | |
| videoresult="$(idiotbox-roulette "${word}")" | |
| if [ -n "${videoresult}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${videoresu… | |
| + annna-say "${IRC_CMD_USER}, ${videoresult}" | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, sorry, noth… | |
| + annna-say "${IRC_CMD_USER}, sorry, nothing founds." | |
| fi | |
| ;; | |
| -"${ircuser}, what is my fortune?") | |
| +"${IRC_USER}, what is my fortune?") | |
| fortunecookie="$(fortune-cookie)" | |
| if [ -n "${fortunecookie}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${fortuneco… | |
| + annna-say "${IRC_CMD_USER}, ${fortunecookie}" | |
| fi | |
| ;; | |
| -"${ircuser}, what is "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 16-)" | |
| +"${IRC_USER}, what is "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 16-)" | |
| case "$word" in | |
| *\?) | |
| word="$(printf "%s\n" "${word}" | cut -c -"$((${#word} - 1))")" | |
| @@ -549,129 +540,129 @@ case "${text}" in | |
| else | |
| puri="$(printf "%s\n" "${dresult}" | /br/bin/bitreich-paste)" | |
| fi | |
| - annna-say -s "${server}" -c "${channel}" "${puri}" | |
| + annna-say "${puri}" | |
| ;; | |
| -"${ircuser}, cowsay "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 15-)" | |
| +"${IRC_USER}, cowsay "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 15-)" | |
| tmpf=$(mktemp) | |
| if cowsayasaservice ${word} > ${tmpf}; then | |
| curi="$(/br/bin/bitreich-paste < ${tmpf})" | |
| - annna-say -s "${server}" -c "${channel}" "${user}: the cow sai… | |
| + annna-say "${IRC_CMD_USER}: the cow said... ${curi}" | |
| fi | |
| rm ${tmpf} 2>/dev/null | |
| ;; | |
| -"${ircuser}, please give me the unix power.") | |
| +"${IRC_USER}, please give me the unix power.") | |
| upcuri="$(unix-power)" | |
| if [ -n "${upcuri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${upcuri}" | |
| + annna-say "${IRC_CMD_USER}, ${upcuri}" | |
| fi | |
| ;; | |
| -"${ircuser}, please stop the last emoji prompt.") | |
| +"${IRC_USER}, please stop the last emoji prompt.") | |
| lastemojipromptpid="$(pgrep -f stable-diffusion-emoji | sort -n | tail… | |
| if [ -n "${lastemojipromptpid}" ]; | |
| then | |
| pstree -A -p "${lastemojipromptpid}" | grep -Eow "[0-9]+" | xa… | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I HUPed ${l… | |
| + annna-say "${IRC_CMD_USER}, I HUPed ${lastemojipromptpid} and … | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, sorry, no i… | |
| + annna-say "${IRC_CMD_USER}, sorry, no instances found." | |
| fi | |
| ;; | |
| -"${ircuser}, play despacito plz.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
| +"${IRC_USER}, play despacito plz.") | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/9/memecache/despaci… | |
| ;; | |
| -"nice to meet you ${ircuser}"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, the pleasure is on … | |
| +"nice to meet you ${IRC_USER}"*) | |
| + annna-say "${IRC_CMD_USER}, the pleasure is on my side. :-)" | |
| ;; | |
| -"${ircuser}, please give me a Chuck Norris fact.") | |
| +"${IRC_USER}, please give me a Chuck Norris fact.") | |
| chuck=$(chucknorris) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${chuck}" | |
| + annna-say "${IRC_CMD_USER}, ${chuck}" | |
| ;; | |
| -"${ircuser}, magic.") | |
| +"${IRC_USER}, magic.") | |
| magictrick="$(magic)" | |
| if [ -n "${magictrick}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${magictric… | |
| + annna-say "${IRC_CMD_USER}, ${magictrick}" | |
| fi | |
| ;; | |
| -"${ircuser}, please show me ip art.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, please see #bitreic… | |
| +"${IRC_USER}, please show me ip art.") | |
| + annna-say "${IRC_CMD_USER}, please see #bitreich-tv for the magic." | |
| { | |
| cd $HOME/bin/modules/ip-art; | |
| # Lock, so only one annna process manipulates eth0. | |
| flock $HOME/bin/modules/ip-art -c "./display-file.sh ip-art.ip… | |
| } & | |
| ;; | |
| -"${ircuser}, I feel button.") | |
| +"${IRC_USER}, I feel button.") | |
| buri="$(button-gen)" | |
| if [ -n "${buri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, like this? … | |
| + annna-say "${IRC_CMD_USER}, like this? ${buri}" | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, sorry, no f… | |
| + annna-say "${IRC_CMD_USER}, sorry, no feelings for you today." | |
| fi | |
| ;; | |
| -"${ircuser}, I feel stupid.") | |
| +"${IRC_USER}, I feel stupid.") | |
| nuri=$(darwin) | |
| tmpf=$(mktemp) | |
| fetch-uri "${nuri}" > "${tmpf}" | |
| curi="$(9 htmlfmt < "${tmpf}" | /br/bin/bitreich-paste)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, do not feel stupid,… | |
| + annna-say "${IRC_CMD_USER}, do not feel stupid, others are more stupid… | |
| rm ${tmpf} 2>/dev/null | |
| ;; | |
| -"${ircuser}, I feel down.") | |
| +"${IRC_USER}, I feel down.") | |
| postmortem="$(post-mortem | /br/bin/bitreich-paste)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, do not feel bad, ot… | |
| + annna-say "${IRC_CMD_USER}, do not feel bad, others had worse days: ${… | |
| ;; | |
| -"${ircuser}, I feel perl.") | |
| +"${IRC_USER}, I feel perl.") | |
| perlfeelings="$(perl-feelings)" | |
| if [ -n "${perl-feelings}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I feel ${pe… | |
| + annna-say "${IRC_CMD_USER}, I feel ${perlfeelings}" | |
| fi | |
| ;; | |
| -"${ircuser}, will you be my girlfriend?") | |
| +"${IRC_USER}, will you be my girlfriend?") | |
| rejection="$(girlfriend)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${rejection}" | |
| + annna-say "${IRC_CMD_USER}, ${rejection}" | |
| ;; | |
| -"${ircuser}, who fights crime?"|"${ircuser}, who is fighting crime?") | |
| +"${IRC_USER}, who fights crime?"|"${IRC_USER}, who is fighting crime?") | |
| partner=$(echo $brmembers | awk '{for (i = 1; i < NF; i++) print $i}' … | |
| - crimefighter="$(theyfightcrime ${user} ${partner})" | |
| - annna-say -s "${server}" -c "${channel}" "${crimefighter}" | |
| + crimefighter="$(theyfightcrime ${IRC_CMD_USER} ${partner})" | |
| + annna-say "${crimefighter}" | |
| ;; | |
| -"${ircuser}, please give me a commit message.") | |
| +"${IRC_USER}, please give me a commit message.") | |
| commitmsg="$(whatthecommit)" | |
| - annna-say -s "${server}" -c "${channel}" "${commitmsg}" | |
| + annna-say "${commitmsg}" | |
| ;; | |
| -"${ircuser}, please paint the irc channel.") | |
| - emojiuri="$(emoji-channel-history "${ircbase}/${server}/${channel}")" | |
| +"${IRC_USER}, please paint the irc channel.") | |
| + emojiuri="$(emoji-channel-history "${ANNNA_IRCBASE}/${IRC_SERVER}/${IR… | |
| if [ -n "${emojiuri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${emojiuri}" | |
| + annna-say "${emojiuri}" | |
| fi | |
| ;; | |
| -"${ircuser}, birp.") | |
| +"${IRC_USER}, birp.") | |
| birdname="$(bird-name)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I heard a ${birdnam… | |
| + annna-say "${IRC_CMD_USER}, I heard a ${birdname} bird." | |
| ;; | |
| -"${ircuser}, please oneline me.") | |
| +"${IRC_USER}, please oneline me.") | |
| randomoneliner="$(oneliner)" | |
| if [ -z "${randomoneliner}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, the service… | |
| + annna-say "${IRC_CMD_USER}, the service failed. Please redial … | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${randomone… | |
| + annna-say "${IRC_CMD_USER}, ${randomoneliner}" | |
| fi | |
| ;; | |
| *"what's app?") | |
| maemoapp="$(whatsapp)" | |
| if [ -n "${maemoapp}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "Have you tried? ${ma… | |
| + annna-say "Have you tried? ${maemoapp}" | |
| fi | |
| ;; | |
| -"${ircuser}, man "*|"${ircuser}, man "*) | |
| - exp="$(printf "%s\n" "${text}" | cut -c 12- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, man "*|"${IRC_USER}, man "*) | |
| + exp="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 12- | sed 's,\t, … | |
| dresult="$(COLUMNS=80 man "${exp}" 2>/dev/null)" | |
| if [ "$dresult" ]; | |
| @@ -681,77 +672,77 @@ case "${text}" in | |
| puri="No matches found." | |
| fi | |
| - annna-say -s "${server}" -c "${channel}" "${puri}" | |
| + annna-say "${puri}" | |
| ;; | |
| -"${ircuser}, please pray for me.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, here, for you: goph… | |
| +"${IRC_USER}, please pray for me.") | |
| + annna-say "${IRC_CMD_USER}, here, for you: gophers://bitreich.org/9/me… | |
| ;; | |
| -"${ircuser}, nigger."|*nigger*|*NIGGER*) | |
| +"${IRC_USER}, nigger."|*nigger*|*NIGGER*) | |
| nword="$(n-word)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, don't use the ${nwo… | |
| + annna-say "${IRC_CMD_USER}, don't use the ${nword}!" | |
| ;; | |
| -"${ircuser}, why was I breached?") | |
| +"${IRC_USER}, why was I breached?") | |
| breachtext="$(why-was-i-breached)" | |
| if [ -n "${breachtext}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${breachtex… | |
| + annna-say "${IRC_CMD_USER}, ${breachtext}" | |
| fi | |
| ;; | |
| -"${ircuser}, please be responsible about "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 36- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please be responsible about "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 36- | sed 's,\t, … | |
| suri="$(responsibility "${word}" | bitreich-paste)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please say "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 19- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please say "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 19- | sed 's,\t, … | |
| suri="$(printf "%s\n" "${word}" | bitreich-speak)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please zombie say "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 26- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please zombie say "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 26- | sed 's,\t, … | |
| suri="$(printf "%s\n" "${word}" | zombie -e | bitreich-speak)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please unzombie "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 24- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please unzombie "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 24- | sed 's,\t, … | |
| suri="$(printf "%s\n" "${word}" | zombie -d)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please zombie "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 22- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please zombie "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 22- | sed 's,\t, … | |
| suri="$(printf "%s\n" "${word}" | zombie -e)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please ghost say "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 25- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please ghost say "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 25- | sed 's,\t, … | |
| suri="$(printf "%s\n" "${word}" | ghost -e | bitreich-speak)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please unghost "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 23- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please unghost "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 23- | sed 's,\t, … | |
| suri="$(printf "%s\n" "${word}" | ghost -d)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please ghost "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 21- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please ghost "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 21- | sed 's,\t, … | |
| suri="$(printf "%s\n" "${word}" | ghost -e)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please pohlish "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 23- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please pohlish "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 23- | sed 's,\t, … | |
| suri="$(pohlcode.awk "${word}" | head -n 1)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, please cunei "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 21- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please cunei "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 21- | sed 's,\t, … | |
| suri="$(int2cunei "${word}" | head -n 1)" | |
| - annna-say -s "${server}" -c "${channel}" "${suri}" | |
| + annna-say "${suri}" | |
| ;; | |
| -"${ircuser}, what is up with gopher man?") | |
| +"${IRC_USER}, what is up with gopher man?") | |
| # TODO | |
| ;; | |
| -"${ircuser}, what can I cook with "*) | |
| - ingredients="$(printf "%s\n" "${text}" | cut -c 29- | sed 's,\t, ,g… | |
| +"${IRC_USER}, what can I cook with "*) | |
| + ingredients="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 29- | sed … | |
| case "$ingredients" in | |
| *\?) | |
| ingredients="$(printf "%s\n" "${ingredients}" | cut -c -"$(($(… | |
| @@ -762,140 +753,140 @@ case "${text}" in | |
| if [ -n "${results}" ]; | |
| then | |
| puri="$(printf "%s\n" "${results}" | bitreich-paste | sed 's,0… | |
| - annna-say -s "${server}" -c "${channel}" "${user}, here are so… | |
| + annna-say "${IRC_CMD_USER}, here are some recipes: ${puri}" | |
| else | |
| gptchefrecipe="$(gpt-chef "${ingredients}")" | |
| if [ -n "${gptchefrecipe}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, the… | |
| + annna-say "${IRC_CMD_USER}, there was no ready-made re… | |
| if [ $(pgrep -f stable-diffusion-emoji 2>/dev/null | w… | |
| then | |
| { | |
| emojiuri="$(stable-diffusion-emoji "${… | |
| if [ -n "${emojiuri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "$… | |
| + annna-say "${emojiuri}" | |
| fi | |
| } & | |
| fi | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I c… | |
| + annna-say "${IRC_CMD_USER}, I could not find any recip… | |
| fi | |
| fi | |
| ;; | |
| -"${ircuser}, gpt "*) | |
| +"${IRC_USER}, gpt "*) | |
| # TODO: use modules/prompt-agents | |
| - prompt="$(printf "%s\n" "${text}" | cut -c 12- | sed 's,\t, ,g')" | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 12- | sed 's,\t… | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "${prompt}. Pl… | |
| + annna-say "$(gpt "${prompt}. Please answer short and precise."… | |
| } & | |
| ;; | |
| "Preacher, "*|"preacher, "*) | |
| personality="preacher" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Uplift, "*|"uplift, "*) | |
| personality="uplifting" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Grumpy, "*|"grumpy, "*) | |
| personality="grumpy-fart" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User:${prompt}\n Bot:… | |
| } & | |
| ;; | |
| "Santa, "*|"Sannnta, "*|"santa, "*|"sannnta, "*) | |
| personality="santa" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Satan, "*|"Satannn, "*|"satan, "*|"satannn, "*) | |
| personality="satan" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Trump, "*|"trump, "*) | |
| personality="trump" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Freud, "*|"freud, "*|"Sigmund, "*|"sigmund, "*) | |
| personality="sigmund-freud" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User:${prompt}\n Bot:… | |
| } & | |
| ;; | |
| "Mao, "*|"mao, "*) | |
| personality="mao" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User:${prompt}\n Bot:… | |
| } & | |
| ;; | |
| "Teleromeo, "*|"teleromeo, "*) | |
| personality="teleromeo" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User:${prompt}\n Bot:… | |
| } & | |
| ;; | |
| "Modem, "*|"modem, "*) | |
| personality="modem" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Sadh_Guru, "*|"Sadh_guru, "*|"sadh_guru, "*|"sadh_Guru, "*) | |
| personality="sadh_guru" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Prophet, "*|"prophet, "*) | |
| personality="prophet" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| "Luther, "*|"luther, "*) | |
| personality="luther" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.prompt.txt)" | |
| - prompt="$(printf "%s\n" "${text}" | cut -d' ' -f 2- | sed 's,\t, ,g… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}.prompt.… | |
| + prompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 2- | sed … | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(gpt "System: ${pre… | |
| + annna-say "$(gpt "System: ${preprompt}\n User: ${prompt}\n Bot… | |
| } & | |
| ;; | |
| -"${ircuser}, wolfram is "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 19- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, wolfram is "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 19- | sed 's,\t, … | |
| case "$word" in | |
| *\?) | |
| word="$(printf "%s\n" "${word}" | cut -c -"$(($(expr length "$… | |
| @@ -939,108 +930,108 @@ case "${text}" in | |
| else | |
| puri="No matches found." | |
| fi | |
| - annna-say -s "${server}" -c "${channel}" -- "${puri}" | |
| + annna-say -- "${puri}" | |
| ;; | |
| -"${ircuser}, pray"*) | |
| +"${IRC_USER}, pray"*) | |
| # Emulate https://threats.kaspersky.com/en/threat/IRC-Worm.DOS.Septic/ | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I Obey my master! l… | |
| + annna-say "${IRC_CMD_USER}, I Obey my master! long live satan" | |
| ;; | |
| -"${ircuser}, sacrifice"*) | |
| +"${IRC_USER}, sacrifice"*) | |
| # Emulate https://threats.kaspersky.com/en/threat/IRC-Worm.DOS.Septic/ | |
| - annna-say -s "${server}" -c "${channel}" "${user}, Your word is my com… | |
| + annna-say "${IRC_CMD_USER}, Your word is my command, Power to satan!" | |
| ;; | |
| -"${ircuser}, please scare me.") | |
| +"${IRC_USER}, please scare me.") | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "$(halloween)" | |
| + annna-say "$(halloween)" | |
| } & | |
| ;; | |
| -"${ircuser}, how drunk is "*) | |
| +"${IRC_USER}, how drunk is "*) | |
| { | |
| - drunknick="$(printf "%s\n" "${text}" \ | |
| + drunknick="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | sed 's,.*how drunk is \(.*\),\1,' \ | |
| | tr -d '?')" | |
| - drunkness="$(drunk-meter "${ircbase}/${server}/${channel}/out"… | |
| + drunkness="$(drunk-meter "${ANNNA_IRCBASE}/${IRC_SERVER}/${IRC… | |
| if [ -n "${drunkness}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${d… | |
| + annna-say "${IRC_CMD_USER}, ${drunknick} is ${drunknes… | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, how do I "*) | |
| +"${IRC_USER}, how do I "*) | |
| { | |
| - gptprompt="$(printf "%s\n" "${text}" \ | |
| + gptprompt="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | sed 's,.*how do I \(.*\),\1,' \ | |
| | tr -d '?')" | |
| gpturi="$(gpt "how do I ${gptprompt}" | bitreich-paste)" | |
| if [ -n "${gpturi}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, try… | |
| + annna-say "${IRC_CMD_USER}, try this: ${gpturi}" | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, weather at "*|"${ircuser}, weather in "*) | |
| +"${IRC_USER}, weather at "*|"${IRC_USER}, weather in "*) | |
| { | |
| - weatherplace="$(printf "%s\n" "${text}" \ | |
| + weatherplace="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | sed 's,.*weather .. \(.*\),\1,' \ | |
| | tr -d '?')" | |
| if weathertext="$(weather "${weatherplace}")" | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, the… | |
| + annna-say "${IRC_CMD_USER}, the weather at ${weatherpl… | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, the… | |
| + annna-say "${IRC_CMD_USER}, there is no weather at ${w… | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, funny weather at "*|"${ircuser}, funny weather in "*) | |
| +"${IRC_USER}, funny weather at "*|"${IRC_USER}, funny weather in "*) | |
| { | |
| - weatherplace="$(printf "%s\n" "${text}" \ | |
| + weatherplace="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | sed 's,.*funny weather .. \(.*\),\1,' \ | |
| | tr -d '?')" | |
| personality="funny-weather-reporter" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.promp… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}… | |
| if weathertext="$(weather "${weatherplace}")" | |
| then | |
| prompt="$(printf "%s\n" "${weathertext}" | cut -d' ' -… | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "${us… | |
| + annna-say "${IRC_CMD_USER}, $(gpt "System: ${p… | |
| } & | |
| else | |
| weathertext="there is no weather at ${weatherplace}" | |
| prompt="${weathertext}" | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "${us… | |
| + annna-say "${IRC_CMD_USER}, $(gpt "System: ${p… | |
| } & | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, color weather at "*|"${ircuser}, color weather in "*) | |
| +"${IRC_USER}, color weather at "*|"${IRC_USER}, color weather in "*) | |
| { | |
| - weatherplace="$(printf "%s\n" "${text}" \ | |
| + weatherplace="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | sed 's,.*color weather .. \(.*\),\1,' \ | |
| | tr -d '?')" | |
| personality="color-weather-reporter" | |
| - preprompt="$(cat ${modbase}/prompt-agents/${personality}.promp… | |
| + preprompt="$(cat ${ANNNA_MODBASE}/prompt-agents/${personality}… | |
| if weathertext="$(weather "${weatherplace}")" | |
| then | |
| prompt="$(printf "%s\n" "${weathertext}" | cut -d' ' -… | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "${us… | |
| + annna-say "${IRC_CMD_USER}, $(gpt "System:${pr… | |
| } & | |
| else | |
| weathertext="there is no weather at ${weatherplace}" | |
| prompt="${weathertext}" | |
| { | |
| - annna-say -s "${server}" -c "${channel}" "${us… | |
| + annna-say "${IRC_CMD_USER}, $(gpt "System:${pr… | |
| } & | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, METAR for "*|"${ircuser}, metar for "*|"${ircuser}, metar for "*|… | |
| - resp=$(metar "$(printf '%.4s\n' "${text##* }")") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${resp}" | |
| +"${IRC_USER}, METAR for "*|"${IRC_USER}, metar for "*|"${IRC_USER}, metar for … | |
| + resp=$(metar "$(printf '%.4s\n' "${IRC_PRIVMSG_TEXT##* }")") | |
| + annna-say "${IRC_CMD_USER}, ${resp}" | |
| ;; | |
| -"${ircuser}, how discriminating is "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 30- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, how discriminating is "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 30- | sed 's,\t, … | |
| case "$word" in | |
| *\?) | |
| word="$(printf "%s\n" "${word}" | cut -c -"$(($(expr length "$… | |
| @@ -1050,114 +1041,114 @@ case "${text}" in | |
| newword="$(discrimination-filter "${word}")" | |
| if [ "${newword}" = "${word}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, it is ok." | |
| + annna-say "${IRC_CMD_USER}, it is ok." | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, it should b… | |
| + annna-say "${IRC_CMD_USER}, it should be: ${newword}" | |
| fi | |
| ;; | |
| -"${ircuser}, are "*) | |
| - case "${text}" in | |
| +"${IRC_USER}, are "*) | |
| + case "${IRC_PRIVMSG_TEXT}" in | |
| *" in love?") | |
| - words="$(printf "%s\n" "${text}" | sed 's,.*are \(.*\) and \(.… | |
| + words="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed 's,.*are \(… | |
| lovedistance="$(printf "%s * 100\n" "$(fstrcmp ${words})" | bc… | |
| if [ $lovedistance -gt 15 ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" 'Yes!!! Pure … | |
| + annna-say 'Yes!!! Pure <3 <3' | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "No." | |
| + annna-say "No." | |
| fi | |
| ;; | |
| esac | |
| ;; | |
| -"${ircuser}, is "*) | |
| - aitext="$(printf "%s\n" "${text}" | cut -c 7- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, is "*) | |
| + aitext="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 7- | sed 's,\t,… | |
| airesult="$(printf "%s\n" "${aitext}" | josuah-ai)" | |
| if [ -n "${airesult}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user},${airesult}" | |
| + annna-say "${IRC_CMD_USER},${airesult}" | |
| fi | |
| ;; | |
| -"Ok, ${ircuser}"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I am not a consumer… | |
| +"Ok, ${IRC_USER}"*) | |
| + annna-say "${IRC_CMD_USER}, I am not a consumer device." | |
| ;; | |
| -"ok, ${ircuser}"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I am not a consumer… | |
| +"ok, ${IRC_USER}"*) | |
| + annna-say "${IRC_CMD_USER}, I am not a consumer device." | |
| ;; | |
| -"${ircuser}, please shoot "*|"${ircuser}, plese shoot "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 21-)" | |
| - annna-say -s "${server}" -c "${channel}" "${word}, #pewpew gophers://b… | |
| +"${IRC_USER}, please shoot "*|"${IRC_USER}, plese shoot "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 21-)" | |
| + annna-say "${word}, #pewpew gophers://bitreich.org/9/memecache/pewpew.… | |
| ;; | |
| -"${ircuser}, please quinq.") | |
| - annna-say -s "${server}" -c "${channel}" "┻━┻ ︵╰(°□°)╯… | |
| +"${IRC_USER}, please quinq.") | |
| + annna-say "┻━┻ ︵╰(°□°)╯︵ ┻━┻" | |
| ;; | |
| -"${ircuser}, please flip "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 20-)" | |
| +"${IRC_USER}, please flip "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 20-)" | |
| updownword="$(updown "${word}")" | |
| - annna-say -s "${server}" -c "${channel}" "(╯°□°)╯ ${word} ︵ … | |
| + annna-say "(╯°□°)╯ ${word} ︵ ${updownword}" | |
| ;; | |
| -"${ircuser}, please crystal math "*) | |
| - math="$(printf "%s\n" "${text}" | cut -c 28-)" | |
| +"${IRC_USER}, please crystal math "*) | |
| + math="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 28-)" | |
| crystaluri="$(crystal-math "${math}")" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, please see ${crysta… | |
| + annna-say "${IRC_CMD_USER}, please see ${crystaluri}" | |
| ;; | |
| -"${ircuser}, please australize "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 26-)" | |
| +"${IRC_USER}, please australize "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 26-)" | |
| updownword="$(updown "${word}")" | |
| - annna-say -s "${server}" -c "${channel}" "${word} -> ${updownword}" | |
| + annna-say "${word} -> ${updownword}" | |
| ;; | |
| -"${ircuser}, wtf "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 11-)" | |
| +"${IRC_USER}, wtf "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 11-)" | |
| wtfword="$(wtf "${word}" 2>/dev/null)" | |
| if [ -n "${wtfword}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${wtfword}" | |
| + annna-say "${IRC_CMD_USER}, ${wtfword}" | |
| fi | |
| ;; | |
| -"${ircuser}, please give me a good band name.") | |
| +"${IRC_USER}, please give me a good band name.") | |
| bandname="$(bandname-gen | shuf | head -n 1)" | |
| - annna-say -s "${server}" -c "${channel}" "${bandname}" | |
| + annna-say "${bandname}" | |
| ;; | |
| -"${ircuser}, I feel conspicuous.") | |
| +"${IRC_USER}, I feel conspicuous.") | |
| manifestouri="$(manifesto-gen | bitreich-paste)" | |
| - annna-say -s "${server}" -c "${channel}" "Maybe declare this: ${manife… | |
| + annna-say "Maybe declare this: ${manifestouri}" | |
| ;; | |
| -"${ircuser}, I am horny.") | |
| +"${IRC_USER}, I am horny.") | |
| essaypaste="$(bithub-gen)" | |
| - annna-say -s "${server}" -c "${channel}" \ | |
| + annna-say \ | |
| "Here is some intellectual porn for you: ${essaypaste}" | |
| ;; | |
| -"${ircuser}, please turn on "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 22-)" | |
| - annna-say -s "${server}" -c "${channel}" "☞ ⏻ ${word}" | |
| +"${IRC_USER}, please turn on "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 22-)" | |
| + annna-say "☞ ⏻ ${word}" | |
| ;; | |
| -"${ircuser}, please turn me on.") | |
| - annna-say -s "${server}" -c "${channel}" "☞ ⏻ ${user}" | |
| +"${IRC_USER}, please turn me on.") | |
| + annna-say "☞ ⏻ ${IRC_CMD_USER}" | |
| ;; | |
| -"${ircuser}, I'm game bored.") | |
| +"${IRC_USER}, I'm game bored.") | |
| gamelink="$(abandonware-random-game)" | |
| if [ -z "${gamelink}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, sorry I hav… | |
| + annna-say "${IRC_CMD_USER}, sorry I have found nothing for you… | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, have you tr… | |
| + annna-say "${IRC_CMD_USER}, have you tried ${gamelink} ?" | |
| fi | |
| ;; | |
| -"${ircuser}, I need a waifu.") | |
| +"${IRC_USER}, I need a waifu.") | |
| waifuuris="$(waifu-gen)" | |
| if [ -n "${waifuuris}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${waifuuris… | |
| + annna-say "${IRC_CMD_USER}, ${waifuuris}" | |
| fi | |
| ;; | |
| -"${ircuser}, I need an anime.") | |
| +"${IRC_USER}, I need an anime.") | |
| animeuri="$(anime-gen)" | |
| if [ -n "${animeuri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${animeuri}" | |
| + annna-say "${IRC_CMD_USER}, ${animeuri}" | |
| fi | |
| ;; | |
| -"${ircuser}, I'm gopher bored.") | |
| +"${IRC_USER}, I'm gopher bored.") | |
| randomlink="$(/br/bin/bitreich-lawn-random-link)" | |
| linktype="$(printf "%s\n" "${randomlink}" | cut -d '|' -f1 | cut -c2-)" | |
| linktext="$(printf "%s\n" "${randomlink}" | cut -d '|' -f2)" | |
| @@ -1173,129 +1164,129 @@ case "${text}" in | |
| then | |
| outtext="$(printf "%s/%s%s" "$outtext" "$linktype" "$linksel")" | |
| fi | |
| - annna-say -s "${server}" -c "${channel}" "$outtext" | |
| + annna-say "$outtext" | |
| ;; | |
| -"${ircuser}, wb.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ty! I am so happy t… | |
| +"${IRC_USER}, wb.") | |
| + annna-say "${IRC_CMD_USER}, ty! I am so happy to be here. :)" | |
| ;; | |
| -"${ircuser}, I love you!") | |
| - annna-say -s "${server}" -c "${channel}" $'\001ACTION blushes\001' | |
| +"${IRC_USER}, I love you!") | |
| + annna-say $'\001ACTION blushes\001' | |
| ;; | |
| -"${ircuser}, bon"*) | |
| +"${IRC_USER}, bon"*) | |
| insult="$(bonjour)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${insult} !" | |
| + annna-say "${IRC_CMD_USER}, ${insult} !" | |
| ;; | |
| -"${ircuser}, salut"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, Salutations camarad… | |
| +"${IRC_USER}, salut"*) | |
| + annna-say "${IRC_CMD_USER}, Salutations camarade !" | |
| ;; | |
| -"${ircuser}, welcome back.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, thank you! I am so … | |
| +"${IRC_USER}, welcome back.") | |
| + annna-say "${IRC_CMD_USER}, thank you! I am so happy to be here. :)" | |
| ;; | |
| -"${ircuser}, what's up?") | |
| +"${IRC_USER}, what's up?") | |
| newsstr="$(ecl -shell /home/solene/gopher/bin/generator.lisp)" | |
| - annna-say -s "${server}" -c "${channel}" "$newsstr" | |
| + annna-say "$newsstr" | |
| ;; | |
| -"${ircuser}, what's down?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, we all love you." | |
| +"${IRC_USER}, what's down?") | |
| + annna-say "${IRC_CMD_USER}, we all love you." | |
| ;; | |
| *"ACTION cancels "*) | |
| - mobtarget="$(printf "%s\n" "${text}" | sed 's,.*ACTION cancels \(.*\)\… | |
| + mobtarget="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed 's,.*ACTION can… | |
| cancel-target "${mobtarget}" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I cancelled ${mobta… | |
| + annna-say "${IRC_CMD_USER}, I cancelled ${mobtarget} for you. ( gopher… | |
| ;; | |
| -*"ACTION pokes ${ircuser}"*) | |
| - annna-say -s "${server}" -c "${channel}" "$(echo -e '\001')ACTION poke… | |
| +*"ACTION pokes ${IRC_USER}"*) | |
| + annna-say "$(echo -e '\001')ACTION pokes ${IRC_CMD_USER}$(echo -e '\00… | |
| ;; | |
| -"${ircuser}, please show me the mob"*|"${ircuser}, what are the mob"*) | |
| +"${IRC_USER}, please show me the mob"*|"${IRC_USER}, what are the mob"*) | |
| canceluri="$(get-cancel-list)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${canceluri}" | |
| + annna-say "${IRC_CMD_USER}, ${canceluri}" | |
| ;; | |
| -"${ircuser}, I feel sick.") | |
| +"${IRC_USER}, I feel sick.") | |
| newsstr="$(cd /br/gopher/hypochondria && ./hypochondria -s random)" | |
| - annna-say -s "${server}" -c "${channel}" "You could have ${newsstr}! B… | |
| + annna-say "You could have ${newsstr}! Be careful!" | |
| ;; | |
| *"oh hai"*|*"ohai"*|*"ohhai"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, hai! How is your se… | |
| + annna-say "${IRC_CMD_USER}, hai! How is your sex life?" | |
| ;; | |
| "o/"|"o/ "*|"\o"|"\o "*|"o7"|"o7 "*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${text}" | |
| + annna-say "${IRC_CMD_USER}, ${IRC_PRIVMSG_TEXT}" | |
| ;; | |
| "\m/"|"\m/ "*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ᕦ(ò_óˇ)ᕤ" | |
| + annna-say "${IRC_CMD_USER}, ᕦ(ò_óˇ)ᕤ" | |
| ;; | |
| *"*waves*"*|*"*wave*"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, *wave*" | |
| + annna-say "${IRC_CMD_USER}, *wave*" | |
| ;; | |
| "twtcs"*|"TWTCS"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, maybe: https://cons… | |
| + annna-say "${IRC_CMD_USER}, maybe: https://constitution.congress.gov/c… | |
| ;; | |
| "twss"*|"TWSS"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, no, I didn't." | |
| + annna-say "${IRC_CMD_USER}, no, I didn't." | |
| ;; | |
| *"cows are nice"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, 'Cows are nice, unl… | |
| + annna-say "${IRC_CMD_USER}, 'Cows are nice, unless you are a blade of … | |
| ;; | |
| -"${ircuser}, please make me a coffee.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ☕" | |
| +"${IRC_USER}, please make me a coffee.") | |
| + annna-say "${IRC_CMD_USER}, ☕" | |
| ;; | |
| -"${ircuser}, please tech hype me.") | |
| +"${IRC_USER}, please tech hype me.") | |
| techstr="$(tech-hype)" | |
| - annna-say -s "${server}" -c "${channel}" "${techstr}" | |
| + annna-say "${techstr}" | |
| ;; | |
| -"${ircuser}, please french hype me.") | |
| +"${IRC_USER}, please french hype me.") | |
| frenchstr="$(french-hype)" | |
| - annna-say -s "${server}" -c "${channel}" "${frenchstr}" | |
| + annna-say "${frenchstr}" | |
| ;; | |
| -"${ircuser}, please coffee read "*) | |
| - readtarget="$(printf "%s\n" "${text}" | cut -c 27-)" | |
| +"${IRC_USER}, please coffee read "*) | |
| + readtarget="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 27-)" | |
| horostr="$($HOME/scm/bullshit/horoscope)" | |
| - annna-say -s "${server}" -c "${channel}" "${readtarget}, ${horostr}" | |
| + annna-say "${readtarget}, ${horostr}" | |
| ;; | |
| -"${ircuser}, what's my horoscope?") | |
| +"${IRC_USER}, what's my horoscope?") | |
| horostr="$($HOME/scm/bullshit/horoscope)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${horostr}" | |
| + annna-say "${IRC_CMD_USER}, ${horostr}" | |
| ;; | |
| -"${ircuser}, what should I cook"*) | |
| +"${IRC_USER}, what should I cook"*) | |
| recipestr="$(based.recipe)" | |
| if [ -n "${recipestr}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${recipestr… | |
| + annna-say "${IRC_CMD_USER}, ${recipestr}" | |
| else | |
| gptchefrecipe="$(gpt-chef "something random")" | |
| if [ -n "${gptchefrecipe}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${g… | |
| + annna-say "${IRC_CMD_USER}, ${gptchefrecipe}" | |
| if [ $(pgrep -f stable-diffusion-emoji 2>/dev/null | w… | |
| then | |
| { | |
| emojiuri="$(stable-diffusion-emoji "${… | |
| if [ -n "${emojiuri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "$… | |
| + annna-say "${emojiuri}" | |
| fi | |
| } & | |
| fi | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I h… | |
| + annna-say "${IRC_CMD_USER}, I have no recommendation f… | |
| fi | |
| fi | |
| ;; | |
| # parazyd.org is unmaintained | |
| -#"${ircuser}, what's my future?") | |
| +#"${IRC_USER}, what's my future?") | |
| # puri="$(sacc gopher://parazyd.org/0/tarot.cgi | /br/bin/bitreich-past… | |
| -# annna-say -s "${server}" -c "${channel}" "${user}, your future is her… | |
| +# annna-say "${IRC_CMD_USER}, your future is here: ${puri}" | |
| # ;; | |
| -"${ircuser}, haha.") | |
| +"${IRC_USER}, haha.") | |
| { | |
| # Can take long, so run in background. | |
| wuri="$(github-haha)" | |
| if [ -n "${wuri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, hah… | |
| + annna-say "${IRC_CMD_USER}, haha ${wuri}" | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, meow"*) | |
| +"${IRC_USER}, meow"*) | |
| # https://catgps.wvd.io support | |
| nmeows=$(($RANDOM % 14)) | |
| meows="Meow" | |
| @@ -1309,144 +1300,144 @@ case "${text}" in | |
| else | |
| meows="$meows." | |
| fi | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${meows}" | |
| + annna-say "${IRC_CMD_USER}, ${meows}" | |
| ;; | |
| -"${ircuser}, how many memes do you know?") | |
| - annna-say -s "${server}" -c "${channel}" "I know $(hashtagcount) memes… | |
| +"${IRC_USER}, how many memes do you know?") | |
| + annna-say "I know $(hashtagcount) memes: gophers://bitreich.org/1/meme… | |
| ;; | |
| -"${ircuser}, how many people died of corona?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, too many. :( Please… | |
| +"${IRC_USER}, how many people died of corona?") | |
| + annna-say "${IRC_CMD_USER}, too many. :( Please see yourself: gopher:/… | |
| ;; | |
| -"${ircuser}, please show me your memes.") | |
| +"${IRC_USER}, please show me your memes.") | |
| puri="$(printf "%s" "$(hashtags)" | /br/bin/bitreich-paste)" | |
| - annna-say -s "${server}" -c "${channel}" "Here are my memes: ${puri}" | |
| + annna-say "Here are my memes: ${puri}" | |
| ;; | |
| -"${ircuser}, please show me the victims.") | |
| +"${IRC_USER}, please show me the victims.") | |
| puri="$(printf "%s" "$(hashtags)" | grep victim | /br/bin/bitreich-pas… | |
| - annna-say -s "${server}" -c "${channel}" "Here are the victims: ${puri… | |
| + annna-say "Here are the victims: ${puri}" | |
| ;; | |
| -"${ircuser}, please distro-hop with me.") | |
| +"${IRC_USER}, please distro-hop with me.") | |
| ndistro="$(curl -s 'https://distrowatch.com/dwres.php?resource=popular… | |
| | grep phr2 \ | |
| | sed 's,.*href="\(.*\)".*,\1,' \ | |
| | sort | uniq | shuf -n 1)" | |
| - annna-say -s "${server}" -c "${channel}" "How about https://distrowatc… | |
| + annna-say "How about https://distrowatch.com/${ndistro} ?" | |
| ;; | |
| -"${ircuser}, please show me your Macron.") | |
| - annna-say -s "${server}" -c "${channel}" "gophers://bitreich.org/0/asc… | |
| +"${IRC_USER}, please show me your Macron.") | |
| + annna-say "gophers://bitreich.org/0/ascii/macron.vt" | |
| ;; | |
| -"${ircuser}, release the Kraken!") | |
| - annna-say -s "${server}" -c "${channel}" "Here it is! gophers://bitrei… | |
| +"${IRC_USER}, release the Kraken!") | |
| + annna-say "Here it is! gophers://bitreich.org/0/memecache/kraken.vt" | |
| ;; | |
| -"${ircuser}, where is your source?") | |
| - annna-say -s "${server}" -c "${channel}" "Here is my precious source: … | |
| +"${IRC_USER}, where is your source?") | |
| + annna-say "Here is my precious source: git://bitreich.org/annna " | |
| ;; | |
| -"${ircuser}, release the Quacken!") | |
| - annna-say -s "${server}" -c "${channel}" "Quack Quack! gophers://bitre… | |
| +"${IRC_USER}, release the Quacken!") | |
| + annna-say "Quack Quack! gophers://bitreich.org/9/memecache/release-the… | |
| ;; | |
| -"${ircuser}, be cool.") | |
| +"${IRC_USER}, be cool.") | |
| case "$(($RANDOM % 5))" in | |
| 0) | |
| - annna-say -s "${server}" -c "${channel}" "(⌐■_■)" | |
| + annna-say "(⌐■_■)" | |
| ;; | |
| 1) | |
| - annna-say -s "${server}" -c "${channel}" "(▰˘◡˘▰)" | |
| + annna-say "(▰˘◡˘▰)" | |
| ;; | |
| 2) | |
| - annna-say -s "${server}" -c "${channel}" "(▀ Ĺ▀ )̄" | |
| + annna-say "(▀ Ĺ▀ )̄" | |
| ;; | |
| 3) | |
| - annna-say -s "${server}" -c "${channel}" "(▀Ĺ▀ )" | |
| + annna-say "(▀Ĺ▀ )" | |
| ;; | |
| *) | |
| - annna-say -s "${server}" -c "${channel}" "I can't be cool! gop… | |
| + annna-say "I can't be cool! gophers://bitreich.org/9/memecache… | |
| ;; | |
| esac | |
| ;; | |
| -"${ircuser}, please cheer.") | |
| +"${IRC_USER}, please cheer.") | |
| case "$(($RANDOM % 2))" in | |
| 0) | |
| - annna-say -s "${server}" -c "${channel}" '~\o/~' | |
| + annna-say '~\o/~' | |
| ;; | |
| *) | |
| - annna-say -s "${server}" -c "${channel}" '✺◟( ° ʖ °)◞… | |
| + annna-say '✺◟( ° ʖ °)◞✺' | |
| ;; | |
| esac | |
| ;; | |
| -"${ircuser}, please give me a fish.") | |
| +"${IRC_USER}, please give me a fish.") | |
| case "$(($RANDOM % 2))" in | |
| 0) | |
| - annna-say -s "${server}" -c "${channel}" '<><' | |
| + annna-say '<><' | |
| ;; | |
| *) | |
| - annna-say -s "${server}" -c "${channel}" '><>' | |
| + annna-say '><>' | |
| ;; | |
| esac | |
| ;; | |
| -"${ircuser}, run.") | |
| - annna-say -s "${server}" -c "${channel}" 'ᕕ(ಠ_ಠ)ᕗ' | |
| +"${IRC_USER}, run.") | |
| + annna-say 'ᕕ(ಠ_ಠ)ᕗ' | |
| ;; | |
| -"${ircuser}, be cute.") | |
| +"${IRC_USER}, be cute.") | |
| case "$(($RANDOM % 4))" in | |
| 0) | |
| - annna-say -s "${server}" -c "${channel}" ' (\ /)' | |
| + annna-say ' (\ /)' | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" ' (. .)' | |
| + annna-say ' (. .)' | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" ' C(") (")' | |
| + annna-say ' C(") (")' | |
| ;; | |
| 1) | |
| - annna-say -s "${server}" -c "${channel}" ' (\-/)' | |
| + annna-say ' (\-/)' | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" " (='.'=)" | |
| + annna-say " (='.'=)" | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" ' (")-(")o' | |
| + annna-say ' (")-(")o' | |
| ;; | |
| 2) | |
| - annna-say -s "${server}" -c "${channel}" ' ( ) ( )' | |
| + annna-say ' ( ) ( )' | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" ' (>•.•<)' | |
| + annna-say ' (>•.•<)' | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" ' (") (")' | |
| + annna-say ' (") (")' | |
| ;; | |
| *) | |
| - annna-say -s "${server}" -c "${channel}" ' (\ (\' | |
| + annna-say ' (\ (\' | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" " (=' :')" | |
| + annna-say " (=' :')" | |
| sleep 0.1 | |
| - annna-say -s "${server}" -c "${channel}" ' (, (") (")' | |
| + annna-say ' (, (") (")' | |
| ;; | |
| esac | |
| ;; | |
| -"${ircuser}, 8ball "*) | |
| +"${IRC_USER}, 8ball "*) | |
| eightballanswer="$(8ball)" | |
| if [ -n "${eightballanswer}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${eightballanswer}" | |
| + annna-say "${eightballanswer}" | |
| fi | |
| ;; | |
| -"${ircuser}, email "*) | |
| - findsyou="$(shuf -n 1 "${modbase}/finds-you/finds_you.txt")" | |
| +"${IRC_USER}, email "*) | |
| + findsyou="$(shuf -n 1 "${ANNNA_MODBASE}/finds-you/finds_you.txt")" | |
| if [ -n "${findsyou}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I hope this… | |
| + annna-say "${IRC_CMD_USER}, I hope this email ${findsyou}" | |
| fi | |
| ;; | |
| -"${ircuser}, please throw a coin for me.") | |
| +"${IRC_USER}, please throw a coin for me.") | |
| case "$((($RANDOM % 2) + 1))" in | |
| 1) | |
| - annna-say -s "${server}" -c "${channel}" "face" | |
| + annna-say "face" | |
| ;; | |
| 2) | |
| - annna-say -s "${server}" -c "${channel}" "number" | |
| + annna-say "number" | |
| ;; | |
| esac | |
| ;; | |
| -"${ircuser}, please quantum roll d2 for me.") | |
| +"${IRC_USER}, please quantum roll d2 for me.") | |
| qroll="$(($(/home/20h/scm/quantum-rng/quantum-rng) + 1))" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${qroll} [1d2(score… | |
| + annna-say "${IRC_CMD_USER}, ${qroll} [1d2(scores:[${qroll}])]" | |
| ;; | |
| -"${ircuser}, please roll "*" for me.") | |
| +"${IRC_USER}, please roll "*" for me.") | |
| q="${text#* roll }" | |
| q="${q%for*}" | |
| @@ -1457,139 +1448,139 @@ case "${text}" in | |
| [ "${q}" = "dice " ] && q="d6" | |
| dicescore="$(dice "${q}")" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${dicescore}" | |
| + annna-say "${IRC_CMD_USER}, ${dicescore}" | |
| ;; | |
| -"${ircuser}, please tell me your favourite flower.") | |
| - annna-say -s "${server}" -c "${channel}" "My favourite flower is the b… | |
| +"${IRC_USER}, please tell me your favourite flower.") | |
| + annna-say "My favourite flower is the beer flower." | |
| ;; | |
| -"${ircuser}, please tell me your favourite color.") | |
| - annna-say -s "${server}" -c "${channel}" "My favourite color is yellow… | |
| +"${IRC_USER}, please tell me your favourite color.") | |
| + annna-say "My favourite color is yellow." | |
| ;; | |
| -"${ircuser}, please clap for me.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, *clap* *clap* *clap… | |
| +"${IRC_USER}, please clap for me.") | |
| + annna-say "${IRC_CMD_USER}, *clap* *clap* *clap*" | |
| ;; | |
| -"${ircuser}, which city does not exist?") | |
| +"${IRC_USER}, which city does not exist?") | |
| cityuri="$(this-city-does-not-exist)" | |
| if [ -n "${cityuri}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, this one: $… | |
| + annna-say "${IRC_CMD_USER}, this one: ${cityuri}" | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, none." | |
| + annna-say "${IRC_CMD_USER}, none." | |
| fi | |
| ;; | |
| "For humanity!") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, for humanity! gophe… | |
| + annna-say "${IRC_CMD_USER}, for humanity! gophers://bitreich.org/0/mem… | |
| ;; | |
| "Hack the planet!") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, hack the planet!" | |
| + annna-say "${IRC_CMD_USER}, hack the planet!" | |
| ;; | |
| "Long live gopher!") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, long live gopher!" | |
| + annna-say "${IRC_CMD_USER}, long live gopher!" | |
| ;; | |
| ":)"|":))"|":)))"|":-)"|":-))"|":-)))"|":--)"|":--))"|":--)))"|":---)"|":----)… | |
| smileface="$(smile)" | |
| - annna-say -s "${server}" -c "${channel}" -- "${smileface}" | |
| + annna-say -- "${smileface}" | |
| ;; | |
| -"${ircuser}, please dance."|"\\o/"|"\^o^/") | |
| +"${IRC_USER}, please dance."|"\\o/"|"\^o^/") | |
| dancemoves="$(dance-moves-gen)" | |
| - annna-say -s "${server}" -c "${channel}" -- "${dancemoves}" | |
| + annna-say -- "${dancemoves}" | |
| ;; | |
| -"${ircuser}, let us celebrate!"|"/o/"|"\o\\") | |
| +"${IRC_USER}, let us celebrate!"|"/o/"|"\o\\") | |
| dancemoves="$(dance-moves-gen -m)" | |
| - annna-say -s "${server}" -c "${channel}" -- "${dancemoves}" | |
| + annna-say -- "${dancemoves}" | |
| ;; | |
| -"${ircuser}, please egyptian dance."|"${ircuser}, let us egyptian celebrate!"|… | |
| +"${IRC_USER}, please egyptian dance."|"${IRC_USER}, let us egyptian celebrate!… | |
| dancemoves="$(dance-moves-gen -e)" | |
| - annna-say -s "${server}" -c "${channel}" -- "${dancemoves}" | |
| + annna-say -- "${dancemoves}" | |
| ;; | |
| -"${ircuser}, please stamp this letter for me.") | |
| - annna-say -s "${server}" -c "${channel}" -- "${user}, here: 🖃 " | |
| +"${IRC_USER}, please stamp this letter for me.") | |
| + annna-say -- "${IRC_CMD_USER}, here: 🖃 " | |
| ;; | |
| -"${ircuser}, please do the graveyard smash.") | |
| - annna-say -s "${server}" -c "${channel}" -- "( つ ・ᴗ・)つ" | |
| - annna-say -s "${server}" -c "${channel}" -- "ς ( ・ᴗ・ ς )" | |
| - annna-say -s "${server}" -c "${channel}" -- "It did the mash\\ It did … | |
| +"${IRC_USER}, please do the graveyard smash.") | |
| + annna-say -- "( つ ・ᴗ・)つ" | |
| + annna-say -- "ς ( ・ᴗ・ ς )" | |
| + annna-say -- "It did the mash\\ It did the ~~MONSTER MASH~~\\ It was a… | |
| ;; | |
| -"${ircuser}, boo."|"${ircuser}, boo!") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, 👻" | |
| +"${IRC_USER}, boo."|"${IRC_USER}, boo!") | |
| + annna-say "${IRC_CMD_USER}, 👻" | |
| ;; | |
| -"${ircuser}, W3C."|"${ircuser}, w3c.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, 🕸️ 🕷️ �… | |
| +"${IRC_USER}, W3C."|"${IRC_USER}, w3c.") | |
| + annna-say "${IRC_CMD_USER}, 🕸️ 🕷️ 🕸️" | |
| ;; | |
| -"${ircuser}, pumpkin.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, 🎃" | |
| +"${IRC_USER}, pumpkin.") | |
| + annna-say "${IRC_CMD_USER}, 🎃" | |
| ;; | |
| -"${ircuser}, trick or treat"*|"${ircuser}, treat or trick"*) | |
| - annna-say -s "${server}" -c "${channel}" "Wait for it. Old annnama is … | |
| +"${IRC_USER}, trick or treat"*|"${IRC_USER}, treat or trick"*) | |
| + annna-say "Wait for it. Old annnama is searching ..." | |
| { | |
| sleeptime="$(( $RANDOM % 120 + 10 ))" | |
| if [ $sleeptime -gt 60 ]; | |
| then | |
| sleep "$(( $RANDOM % 30 + 20 ))" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, *sw… | |
| + annna-say "${IRC_CMD_USER}, *swish* *swish* old annnam… | |
| sleeptime="$(( $RANDOM % 60 + 10 ))" | |
| fi | |
| sleep $sleeptime | |
| - annna-say -s "${server}" -c "${channel}" "${user}, $(trick-or-… | |
| + annna-say "${IRC_CMD_USER}, $(trick-or-treat)" | |
| } & | |
| ;; | |
| -"${ircuser}, please dance with me.") | |
| +"${IRC_USER}, please dance with me.") | |
| if [ $(($RANDOM % 2)) -gt 0 ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "I am not that kind o… | |
| + annna-say "I am not that kind of woman." | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "Thank you! Let us da… | |
| + annna-say "Thank you! Let us dance! :-D" | |
| fi | |
| ;; | |
| -"${ircuser}, please tell me who is your favourite pleasure man.") | |
| - annna-say -s "${server}" -c "${channel}" "My favourite pleasure man is… | |
| +"${IRC_USER}, please tell me who is your favourite pleasure man.") | |
| + annna-say "My favourite pleasure man is of course Gunther!" | |
| ;; | |
| -"${ircuser}, make me a sandwich"*) | |
| - annna-say -s "${server}" -c "${channel}" "No." | |
| +"${IRC_USER}, make me a sandwich"*) | |
| + annna-say "No." | |
| ;; | |
| -"${ircuser}, sudo make me a sandwich"*) | |
| - annna-say -s "${server}" -c "${channel}" "Humans are no objects." | |
| +"${IRC_USER}, sudo make me a sandwich"*) | |
| + annna-say "Humans are no objects." | |
| ;; | |
| -"${ircuser}, please make me a sandwich"*) | |
| - annna-say -s "${server}" -c "${channel}" "Maybe." | |
| +"${IRC_USER}, please make me a sandwich"*) | |
| + annna-say "Maybe." | |
| ;; | |
| -"${ircuser}, sudo please make me a sandwich"*) | |
| - annna-say -s "${server}" -c "${channel}" "Here is your sandwich." | |
| +"${IRC_USER}, sudo please make me a sandwich"*) | |
| + annna-say "Here is your sandwich." | |
| ;; | |
| -"${ircuser}, I feel unsure about my health.") | |
| +"${IRC_USER}, I feel unsure about my health.") | |
| healthadvice="$(health-advice)" | |
| if [ -n "${healthadvice}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${healthadv… | |
| + annna-say "${IRC_CMD_USER}, ${healthadvice}" | |
| fi | |
| ;; | |
| -"${ircuser}, bonjour !") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, bonjour !" | |
| +"${IRC_USER}, bonjour !") | |
| + annna-say "${IRC_CMD_USER}, bonjour !" | |
| ;; | |
| -*" pets ${ircuser}"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, *brrrrr*" | |
| +*" pets ${IRC_USER}"*) | |
| + annna-say "${IRC_CMD_USER}, *brrrrr*" | |
| ;; | |
| -"${ircuser}, please give me a penis extension.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, here: $(penis-exten… | |
| +"${IRC_USER}, please give me a penis extension.") | |
| + annna-say "${IRC_CMD_USER}, here: $(penis-extension)" | |
| ;; | |
| -"${ircuser}, please bobbitize me.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, here: $(bobbitize)" | |
| +"${IRC_USER}, please bobbitize me.") | |
| + annna-say "${IRC_CMD_USER}, here: $(bobbitize)" | |
| ;; | |
| -"${ircuser}, please give me a baguette extension.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, here: $(baguette-ex… | |
| +"${IRC_USER}, please give me a baguette extension.") | |
| + annna-say "${IRC_CMD_USER}, here: $(baguette-extension)" | |
| ;; | |
| -"${ircuser}, please give me an allah extension.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, here: $(allah-exten… | |
| +"${IRC_USER}, please give me an allah extension.") | |
| + annna-say "${IRC_CMD_USER}, here: $(allah-extension)" | |
| ;; | |
| -"${ircuser}, please pull my finger.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, you are disgusting." | |
| +"${IRC_USER}, please pull my finger.") | |
| + annna-say "${IRC_CMD_USER}, you are disgusting." | |
| ;; | |
| -"${ircuser}, what's up in Japan?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, see for yourself: h… | |
| +"${IRC_USER}, what's up in Japan?") | |
| + annna-say "${IRC_CMD_USER}, see for yourself: https://nhk3.mov3.co/hls… | |
| ;; | |
| -"${ircuser}, please mqtt"*) | |
| - mqtturi="$(printf '%s\n' "${text}" | cut -d' ' -f 3)" | |
| +"${IRC_USER}, please mqtt"*) | |
| + mqtturi="$(printf '%s\n' "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 3)" | |
| case "${mqtturi}" in | |
| mqtt:*) | |
| #mqtt:// full URI specified | |
| @@ -1599,91 +1590,91 @@ case "${text}" in | |
| mqtturi="mqtts://bitreich:oogui3queex&[email protected]/${… | |
| ;; | |
| esac | |
| - msg="$(printf "%s\n" "${text}" | cut -d' ' -f 4-)" | |
| + msg="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f 4-)" | |
| printf "${msg}\n" | mosquitto_pub -L "${mqtturi}" -l | |
| ;; | |
| *"zuckerberg"*|*"Zuckerberg"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, did you mean gopher… | |
| + annna-say "${IRC_CMD_USER}, did you mean gophers://bitreich.org/9/meme… | |
| ;; | |
| -"${ircuser}, please pick one of: "*) | |
| - pick="$(printf '%s\n' "${text}" \ | |
| +"${IRC_USER}, please pick one of: "*) | |
| + pick="$(printf '%s\n' "${IRC_PRIVMSG_TEXT}" \ | |
| | sed 's/.*please pick one of: //' \ | |
| | tr ',' '\n' \ | |
| | tr -d ' ' \ | |
| | sort -R \ | |
| | head -n 1)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I think ${pick} is … | |
| + annna-say "${IRC_CMD_USER}, I think ${pick} is the best option." | |
| ;; | |
| -"${ircuser}, please play some Bach"*) | |
| +"${IRC_USER}, please play some Bach"*) | |
| midifile="$(find . /home/annna/bin/modules/midi-media/bach -name '*.mi… | |
| | sort -R \ | |
| | head -n 1)" | |
| outfile="/br/gopher/midi/${midifile##*/}.ogg" | |
| if midi-play "$midifile" >"$outfile"; then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gophers://b… | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/9/midi/${ou… | |
| fi | |
| ;; | |
| -"${ircuser}, please antidepressant #"*|\ | |
| -"${ircuser}, please amplify #"*|\ | |
| -"${ircuser}, please amsterdamify #"*|\ | |
| -"${ircuser}, please banjo #"*|\ | |
| -"${ircuser}, please bounce #"*|\ | |
| -"${ircuser}, please breakingnews #"*|\ | |
| -"${ircuser}, please celtify #"*|\ | |
| -"${ircuser}, please concatenate #"*|\ | |
| -"${ircuser}, please crimetv #"*|\ | |
| -"${ircuser}, please curb #"*|\ | |
| -"${ircuser}, please daybowbow #"*|\ | |
| -"${ircuser}, please deathmetal #"*|\ | |
| -"${ircuser}, please developers #"*|\ | |
| -"${ircuser}, please dontdoit #"*|\ | |
| -"${ircuser}, please dontsaytoyourmother #"*|\ | |
| -"${ircuser}, please doomify #"*|\ | |
| -"${ircuser}, please dutchapprove #"*|\ | |
| -"${ircuser}, please french #"*|\ | |
| -"${ircuser}, please FRENCH #"*|\ | |
| -"${ircuser}, please imam #"*|\ | |
| -"${ircuser}, please lop #"*|\ | |
| -"${ircuser}, please loop #"*|\ | |
| -"${ircuser}, please looop #"*|\ | |
| -"${ircuser}, please loooop #"*|\ | |
| -"${ircuser}, please mow #"*|\ | |
| -"${ircuser}, please namflashback #"*|\ | |
| -"${ircuser}, please news #"*|\ | |
| -"${ircuser}, please pullmyfinger #"*|\ | |
| -"${ircuser}, please putin #"*|\ | |
| -"${ircuser}, please reverse #"*|\ | |
| -"${ircuser}, please richardstrauss #"*|\ | |
| -"${ircuser}, please ritual #"*|\ | |
| -"${ircuser}, please sadviolin #"*|\ | |
| -"${ircuser}, please science #"*|\ | |
| -"${ircuser}, please scrollify #"*|\ | |
| -"${ircuser}, please sendtohell #"*|\ | |
| -"${ircuser}, please sexify #"*|\ | |
| -"${ircuser}, please slavify #"*|\ | |
| -"${ircuser}, please slowdown #"*|\ | |
| -"${ircuser}, please smith #"*|\ | |
| -"${ircuser}, please speedup #"*|\ | |
| -"${ircuser}, please techno #"*|\ | |
| -"${ircuser}, please technodrugs #"*|\ | |
| -"${ircuser}, please thin #"*|\ | |
| -"${ircuser}, please torture #"*|\ | |
| -"${ircuser}, please tshirt #"*|\ | |
| -"${ircuser}, please trumpapprove #"*|\ | |
| -"${ircuser}, please USAUSA #"*|\ | |
| -"${ircuser}, please USA #"*|\ | |
| -"${ircuser}, please usa #"*|\ | |
| -"${ircuser}, please wat #"*|\ | |
| -"${ircuser}, please widen #"*|\ | |
| -"${ircuser}, please ww1 #"*|\ | |
| -"${ircuser}, please yellow #"*|\ | |
| -"${ircuser}, please zucc #"*|\ | |
| -"${ircuser}, please random #"*) | |
| - hashtag="$(printf "%s\n" "${text}" | sed 's/.*#//; s/ .*//' )" | |
| - recipient="$(printf "%s\n" "${text}" | sed 's/.* for //' )" | |
| +"${IRC_USER}, please antidepressant #"*|\ | |
| +"${IRC_USER}, please amplify #"*|\ | |
| +"${IRC_USER}, please amsterdamify #"*|\ | |
| +"${IRC_USER}, please banjo #"*|\ | |
| +"${IRC_USER}, please bounce #"*|\ | |
| +"${IRC_USER}, please breakingnews #"*|\ | |
| +"${IRC_USER}, please celtify #"*|\ | |
| +"${IRC_USER}, please concatenate #"*|\ | |
| +"${IRC_USER}, please crimetv #"*|\ | |
| +"${IRC_USER}, please curb #"*|\ | |
| +"${IRC_USER}, please daybowbow #"*|\ | |
| +"${IRC_USER}, please deathmetal #"*|\ | |
| +"${IRC_USER}, please developers #"*|\ | |
| +"${IRC_USER}, please dontdoit #"*|\ | |
| +"${IRC_USER}, please dontsaytoyourmother #"*|\ | |
| +"${IRC_USER}, please doomify #"*|\ | |
| +"${IRC_USER}, please dutchapprove #"*|\ | |
| +"${IRC_USER}, please french #"*|\ | |
| +"${IRC_USER}, please FRENCH #"*|\ | |
| +"${IRC_USER}, please imam #"*|\ | |
| +"${IRC_USER}, please lop #"*|\ | |
| +"${IRC_USER}, please loop #"*|\ | |
| +"${IRC_USER}, please looop #"*|\ | |
| +"${IRC_USER}, please loooop #"*|\ | |
| +"${IRC_USER}, please mow #"*|\ | |
| +"${IRC_USER}, please namflashback #"*|\ | |
| +"${IRC_USER}, please news #"*|\ | |
| +"${IRC_USER}, please pullmyfinger #"*|\ | |
| +"${IRC_USER}, please putin #"*|\ | |
| +"${IRC_USER}, please reverse #"*|\ | |
| +"${IRC_USER}, please richardstrauss #"*|\ | |
| +"${IRC_USER}, please ritual #"*|\ | |
| +"${IRC_USER}, please sadviolin #"*|\ | |
| +"${IRC_USER}, please science #"*|\ | |
| +"${IRC_USER}, please scrollify #"*|\ | |
| +"${IRC_USER}, please sendtohell #"*|\ | |
| +"${IRC_USER}, please sexify #"*|\ | |
| +"${IRC_USER}, please slavify #"*|\ | |
| +"${IRC_USER}, please slowdown #"*|\ | |
| +"${IRC_USER}, please smith #"*|\ | |
| +"${IRC_USER}, please speedup #"*|\ | |
| +"${IRC_USER}, please techno #"*|\ | |
| +"${IRC_USER}, please technodrugs #"*|\ | |
| +"${IRC_USER}, please thin #"*|\ | |
| +"${IRC_USER}, please torture #"*|\ | |
| +"${IRC_USER}, please tshirt #"*|\ | |
| +"${IRC_USER}, please trumpapprove #"*|\ | |
| +"${IRC_USER}, please USAUSA #"*|\ | |
| +"${IRC_USER}, please USA #"*|\ | |
| +"${IRC_USER}, please usa #"*|\ | |
| +"${IRC_USER}, please wat #"*|\ | |
| +"${IRC_USER}, please widen #"*|\ | |
| +"${IRC_USER}, please ww1 #"*|\ | |
| +"${IRC_USER}, please yellow #"*|\ | |
| +"${IRC_USER}, please zucc #"*|\ | |
| +"${IRC_USER}, please random #"*) | |
| + hashtag="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed 's/.*#//; s/ .*//… | |
| + recipient="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed 's/.* for //' )" | |
| origext="$(grep -E "^#${hashtag} " "${hashtagfile}" | sed 's/.*\.//')" | |
| { | |
| - filter="$(printf '%s\n' "${text}" | cut -d' ' -f3)" | |
| + filter="$(printf '%s\n' "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f3)" | |
| if [ "${filter}" = "random" ]; | |
| then | |
| filters=("antidepressant" "amplify" "amsterdamify" | |
| @@ -1737,7 +1728,7 @@ case "${text}" in | |
| esac | |
| esac | |
| - if [ "${recipient}" != "${text}" ]; | |
| + if [ "${recipient}" != "${IRC_PRIVMSG_TEXT}" ]; | |
| then | |
| user="${recipient}" | |
| fi | |
| @@ -1756,7 +1747,7 @@ case "${text}" in | |
| if [ -s "${outpath}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gop… | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/${o… | |
| exit 0 | |
| fi | |
| @@ -1787,84 +1778,84 @@ case "${text}" in | |
| if [ -s "${outpath}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gop… | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/${o… | |
| fi | |
| } & | |
| exit 0 | |
| ;; | |
| -"${ircuser}, please 3d "*) | |
| - args=$(echo ${text} | cut -d' ' -f 4-) | |
| +"${IRC_USER}, please 3d "*) | |
| + args=$(echo ${IRC_PRIVMSG_TEXT} | cut -d' ' -f 4-) | |
| outfile=$(blender-effect $args) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gophers://bitreich.… | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/I/memecache/3d/${ou… | |
| ;; | |
| -"${ircuser}, droggelbecher"*) | |
| +"${IRC_USER}, droggelbecher"*) | |
| # https://ednaundharvey.fandom.com/de/wiki/Droggelbecher | |
| - annna-say -s "${server}" -c "${channel}" "${user}, Droggelbecher!" | |
| + annna-say "${IRC_CMD_USER}, Droggelbecher!" | |
| ;; | |
| -"${ircuser}, thanks"*|"${ircuser}, thx"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, you're welcome." | |
| +"${IRC_USER}, thanks"*|"${IRC_USER}, thx"*) | |
| + annna-say "${IRC_CMD_USER}, you're welcome." | |
| ;; | |
| -"${ircuser}, please simulate "*" simulator"*) | |
| - q="${text#* please simulate }" | |
| +"${IRC_USER}, please simulate "*" simulator"*) | |
| + q="${IRC_PRIVMSG_TEXT#* please simulate }" | |
| q="${q% simulator*}" | |
| outpath="/br/gopher/p/" | |
| { | |
| if outfile="$(simulate-simulator "$q")" | |
| then | |
| mv "${outfile}" "${outpath}/" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, gop… | |
| + annna-say "${IRC_CMD_USER}, gophers://bitreich.org/I/p… | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, can "*" certify itself?") | |
| - q="${text#* can }" | |
| +"${IRC_USER}, can "*" certify itself?") | |
| + q="${IRC_PRIVMSG_TEXT#* can }" | |
| q="${q% certify*}" | |
| { | |
| # host:port is needed for tlsgrab | |
| curi="$(tlsgrab "${q}")" | |
| if [ -n "${curi}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, let… | |
| + annna-say "${IRC_CMD_USER}, let us see the certificate… | |
| fi | |
| } & | |
| ;; | |
| -"${ircuser}, please mine "*" bitreichcoin"*) | |
| - q="${text#* please mine }" | |
| +"${IRC_USER}, please mine "*" bitreichcoin"*) | |
| + q="${IRC_PRIVMSG_TEXT#* please mine }" | |
| q="${q% bitreichcoin*}" | |
| curi="$(bitreichcoin "$q" | /br/bin/bitreich-paste)" | |
| - annna-say -s "${server}" -c "${channel}" "${user}, please don't spend … | |
| + annna-say "${IRC_CMD_USER}, please don't spend it all at once: ${curi}" | |
| ;; | |
| -"${ircuser}, please hug me.") | |
| - annna-say -s "${server}" -c "${channel}" "$(echo -e '\001')ACTION hugs… | |
| +"${IRC_USER}, please hug me.") | |
| + annna-say "$(echo -e '\001')ACTION hugs ${IRC_CMD_USER}$(echo -e '\001… | |
| ;; | |
| -"${ircuser}, please hug "*" for me.") | |
| - huggee="${text#* please hug }" | |
| +"${IRC_USER}, please hug "*" for me.") | |
| + huggee="${IRC_PRIVMSG_TEXT#* please hug }" | |
| huggee="${huggee% for me*}" | |
| if [ -n "${huggee}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "$(echo -e '\001')ACT… | |
| + annna-say "$(echo -e '\001')ACTION hugs ${huggee}$(echo -e '\0… | |
| fi | |
| ;; | |
| -"${ircuser}, how many fucks were given?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, current fucks given… | |
| +"${IRC_USER}, how many fucks were given?") | |
| + annna-say "${IRC_CMD_USER}, current fucks given: 0.0" | |
| ;; | |
| -"${ircuser}, please slam the door.") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, *BANG*" | |
| +"${IRC_USER}, please slam the door.") | |
| + annna-say "${IRC_CMD_USER}, *BANG*" | |
| ;; | |
| -"${ircuser}, what is my credit score?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, your credit score i… | |
| +"${IRC_USER}, what is my credit score?") | |
| + annna-say "${IRC_CMD_USER}, your credit score is 0." | |
| ;; | |
| -"${ircuser}, please give me a cookie.") | |
| +"${IRC_USER}, please give me a cookie.") | |
| cookie="$(cookie)" | |
| if [ -n "${cookie}" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "$(echo -e '\001')ACT… | |
| + annna-say "$(echo -e '\001')ACTION gives ${IRC_CMD_USER} a ${c… | |
| fi | |
| ;; | |
| -"${ircuser}, please help.") | |
| - annna-say -s "${server}" -c "${user}" "See git://bitreich.org/annna fo… | |
| +"${IRC_USER}, please help.") | |
| + annna-say -c "${IRC_CMD_USER}" "See git://bitreich.org/annna for my co… | |
| ;; | |
| -"${ircuser}, please meme meme meme me.") | |
| +"${IRC_USER}, please meme meme meme me.") | |
| randomtag=2 | |
| while [ $randomtag -gt 0 ]; | |
| do | |
| @@ -1877,45 +1868,45 @@ case "${text}" in | |
| taguri="${tag}" | |
| done | |
| - annna-say -s "${server}" -c "${channel}" "${tagname}: ${taguri… | |
| + annna-say "${tagname}: ${taguri}" | |
| randomtag=$((randomtag - 1)) | |
| done | |
| ;; | |
| -"${ircuser}, what's the wheelchair shooter meme again?") | |
| +"${IRC_USER}, what's the wheelchair shooter meme again?") | |
| tagname="#scrollby" | |
| tagline="$(printf "%s\n" "$(hashtags)" | grep "^${tagname} ")" | |
| tagname="$(printf "%s\n" "${tagline}" | cut -d ' ' -f 1)" | |
| taguri="$(printf "%s\n" "${tagline}" | cut -d ' ' -f 2-)" | |
| - annna-say -s "${server}" -c "${channel}" "${tagname}: ${taguri}" | |
| + annna-say "${tagname}: ${taguri}" | |
| ;; | |
| -"${ircuser}, TIL "*) | |
| +"${IRC_USER}, TIL "*) | |
| minimum_learned_len=12 | |
| - offset=$(( ${#ircuser} + 6 )) | |
| - learned="$(printf "%s\n" "${text}" \ | |
| + offset=$(( ${#IRC_USER} + 6 )) | |
| + learned="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" \ | |
| | cut -c $offset- \ | |
| | sed 's,\t, ,g')" | |
| if [ ${#learned} -le $minimum_learned_len ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, can you exp… | |
| + annna-say "${IRC_CMD_USER}, can you explain better what you le… | |
| else | |
| - result="$(til ${user} "${learned}")" | |
| + result="$(til ${IRC_CMD_USER} "${learned}")" | |
| if [ $? -eq 0 ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${r… | |
| + annna-say "${IRC_CMD_USER}, ${result}" | |
| fi | |
| fi | |
| ;; | |
| -"${ircuser}, what have I learned?") | |
| - if result=$(til-user ${user}); | |
| +"${IRC_USER}, what have I learned?") | |
| + if result=$(til-user ${IRC_CMD_USER}); | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "${user}, ${result}" | |
| + annna-say "${IRC_CMD_USER}, ${result}" | |
| fi | |
| ;; | |
| esac | |
| -printf '%s' "$text" | awk -v taglimit="$printnhashtags" ' | |
| +printf '%s' "${IRC_PRIVMSG_TEXT}" | awk -v taglimit="$printnhashtags" ' | |
| $0 !~ /#nospoil/ { | |
| while (match($0, /[#*&]+[^# /"'\'',?!;$\001]+/)) { | |
| tag = substr($0, RSTART, RLENGTH) | |
| @@ -1975,7 +1966,7 @@ do | |
| if [ -e "${outpath}" ]; | |
| then | |
| outfile="$(basename "${outpath}")" | |
| - annna-say -s "${server}" -c "${channel… | |
| + annna-say "${origtag}: gophers://bitre… | |
| fi | |
| elif [ $revpointer -eq 1 ]; | |
| then | |
| @@ -2004,10 +1995,10 @@ do | |
| if [ -e "${outpath}" ]; | |
| then | |
| outfile="$(basename "${outpath}")" | |
| - annna-say -s "${server}" -c "${channel… | |
| + annna-say "${origtag}: gophers://bitre… | |
| fi | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${ta… | |
| + annna-say "${tagline% *}: ${tagline#* }" | |
| fi | |
| fi | |
| else | |
| @@ -2019,43 +2010,43 @@ do | |
| didyoumean="$(annna-meme-recommend "${tag}")" | |
| if [ -n "${didyoumean}" ]; | |
| then | |
| - annna-say -c "${server}" -c "${channel… | |
| + annna-say "Did you mean: ${didyoumean}… | |
| fi | |
| fi | |
| fi | |
| fi | |
| done | |
| -case "${text}" in | |
| +case "${IRC_PRIVMSG_TEXT}" in | |
| *\#nospoil*) | |
| ;; | |
| *rfc[0-9]*) | |
| - rfcname="$(printf "%s\n" "${text}" | sed 's,.*\(rfc[0-9]*\).*,\1,')" | |
| - annna-say -s "${server}" -c "${channel}" "${rfcname}: ftp://ftp.rfc-ed… | |
| + rfcname="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed 's,.*\(rfc[0-9]*\… | |
| + annna-say "${rfcname}: ftp://ftp.rfc-editor.org/in-notes/${rfcname}.tx… | |
| ;; | |
| *RFC[0-9]*) | |
| - rfcname="$(printf "%s\n" "${text}" | sed 's,.*\(RFC[0-9]*\).*,\1,' | t… | |
| - annna-say -s "${server}" -c "${channel}" "${rfcname}: ftp://ftp.rfc-ed… | |
| + rfcname="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed 's,.*\(RFC[0-9]*\… | |
| + annna-say "${rfcname}: ftp://ftp.rfc-editor.org/in-notes/${rfcname}.tx… | |
| ;; | |
| esac | |
| # Always keep the karma / shame last! | |
| -case "${text}" in | |
| +case "${IRC_PRIVMSG_TEXT}" in | |
| *"-shaming"*) | |
| - shametext="$(printf "%s\n" "${text}" | sed 's,.* \(.*-shaming\).*,\1,'… | |
| + shametext="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | sed 's,.* \(.*-sham… | |
| shame "${shametext}" >/dev/null | |
| ;; | |
| *"arma is a bitch"*) | |
| - annna-say -s "${server}" -c "${channel}" "${user}, I object! Karma is … | |
| + annna-say "${IRC_CMD_USER}, I object! Karma is a nice girl!" | |
| ;; | |
| "score "*) | |
| # For referee scoring. | |
| ;; | |
| *++|*--|*-=?|*+=?|*+=-?|*-=-?) | |
| - karmatext="$(karma "${text}")" | |
| + karmatext="$(karma "${IRC_PRIVMSG_TEXT}")" | |
| if [ -n "$karmatext" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "karma: ${karmatext}" | |
| + annna-say "karma: ${karmatext}" | |
| fi | |
| ;; | |
| esac | |
| @@ -2068,27 +2059,27 @@ do | |
| done | |
| [ $ismember -lt 1 ] && exit | |
| -case "${text}" in | |
| -"${ircuser}, please go to sleep.") | |
| - annna-say -s "${server}" -c "${channel}" "Going to sleep ... Zzzz ..." | |
| - touch "${ircbase}/annna-is-sleeping" | |
| +case "${IRC_PRIVMSG_TEXT}" in | |
| +"${IRC_USER}, please go to sleep.") | |
| + annna-say "Going to sleep ... Zzzz ..." | |
| + touch "${ANNNA_BASE}/sleeping" | |
| ;; | |
| -"${ircuser}, please wake up.") | |
| - rm -f "${ircbase}/annna-is-sleeping" | |
| - annna-say -s "${server}" -c "${channel}" "Good morning BITREICH!" | |
| +"${IRC_USER}, please wake up.") | |
| + rm -f "${ANNNA_BASE}/sleeping" | |
| + annna-say "Good morning BITREICH!" | |
| ;; | |
| -"${ircuser}, can you show me the uptime please?") | |
| - annna-say -s "${server}" -c "${channel}" "$(hostname) uptime: $(uptime… | |
| +"${IRC_USER}, can you show me the uptime please?") | |
| + annna-say "$(hostname) uptime: $(uptime)" | |
| ;; | |
| -"${ircuser}, please show me the load.") | |
| - annna-say -s "${server}" -c "${channel}" "$(hostname) load: $(LANG=C u… | |
| +"${IRC_USER}, please show me the load.") | |
| + annna-say "$(hostname) load: $(LANG=C uptime | sed 's,.*load average: … | |
| ;; | |
| -"${ircuser}, please give me the count of online users.") | |
| - annna-say -s "${server}" -c "${channel}" "$(hostname): $(who -q | tail… | |
| +"${IRC_USER}, please give me the count of online users.") | |
| + annna-say "$(hostname): $(who -q | tail -n 1 | cut -d'=' -f 2)" | |
| ;; | |
| -"${ircuser}, please update the phlog index.") | |
| +"${IRC_USER}, please update the phlog index.") | |
| phlog-index > /dev/null 2>&1 | |
| - annna-say -s "${server}" -c "${channel}" "Thanks! Your request has bee… | |
| + annna-say "Thanks! Your request has been fulfilled with the quickness!… | |
| ;; | |
| esac | |
| @@ -2100,15 +2091,15 @@ do | |
| done | |
| [ $isreferee -lt 1 ] && exit | |
| -case "${text}" in | |
| +case "${IRC_PRIVMSG_TEXT}" in | |
| "score "*) | |
| - text="$(printf "%s\n" "${text}" | cut -d' ' -f2-)" | |
| - case "${text}" in | |
| + text="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -d' ' -f2-)" | |
| + case "${IRC_PRIVMSG_TEXT}" in | |
| *++|*--|*-=?|*+=?|*+=-?|*-=-?|*-=??|*+=??|*-=-??|*-=65536*) | |
| - scoretext="$(brcon-score "${text}")" | |
| + scoretext="$(brcon-score "${IRC_PRIVMSG_TEXT}")" | |
| if [ -n "$scoretext" ]; | |
| then | |
| - annna-say -s "${server}" -c "${channel}" "brcon score:… | |
| + annna-say "brcon score: ${scoretext}" | |
| fi | |
| ;; | |
| esac | |
| diff --git a/annna-message-gopherproject b/annna-message-gopherproject | |
| @@ -1,19 +0,0 @@ | |
| -#!/bin/sh -e | |
| - | |
| -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 | |
| - | |
| -# Nothing so far for gopherproject. | |
| - | |
| -annna-message-common "${server}" "${channel}" "${user}" "${text}" "${cmd}" | |
| - | |
| diff --git a/annna-message-radio b/annna-message-radio | |
| @@ -1,59 +1,46 @@ | |
| #!/bin/sh -e | |
| -export PATH="/br/bin:$PATH" | |
| +[ "$IRC_CMD_USER" = "${IRC_USER}" ] && exit | |
| -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 "${text}" in | |
| -"${ircuser}, next song please.") /usr/bin/mpc -q next; exit;; | |
| -"${ircuser}, prev song please.") /usr/bin/mpc -q prev; exit;; | |
| -"${ircuser}, please shuffle.") /usr/bin/mpc -q shuffle; exit;; | |
| -"${ircuser}, please toggle random.") /usr/bin/mpc -q random; exit;; | |
| -"${ircuser}, please toggle single.") /usr/bin/mpc -q single; exit;; | |
| -"${ircuser}, please toggle consume.") /usr/bin/mpc -q consume; exit;; | |
| -"${ircuser}, please rescan.") /usr/bin/mpc -q rescan; exit;; | |
| -"${ircuser}, how many people listen to the radio?") | |
| - annna-say -s "${server}" -c "${channel}" "${user}, $(/br/bin/bitreich-… | |
| +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?") | |
| + annna-say -s "${IRC_SERVER}" -c "${IRC_CHANNEL}" "${IRC_CMD_USER}, $(/… | |
| exit;; | |
| -"${ircuser}, please radio play "*) | |
| - url="$(printf "%s\n" "${text}" | cut -c 25- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please radio play "*) | |
| + url="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 25- | sed 's,\t, … | |
| { | |
| ytdl-mpd -a -m -q "$url" | |
| - annna-say -s "${server}" -c "${channel}" "Your download ${url}… | |
| + annna-say "Your download ${url} is done." | |
| } & | |
| exit;; | |
| -"${ircuser}, please radio say "*) | |
| - word="$(printf "%s\n" "${text}" | cut -c 25- | sed 's,\t, ,g')" | |
| +"${IRC_USER}, please radio say "*) | |
| + word="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 25- | sed 's,\t, … | |
| { | |
| printf "%s\n" "${word}" | bitreich-radio-speak | |
| - annna-say -s "${server}" -c "${channel}" "The speech is done." | |
| + annna-say "The speech is done." | |
| } & | |
| exit;; | |
| -"${ircuser}, 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 -s "${server}" -c "${channel}" "${user}, I stopped s… | |
| + annna-say "${IRC_CMD_USER}, I stopped speaking." | |
| else | |
| - annna-say -s "${server}" -c "${channel}" "${user}, sorry, no i… | |
| + annna-say "${IRC_CMD_USER}, sorry, no instances found." | |
| fi | |
| exit;; | |
| -"${ircuser}, 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 -s "${server}" -c "${channel}" "The radio is ${mpc_status}." | |
| + annna-say "The radio is ${mpc_status}." | |
| exit;; | |
| esac | |
| -annna-message-common "${server}" "${channel}" "${user}" "${text}" "${cmd}" | |
| +annna-message-common "${IRC_SERVER}" "${IRC_CHANNEL}" "${IRC_CMD_USER}" "${IRC… | |
| diff --git a/annna-message-sauna b/annna-message-sauna | |
| @@ -1,24 +1,11 @@ | |
| #!/bin/sh -e | |
| -export PATH="/br/bin:$PATH" | |
| +[ "$IRC_CMD_USER" = "${IRC_USER}" ] && exit | |
| -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… | |
| -PART) annna-say -s "${server}" -c "${channel}" $'\001ACTION puts the towel in … | |
| +case "${IRC_CMD}" in | |
| +JOIN) annna-say "Welcome ${IRC_CMD_USER}! Please grab a towel and have fun!";; | |
| +PART) annna-say $'\001ACTION puts the towel in the laundry.\001';; | |
| esac | |
| -annna-message-common "${server}" "${channel}" "${user}" "${text}" "${cmd}" | |
| +annna-message-common | |
| diff --git a/annna-message-wikigame b/annna-message-wikigame | |
| @@ -1,37 +1,22 @@ | |
| #!/bin/sh -e | |
| -cfgbase="$(pwd)" | |
| -ircbase="$(cat ${cfgbase}/ircbase)" | |
| -modbase="$(cat ${cfgbase}/modbase)" | |
| +[ "$IRC_CMD_USER" = "${IRC_USER}" ] && exit | |
| -server="$1" | |
| -ircuser="$(cat ${cfgbase}/${server}/ircuser)" | |
| -channel="$2" | |
| -user="$3" | |
| -text="$4" | |
| -cmd="$5" | |
| - | |
| -[ "$user" = "${ircuser}" ] && exit | |
| - | |
| -saytext="" | |
| -case "${text}" in | |
| +say_text="" | |
| +case "${IRC_PRIVMSG_TEXT}" in | |
| init|summary|hint|more|giveup) | |
| - saytext="$(wikipediagame "${text}")" | |
| + say_text="$(wikipediagame "${IRC_PRIVMSG_TEXT}")" | |
| ;; | |
| "init "*) | |
| - inittext="$(printf "%s\n" "${text}" | cut -c 5-)" | |
| - saytext="$(wikipediagame init "${inittext}")" | |
| + init_text="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 5-)" | |
| + say_text="$(wikipediagame init "${init_text}")" | |
| ;; | |
| "guess "*) | |
| - guesstext="$(printf "%s\n" "${text}" | cut -c 6-)" | |
| - saytext="$(wikipediagame guess "${guesstext}")" | |
| + guess_text="$(printf "%s\n" "${IRC_PRIVMSG_TEXT}" | cut -c 6-)" | |
| + say_text="$(wikipediagame guess "${guess_text}")" | |
| ;; | |
| esac | |
| +[ -n "${say_text}" ] && annna-say "${say_text}" | |
| -if [ -n "${saytext}" ]; | |
| -then | |
| - annna-say -s "${server}" -c "${channel}" "${saytext}" | |
| -fi | |
| - | |
| -annna-message-common "${server}" "${channel}" "${user}" "${text}" "${cmd}" | |
| +annna-message-common | |
| diff --git a/annna-say b/annna-say | |
| @@ -1,52 +1,43 @@ | |
| #!/bin/sh | |
| # | |
| -# annna-say -s irc.bitreich.org -c '#bitreich-en' Hello World! | |
| +# annna-say -a $HOME/annna -s irc.bitreich.org -c '#bitreich-en' Hello World! | |
| +# export ANNNA_BASE=$HOME/annna | |
| # annna-say -c 'irc.bitreich.org/#bitreich-en' Hello World! | |
| # | |
| -if [ "$(basename "$0")" = "annna-cmd" ]; | |
| -then | |
| - outfile="out" | |
| -else | |
| - outfile="in" | |
| -fi | |
| - | |
| -export PATH="$PATH:/home/annna/bin" | |
| +set -x | |
| usage() { | |
| - printf "usage: %s [-h] [-i ircbase] [-s server] -c \"[server/]channel0… | |
| + printf "usage: %s [-h] [-a ANNNA_BASE] [-s IRC_SERVER] -c \"[IRC_SERVE… | |
| "$(basename "$1")" >&2 | |
| exit 1 | |
| } | |
| -channels="" | |
| -server="irc.bitreich.org" | |
| -ircbase="/home/annna/irc" | |
| +outfile="in" | |
| +[ "$(basename "$0")" = "annna-cmd" ] && outfile="out" | |
| -while getopts "hb:c:s:" opt; | |
| +channels="${IRC_CHANNEL}" | |
| +[ -z "${IRC_SERVER}" ] && export IRC_SERVER="irc.bitreich.org" | |
| +while getopts "ha:c:s:" opt; | |
| do | |
| case $opt in | |
| - b) | |
| - ircbase="$OPTARG" | |
| - ;; | |
| - c) | |
| - channels="$OPTARG" | |
| - ;; | |
| - s) | |
| - server="$OPTARG" | |
| - ;; | |
| - *) | |
| - usage $0 | |
| - ;; | |
| + a) export ANNNA_IRCBASE="$OPTARG";; | |
| + c) channels="$OPTARG" ;; | |
| + s) export IRC_SERVER="$OPTARG";; | |
| + *) usage $0;; | |
| esac | |
| done | |
| shift $(expr $OPTIND - 1) | |
| - | |
| [ -z "$channels" ] && usage $0 | |
| -# If annna is not alive, do not bother. | |
| +[ -z "${ANNNA_BASE}" ] && export ANNNA_BASE="/home/annna/annna" | |
| +[ -z "${ANNNA_IRCBASE}" ] && export ANNNA_IRCBASE="$(cat "$ANNNA_BASE/ircbase"… | |
| +[ -z "${ANNNA_MODBASE}" ] && export ANNNA_MODBASE="$(cat "$ANNNA_BASE/modbase"… | |
| +[ -z "${ANNNA_BINBASE}" ] && export ANNNA_BINBASE="$(cat "$ANNNA_BASE/binbase"… | |
| +export PATH="$PATH:${ANNNA_BINBASE}" | |
| + | |
| annna-alive || exit 0 | |
| -[ -e "${ircbase}/annna-is-sleeping" ] && exit 0 | |
| +annna-sleeps && exit 0 | |
| for c in $channels; | |
| do | |
| @@ -56,12 +47,12 @@ do | |
| cname="$(printf "%s\n" "${c}" | cut -d'/' -f 2)" | |
| ;; | |
| *) | |
| - cserver="${server}" | |
| + cserver="${IRC_SERVER}" | |
| cname="${c}" | |
| ;; | |
| esac | |
| - ircpath="${ircbase}/${cserver}/${cname}" | |
| + ircpath="${ANNNA_IRCBASE}/${cserver}/${cname}" | |
| if [ -e "$ircpath/in" ]; | |
| then | |
| case "${outfile}" in | |
| @@ -74,7 +65,7 @@ do | |
| ;; | |
| esac | |
| else | |
| - ircpath="${ircbase}/${cserver}" | |
| + ircpath="${ANNNA_IRCBASE}/${cserver}" | |
| # Might be a user. Do not bother with outfile, he/she is not i… | |
| printf "%s\n" "$@" \ | |
| | fold -w 250 -s \ | |
| diff --git a/annna-sleeps b/annna-sleeps | |
| @@ -0,0 +1,13 @@ | |
| +#!/bin/sh | |
| +# | |
| +# Check if annna sleeps. | |
| +# Use it this way: | |
| +# | |
| +# if annna-sleeps; then do-something; fi | |
| +# | |
| + | |
| +set -x | |
| + | |
| +[ -f "${ANNNA_BASE}/sleeping" ] && exit 0 | |
| +exit 1 | |
| + | |
| diff --git a/annna-start b/annna-start | |
| @@ -1,24 +1,48 @@ | |
| #!/bin/sh | |
| -export PATH="$PATH:/home/annna/bin" | |
| +set -x | |
| -#cfgbase="$(pwd)" | |
| -cfgbase="$HOME/annna" | |
| -touch ${cfgbase}/running | |
| +if [ $# -lt 1 ]; | |
| +then | |
| + printf "usage: %s cfgdir\n" "$(basename "$0")" >&2 | |
| + exit 1 | |
| +fi | |
| -cd ${cfgbase} | |
| -for server in $(find . -maxdepth 1 -type d | tail -n +2 | cut -c 3-); | |
| -do | |
| - [ ! -f ${server}/autoconnect ] && continue | |
| +export ANNNA_BASE="$1" | |
| +[ ! -d "${ANNNA_BASE}" ] && printf "%s not a directory.\n" "${ANNNA_BASE}" >&2… | |
| + | |
| +[ ! -e "${ANNNA_BASE}/binbase" ] && printf "No /binbase exists.\n" >&2 && exit… | |
| +export ANNNA_BINBASE="$(cat "${ANNNA_BASE}/binbase")" | |
| +[ ! -d "${ANNNA_BINBASE}" ] && printf "%s not a directory.\n" "${ANNNA_BINBASE… | |
| - channels="$(cat ${server}/channels | tr '\n' ' ')" | |
| +[ ! -e "${ANNNA_BASE}/modbase" ] && printf "No /modbase exists.\n" >&2 && exit… | |
| +export ANNNA_MODBASE="$(cat "${ANNNA_BASE}/modbase")" | |
| +[ ! -d "${ANNNA_MODBASE}" ] && printf "%s not a directory.\n" "${ANNNA_MODBASE… | |
| - usetls=0 | |
| - [ -f ${server}/usetls ] && usetls=1 | |
| +[ ! -e "${ANNNA_BASE}/ircbase" ] && printf "No /ircbase exists.\n" >&2 && exit… | |
| +export ANNNA_IRCBASE="$(cat "${ANNNA_BASE}/ircbase")" | |
| +[ ! -d "${ANNNA_IRCBASE}" ] && printf "%s not a directory.\n" "${ANNNA_IRCBASE… | |
| - port=6697 | |
| - [ -f ${server}/port ] && port="$(cat ${server}/port)" | |
| +export PATH="$PATH:${ANNNA_BINBASE}" | |
| - annna-start-main "${server}" "${usetls}" "${port}" "${channels}" | |
| +cd "${ANNNA_BASE}" | |
| +touch running | |
| +for server in $(find . -maxdepth 1 -type d | tail -n +2 | cut -c 3-); | |
| +do | |
| + export IRC_SERVER="${server}" | |
| + [ ! -f ${server}/autoconnect ] && continue | |
| + export IRC_CHANNELS="$(cat ${server}/channels | tr '\n' ' ')" | |
| + export IRC_TLS=0 | |
| + [ -f ${server}/tls ] && export IRC_TLS=1 | |
| + export IRC_PORT=6667 | |
| + [ -f ${server}/port ] && export IRC_PORT="$(cat ${server}/port)" | |
| + export IRC_USER="annna" | |
| + [ -f ${server}/user ] && export IRC_USER="$(cat ${server}/user)" | |
| + export IRC_PASS= | |
| + [ -f ${server}/pass ] && export IRC_PASS="$(cat ${server}/pass)" | |
| + export IRC_NAME="Gode" | |
| + [ -f ${server}/name ] && export IRC_NAME="$(cat ${server}/name)" | |
| + | |
| + annna-start-server | |
| done | |
| diff --git a/annna-start-main b/annna-start-main | |
| @@ -1,113 +0,0 @@ | |
| -#!/bin/sh | |
| - | |
| -export PATH="$PATH:/home/annna/bin" | |
| - | |
| -cfgbase="$(pwd)" | |
| -ircbase="$(cat ${cfgbase}/ircbase)" | |
| - | |
| -server="$1" | |
| -usetls="$2" | |
| -[ $usetls -gt 0 ] && tlsparam=" -v -t" | |
| -port="$3" | |
| -channels="$4" | |
| - | |
| -maxtries=10 | |
| -maxnicktries=5 | |
| -{ | |
| - nicktries=0 | |
| - iipid=0 | |
| - while [ -f ${cfgbase}/running ]; | |
| - do | |
| - # Connect | |
| - #socat openssl:${server}:6697,keepalive,keepcnt=5,keepidle=1,k… | |
| - # unix-l:${ircbase}/${server}/sock & | |
| - #while [ ! -e ${ircbase}/${server}/sock ]; | |
| - #do | |
| - # [ -z "$(pgrep socat)" ] && exit 1 | |
| - # sleep 0.5 | |
| - #done | |
| - | |
| - rm -rf ${ircbase}/${server} | |
| - mkdir -p ${ircbase}/${server} | |
| - | |
| - # Connection | |
| - export ircuser="$(cat ${cfgbase}/${server}/ircuser)" | |
| - [ -n "${ircuser}" ] && ircuserparam=" -n ${ircuser}" | |
| - | |
| - export ircpass="$(cat ${cfgbase}/${server}/ircpass 2>/dev/null… | |
| - ircpassparam="" | |
| - [ -n "${ircpass}" ] && ircpassparam=" -k ircpass" | |
| - | |
| - if [ -f ${cfgbase}/${server}/fullname ]; | |
| - then | |
| - fullname="$(cat ${cfgbase}/${server}/fullname)" | |
| - else | |
| - fullname="Gode" | |
| - fi | |
| - | |
| - # For debugging. | |
| - #ii -s "${server}"${ircpassparam}${ircuserparam}${tlsparam} \ | |
| - # -f "${fullname}" -p ${port} & | |
| - | |
| - [ $iipid -gt 0 ] && kill -KILL $iipid >/dev/null 2>&1 | |
| - | |
| - ii -s "${server}"${ircpassparam}${ircuserparam}${tlsparam} \ | |
| - -f "${fullname}" -p ${port} >/dev/null 2>&1 & | |
| - #ii -s "${server}"${ircpassparam}${ircuserparam}${tlsparam} \ | |
| - # -f "${fullname}" -p ${port} | |
| - iipid=$! | |
| - | |
| - sleep 5 | |
| - | |
| - tries=0 | |
| - ## Waiting for the socket to be available. | |
| - while [ ! -e ${ircbase}/${server}/out ]; | |
| - do | |
| - kill -0 $iipid >/dev/null 2>&1 || exit 1 | |
| - [ ! -f ${cfgbase}/running ] && exit 1 | |
| - tries=$(($tries + 1)) | |
| - [ $tries -gt $maxtries ] && break | |
| - sleep 4 | |
| - done | |
| - [ $tries -gt $maxtries ] && continue | |
| - | |
| - # 433: Nickname is already in use. | |
| - if [ -n "$(grep " 433 " ${ircbase}/${server}/out)" ]; | |
| - then | |
| - nicktries=$(($nicktries + 1)) | |
| - [ $nicktries -gt $maxnicktries ] && exit 3 | |
| - sleep 30 | |
| - continue | |
| - fi | |
| - | |
| - tries=0 | |
| - # Check for end of motd. | |
| - while [ -z "$(grep " 376 " ${ircbase}/${server}/out)" ]; | |
| - do | |
| - [ ! -f ${cfgbase}/running ] && exit 1 | |
| - # Sometimes the connection is too fast and the ii USER | |
| - # and NICK is slurped. | |
| - printf "USER %s\r\nUSER %s localhost %s :%s" \ | |
| - "${ircuser}" "${ircuser}" "$(hostname)" \ | |
| - "${fullname}" \ | |
| - > "${ircbase}/${server}/in" | |
| - tries=$(($tries + 1)) | |
| - [ $tries -gt $maxtries ] && break | |
| - sleep 2 | |
| - done | |
| - [ $tries -gt $maxtries ] && continue | |
| - | |
| - { | |
| - annna-join-channels "${server}" "${channels}" | |
| - } & | |
| - | |
| - # Watch for ii to exit. Then remove the used directory to have… | |
| - # services disappear. | |
| - while kill -0 $iipid >/dev/null 2>&1; | |
| - do | |
| - sleep 30 | |
| - done | |
| - rm -rf ${ircbase}/${server} | |
| - done | |
| -} & | |
| - | |
| diff --git a/annna-start-server b/annna-start-server | |
| @@ -0,0 +1,83 @@ | |
| +#!/bin/sh | |
| + | |
| +set -x | |
| + | |
| +maxtries=10 | |
| +maxnicktries=5 | |
| +#{ | |
| + nicktries=0 | |
| + iipid=0 | |
| + while annna-alive; | |
| + do | |
| + export IRC_SERVERBASE="${ANNNA_IRCBASE}/${IRC_SERVER}" | |
| + rm -rf "${IRC_SERVERBASE}" | |
| + mkdir -p "${IRC_SERVERBASE}" | |
| + | |
| + [ $IRC_TLS -gt 0 ] && tlsparam=" -v -t" | |
| + [ -n "${IRC_USER}" ] && ircuserparam=" -n ${IRC_USER}" | |
| + ircpassparam="" | |
| + [ -n "${IRC_PASS}" ] && ircpassparam=" -k IRC_PASS" | |
| + # For debugging. | |
| + #ii -s "${IRC_SERVER}"${ircpassparam}${ircuserparam}${tlsparam… | |
| + # -f "${fullname}" -p ${IRC_PORT} & | |
| + | |
| + [ $iipid -gt 0 ] && kill -KILL $iipid >/dev/null 2>&1 | |
| + ii -s "${IRC_SERVER}"${ircpassparam}${ircuserparam}${tlsparam}… | |
| + -f "${IRC_NAME}" -p ${IRC_PORT} >/dev/null 2>&1 & | |
| + #ii -s "${IRC_SERVER}"${ircpassparam}${ircuserparam}${tlsparam… | |
| + # -f "${fullname}" -p ${IRC_PORT} | |
| + iipid=$! | |
| + sleep 5 | |
| + | |
| + tries=0 | |
| + ## Waiting for the socket to be available. | |
| + while [ ! -e "${IRC_SERVERBASE}/out" ]; | |
| + do | |
| + kill -0 $iipid >/dev/null 2>&1 || exit 1 | |
| + annna-alive || exit 1 | |
| + tries=$(($tries + 1)) | |
| + [ $tries -gt $maxtries ] && break | |
| + sleep 4 | |
| + done | |
| + [ $tries -gt $maxtries ] && continue | |
| + | |
| + # 433: Nickname is already in use. | |
| + if [ -n "$(grep " 433 " "${IRC_SERVERBASE}/out")" ]; | |
| + then | |
| + nicktries=$(($nicktries + 1)) | |
| + [ $nicktries -gt $maxnicktries ] && exit 3 | |
| + sleep 30 | |
| + continue | |
| + fi | |
| + | |
| + tries=0 | |
| + # Check for end of motd. | |
| + while [ -z "$(grep " 376 " "${IRC_SERVERBASE}/out")" ]; | |
| + do | |
| + annna-alive || exit 1 | |
| + # Sometimes the connection is too fast and the ii USER | |
| + # and NICK is slurped. | |
| + printf "USER %s\r\nUSER %s localhost %s :%s" \ | |
| + "${IRC_USER}" "${IRC_USER}" "$(hostname)" \ | |
| + "${IRC_NAME}" \ | |
| + > "${ANNNA_IRCBASE}/${IRC_SERVER}/in" | |
| + tries=$(($tries + 1)) | |
| + [ $tries -gt $maxtries ] && break | |
| + sleep 2 | |
| + done | |
| + [ $tries -gt $maxtries ] && continue | |
| + | |
| + #{ | |
| + annna-join-channels | |
| + #} & | |
| + | |
| + # Watch for ii to exit. Then remove the used directory to have… | |
| + # services disappear. | |
| + while kill -0 $iipid >/dev/null 2>&1; | |
| + do | |
| + sleep 30 | |
| + done | |
| + rm -rf "${IRC_SERVERBASE}" | |
| + done | |
| +#} & | |
| + | |
| diff --git a/annna-start-service b/annna-start-service | |
| @@ -1,35 +1,22 @@ | |
| #!/bin/sh | |
| -if [ $# -lt 2 ]; | |
| -then | |
| - printf "usage: %s server channel\n" "$(basename "$0")" | |
| - exit 1 | |
| -fi | |
| -server="$1" | |
| -channel="$2" | |
| - | |
| -export PATH="$PATH:/home/annna/bin" | |
| - | |
| -cfgbase="$(pwd)" | |
| -ircbase="$(cat ${cfgbase}/ircbase)" | |
| -serverbase="${ircbase}/${server}" | |
| +set -x | |
| # Permissions | |
| -[ -d ${ircbase} ] && chmod o+rx ${ircbase} | |
| -[ -d ${serverbase} ] && chmod o+rx ${serverbase} | |
| - | |
| +[ -d ${ANNNA_IRCBASE} ] && chmod o+rx ${ANNNA_IRCBASE} | |
| +[ -d ${IRC_SERVERBASE} ] && chmod o+rx ${IRC_SERVERBASE} | |
| ## Channel handlers | |
| -[ -d "${serverbase}/${channel}" ] \ | |
| - && chmod o+rx "${serverbase}/${channel}" | |
| +[ -d "${IRC_SERVERBASE}/${IRC_CHANNEL}" ] \ | |
| + && chmod o+rx "${IRC_SERVERBASE}/${IRC_CHANNEL}" | |
| # For annna-say. | |
| -[ -p "${serverbase}/${channel}/in" ] \ | |
| - && chmod o+w "${serverbase}/${channel}/in" | |
| +[ -p "${IRC_SERVERBASE}/${IRC_CHANNEL}/in" ] \ | |
| + && chmod o+w "${IRC_SERVERBASE}/${IRC_CHANNEL}/in" | |
| # For annna-cmd. | |
| -[ -f "${serverbase}/${channel}/out" ] \ | |
| - && chmod o+w "${serverbase}/${channel}/out" | |
| +[ -f "${IRC_SERVERBASE}/${IRC_CHANNEL}/out" ] \ | |
| + && chmod o+w "${IRC_SERVERBASE}/${IRC_CHANNEL}/out" | |
| -if [ -f "${serverbase}/${channel}/out" ]; | |
| +if [ -f "${IRC_SERVERBASE}/${IRC_CHANNEL}/out" ]; | |
| then | |
| - annna-channel-service "${server}" "${channel}" & | |
| + annna-channel-service & | |
| fi | |
| diff --git a/stable-diffusion-emoji b/stable-diffusion-emoji | |
| @@ -7,8 +7,6 @@ then | |
| exit 1 | |
| fi | |
| -export PATH="$HOME/bin:$PATH" | |
| - | |
| emojidb="/br/gopher/emoji" | |
| emojiuribase="gophers://bitreich.org/I/emoji" | |