Skip to content
This repository has been archived by the owner on Jun 8, 2022. It is now read-only.

Commit

Permalink
Merge pull request #3 from ksya/master
Browse files Browse the repository at this point in the history
Add support for carbons (instant updates)
  • Loading branch information
marconfus authored Sep 30, 2019
2 parents 2dc1da4 + 93294ce commit 0f399e0
Showing 1 changed file with 27 additions and 7 deletions.
34 changes: 27 additions & 7 deletions aionefit/provider/slixmpp_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import logging
from slixmpp.xmlstream import tostring


_LOGGER = logging.getLogger(__name__)


Expand All @@ -15,25 +14,30 @@ def __init__(self, jid, password, encryption, nefit_client=None):

slixmpp.ClientXMPP.__init__(self, jid, password,
sasl_mech="DIGEST-MD5")

self.netfit_client = nefit_client
self.nefit_client = nefit_client
# the event signaling, that the connection is established
self.connected_event = asyncio.Event()
self.disconnected_event = asyncio.Event()
self.message_event = asyncio.Event()

# set the various callback handlers
self.add_event_handler('session_start', self.session_start)
self.add_event_handler('session_end', self.session_end)
self.add_event_handler('message', self.message_callback)
self.add_event_handler('carbon_received', self.carbonmsg_recv_callblack)
self.add_event_handler('carbon_sent', self.carbonmsg_sent_callblack)
self.add_event_handler('failed_auth', self.on_failed_auth)
self.add_event_handler('auth_success', self.on_auth_success)
self.register_plugin('xep_0199')
self.register_plugin('xep_0199') #ping
self.register_plugin('xep_0280') #carbons
self.encryption = encryption


def on_failed_auth(self, event):
"""Callback handler for an unsuccessfull authentication.
"""
if self.netfit_client.failed_auth_handler:
self.netfit_client.failed_auth_handler(event)
if self.nefit_client.failed_auth_handler:
self.nefit_client.failed_auth_handler(event)
else:
_LOGGER.error('failed_auth event: %s', event)
raise SystemError('Invalid login. Check credentials ' +
Expand All @@ -49,14 +53,30 @@ def session_start(self, event):
"""
self.send_presence()
self.get_roster()
self['xep_0280'].enable()
self.connected_event.set()

def session_end(self, event):
_LOGGER.debug("Connection was closed")
self.disconnected_event.set()

def message_callback(self, msg):
"""Callback handler for a received message.
"""
self.netfit_client.raw_message_callback(msg)
self.nefit_client.raw_message_callback(msg)
self.message_event.set()

def carbonmsg_recv_callblack(self, msg):
"""Callback handler for a received carbon message.
"""
self.nefit_client.raw_message_callback(msg['carbon_received'])
self.message_event.set()

def carbonmsg_sent_callblack(self, msg):
"""Callback handler for a sent carbon message.
"""
_LOGGER.debug('Carbon sent: %s', msg['carbon_sent'])

def send_message(self, mto, mbody, msubject=None, mtype=None,
mhtml=None, mfrom=None, mnick=None):

Expand Down

0 comments on commit 0f399e0

Please sign in to comment.