Skip to content

Instantly share code, notes, and snippets.

@spacelatte
Last active July 19, 2020 14:14
Show Gist options
  • Save spacelatte/115d178a6dd30a360eb81df02fb7a594 to your computer and use it in GitHub Desktop.
Save spacelatte/115d178a6dd30a360eb81df02fb7a594 to your computer and use it in GitHub Desktop.
#irc #echo #bot #shell #bash #script #netcat
#!/bin/env sh
#set -x
set -o pipefail
PREFIX=usr_
NAME="${PREFIX}$(hostname | cut -d. -f1)"
INFO="$(uname -a) --- $(date)"
CHAN="${1:-#test}"
PING=10.0
tee /dev/stderr | {
sleep 2
echo "NICK ${NAME}"
echo "USER $(whoami) * * : $(hostname -i)"
sleep 5
echo "JOIN ${CHAN}"
while sleep ${PING}; do echo PING :${RANDOM}; done &
echo "PRIVMSG ${CHAN} : ${INFO}"
while read line; do
UNIX=$(echo "${line}" | tr -d '\r')
META=$(echo "${UNIX}" | cut -d':' -f2 )
TEXT=$(echo "${UNIX}" | cut -d':' -f3-)
CHAN=$(echo "${META}" | cut -d' ' -f3)
CMD=$( echo "${META}" | cut -d' ' -f4)
WHO=$( echo "${META}" | cut -d'!' -f1)
case "$UNIX" in
*" PRIVMSG ${CHAN} :!kick "*)
echo "KICK ${CHAN} ${TEXT/*'!kick '}"
;;
*" PRIVMSG ${CHAN} :"*"bot"*)
echo "${TEXT}" | grep -qi -e "leave" -e "f.ck" -e "go.*away" && \
echo "PART ${CHAN} :Sad Robot :( is Leaving..."
continue;;
*" PRIVMSG ${CHAN} :"*)
echo "PRIVMSG ${CHAN} :Simon says: '${TEXT}'"
;;
*" PRIVMSG ${NAME} :"*)
echo "PRIVMSG ${WHO} :I am in: '${CHAN}', as of $(date)"
;;
*" INVITE ${NAME}"*)
echo "JOIN ${TEXT}"
;;
*" KICK "*" ${NAME} "*)
echo "JOIN ${CHAN}"
echo "PRIVMSG ${CHAN} :Hey ${WHO} ! What does '${TEXT}' mean?!"
echo "PART ${CHAN} :BOT RAGE QUIT"
;;
*)
test -n "${LOGTO}" && echo "PRIVMSG ${LOGTO} : ${UNIX}"
;;
esac
done
} | tee /dev/stderr
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment