app.bot.telegram.handlers.messages   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 18
dl 0
loc 36
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A bot_text_messages_handler() 0 21 3
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