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)