diff --git a/botgen/conversation.py b/botgen/conversation.py index 24e5e28..c2dc1ec 100644 --- a/botgen/conversation.py +++ b/botgen/conversation.py @@ -9,11 +9,13 @@ from typing import Union from botbuilder.core import MessageFactory +from botbuilder.dialogs import ActivityPrompt from botbuilder.dialogs import Dialog from botbuilder.dialogs import DialogContext from botbuilder.dialogs import DialogReason from botbuilder.dialogs import DialogTurnResult from botbuilder.dialogs import DialogTurnStatus +from botbuilder.dialogs import PromptValidatorContext from botbuilder.schema import ActionTypes from botbuilder.schema import Activity from botbuilder.schema import ActivityTypes @@ -76,6 +78,15 @@ def __init__(self, dialog_id: str, controller): self.script: Dict[str, List] = {} self._controller = controller + activity_prompt = ActivityPrompt(self._prompt, self._prompt_validator) + self._controller.dialog_set.add(activity_prompt) + + async def _prompt_validator(self, prompt: PromptValidatorContext): + """ + Runs when a new activity is added + """ + return prompt.recognized.succeeded == True + def add_message(self, message: BotMessageTemplate | str, thread_name: str = None): """ Adds a message template to a specific thread. @@ -196,7 +207,7 @@ def add_question( option["type"] = "string" self.script[thread_name].append(message) - self.script[thread_name].append({"action": "next"}) + self.script[thread_name].append(BotMessageTemplate(action="next")) return self def ask(