diff --git a/bot.properties b/bot.properties index 158b8da..60fc456 100644 --- a/bot.properties +++ b/bot.properties @@ -1,4 +1,4 @@ server="irc.freenode.net" channel="linux" -nick="irc-bash-bot" +nick="bashbot" user="username hostname servername :realname" diff --git a/bot.sh b/bot.sh index 52ed022..465561d 100755 --- a/bot.sh +++ b/bot.sh @@ -19,8 +19,7 @@ do echo "JOIN #$channel" >> $input ;; # run when someone joins - *JOIN*) - who=$(echo "$res" | perl -pe "s/:(.*)\!.*@.*/\1/") + *JOIN*) who=$(echo "$res" | perl -pe "s/:(.*)\!.*@.*/\1/") if [ "$who" = "$nick" ] then continue diff --git a/modules/talk.sh b/modules/talk.sh new file mode 100755 index 0000000..96cb852 --- /dev/null +++ b/modules/talk.sh @@ -0,0 +1,34 @@ +#! /bin/sh + +arg1=$1 # sender (the person I am talking to) +arg2=$2 # unclear???? + +user_dir=modules/talk/logs/$1 +if [ ! -d "$user_dir" ]; then + mkdir $user_dir +fi + +# if the user said goodbye and changed her mind! +if [ -f "$user_dir/GOODBYE" ]; then + echo "PRIVMSG $arg2 :$arg1: I thought you just said goodbye!" + rm $user_dir/GOODBYE +fi + +shift 3 # chop off the first two args +echo "$@" >> $user_dir/input +cat $user_dir/input | java -jar modules/talk/talk_bot.jar > $user_dir/output + +# retcode of value 1 means the user said goodbye +retcode="${PIPESTATUS[1]}" + +echo "PRIVMSG $arg2 :$arg1: `tail -n 1 $user_dir/output`" + +if [ $retcode -eq "1" ]; then + echo "PRIVMSG $arg2 :$arg1: That was a joke! It's free to talk to me. But we do accept donations! ;D" + # clean up old conversations + stamp="`date +%s`" + mv $user_dir/input $user_dir/"input_$stamp" + mv $user_dir/output $user_dir/"output_$stamp" + # leave good-bye flag (indicating the user already said goodbye) + touch $user_dir/GOODBYE +fi diff --git a/modules/talk/talk_bot.jar b/modules/talk/talk_bot.jar new file mode 100644 index 0000000..12e89c3 Binary files /dev/null and b/modules/talk/talk_bot.jar differ