async def parse(self, event): """Parse a string against all skills. Args: event (String): The string to parsed against all available skills. Returns: tasks (list): Task that tells the skill which best matches the parsed event. """ self.stats["messages_parsed"] = self.stats["messages_parsed"] + 1 tasks = [] tasks.append(self.eventloop.create_task(parse_always(self, event))) tasks.append(self.eventloop.create_task(parse_event_type(self, event))) if isinstance(event, events.Message): _LOGGER.debug(_("Parsing input: %s."), event) unconstrained_skills = await self._constrain_skills( self.skills, event) ranked_skills = await self.get_ranked_skills( unconstrained_skills, event) if ranked_skills: tasks.append( self.eventloop.create_task( self.run_skill( ranked_skills[0]["skill"], ranked_skills[0]["config"], ranked_skills[0]["message"], ))) await asyncio.gather(*tasks) return tasks
async def parse(self, message): """Parse a string against all skills.""" self.stats["messages_parsed"] = self.stats["messages_parsed"] + 1 tasks = [] if message.text.strip() != "": _LOGGER.debug("Parsing input: %s", message.text) tasks.append( self.eventloop.create_task(parse_regex(self, message))) tasks.append( self.eventloop.create_task(parse_always(self, message))) if "parsers" in self.config: _LOGGER.debug("Processing parsers...") parsers = self.config["parsers"] dialogflow = [p for p in parsers if p["name"] == "dialogflow" or p["name"] == "apiai"] # Show deprecation message but parse message # Once it stops working remove this bit apiai = [p for p in parsers if p["name"] == "apiai"] if apiai: _LOGGER.warning("Api.ai is now called Dialogflow. This " "parser will stop working in the future " "please swap: 'name: apiai' for " "'name: dialogflow' in configuration.yaml") _LOGGER.debug("Checking dialogflow...") if len(dialogflow) == 1 and \ ("enabled" not in dialogflow[0] or dialogflow[0]["enabled"] is not False): _LOGGER.debug("Parsing with Dialogflow.") tasks.append( self.eventloop.create_task( parse_dialogflow(self, message, dialogflow[0]))) luisai = [p for p in parsers if p["name"] == "luisai"] _LOGGER.debug("Checking luisai...") if len(luisai) == 1 and \ ("enabled" not in luisai[0] or luisai[0]["enabled"] is not False): _LOGGER.debug("Parsing with luisai.") tasks.append( self.eventloop.create_task( parse_luisai(self, message, luisai[0]))) witai = [p for p in parsers if p["name"] == "witai"] _LOGGER.debug("Checking wit.ai...") if len(witai) == 1 and \ ("enabled" not in witai[0] or witai[0]["enabled"] is not False): _LOGGER.debug("Parsing with witai.") tasks.append( self.eventloop.create_task( parse_witai(self, message, witai[0]))) return tasks
async def parse(self, message): """Parse a string against all skills.""" self.stats["messages_parsed"] = self.stats["messages_parsed"] + 1 tasks = [] if message.text.strip() != "": _LOGGER.debug("Parsing input: " + message.text) tasks.append(self.eventloop.create_task(parse_regex(self, message))) tasks.append( self.eventloop.create_task(parse_always(self, message))) if "parsers" in self.config: _LOGGER.debug("Processing parsers") parsers = self.config["parsers"] dialogflow = [p for p in parsers if p["name"] == "dialogflow"] _LOGGER.debug("Checking dialogflow") if len(dialogflow) == 1 and \ ("enabled" not in dialogflow[0] or dialogflow[0]["enabled"] is not False): _LOGGER.debug("Parsing with Dialogflow") tasks.append( self.eventloop.create_task( parse_dialogflow(self, message, dialogflow[0]))) luisai = [p for p in parsers if p["name"] == "luisai"] _LOGGER.debug("Checking luisai") if len(luisai) == 1 and \ ("enabled" not in luisai[0] or luisai[0]["enabled"] is not False): _LOGGER.debug("Parsing with luisai") tasks.append( self.eventloop.create_task( parse_luisai(self, message, luisai[0]))) witai = [p for p in parsers if p["name"] == "witai"] _LOGGER.debug("Checking wit.ai") if len(witai) == 1 and \ ("enabled" not in witai[0] or witai[0]["enabled"] is not False): _LOGGER.debug("Parsing with witai") tasks.append( self.eventloop.create_task( parse_witai(self, message, witai[0]))) return tasks
async def parse(self, message): """Parse a string against all skills.""" self.stats["messages_parsed"] = self.stats["messages_parsed"] + 1 tasks = [] if message.text.strip() != "": _LOGGER.debug("Parsing input: %s", message.text) tasks.append( self.eventloop.create_task(parse_always(self, message))) ranked_skills = await self.get_ranked_skills(message) if ranked_skills: tasks.append( self.eventloop.create_task( self.run_skill(ranked_skills[0]["skill"], ranked_skills[0]["config"], message))) return tasks
async def parse(self, event): """Parse a string against all skills.""" self.stats["messages_parsed"] = self.stats["messages_parsed"] + 1 tasks = [] if isinstance(event, events.Event): _LOGGER.debug(_("Parsing input: %s"), event) tasks.append(self.eventloop.create_task(parse_always(self, event))) unconstrained_skills = await self._constrain_skills( self.skills, event) ranked_skills = await self.get_ranked_skills( unconstrained_skills, event) if ranked_skills: tasks.append( self.eventloop.create_task( self.run_skill(ranked_skills[0]["skill"], ranked_skills[0]["config"], event))) return tasks
async def parse(self, message): """Parse a string against all skills.""" self.stats["messages_parsed"] = self.stats["messages_parsed"] + 1 tasks = [] if message is not None: if str(message.text).strip(): _LOGGER.debug(_("Parsing input: %s"), message.text) tasks.append( self.eventloop.create_task(parse_always(self, message))) unconstrained_skills = await self._constrain_skills( self.skills, message) ranked_skills = await self.get_ranked_skills( unconstrained_skills, message) if ranked_skills: tasks.append( self.eventloop.create_task( self.run_skill(ranked_skills[0]["skill"], ranked_skills[0]["config"], ranked_skills[0]["message"]))) return tasks
async def parse(self, message): """Parse a string against all skills.""" self.stats["messages_parsed"] = self.stats["messages_parsed"] + 1 tasks = [] if message is not None: if str(message.text).strip(): _LOGGER.debug(_("Parsing input: %s"), message.text) tasks.append( self.eventloop.create_task(parse_always(self, message))) unconstrained_skills = await self._constrain_skills( self.skills, message) ranked_skills = await self.get_ranked_skills( unconstrained_skills, message) if ranked_skills: tasks.append( self.eventloop.create_task( self.run_skill(ranked_skills[0]["skill"], ranked_skills[0]["config"], ranked_skills[0]["message"]))) return tasks