diff options
author | Nathan Fritz <fritzy@netflint.net> | 2011-08-18 00:35:37 -0700 |
---|---|---|
committer | Nathan Fritz <fritzy@netflint.net> | 2011-08-18 00:35:37 -0700 |
commit | 4ea22ff69bac4b619b1eeb918c67a209f6e953ee (patch) | |
tree | cc4a245ea03429d59b192cb3f79b3bee95343ba8 /docs/getting_started/echobot.rst | |
parent | 3853898ab36fa1a74b5d9d5ea3070c3e8e1bc0f2 (diff) | |
parent | 7d8aa4157bc7a602243996a45268b172629a6ae3 (diff) | |
download | slixmpp-4ea22ff69bac4b619b1eeb918c67a209f6e953ee.tar.gz slixmpp-4ea22ff69bac4b619b1eeb918c67a209f6e953ee.tar.bz2 slixmpp-4ea22ff69bac4b619b1eeb918c67a209f6e953ee.tar.xz slixmpp-4ea22ff69bac4b619b1eeb918c67a209f6e953ee.zip |
Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop
Diffstat (limited to 'docs/getting_started/echobot.rst')
-rw-r--r-- | docs/getting_started/echobot.rst | 126 |
1 files changed, 2 insertions, 124 deletions
diff --git a/docs/getting_started/echobot.rst b/docs/getting_started/echobot.rst index 9defca6b..053a76f2 100644 --- a/docs/getting_started/echobot.rst +++ b/docs/getting_started/echobot.rst @@ -1,3 +1,5 @@ +.. _echobot: + =============================== SleekXMPP Quickstart - Echo Bot =============================== @@ -386,127 +388,3 @@ can also be found in the SleekXMPP `examples directory <http://github.com/fritzy .. include:: ../../examples/echo_client.py :literal: - - -.. -.. #!/usr/bin/env python -.. # -*- coding: utf-8 -*- -.. import sys -.. import logging -.. import time -.. import getpass -.. from optparse import OptionParser -.. -.. import sleekxmpp -.. -.. -.. class EchoBot(sleekxmpp.ClientXMPP): -.. -.. """ -.. A simple SleekXMPP bot that will echo messages it -.. receives, along with a short thank you message. -.. """ -.. -.. def __init__(self, jid, password): -.. sleekxmpp.ClientXMPP.__init__(self, jid, password) -.. -.. # The session_start event will be triggered when -.. # the bot establishes its connection with the server -.. # and the XML streams are ready for use. We want to -.. # listen for this event so that we we can intialize -.. # our roster. -.. self.add_event_handler("session_start", self.start) -.. -.. # The message event is triggered whenever a message -.. # stanza is received. Be aware that that includes -.. # MUC messages and error messages. -.. self.add_event_handler("message", self.message) -.. -.. def start(self, event): -.. """ -.. Process the session_start event. -.. -.. Typical actions for the session_start event are -.. requesting the roster and broadcasting an intial -.. presence stanza. -.. -.. Arguments: -.. event -- An empty dictionary. The session_start -.. event does not provide any additional -.. data. -.. """ -.. self.send_presence() -.. self.get_roster() -.. -.. def message(self, msg): -.. """ -.. Process incoming message stanzas. Be aware that this also -.. includes MUC messages and error messages. It is usually -.. a good idea to check the messages's type before processing -.. or sending replies. -.. -.. Arguments: -.. msg -- The received message stanza. See the documentation -.. for stanza objects and the Message stanza to see -.. how it may be used. -.. """ -.. if msg['type'] in ('normal', 'chat'): -.. msg.reply("Thanks for sending\n%(body)s" % msg).send() -.. -.. -.. if __name__ == '__main__': -.. # Setup the command line arguments. -.. optp = OptionParser() -.. -.. # Output verbosity options. -.. optp.add_option('-q', '--quiet', help='set logging to ERROR', -.. action='store_const', dest='loglevel', -.. const=logging.ERROR, default=logging.INFO) -.. optp.add_option('-d', '--debug', help='set logging to DEBUG', -.. action='store_const', dest='loglevel', -.. const=logging.DEBUG, default=logging.INFO) -.. optp.add_option('-v', '--verbose', help='set logging to COMM', -.. action='store_const', dest='loglevel', -.. const=5, default=logging.INFO) -.. -.. # JID and password options. -.. optp.add_option("-j", "--jid", dest="jid", -.. help="JID to use") -.. optp.add_option("-p", "--password", dest="password", -.. help="password to use") -.. -.. opts, args = optp.parse_args() -.. -.. # Setup logging. -.. logging.basicConfig(level=opts.loglevel, -.. format='%(levelname)-8s %(message)s') -.. -.. if opts.jid is None: -.. opts.jid = raw_input("Username: ") -.. if opts.password is None: -.. opts.password = getpass.getpass("Password: ") -.. -.. # Setup the EchoBot and register plugins. Note that while plugins may -.. # have interdependencies, the order in which you register them does -.. # not matter. -.. xmpp = EchoBot(opts.jid, opts.password) -.. xmpp.register_plugin('xep_0030') # Service Discovery -.. xmpp.register_plugin('xep_0199') # XMPP Ping -.. -.. # If you are working with an OpenFire server, you may need -.. # to adjust the SSL version used: -.. # xmpp.ssl_version = ssl.PROTOCOL_SSLv3 -.. -.. # Connect to the XMPP server and start processing XMPP stanzas. -.. if xmpp.connect(): -.. # If you do not have the pydns library installed, you will need -.. # to manually specify the name of the server if it does not match -.. # the one in the JID. For example, to use Google Talk you would -.. # need to use: -.. # -.. # if xmpp.connect(('talk.google.com', 5222)): -.. # ... -.. xmpp.process(threaded=False) -.. print("Done") -.. else: -.. print("Unable to connect.") |