summaryrefslogtreecommitdiff
path: root/irk
diff options
context:
space:
mode:
Diffstat (limited to 'irk')
-rwxr-xr-xirk39
1 files changed, 39 insertions, 0 deletions
diff --git a/irk b/irk
new file mode 100755
index 0000000..c1e0c21
--- /dev/null
+++ b/irk
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+# Illustrates how to test irkerd.
+#
+# First argument must be a channel URL. If it does not begin with "irc",
+# the base URL for freenode is prepended.
+#
+# Second argument must be a payload string. Standard C-style escapes
+# such as \n and \t are decoded.
+#
+import json
+import socket
+import sys
+import fileinput
+
+def send(s, target, message):
+ data = {"to": target, "privmsg" : message}
+ #print(json.dumps(data))
+ try:
+ s.sendall(json.dumps(data))
+ except socket.error, e:
+ sys.stderr.write("irk: write to server failed: %r\n" % e)
+
+try:
+ s = socket.create_connection(("localhost", 6659))
+except socket.error, e:
+ sys.stderr.write("irk: no irkerd running: %r\n" % e)
+ sys.exit(1)
+
+target = sys.argv[1]
+if "irc:" not in target and "ircs:" not in target:
+ target = "irc://chat.freenode.net/{0}".format(target)
+message = " ".join(sys.argv[2:])
+message = message.decode('string_escape')
+if message == '-':
+ for line in fileinput.input('-'):
+ send(s, target, line.rstrip('\n'))
+else:
+ send(s, target, message)
+s.close()