welcomecenterbot/bot/handlers/handle_default.py

47 lines
1.8 KiB
Python
Raw Normal View History

2023-09-11 20:21:55 +00:00
from api import send_message, delete_message, get_chat_administrators
from storage import Profile, storage
from handlers.send_button import show_request_msg
2023-09-18 07:50:48 +00:00
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
2023-04-23 16:54:58 +00:00
2023-09-11 20:04:53 +00:00
async def handle_default(msg):
2023-09-18 07:50:48 +00:00
logger.info(f"default handler for all messages {msg}")
2023-09-11 20:04:53 +00:00
chat_id = str(msg["chat"]["id"])
from_id = str(msg["from"]["id"])
2023-04-23 16:54:58 +00:00
sender = Profile.get(from_id, msg)
2023-09-18 07:26:24 +00:00
text = msg.get("text", "")
if text.startswith("/my"):
2023-04-23 16:54:58 +00:00
# команда в групповом чате
2023-09-18 07:50:48 +00:00
logger.info("remove some messages in group chat")
2023-04-23 16:54:58 +00:00
# удалить сообщение с командой /my
2023-09-11 20:04:53 +00:00
r = await delete_message(chat_id, msg["message_id"])
2023-09-18 07:50:48 +00:00
logger.debug(r)
2023-04-23 16:54:58 +00:00
# показать новое сообщение с кнопкой
2023-09-11 17:02:29 +00:00
# для дополнительного поручения
2023-09-18 07:26:24 +00:00
await show_request_msg(msg)
2023-04-23 16:54:58 +00:00
else:
# любое другое сообщение
2023-09-11 20:04:53 +00:00
if len(sender["parents"]) == 0:
2023-04-23 16:54:58 +00:00
# владелец чата автоматически ручается
2023-09-18 07:50:48 +00:00
logger.info(f"setting owner as parent for {from_id}")
2023-09-11 20:04:53 +00:00
r = await get_chat_administrators(chat_id)
2023-09-18 07:50:48 +00:00
logger.debug(r)
2023-09-11 20:04:53 +00:00
owner_id = ""
for admin in r["result"]:
if admin["status"] == "creator":
owner_id = admin["user"]["id"]
2023-04-24 06:14:35 +00:00
break
2023-04-28 12:24:14 +00:00
if owner_id:
2023-09-11 20:04:53 +00:00
sender["parents"].append(str(owner_id))
2023-04-28 12:24:14 +00:00
# обновляем профиль владельца
owner = Profile.get(owner_id)
2023-09-11 20:04:53 +00:00
owner["children"].append(str(from_id))
2023-04-28 12:24:14 +00:00
Profile.save(owner)
2023-04-23 16:54:58 +00:00
# сохранить профиль отправителя
2023-09-11 20:04:53 +00:00
Profile.save(sender)