Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # SIMPLE CONFIG
- #
- SERV="irc.overthewire.org"
- PORT="6667"
- CHAN="#/dev/random"
- NICK="anonbot"
- USER="$NICK"
- OWNR="$NICK"
- #
- # INITIALIZATION
- #
- #RAND=$(od -An -tx2 -N 2 /dev/random | cut -d' ' -f2);
- #NICK="$NICK$RAND"
- echo "Using NICK: $NICK"
- exec 3<"/dev/tcp/$SERV/$PORT"
- sleep 2
- echo "NICK $NICK" >&3
- echo "USER $USER 8 * : $USER" >&3
- sleep 3
- echo "JOIN $CHAN" >&3
- #
- # MAIN LOOP
- #
- while IFS="" read -r line <&3 ;
- do
- #
- # FOR DEBUG ONLY ( PRINT EVERY LINE FROM THE SERVER !)
- #
- echo "INFO: $line"
- #
- # DIVIDE $LINE INTO PARTS INTO PIECES OF INFORMATION
- # Here we extract the obviously important information from the message from the server into parts!
- #
- line=$(echo "$line" | sed -e 's/[\r\n]$//')
- icmd=$(echo "$line" | cut -d' ' -f2)
- ping=$(echo "$line" | cut -d' ' -f1)
- pong=$(echo "$line" | cut -d' ' -f2-)
- nick=$(echo "$line" | cut -d':' -f2 | cut -d'!' -f1)
- user=$(echo "$line" | cut -d'!' -f2 | cut -d'@' -f1)
- mess=$(echo "$line" | cut -d':' -f3-)
- #
- # WHILE NO PING OR PRIVMSG IRC COMMANDS ARRIVE... DON'T DO SHIT
- #
- if [ "$ping" == "PING" ] ; then
- echo "$ping $pong" | tr 'PING' 'PONG' >&3
- continue
- fi
- if [ "$icmd" != "PRIVMSG" ] ; then
- continue
- fi
- #
- # AUTO-AUTHORIZING (TODO: Better ways exist, and I'll implement them somethime!)
- #
- # "Parental system", which means that each parent controls it's sibling(s) !? ;D
- #
- if [ "$nick" == "$OWNR" ] ; then priv="root"; else priv="nobody"; fi
- #
- # PUBLIC/GUEST/CHANNEL COMMANDS
- #
- if [ "$mess" == "!src" ] ; then
- cat $0 | while read -r catline ; do
- if [ "$(echo $catline | cut -d'#' -f1-)" == "" ] ; then
- echo "PRIVMSG $nick : N" | tr 'N' '\n' >&3
- else
- echo "PRIVMSG $nick :$catline" | tr '\t' ' ' >&3
- fi
- done
- fi
- # if [ $priv != "root" ] ; then
- # continue
- # fi
- #
- # OWNER COMMANDS
- #
- if [ "$priv" == "root" ] ; then
- if [ "$mess" == "!die" ] ; then
- echo "PRIVMSG $nick :$nick: Killing myself on your command!" >&3
- echo "QUIT" >&3
- exit 0
- fi
- fi
- done
- echo "QUIT" >&3
- ./$0
- #
- # END OF SOURCE, HAPPY (AU/E)DITING! ;D
- #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement