]> Pileus Git - ~andy/rhawk/commitdiff
Add rhsed, start script, and clouds file
authorAndy Spencer <andy753421@gmail.com>
Mon, 21 Jan 2013 02:01:14 +0000 (02:01 +0000)
committerAndy Spencer <andy753421@gmail.com>
Mon, 21 Jan 2013 02:01:14 +0000 (02:01 +0000)
clouds.txt [new file with mode: 0644]
rhawk.sh [new file with mode: 0755]
rhsed [new file with mode: 0644]

diff --git a/clouds.txt b/clouds.txt
new file mode 100644 (file)
index 0000000..0ebc21b
--- /dev/null
@@ -0,0 +1,58 @@
+A [[Accessory cloud]]?\r
+A [[Actinoform cloud]]?\r
+A [[Altocumulus castellanus cloud]]?\r
+A [[Altocumulus cloud]]?\r
+A [[Altocumulus undulatus cloud]]?\r
+A [[Altostratus cloud]]?\r
+A [[Altostratus undulatus cloud]]?\r
+A [[Arcus cloud]]?\r
+A [[Roll cloud]]?\r
+A [[Shelf cloud]]?\r
+A [[Cirrocumulus castellanus]] cloud?\r
+A [[Cirrocumulus cloud]]?\r
+A [[Cirrocumulus floccus]] cloud?\r
+A [[Cirrocumulus lacunosus]] cloud?\r
+A [[Cirrocumulus lenticularis]] cloud?\r
+A [[Cirrocumulus stratiformis]] cloud?\r
+A [[Cirrocumulus undulatus]] cloud?\r
+A [[Cirrostratus cloud]]?\r
+A [[Cirrostratus fibratus]] cloud?\r
+A [[Cirrostratus nebulosus]] cloud?\r
+A [[Cirrus castellanus cloud]]?\r
+A [[Cirrus cloud]]?\r
+A [[Cirrus duplicatus]] cloud?\r
+A [[Cirrus fibratus]] cloud?\r
+A [[Cirrus floccus]] cloud?\r
+A [[Cirrus intortus cloud]]?\r
+A [[Cirrus radiatus]] cloud?\r
+A [[Cirrus spissatus cloud]]?\r
+A [[Cirrus uncinus cloud]]?\r
+A [[Cirrus vertebratus]] cloud?\r
+A [[Contrail]]?\r
+A [[Cumulonimbus calvus]] cloud?\r
+A [[Cumulonimbus cloud]]?\r
+A [[Cumulonimbus incus]] cloud?\r
+A [[Cumulus cloud]]?\r
+A [[Cumulus humilis cloud]]?\r
+A [[Cumulus mediocris cloud]]?\r
+A [[Fog]] cloud?\r
+A [[Fractus cloud]]?\r
+A [[Funnel cloud]]?\r
+A [[Kelvin-Helmholtz instability]] cloud?\r
+A [[Mammatus cloud]]?\r
+A [[Nimbostratus cloud]]?\r
+A [[Nimbostratus virga]] cloud?\r
+A [[Noctilucent cloud]]?\r
+A [[Overshooting top]]?\r
+A [[Pileus (meteorology)]] cloud?\r
+A [[Polar stratospheric cloud]]?\r
+A [[Pyrocumulonimbus cloud]]?\r
+A [[Pyrocumulus cloud]]?\r
+A [[Scud (cloud)]]?\r
+A [[Stratocumulus cloud]]?\r
+A [[Stratus cloud]]?\r
+A [[Towering cumulus cloud]]?\r
+A [[Undulatus asperatus]] cloud?\r
+A [[Vertical draft]] cloud?\r
+A [[Virga]] cloud?\r
+A [[Wall cloud]]?\r
diff --git a/rhawk.sh b/rhawk.sh
new file mode 100755 (executable)
index 0000000..e0e0dd1
--- /dev/null
+++ b/rhawk.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+cd /home/andy/src/rhawk
+while true; do
+       socat TCP:'irc.freenode.net:6667' EXEC:'awk -f rhawk'
+       sleep 30
+done
diff --git a/rhsed b/rhsed
new file mode 100644 (file)
index 0000000..4949caf
--- /dev/null
+++ b/rhsed
@@ -0,0 +1,62 @@
+# Clear hold space
+x; s/.*//; x
+
+# Debug input
+s/^/< /
+w /dev/stderr
+s/^< //
+
+# Setup variables:
+s/[$=]/&\\/g
+s/\(:\([^ ]*\) \)\?\(\([^ ]*\) \)\(\([^ ]*\) \)\?\(:\(.*\)\)/AUTH= SERVER= NICK= CHANNEL= CMD=\4 SRC=\2 DST=\6 TO= FROM= MSG=\8/
+s/\(TO=\)\(.*MSG=\([^:,]\+\)[:,]\)/\1\3\2/
+s/\(SRC=\([^!]\+\)!.*\)\(FROM=\)/\1\3\2/
+s/CHANNEL=/&#rhnoise/
+s/NICK=/&rhsed/
+s/SERVER=/&irc.freenode.net/
+s/\(AUTH=\)\(.*TO=rhsed.*FROM=andy753421\)/\1yes\2/
+
+# IRC library commands
+1                         { x; s/$/\nUSER andy c $SERVER :$NICK/; x; }
+1                         { x; s/$/\nNICK rhsed/; x; }
+/CMD=PING/                { x; s/$/\nPING :$MSG/; x; }
+/CMD=001.*MSG=.*Welcome/  { x; s/$/\nJOIN $CHANNEL/; x; }
+
+# Bot commands
+/MSG=.*\<sed\>/           { x; s/$/\n.say Sed!/; x; }
+/NICK=\([^ ]*\).*MSG=\1:/ { x; s/$/\n.say Hello, $FROM/; x; }
+/MSG=.dup/                { x; s/$/\n.say Dup! $MSG/; x; }
+/MSG=.ping/               { x; s/$/\n.reply Pong!/; x; }
+/AUTH=yes.*MSG=.*die in a fire/Q
+
+# Helper functions
+x
+s/\n.reply /\n.say $FROM: /g
+s/\n.say *\([^\n]*\)/\nPRIVMSG #rhnoise :\1/g
+x
+
+# Replace variables
+G
+:vars
+s/\(.*SERVER=\([^ ]*\).*\n.*\)\$SERVER/\1\2/
+s/\(.*NICK=\([^ ]*\).*\n.*\)\$NICK/\1\2/
+s/\(.*CHANNEL=\([^ ]*\).*\n.*\)\$CHANNEL/\1\2/
+s/\(.*CMD=\([^ ]*\).*\n.*\)\$CMD/\1\2/
+s/\(.*SRC=\([^ ]*\).*\n.*\)\$SRC/\1\2/
+s/\(.*DST=\([^ ]*\).*\n.*\)\$DST/\1\2/
+s/\(.*TO=\([^ ]*\).*\n.*\)\$TO/\1\2/
+s/\(.*FROM=\([^ ]*\).*\n.*\)\$FROM/\1\2/
+s/\(.*MSG=\([^\n]*\)\n.*\)\$MSG/\1\2/
+t vars
+
+## Output
+s/^[^\n]*\n*//
+s/\([$=]\)\\/\1/g
+/./ {
+       w /dev/stdout
+       s/\(^\|\n\)/\1> /g
+       w /dev/stderr
+}
+d
+
+# vim: ft=sed