Spaces:
Build error
Build error
Validify-testbot-1
/
botbuilder-python
/libraries
/botbuilder-dialogs
/botbuilder
/dialogs
/prompts
/attachment_prompt.py
| # Copyright (c) Microsoft Corporation. All rights reserved. | |
| # Licensed under the MIT License. | |
| from typing import Callable, Dict | |
| from botbuilder.schema import ActivityTypes | |
| from botbuilder.core import TurnContext | |
| from .prompt import Prompt, PromptValidatorContext | |
| from .prompt_options import PromptOptions | |
| from .prompt_recognizer_result import PromptRecognizerResult | |
| class AttachmentPrompt(Prompt): | |
| """ | |
| Prompts a user to upload attachments like images. | |
| By default the prompt will return to the calling dialog an `[Attachment]` | |
| """ | |
| def __init__( | |
| self, dialog_id: str, validator: Callable[[PromptValidatorContext], bool] = None | |
| ): | |
| super().__init__(dialog_id, validator) | |
| async def on_prompt( | |
| self, | |
| turn_context: TurnContext, | |
| state: Dict[str, object], | |
| options: PromptOptions, | |
| is_retry: bool, | |
| ): | |
| if not turn_context: | |
| raise TypeError("AttachmentPrompt.on_prompt(): TurnContext cannot be None.") | |
| if not isinstance(options, PromptOptions): | |
| raise TypeError( | |
| "AttachmentPrompt.on_prompt(): PromptOptions are required for Attachment Prompt dialogs." | |
| ) | |
| if is_retry and options.retry_prompt: | |
| await turn_context.send_activity(options.retry_prompt) | |
| elif options.prompt: | |
| await turn_context.send_activity(options.prompt) | |
| async def on_recognize( | |
| self, | |
| turn_context: TurnContext, | |
| state: Dict[str, object], | |
| options: PromptOptions, | |
| ) -> PromptRecognizerResult: | |
| if not turn_context: | |
| raise TypeError("AttachmentPrompt.on_recognize(): context cannot be None.") | |
| result = PromptRecognizerResult() | |
| if turn_context.activity.type == ActivityTypes.message: | |
| message = turn_context.activity | |
| if isinstance(message.attachments, list) and message.attachments: | |
| result.succeeded = True | |
| result.value = message.attachments | |
| return result | |