/usr/share/doc/python-xmpp/examples/README.py is in python-xmpp 0.4.1-cvs20080505.2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #!/usr/bin/python
# -*- coding: koi8-r -*-
from xmpp import *
def presenceHandler(conn,presence_node):
""" Handler for playing a sound when particular contact became online """
targetJID='node@domain.org'
if presence_node.getFrom().bareMatch(targetJID):
# play a sound
pass
def iqHandler(conn,iq_node):
""" Handler for processing some "get" query from custom namespace"""
reply=iq_node.buildReply('result')
# ... put some content into reply node
conn.send(reply)
raise NodeProcessed # This stanza is fully processed
def messageHandler(conn,mess_node): pass
if 1:
"""
Example 1:
Connecting to specified IP address.
Connecting to port 5223 - TLS is pre-started.
Using direct connect.
"""
# Born a client
cl=Client('ejabberd.somedomain.org')
# ...connect it to SSL port directly
if not cl.connect(server=('1.2.3.4',5223)):
raise IOError('Can not connect to server.')
else:
"""
Example 2:
Connecting to server via proxy.
Assuming that servername resolves to jabber server IP.
TLS will be started automatically if available.
"""
# Born a client
cl=Client('jabberd2.somedomain.org')
# ...connect via proxy
if not cl.connect(proxy={'host':'someproxy.somedomain.org','port':'8080','user':'proxyuser','password':'proxyuserpassword'}):
raise IOError('Can not connect to server.')
# ...authorize client
if not cl.auth('jabberuser','jabberuserpassword','optional resource name'):
raise IOError('Can not auth with server.')
# ...register some handlers (if you will register them before auth they will be thrown away)
cl.RegisterHandler('presence',presenceHandler)
cl.RegisterHandler('iq',iqHandler)
cl.RegisterHandler('message',messageHandler)
# ...become available
cl.sendInitPresence()
# ...work some time
cl.Process(1)
# ...if connection is brocken - restore it
if not cl.isConnected(): cl.reconnectAndReauth()
# ...send an ASCII message
cl.send(Message('test@jabber.org','Test message'))
# ...send a national message
cl.send(Message('test@jabber.org',unicode('ðÒÏ×ÅÒËÁ Ó×ÑÚÉ','koi8-r')))
# ...send another national message
simplexml.ENCODING='koi8-r'
cl.send(Message('test@jabber.org','ðÒÏ×ÅÒËÁ Ó×ÑÚÉ 2'))
# ...work some more time - collect replies
cl.Process(1)
# ...and then disconnect.
cl.disconnect()
"""
If you have used jabberpy before you will find xmpppy very similar.
See the docs for more info about library features.
"""
|