--- /dev/null
+#!/usr/bin/python -u
+# arekm@pld-linux.org, 2006-01
+# glen@pld-linux.org, 2006-03-14
+# usage:
+# jabber.alert -J from_jid -P password to_jid1 to_jid2 to_jid3
+
+import os
+import re
+import sys
+import getopt
+import string
+import time
+
+from pyxmpp.jid import JID
+from pyxmpp.message import Message
+from pyxmpp.jabber.client import JabberClient
+
+try:
+ opts, args = getopt.getopt(sys.argv[1:], "J:P:")
+except getopt.GetoptError, e:
+ print "%s: %s " % (sys.argv[0], e)
+ sys.exit(1)
+
+jid = None
+password = None
+
+for o, a in opts:
+ if o == '-J':
+ jid = a
+ if o == '-P':
+ password = a
+
+recpt = args
+
+if jid == None or password == None:
+ print "%s: jid (-J) and password (-P) are required" % sys.argv[0]
+ sys.exit(1)
+
+if recpt == None:
+ print "%s: recipient jids are required" % sys.argv[0]
+ sys.exit(1)
+
+
+subject = "Nagios alert"
+server = None
+port = None
+
+body = ""
+stdin_body = ""
+do_print = True
+for line in sys.stdin.readlines():
+ stdin_body += line
+
+body += stdin_body
+
+message_type = 'chat'
+
+jid = JID(jid)
+if not jid.resource:
+ jid = JID(jid.node, jid.domain, "Nagios")
+
+class Client(JabberClient):
+ def session_started(self):
+ for r in recpt:
+ jid_r = JID(r)
+ msg = Message(to_jid = jid_r, body = body, subject = subject, stanza_type = message_type)
+ self.stream.send(msg)
+ self.disconnect()
+c = Client(jid, password, server = server, port = port)
+c.connect()
+try:
+ c.loop(1)
+except:
+ print "problem: %s" % e
+ c.disconnect()
+c.disconnect()