add support for topic-change on spacestate change
This commit is contained in:
parent
758db52158
commit
fff716c80d
1 changed files with 28 additions and 1 deletions
29
irc-bot
29
irc-bot
|
@ -6,6 +6,11 @@ NICK="bitlair"
|
||||||
CHANNEL="#bitlair"
|
CHANNEL="#bitlair"
|
||||||
SERVER="irc.smurfnet.ch"
|
SERVER="irc.smurfnet.ch"
|
||||||
INPORT="31337"
|
INPORT="31337"
|
||||||
|
SPACESTATEFILE="/tmp/SPACESTATE"
|
||||||
|
SETTOPICFILE="/tmp/SETTOPIC"
|
||||||
|
|
||||||
|
touch $SPACESTATEFILE
|
||||||
|
touch $SETTOPICFILE
|
||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
@ -27,7 +32,18 @@ echo "JOIN $CHANNEL"
|
||||||
tail -f "$loop" &
|
tail -f "$loop" &
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
echo "NOTICE $CHANNEL $(nc -lp "$INPORT" | tr -c -d '[:print:]')"
|
input=$(nc -lp "$INPORT" | tr -c -d '[:print:]')
|
||||||
|
echo "NOTICE $CHANNEL $input"
|
||||||
|
if [ "$input" == "Bitlair is now closed" ]; then
|
||||||
|
echo "1" > $SETTOPICFILE
|
||||||
|
echo "closed" > $SPACESTATEFILE
|
||||||
|
echo "TOPIC $CHANNEL"
|
||||||
|
fi
|
||||||
|
if [ "$input" == "Bitlair is now open!" ]; then
|
||||||
|
echo "1" > $SETTOPICFILE
|
||||||
|
echo "OPEN" > $SPACESTATEFILE
|
||||||
|
echo "TOPIC $CHANNEL"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
} | \
|
} | \
|
||||||
nc "$SERVER" 6667 | while read message; do
|
nc "$SERVER" 6667 | while read message; do
|
||||||
|
@ -35,6 +51,17 @@ nc "$SERVER" 6667 | while read message; do
|
||||||
PING*) echo "PONG ${message#PING :}" > "$loop";;
|
PING*) echo "PONG ${message#PING :}" > "$loop";;
|
||||||
ERROR*) echo "$message"; exit;;
|
ERROR*) echo "$message"; exit;;
|
||||||
*PRIVMSG*) echo "${message}" | sed -nr "s/^:([^!]+).*PRIVMSG[^:]+:(.*)/[$(date '+%R')] <\1> \2/p";;
|
*PRIVMSG*) echo "${message}" | sed -nr "s/^:([^!]+).*PRIVMSG[^:]+:(.*)/[$(date '+%R')] <\1> \2/p";;
|
||||||
|
*332*)
|
||||||
|
TOPIC=$(echo "$message" | cut -d \: -f 3)
|
||||||
|
SPACESTATE=$(cat $SPACESTATEFILE)
|
||||||
|
SETTOPIC=$(cat $SETTOPICFILE)
|
||||||
|
if [ "$SETTOPIC" == "1" ]; then
|
||||||
|
rest=$(echo "$TOPIC" | cut -d \% -s -f2-)
|
||||||
|
echo "TOPIC $CHANNEL Hackerspace Bitlair is $SPACESTATE %$rest" > "$loop"
|
||||||
|
echo "0" > $SETTOPICFILE
|
||||||
|
fi
|
||||||
|
echo "TOPIC --> $TOPIC"
|
||||||
|
;;
|
||||||
*) echo "${message}";;
|
*) echo "${message}";;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue