Ejemplo n.º 1
0
 def __init__(self):
     ClientXMPP.__init__(self, FCM_JID, FCM_SERVER_KEY, sasl_mech="PLAIN")
     self.add_event_handler("session_start", self.start)
     self.auto_reconnect = False
     self.connect((FCM_SERVER_IP, FCM_SERVER_PORT),
                  use_tls=True,
                  reattempt=True)
     print("Connected!!")
     self.process(block=True)
     print("Process Done!!")
Ejemplo n.º 2
0
    def __init__(self, *args):
        ConfigurableComponent.__init__(self, "XMPPBOT", *args)
        if self.config.get('password', None) is None:
            self.config.password = std_uuid()
            self.config.save()

        ClientXMPP.__init__(self, self.config.jid, self.config.password)

        self.add_event_handler("session_start", self.session_start)
        self.add_event_handler("message", self.message)
        # Discard SSL Error
        self.add_event_handler("ssl_invalid_cert", self.discard)

        # 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

        import ssl
        self.ssl_version = ssl.PROTOCOL_SSLv23

        self.log('Connecting bot to ejabberd')
        self.connect(use_tls=True)
        self.log('Processing ejabberd connection')
        self.process(block=False)

        self.auto_authorize = True
        self.auto_subscribe = True
        self.send_presence(pfrom='claptrap@localhost',
                           pstatus='Curiouser and curiouser!',
                           pshow='xa')

        self.fireEvent(cli_register_event('test_xmpp_send',
                                          cli_test_xmpp_send))
        self.log("Started")
Ejemplo n.º 3
0
	def __init__(self, active_alerter, alerter_model):
		'''
		Constructor
		
		:param active_alerter: The parent alerter for the chat
		:param alerter_model: 
			The database alerter model associated with the bot
		'''
		# Initialises the connection
		ClientXMPP.__init__(self,
						'{}@{}/{}'.format(alerter_model.username,
							Constants.CHAT_SERVER, Constants.CHAT_RESOURCE),
						'AIR_{}'.format(alerter_model.password))

		# Automatically add new friends?
		self.auto_authorize = None
		
		self.auto_subscribe = True
		self.auto_reconnect = True
		self.ssl_version = ssl.PROTOCOL_SSLv3

		# Add the event handlers
		self.add_event_handler('session_start', self.session_start)
		self.add_event_handler('message', self.got_message)
		self.add_event_handler('got_online', self.got_online)
		self.add_event_handler('got_offline', self.got_offline)
		self.add_event_handler('presence_subscribe', self.presence_subscribe)
		self.add_event_handler('presence_unsubscribe',
							self.presence_unsubscribe)
		self.add_event_handler('disconnected', self.disconnected)
		self.add_event_handler('failed_auth', self.failed_auth)

		# Presence change events
		self.add_event_handler('presence_available', self.handle_presence)
		self.add_event_handler('presence_dnd', self.handle_presence)
		self.add_event_handler('presence_xa', self.handle_presence)
		self.add_event_handler('presence_chat', self.handle_presence)
		self.add_event_handler('presence_away', self.handle_presence)

		self.alerter = active_alerter
		self.model = alerter_model