Spaces:
Build error
Build error
File size: 2,047 Bytes
0827183 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# 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
|