Fix some more merge conflicts.
This commit is contained in:
parent
738ec92b8e
commit
79b71228c1
3 changed files with 83 additions and 13 deletions
1
docs/_static/haiku.css
vendored
1
docs/_static/haiku.css
vendored
|
@ -409,7 +409,6 @@ div.viewcode-block:target {
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#from_andyet {
|
#from_andyet {
|
||||||
-webkit-box-shadow: #CCC 0px 0px 3px;
|
-webkit-box-shadow: #CCC 0px 0px 3px;
|
||||||
background: rgba(255, 255, 255, 1);
|
background: rgba(255, 255, 255, 1);
|
||||||
|
|
BIN
docs/_static/header.png
vendored
BIN
docs/_static/header.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 16 KiB |
|
@ -59,6 +59,72 @@ SleekXMPP's design goals and philosphy are:
|
||||||
sensible defaults and appropriate abstractions. XML can be ugly to work
|
sensible defaults and appropriate abstractions. XML can be ugly to work
|
||||||
with, but it doesn't have to be that way.
|
with, but it doesn't have to be that way.
|
||||||
|
|
||||||
|
Here's your first SleekXMPP Bot:
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from sleekxmpp import ClientXMPP
|
||||||
|
from sleekxmpp.exceptions import IqError, IqTimeout
|
||||||
|
|
||||||
|
|
||||||
|
class EchoBot(ClientXMPP):
|
||||||
|
|
||||||
|
def __init__(self, jid, password):
|
||||||
|
ClientXMPP.__init__(self, jid, password)
|
||||||
|
|
||||||
|
self.add_event_handler("session_start", self.session_start)
|
||||||
|
self.add_event_handler("message", self.message)
|
||||||
|
|
||||||
|
# If you wanted more functionality, here's how to register plugins:
|
||||||
|
# self.register_plugin('xep_0030') # Service Discovery
|
||||||
|
# self.register_plugin('xep_0199') # XMPP Ping
|
||||||
|
|
||||||
|
# Here's how to access plugins once you've registered them:
|
||||||
|
# self['xep_0030'].add_feature('echo_demo')
|
||||||
|
|
||||||
|
# If you are working with an OpenFire server, you will
|
||||||
|
# need to use a different SSL version:
|
||||||
|
# import ssl
|
||||||
|
# self.ssl_version = ssl.PROTOCOL_SSLv3
|
||||||
|
|
||||||
|
def session_start(self, event):
|
||||||
|
self.send_presence()
|
||||||
|
self.get_roster()
|
||||||
|
|
||||||
|
# Most get_*/set_* methods from plugins use Iq stanzas, which
|
||||||
|
# can generate IqError and IqTimeout exceptions
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
# self.get_roster()
|
||||||
|
# except IqError as err:
|
||||||
|
# logging.error('There was an error getting the roster')
|
||||||
|
# logging.error(err.iq['error']['condition'])
|
||||||
|
# self.disconnect()
|
||||||
|
# except IqTimeout:
|
||||||
|
# logging.error('Server is taking too long to respond')
|
||||||
|
# self.disconnect()
|
||||||
|
|
||||||
|
def message(self, msg):
|
||||||
|
if msg['type'] in ('chat', 'normal'):
|
||||||
|
msg.reply("Thanks for sending\n%(body)s" % msg).send()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
# Ideally use optparse or argparse to get JID,
|
||||||
|
# password, and log level.
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.DEBUG,
|
||||||
|
format='%(levelname)-8s %(message)s')
|
||||||
|
|
||||||
|
xmpp = EchoBot('somejid@example.com', 'use_getpass')
|
||||||
|
xmpp.connect()
|
||||||
|
xmpp.process(block=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Getting Started (with Examples)
|
Getting Started (with Examples)
|
||||||
-------------------------------
|
-------------------------------
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
@ -156,6 +222,7 @@ Additional Info
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
-------
|
-------
|
||||||
|
|
||||||
**Main Author:** `Nathan Fritz <http://andyet.net/team/fritzy>`_
|
**Main Author:** `Nathan Fritz <http://andyet.net/team/fritzy>`_
|
||||||
`fritzy@netflint.net <xmpp:fritzy@netflint.net?message>`_,
|
`fritzy@netflint.net <xmpp:fritzy@netflint.net?message>`_,
|
||||||
`@fritzy <http://twitter.com/fritzy>`_
|
`@fritzy <http://twitter.com/fritzy>`_
|
||||||
|
@ -174,6 +241,10 @@ realtime web and XMPP applications.
|
||||||
- `contact@andyet.net <mailto:contact@andyet.net>`_
|
- `contact@andyet.net <mailto:contact@andyet.net>`_
|
||||||
- `XMPP Consulting <http://xmppconsulting.com>`_
|
- `XMPP Consulting <http://xmppconsulting.com>`_
|
||||||
|
|
||||||
|
**Co-Author:** Lance Stout
|
||||||
|
`lancestout@gmail.com <xmpp:lancestout@gmail.com?message>`_,
|
||||||
|
`@lancestout <http://twitter.com/lancestout>`_
|
||||||
|
|
||||||
**Contributors:**
|
**Contributors:**
|
||||||
- Brian Beggs (`macdiesel <http://github.com/macdiesel>`_)
|
- Brian Beggs (`macdiesel <http://github.com/macdiesel>`_)
|
||||||
- Dann Martens (`dannmartens <http://github.com/dannmartens>`_)
|
- Dann Martens (`dannmartens <http://github.com/dannmartens>`_)
|
||||||
|
|
Loading…
Reference in a new issue