allow "nick++ extra text"

This commit is contained in:
Neale Pickett 2011-01-07 15:50:36 -07:00
parent e889eb8c27
commit f369efcad7
3 changed files with 22 additions and 15 deletions

9
bot Executable file
View File

@ -0,0 +1,9 @@
#! /bin/sh
(
# UCSPI wants input on FD 7, and sets $PROTO
[ -n "$PROTO" ] && exec 1>&7
echo "NICK $1"
echo "USER $1 $1 $1 :I'm a little printf, short and stdout."
)
exec ./dispatch ./irc ./$1-handler

22
infobot
View File

@ -2,6 +2,8 @@
db=$1; shift
text="$1"
cmd=${text%% *}
args=${text#* }
lookup () {
if ! cdb -q -m $db "$1"; then
@ -16,7 +18,7 @@ lookup () {
fi
}
case "$text" in
case "$cmd" in
!h*)
cat <<EOF
!stats Show statistics
@ -30,23 +32,20 @@ EOF
cdb -s $db | head -n 1
;;
!l*)
args=$(echo "$text" | cut -d\ -f2-)
printf "factoids for \"%s\": " "$args"
cdb -q -m $db "$args" | awk '{printf("|%s", $0);}'
echo
;;
!a*)
args=$(echo "$text" | cut -d\ -f2-)
key=$(printf "%s" "$args" | sed 's/ +=.*//')
val=$(printf "%s" "$args" | sed 's/.*+= //')
key=${args% +=*}
val=${args#*+= }
(printf "+%d,%d:%s->%s\n" ${#key} ${#val} "$key" "$val";
cdb -d $db) | cdb -c $db
echo "Okay, $sender, I added a factoid to $key"
;;
!r*)
args=$(echo "$text" | cut -d\ -f2-)
key=$(printf "%s" "$args" | sed 's/ -=.*//')
val=$(printf "%s" "$args" | sed 's/.*-= //')
key=${args% -=*}
val=${args#*-= }
re=":$key->.*$val"
n=$(cdb -d $db | grep -c "$re")
if [ $n -gt 0 ]; then
@ -56,8 +55,7 @@ EOF
echo "Nothing matched, $sender."
fi
;;
!forget\ *)
args=$(echo "$text" | cut -d\ -f2-)
!forget)
cdb -d $db | grep -a -F -v ":$args->" | cdb -c $db
echo "I removed all factoids from $args"
;;
@ -67,10 +65,10 @@ EOF
"")
exit 1
;;
\\*)
''*)
echo "Someone's up to no good!"
;;
\\*)
'\'*)
printf "%s\n" "${resp#\\}"
;;
:*)

View File

@ -13,7 +13,7 @@ put () {
}
adj () {
who=${text%%$1$1}
who=${text%%$1$1*}
if [ "$who" = "$sender" ]; then
echo "Nice try, $sender."
else
@ -28,10 +28,10 @@ case "$text" in
amt=$(get "$who")
echo "$who has $amt whuffie"
;;
*++)
*++|*++\ *)
adj +
;;
*--)
*--|*--\ *)
adj -
;;
*)