Passed
Pull Request — main (#158)
by
unknown
01:27
created

pincer.utils.convert_message.convert_message()   B

Complexity

Conditions 6

Size

Total Lines 15
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 15
rs 8.6666
c 0
b 0
f 0
cc 6
nop 2
1
from __future__ import annotations
0 ignored issues
show
introduced by
Missing module docstring
Loading history...
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