TriggerLauncher.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. import logging
  2. from kalliope.core import Utils
  3. logging.basicConfig()
  4. logger = logging.getLogger("kalliope")
  5. class TriggerLauncher(object):
  6. def __init__(self):
  7. pass
  8. @staticmethod
  9. def get_trigger(settings, callback):
  10. """
  11. Start a trigger module
  12. :param trigger: trigger object to instantiate
  13. :type trigger: Trigger
  14. :param callback: Callback function to call when the trigger catch the magic word
  15. :return: The instance of Trigger
  16. :rtype: Trigger
  17. """
  18. trigger_instance = None
  19. for trigger in settings.triggers:
  20. if trigger.name == settings.default_trigger_name:
  21. # add the callback method to parameters
  22. trigger.parameters["callback"] = callback
  23. logger.debug(
  24. "TriggerLauncher: Start trigger %s with parameters: %s" % (trigger.name, trigger.parameters))
  25. trigger_instance = Utils.get_dynamic_class_instantiation(package_name="trigger",
  26. module_name=trigger.name,
  27. parameters=trigger.parameters)
  28. break
  29. return trigger_instance