XMPP server address as optional argument

This commit is contained in:
Torbjörn Axelsson
2017-12-21 18:39:59 -08:00
parent d300df99eb
commit 8aafc37cd0
+8 -6
View File
@@ -127,14 +127,14 @@ class EcoVacsAPI:
class VacBot(): class VacBot():
def __init__(self, user, domain, resource, secret, vacuum, continent): def __init__(self, user, domain, resource, secret, vacuum, continent, server_address=None):
self.vacuum = vacuum self.vacuum = vacuum
self.clean_status = None self.clean_status = None
self.charge_status = None self.charge_status = None
self.battery_status = None self.battery_status = None
self.xmpp = EcoVacsXMPP(user, domain, resource, secret, continent) self.xmpp = EcoVacsXMPP(user, domain, resource, secret, continent, server_address)
self.xmpp.register_callback("error", self._handle_error) self.xmpp.register_callback("error", self._handle_error)
self.xmpp.subscribe_to_ctls(self._handle_ctl) self.xmpp.subscribe_to_ctls(self._handle_ctl)
@@ -190,7 +190,7 @@ class VacBot():
class EcoVacsXMPP(ClientXMPP): class EcoVacsXMPP(ClientXMPP):
def __init__(self, user, domain, resource, secret, continent): def __init__(self, user, domain, resource, secret, continent, server_address=None):
ClientXMPP.__init__(self, user + '@' + domain, '0/' + resource + '/' + secret) ClientXMPP.__init__(self, user + '@' + domain, '0/' + resource + '/' + secret)
self.user = user self.user = user
@@ -198,8 +198,11 @@ class EcoVacsXMPP(ClientXMPP):
self.resource = resource self.resource = resource
self.continent = continent self.continent = continent
self.credentials['authzid'] = user self.credentials['authzid'] = user
if server_address is None:
self.server_address = ('msg-{}.ecouser.net'.format(self.continent), '5223')
else:
self.server_address = server_address
self.add_event_handler("session_start", self.session_start) self.add_event_handler("session_start", self.session_start)
self.ctl_subscribers = [] self.ctl_subscribers = []
self.ready_flag = Event() self.ready_flag = Event()
@@ -212,7 +215,6 @@ class EcoVacsXMPP(ClientXMPP):
self.register_handler(Callback("general", self.register_handler(Callback("general",
MatchXPath('{jabber:client}iq/{com:ctl}query/{com:ctl}'), MatchXPath('{jabber:client}iq/{com:ctl}query/{com:ctl}'),
self._handle_ctl)) self._handle_ctl))
self.ready_flag.set() self.ready_flag.set()
def subscribe_to_ctls(self, function): def subscribe_to_ctls(self, function):
@@ -262,7 +264,7 @@ class EcoVacsXMPP(ClientXMPP):
q.send() q.send()
def connect_and_wait_until_ready(self): def connect_and_wait_until_ready(self):
self.connect(('msg-{}.ecouser.net'.format(self.continent), '5223')) self.connect(self.server_address)
self.process() self.process()
self.wait_until_ready() self.wait_until_ready()