bot_text_messages_handler()   A
last analyzed

Complexity

Conditions 3

Size

Total Lines 21
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 21
rs 9.85
c 0
b 0
f 0
cc 3
nop 1
1
# -*- coding:utf-8 -*-
2
"""
3
Telegram bot messages functions
4
"""
5
from loglan_core import WordSelector
6
7
from app.bot.telegram import msg
8
from app.bot.telegram.handlers.commands import (
9
    send_message_by_key,
10
    send_messages_with_words,
11
)
12
from app.engine import async_session_maker
13
14
15
async def bot_text_messages_handler(message: msg) -> None:
16
    """
17
    Handle user's text messages
18
    :param message:
19
    :return: None
20
    """
21
22
    user_request = message.text.removeprefix("/")
23
    async with async_session_maker() as session:
24
25
        words = await (
26
            WordSelector()
27
            .by_name(user_request)
28
            .with_relationships()
29
            .all_async(session, unique=True)
30
        )
31
32
    if words:
33
        await send_messages_with_words(message, words)
34
    else:
35
        await send_message_by_key(user_request, message.chat.id)
36