You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
Smarty
42 lines
1.2 KiB
Smarty
#!/usr/bin/env python2
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import ConfigParser
|
|
from hermes_python.hermes import Hermes
|
|
from hermes_python.ffi.utils import MqttOptions
|
|
from hermes_python.ontology import *
|
|
import io
|
|
|
|
CONFIGURATION_ENCODING_FORMAT = "utf-8"
|
|
CONFIG_INI = "config.ini"
|
|
|
|
class SnipsConfigParser(ConfigParser.SafeConfigParser):
|
|
def to_dict(self):
|
|
return {section : {option_name : option for option_name, option in self.items(section)} for section in self.sections()}
|
|
|
|
|
|
def read_configuration_file(configuration_file):
|
|
try:
|
|
with io.open(configuration_file, encoding=CONFIGURATION_ENCODING_FORMAT) as f:
|
|
conf_parser = SnipsConfigParser()
|
|
conf_parser.readfp(f)
|
|
return conf_parser.to_dict()
|
|
except (IOError, ConfigParser.Error) as e:
|
|
return dict()
|
|
|
|
def subscribe_intent_callback(hermes, intentMessage):
|
|
conf = read_configuration_file(CONFIG_INI)
|
|
action_wrapper(hermes, intentMessage, conf)
|
|
|
|
|
|
def action_wrapper(hermes, intentMessage, conf):
|
|
{{#each action_code as |a|}}{{a}}
|
|
{{/each}}
|
|
|
|
|
|
if __name__ == "__main__":
|
|
mqtt_opts = MqttOptions()
|
|
with Hermes(mqtt_options=mqtt_opts) as h:
|
|
h.subscribe_intent("{{intent_id}}", subscribe_intent_callback) \
|
|
.start()
|