diff options
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/proxy_echo_client.py | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/examples/proxy_echo_client.py b/examples/proxy_echo_client.py deleted file mode 100755 index 566f5957..00000000 --- a/examples/proxy_echo_client.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -""" - Slixmpp: The Slick XMPP Library - Copyright (C) 2010 Nathanael C. Fritz - This file is part of Slixmpp. - - See the file LICENSE for copying permission. -""" - -import logging -from getpass import getpass -from argparse import ArgumentParser - -import slixmpp - - -class EchoBot(slixmpp.ClientXMPP): - - """ - A simple Slixmpp bot that will echo messages it - receives, along with a short thank you message. - """ - - def __init__(self, jid, password): - slixmpp.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 initialize - # 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) - - async def start(self, event): - """ - Process the session_start event. - - Typical actions for the session_start event are - requesting the roster and broadcasting an initial - presence stanza. - - Arguments: - event -- An empty dictionary. The session_start - event does not provide any additional - data. - """ - self.send_presence() - await 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. - """ - msg.reply("Thanks for sending\n%(body)s" % msg).send() - - -if __name__ == '__main__': - # Setup the command line arguments. - parser = ArgumentParser() - - # Output verbosity options. - parser.add_argument("-q", "--quiet", help="set logging to ERROR", - action="store_const", dest="loglevel", - const=logging.ERROR, default=logging.INFO) - parser.add_argument("-d", "--debug", help="set logging to DEBUG", - action="store_const", dest="loglevel", - const=logging.DEBUG, default=logging.INFO) - - # JID and password options. - parser.add_argument("-j", "--jid", dest="jid", - help="JID to use") - parser.add_argument("-p", "--password", dest="password", - help="password to use") - parser.add_argument("--phost", dest="proxy_host", - help="Proxy hostname") - parser.add_argument("--pport", dest="proxy_port", - help="Proxy port") - parser.add_argument("--puser", dest="proxy_user", - help="Proxy username") - parser.add_argument("--ppass", dest="proxy_pass", - help="Proxy password") - - args = parser.parse_args() - - # Setup logging. - logging.basicConfig(level=args.loglevel, - format='%(levelname)-8s %(message)s') - - if args.jid is None: - args.jid = input("Username: ") - if args.password is None: - args.password = getpass("Password: ") - if args.proxy_host is None: - args.proxy_host = input("Proxy host: ") - if args.proxy_port is None: - args.proxy_port = input("Proxy port: ") - if args.proxy_user is None: - args.proxy_user = input("Proxy username: ") - if args.proxy_pass is None and args.proxy_user: - args.proxy_pass = getpass("Proxy 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(args.jid, args.password) - xmpp.register_plugin('xep_0030') # Service Discovery - xmpp.register_plugin('xep_0004') # Data Forms - xmpp.register_plugin('xep_0060') # PubSub - xmpp.register_plugin('xep_0199') # XMPP Ping - - xmpp.use_proxy = True - xmpp.proxy_config = { - 'host': args.proxy_host, - 'port': int(args.proxy_port), - 'username': args.proxy_user, - 'password': args.proxy_pass} - - # Connect to the XMPP server and start processing XMPP stanzas. - xmpp.connect() - xmpp.process() |