Skip to content

Commit

Permalink
Merge pull request #47 from jacobtomlinson/refactor-start-connectors
Browse files Browse the repository at this point in the history
Refactor the start connectors function to remove duplicate code
  • Loading branch information
jacobtomlinson committed Sep 2, 2016
2 parents 5360dd2 + 382305a commit ff006da
Showing 1 changed file with 14 additions and 20 deletions.
34 changes: 14 additions & 20 deletions opsdroid/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,32 +52,26 @@ def critical(self, error, code):

def start_connectors(self, connectors):
"""Start the connectors."""
if len(connectors) == 0:
self.critical("All connectors failed to load", 1)
elif len(connectors) == 1:
for name, cls in connectors[0]["module"].__dict__.items():
for connector_module in connectors:
for _, cls in connector_module["module"].__dict__.items():
if isinstance(cls, type) and \
issubclass(cls, Connector) and\
cls is not Connector:
logging.debug("Adding connector: " + name)
connectors[0]["config"]["bot-name"] = self.bot_name
connector = cls(connectors[0]["config"])
connector_module["config"]["bot-name"] = self.bot_name
connector = cls(connector_module["config"])
self.connectors.append(connector)
connector.connect(self)
else:
for connector_module in connectors:
for name, cls in connector_module["module"].__dict__.items():
if isinstance(cls, type) and \
issubclass(cls, Connector) and\
cls is not Connector:
connector_module["config"]["bot-name"] = self.bot_name
connector = cls(connector_module["config"])
self.connectors.append(connector)
job = Process(target=connector.connect, args=(self,))
job.start()
self.connector_jobs.append(job)

if len(self.connectors) == 1:
self.connectors[0].connect(self)
elif len(connectors) > 1:
for connector in self.connectors:
job = Process(target=connector.connect, args=(self,))
job.start()
self.connector_jobs.append(job)
for job in self.connector_jobs:
job.join()
else:
self.critical("All connectors failed to load", 1)

def start_databases(self, databases):
"""Start the databases."""
Expand Down

0 comments on commit ff006da

Please sign in to comment.