46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
from handlers.handle_feedback import handle_feedback, handle_answer
|
||
from handlers.handle_members_change import handle_join, handle_left
|
||
from handlers.handle_default import handle_default
|
||
from handlers.command_my import handle_command_my
|
||
from handlers.command_graph import handle_command_graph
|
||
from handlers.command_ask import handle_command_ask
|
||
from config import FEEDBACK_CHAT_ID
|
||
|
||
import logging
|
||
logger = logging.getLogger(__name__)
|
||
logging.basicConfig(level=logging.INFO)
|
||
|
||
async def handle_routing(msg, state):
|
||
cid = msg["chat"]["id"]
|
||
uid = msg["from"]["id"]
|
||
if cid == uid:
|
||
# сообщения в личке с ботом
|
||
logger.info("private chat message")
|
||
if "text" in msg:
|
||
text = msg["text"]
|
||
if text.startswith("/my"):
|
||
await handle_command_my(msg, state)
|
||
elif text.startswith("/graph"):
|
||
await handle_command_graph(msg)
|
||
else:
|
||
await handle_feedback(msg, state)
|
||
|
||
elif str(cid) == FEEDBACK_CHAT_ID:
|
||
# сообщения из группы обратной связи
|
||
logger.info("feedback chat message")
|
||
logger.debug(msg)
|
||
if msg.get("reply_to_message"):
|
||
await handle_answer(msg)
|
||
elif msg["text"].startswith("/ask"):
|
||
await handle_command_ask(msg)
|
||
|
||
else:
|
||
# сообщения из всех остальных групп
|
||
logger.info(f"group {cid} chat message")
|
||
if "text" in msg:
|
||
await handle_default(msg)
|
||
elif "new_chat_member" in msg:
|
||
await handle_join(msg)
|
||
elif "left_chat_member" in msg:
|
||
await handle_left(msg)
|