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)
|