Refactor annna text command matches. - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit c3d834f28259c7860e41365fb87cfcc3777cf973 | |
parent af34952c8eec82a609f56229c0a6ff6d2db2895b | |
Author: Annna Robert-Houdin <[email protected]> | |
Date: Fri, 5 Jun 2020 20:38:13 +0200 | |
Refactor annna text command matches. | |
Move some member commands which do not harm to non-member context. | |
Diffstat: | |
M annna-start-services | 410 ++++++++++++-----------------… | |
1 file changed, 159 insertions(+), 251 deletions(-) | |
--- | |
diff --git a/annna-start-services b/annna-start-services | |
@@ -267,9 +267,6 @@ annna_common() { | |
;; | |
esac | |
;; | |
- esac | |
- | |
- case "${text}" in | |
"Ok, ${botname}"*) | |
annna-say -c "${channel}" "${user}, I am not a consumer device… | |
;; | |
@@ -287,10 +284,7 @@ annna_common() { | |
"${botname}, please turn me on.") | |
annna-say -c "${channel}" "☞ ⏻ ${user}" | |
;; | |
- esac | |
- | |
- if [ "${text}" = "${botname}, I'm bored." ]; | |
- then | |
+ "${botname}, I'm bored") | |
randomlink="$(/br/bin/bitreich-lawn-random-link)" | |
linktype="$(printf "%s\n" "${randomlink}" | cut -d '|' -f1 | c… | |
linktext="$(printf "%s\n" "${randomlink}" | cut -d '|' -f2)" | |
@@ -307,182 +301,60 @@ annna_common() { | |
outtext="$(printf "%s/%s%s" "$outtext" "$linktype" "$l… | |
fi | |
annna-say -c "${channel}" "$outtext" | |
- fi | |
- | |
- if [ "${text}" = "${botname}, wb." ]; | |
- then | |
+ ;; | |
+ "${botname}, wb.") | |
annna-say -c "${channel}" "${user}, ty! I am so happy to be he… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, welcome back." ]; | |
- then | |
+ ;; | |
+ "${botname}, welcome back.") | |
annna-say -c "${channel}" "${user}, thank you! I am so happy t… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, what's up?" ]; | |
- then | |
+ ;; | |
+ "${botname}, what's up?") | |
newsstr="$(ecl -shell /home/solene/gopher/bin/generator.lisp)" | |
annna-say -c "${channel}" "$newsstr" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, what's down?" ]; | |
- then | |
+ ;; | |
+ "${botname}, what's down?") | |
annna-say -c "${channel}" "${user}, we all love you." | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, I feel sick." ]; | |
- then | |
+ ;; | |
+ "${botname}, I feel sick.") | |
newsstr="$(cd /br/gopher/hypochondria && ./hypochondria -s ran… | |
annna-say -c "${channel}" "You could have ${newsstr}! Be caref… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, oh hai!" ]; | |
- then | |
+ ;; | |
+ "${botname}, oh hai!") | |
annna-say -c "${channel}" "${user}, hai! How is your sex life?" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please tech hype me." ]; | |
- then | |
+ ;; | |
+ "${botname}, please tech hype me.") | |
techstr="$(${modbase}/markov_tech/markov)" | |
annna-say -c "${channel}" "${techstr}" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, what's my horoscope?" ]; | |
- then | |
+ ;; | |
+ "${botname}, what's my horoscope?") | |
horostr="$($HOME/scm/bullshit/horoscope)" | |
annna-say -c "${channel}" "${user}, ${horostr}" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, what's my future?" ]; | |
- then | |
+ ;; | |
+ "${botname}, what's my future?") | |
purl="$(sacc gopher://parazyd.org/0/tarot.cgi | /br/bin/bitrei… | |
annna-say -c "${channel}" "${user}, your future is here: ${pur… | |
- return | |
- fi | |
- | |
- randomtag=0 | |
- if [ "${text}" = "${botname}, please meme meme meme me." ]; | |
- then | |
- randomtag=2 | |
- fi | |
- | |
- if [ "${text}" = "${botname}, what's the wheelchair shooter meme again… | |
- then | |
- 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 -c "${channel}" "${tagname}: ${taguri}" | |
- fi | |
- | |
- case "${text}" in | |
- *\#nospoil*) | |
- ;; | |
- *\#tag[^a-zA-Z-]*) | |
- randomtag=1 | |
- ;; | |
- *\#tag) | |
- randomtag=1 | |
;; | |
- *rfc[0-9]*) | |
- rfcname="$(printf "%s\n" "${text}" | sed 's,.*\(rfc[0-9]*\).*,… | |
- annna-say -c "${channel}" "${rfcname}: ftp://ftp.rfc-editor.or… | |
- ;; | |
- *RFC[0-9]*) | |
- rfcname="$(printf "%s\n" "${text}" | sed 's,.*\(RFC[0-9]*\).*,… | |
- annna-say -c "${channel}" "${rfcname}: ftp://ftp.rfc-editor.or… | |
- ;; | |
- esac | |
- | |
- if [ $randomtag -gt 0 ]; | |
- then | |
- while [ $randomtag -gt 0 ]; | |
- do | |
- rtag="$(printf "%s\n" "$(hashtags)" | shuf -n 1)" | |
- tagname="" | |
- taguri="" | |
- for tag in ${rtag}; | |
- do | |
- [ -z "${tagname}" ] && tagname="${tag}" && con… | |
- taguri="${tag}" | |
- done | |
- | |
- annna-say -c "${channel}" "${tagname}: ${taguri}" | |
- | |
- randomtag=$(($randomtag - 1)) | |
- done | |
- else | |
- tagname="" | |
- taguri="" | |
- for tag in $(hashtags); | |
- do | |
- [ -z "${tagname}" ] && tagname="${tag}" && continue | |
- taguri="${tag}" | |
- | |
- case "${text}" in | |
- *\#nospoil*) | |
- break; | |
- ;; | |
- *${tagname}[^a-zA-Z-]*) | |
- annna-say -c "${channel}" "${tagname}: ${tagur… | |
- break; | |
- ;; | |
- *${tagname}) | |
- annna-say -c "${channel}" "${tagname}: ${tagur… | |
- break; | |
- ;; | |
- esac | |
- tagname="" | |
- done | |
- fi | |
- | |
- if [ "${text}" = "${botname}, how many memes do you know?" ]; | |
- then | |
+ "${botname}, how many memes do you know?") | |
annna-say -c "${channel}" "I know $(hashtagcount) memes: gophe… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, how many people died of corona?" ]; | |
- then | |
+ ;; | |
+ "${botname}, how many people died of corona?") | |
annna-say -c "${channel}" "${user}, too many. :( Please see yo… | |
- return | |
- fi | |
- | |
- | |
- if [ "${text}" = "${botname}, please show me your memes." ]; | |
- then | |
+ ;; | |
+ "${botname}, please show me your memes.") | |
purl="$(printf "%s" "$(hashtags)" | /br/bin/bitreich-paste)" | |
annna-say -c "${channel}" "Here are my memes: ${purl}" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please distro-hop with me." ]; | |
- then | |
+ ;; | |
+ "${botname}, please distro-hop with me.") | |
ndistro="$(curl -s 'https://distrowatch.com/dwres.php?resource… | |
| grep phr2 \ | |
| sed 's,.*href="\(.*\)".*,\1,' \ | |
| sort | uniq | shuf -n 1)" | |
annna-say -c "${channel}" "How about https://distrowatch.com/$… | |
- return | |
- fi | |
- | |
- ismember=0 | |
- for member in $brmembers; | |
- do | |
- [ "$user" = "$member" ] && ismember=1 | |
- done | |
- [ $ismember -lt 1 ] && return | |
- | |
- if [ "${text}" = "${botname}, be cool." ]; | |
- then | |
+ ;; | |
+ "${botname}, please show me your Macron.") | |
+ annna-say -c "${channel}" "gopher://bitreich.org/0/ascii/macro… | |
+ ;; | |
+ "${botname}, be cool.") | |
case "$(($RANDOM % 4))" in | |
0) | |
annna-say -c "${channel}" "(⌐■_■)" | |
@@ -497,11 +369,8 @@ annna_common() { | |
annna-say -c "${channel}" "(▀Ĺ▀ )" | |
;; | |
esac | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please cheer." ]; | |
- then | |
+ ;; | |
+ "${botname}, please cheer.") | |
case "$(($RANDOM % 2))" in | |
0) | |
annna-say -c "${channel}" '~\o/~' | |
@@ -510,11 +379,8 @@ annna_common() { | |
annna-say -c "${channel}" '✺◟( ° ʖ °)◞✺' | |
;; | |
esac | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, be cute." ]; | |
- then | |
+ ;; | |
+ "${botname}, be cute.") | |
case "$(($RANDOM % 4))" in | |
0) | |
annna-say -c "${channel}" ' (\ /)' | |
@@ -545,106 +411,46 @@ annna_common() { | |
annna-say -c "${channel}" ' (, (") (")' | |
;; | |
esac | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, can you show me the uptime please?" ]; | |
- then | |
- annna-say -c "${channel}" "$(hostname) uptime: $(uptime)" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please show me the load." ]; | |
- then | |
- annna-say -c "${channel}" "$(hostname) load: $(LANG=C uptime |… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please show me your Macron." ]; | |
- then | |
- annna-say -c "${channel}" "gopher://bitreich.org/0/ascii/macro… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please give me the count of online users… | |
- then | |
- annna-say -c "${channel}" "$(hostname): $(who -q | tail -n 1 |… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please roll a dice for me." ]; | |
- then | |
+ ;; | |
+ "${botname}, please roll a dice for me.") | |
annna-say -c "${channel}" "$((($RANDOM % 6) + 1))" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please tell me your favourite flower." ]; | |
- then | |
+ ;; | |
+ "${botname}, please tell me your favourite flower.") | |
annna-say -c "${channel}" "My favourite flower is the beer flo… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please tell me your favourite color." ]; | |
- then | |
+ ;; | |
+ "${botname}, please tell me your favourite color.") | |
annna-say -c "${channel}" "My favourite color is yellow." | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please dance." ]; | |
- then | |
+ ;; | |
+ "${botname}, please dance.") | |
if [ $(($RANDOM % 2)) -gt 0 ]; | |
then | |
annna-say -c "${channel}" ',o/ o/_ _\o _o_ \o\' | |
else | |
annna-say -c "${channel}" '\o7 -o7 _o7 .o7 \o. \o_ \o-… | |
fi | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please dance with me." ]; | |
- then | |
+ ;; | |
+ "${botname}, please dance with me.") | |
if [ $(($RANDOM % 2)) -gt 0 ]; | |
then | |
annna-say -c "${channel}" "I am not that kind of woman… | |
else | |
annna-say -c "${channel}" "Thank you! Let us dance! :-… | |
fi | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please tell me who is your favourite ple… | |
- then | |
+ ;; | |
+ "${botname}, please tell me who is your favourite pleasure man.") | |
annna-say -c "${channel}" "My favourite pleasure man is of cou… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, sudo make me a sandwich" ]; | |
- then | |
+ ;; | |
+ "${botname}, sudo make me a sandwich") | |
annna-say -c "${channel}" "Humans are no objects." | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, sudo please make me a sandwich" ]; | |
- then | |
+ ;; | |
+ "${botname}, sudo please make me a sandwich") | |
annna-say -c "${channel}" "Here is your sandwich." | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please update the phlog index." ]; | |
- then | |
- phlog-index > /dev/null 2>&1 | |
- annna-say -c "${channel}" "Thanks! Your request has been fulfi… | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, bonjour !" ]; | |
- then | |
+ ;; | |
+ "${botname}, bonjour !") | |
annna-say -c "${channel}" "${user}, bonjour !" | |
- return | |
- fi | |
- | |
- if [ "${text}" = "${botname}, please help." ]; | |
- then | |
+ ;; | |
+ "${botname}, please help.") | |
+ # Help Message. | |
# TODO: Add multiple line support to annna-say -c(1) with slee… | |
annna-say -c "${user}" "»how many memes do you know?«gets yo… | |
sleep 0.5 | |
@@ -699,8 +505,110 @@ annna_common() { | |
annna-say -c "${user}" "», bonjour !" | |
sleep 0.5 | |
annna-say -c "${user}" "»please help.« gives you this help l… | |
- return | |
+ ;; | |
+ esac | |
+ | |
+ randomtag=0 | |
+ if [ "${text}" = "${botname}, please meme meme meme me." ]; | |
+ then | |
+ randomtag=2 | |
+ fi | |
+ | |
+ if [ "${text}" = "${botname}, what's the wheelchair shooter meme again… | |
+ then | |
+ 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 -c "${channel}" "${tagname}: ${taguri}" | |
+ fi | |
+ | |
+ case "${text}" in | |
+ *\#nospoil*) | |
+ ;; | |
+ *\#tag[^a-zA-Z-]*) | |
+ randomtag=1 | |
+ ;; | |
+ *\#tag) | |
+ randomtag=1 | |
+ ;; | |
+ *rfc[0-9]*) | |
+ rfcname="$(printf "%s\n" "${text}" | sed 's,.*\(rfc[0-9]*\).*,… | |
+ annna-say -c "${channel}" "${rfcname}: ftp://ftp.rfc-editor.or… | |
+ ;; | |
+ *RFC[0-9]*) | |
+ rfcname="$(printf "%s\n" "${text}" | sed 's,.*\(RFC[0-9]*\).*,… | |
+ annna-say -c "${channel}" "${rfcname}: ftp://ftp.rfc-editor.or… | |
+ ;; | |
+ esac | |
+ | |
+ if [ $randomtag -gt 0 ]; | |
+ then | |
+ while [ $randomtag -gt 0 ]; | |
+ do | |
+ rtag="$(printf "%s\n" "$(hashtags)" | shuf -n 1)" | |
+ tagname="" | |
+ taguri="" | |
+ for tag in ${rtag}; | |
+ do | |
+ [ -z "${tagname}" ] && tagname="${tag}" && con… | |
+ taguri="${tag}" | |
+ done | |
+ | |
+ annna-say -c "${channel}" "${tagname}: ${taguri}" | |
+ | |
+ randomtag=$(($randomtag - 1)) | |
+ done | |
+ else | |
+ tagname="" | |
+ taguri="" | |
+ for tag in $(hashtags); | |
+ do | |
+ [ -z "${tagname}" ] && tagname="${tag}" && continue | |
+ taguri="${tag}" | |
+ | |
+ case "${text}" in | |
+ *\#nospoil*) | |
+ break; | |
+ ;; | |
+ *${tagname}[^a-zA-Z-]*) | |
+ annna-say -c "${channel}" "${tagname}: ${tagur… | |
+ break; | |
+ ;; | |
+ *${tagname}) | |
+ annna-say -c "${channel}" "${tagname}: ${tagur… | |
+ break; | |
+ ;; | |
+ esac | |
+ tagname="" | |
+ done | |
fi | |
+ | |
+ # Membership Level. | |
+ ismember=0 | |
+ for member in $brmembers; | |
+ do | |
+ [ "$user" = "$member" ] && ismember=1 | |
+ done | |
+ [ $ismember -lt 1 ] && return | |
+ | |
+ | |
+ case "${text}" in | |
+ "${botname}, can you show me the uptime please?") | |
+ annna-say -c "${channel}" "$(hostname) uptime: $(uptime)" | |
+ ;; | |
+ "${botname}, please show me the load.") | |
+ annna-say -c "${channel}" "$(hostname) load: $(LANG=C uptime |… | |
+ ;; | |
+ "${botname}, please give me the count of online users.") | |
+ annna-say -c "${channel}" "$(hostname): $(who -q | tail -n 1 |… | |
+ ;; | |
+ "${botname}, please update the phlog index.") | |
+ phlog-index > /dev/null 2>&1 | |
+ annna-say -c "${channel}" "Thanks! Your request has been fulfi… | |
+ ;; | |
+ esac | |
+ | |
} | |
# Permissions |