mirror of https://github.com/nealey/irc-bot
A couple of speedups, using shell builtins
This commit is contained in:
parent
a07c3e9f7b
commit
adfcd00d66
6
cobalt
6
cobalt
|
@ -1,7 +1,9 @@
|
|||
#! /bin/sh
|
||||
|
||||
exec ./bot \
|
||||
while true; do
|
||||
./bot \
|
||||
-n cobalt \
|
||||
-u cobalt \
|
||||
-a ./cobalt-handler \
|
||||
socat STDIO OPENSSL:woozle.org:994,verify=0
|
||||
socat STDIO OPENSSL:woozle.org:6697,verify=0
|
||||
done
|
||||
|
|
|
@ -5,7 +5,10 @@ forum=$1; export forum; shift
|
|||
prefix=$1; export prefix; shift
|
||||
command=$1; export command; shift
|
||||
# $* is now args
|
||||
text=$(cat)
|
||||
|
||||
# Remeber, read discards leading whitespace. If that's not okay, use
|
||||
# text=$(cat)
|
||||
read -r text
|
||||
|
||||
join () {
|
||||
printf '\aJOIN %s\n' "$1"
|
||||
|
|
15
firebot
15
firebot
|
@ -1,24 +1,23 @@
|
|||
#! /bin/sh
|
||||
|
||||
firebot () {
|
||||
read cmd args
|
||||
cmd=${1%% *}
|
||||
args=${1#* }
|
||||
case $cmd in
|
||||
calc)
|
||||
printf "%s = " "$args"
|
||||
echo "$args" | bc -l
|
||||
printf "%s\n" "$args" | bc -l
|
||||
;;
|
||||
units)
|
||||
src=$(printf "%s" "$args" | sed 's/ ->.*//')
|
||||
dst=$(printf "%s" "$args" | sed 's/.*-> //')
|
||||
src=${args% ->*}
|
||||
dst=${args#*-> }
|
||||
units -1 -v -- "$src" "$dst"
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
echo "$1" | firebot
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
22
infobot
22
infobot
|
@ -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" "${resp#\\}"
|
||||
;;
|
||||
:*)
|
||||
|
|
Loading…
Reference in New Issue