welcomecenterbot/bot/handlers/handle_startup.py
2023-09-18 10:50:48 +03:00

39 lines
1.6 KiB
Python

from storage import scan, Profile
from api import approve_chat_join_request, kick_member, send_message
from handlers.callback_vouch import update_button
from utils.mention import userdata_extract
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
# устанавливает соответствие данных
async def handle_startup(msg):
btn_ids, _btns = scan(match="btn-*", count=100)
for btnid in btn_ids:
# для каждой ранее созданной кнопки
btnid_str = btnid.decode("utf-8").replace("btn-", "")
parts = btnid_str.split("-")
logger.debug(parts)
_, chat_id, member_id = parts
chat_id = "-" + chat_id
newcomer = Profile.get(member_id)
if len(newcomer.get("parents", [])) > 0:
# принять заявку если её нажимали
r = await approve_chat_join_request(chat_id, member_id)
logger.debug(r)
await update_button(chat_id, member_id)
elif len(newcomer.get("parents", [])) == 0:
r = await kick_member(chat_id, member_id)
logger.debug(r)
if r["ok"]:
_, identity, username = userdata_extract(newcomer["result"]["user"])
lang = msg["from_user"]["lang"]
body = (
"Участник %s%s был удалён"
if lang == "ru"
else "Member %s%s was deleted"
) % (identity, username)
r = await send_message(chat_id, body)
logger.debug(r)