Total Complexity | 6 |
Total Lines | 37 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | from __future__ import annotations |
||
|
|||
2 | |||
3 | from typing import TYPE_CHECKING |
||
4 | from typing import Union |
||
5 | |||
6 | from ..objects.message.embed import Embed |
||
7 | from ..objects.message.file import File |
||
8 | from ..objects.message.message import Message |
||
9 | from ..objects.app.interaction_flags import InteractionFlags |
||
10 | |||
11 | PILLOW_IMPORT = True |
||
12 | |||
13 | try: |
||
14 | from PIL.Image import Image |
||
15 | except (ModuleNotFoundError, ImportError): |
||
16 | PILLOW_IMPORT = False |
||
17 | |||
18 | if TYPE_CHECKING: |
||
19 | from pincer import Client |
||
20 | |||
21 | |||
22 | def convert_message( |
||
23 | client: Client, |
||
24 | message: Union[Embed, Message, str] |
||
25 | ) -> Message: |
||
26 | """Converts a message to a Message object""" |
||
27 | if isinstance(message, Embed): |
||
28 | message = Message(embeds=[message]) |
||
29 | elif PILLOW_IMPORT and isinstance(message, (File, Image)): |
||
30 | message = Message(attachments=[message]) |
||
31 | elif not isinstance(message, Message): |
||
32 | message = Message(message) if message else Message( |
||
33 | client.received_message, |
||
34 | flags=InteractionFlags.EPHEMERAL |
||
35 | ) |
||
36 | return message |
||
37 |