47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
from bot.api import send_message, delete_message, get_chat_administrators
|
||
from handlers.command_my import handle_command_my
|
||
from storage import Profile, storage
|
||
from handlers.send_button import show_request_msg
|
||
import logging
|
||
logger = logging.getLogger(__name__)
|
||
logging.basicConfig(level=logging.INFO)
|
||
|
||
|
||
async def handle_default(msg, state):
|
||
logger.info(f"default handler for all messages {msg}")
|
||
chat_id = str(msg["chat"]["id"])
|
||
from_id = str(msg["from"]["id"])
|
||
sender = Profile.get(from_id, msg)
|
||
text = msg.get("text", "")
|
||
if text.startswith("/my"):
|
||
# команда в групповом чате
|
||
logger.info("remove some messages in group chat")
|
||
|
||
# удалить сообщение с командой /my
|
||
r = await delete_message(chat_id, msg["message_id"])
|
||
logger.debug(r)
|
||
|
||
# показать связи в личке
|
||
await handle_command_my(msg, state)
|
||
else:
|
||
# любое другое сообщение
|
||
if len(sender["parents"]) == 0:
|
||
# владелец чата автоматически ручается
|
||
logger.info(f"setting owner as parent for {from_id}")
|
||
r = await get_chat_administrators(chat_id)
|
||
logger.debug(r)
|
||
owner_id = ""
|
||
for admin in r["result"]:
|
||
if admin["status"] == "creator":
|
||
owner_id = admin["user"]["id"]
|
||
break
|
||
if owner_id:
|
||
sender["parents"].append(str(owner_id))
|
||
# обновляем профиль владельца
|
||
owner = Profile.get(owner_id)
|
||
owner["children"].append(str(from_id))
|
||
Profile.save(owner)
|
||
|
||
# сохранить профиль отправителя
|
||
Profile.save(sender)
|