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