from bot.api import send_message, send_photo, get_userphotos, delete_message from utils.mention import mention, userdata_extract from storage import storage import logging logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) async def show_request_msg(msg, auto = False): logger.info("showing request with button") chat_id = str(msg["chat"]["id"]) from_id = str(msg["from"]["id"]) lang = msg["from"].get("language_code", "ru") reply_markup = { "inline_keyboard": [[{"text": "❤️", "callback_data": "vouch" + from_id}]] } newcomer_message = ( "Нажмите, чтобы одобрить заявку " if lang == "ru" else "There is a newcomer, press the button if you are connected with " ) r = await get_userphotos(user_id=from_id) logger.debug(r) if r["ok"] and r["result"]["total_count"] > 0: logger.info("showing button with photo") file_id = r["result"]["photos"][0][0]["file_id"] _uid, identity, username = userdata_extract(msg["from"]) r = await send_photo( chat_id, file_id, caption=newcomer_message + f"{identity}{username}", reply_to=msg.get("message_id", ""), reply_markup=reply_markup, ) else: logger.info("showing button without photo") r = await send_message( chat_id, newcomer_message + mention(msg["from"]), reply_to=msg.get("message_id", ""), reply_markup=reply_markup, ) logger.debug(r) if "message_id" in r: # удаляем предыдущее сообщение с кнопкой в этом чате prevbtn = storage.get(f"btn-{chat_id}-{from_id}") if prevbtn: r = await delete_message(chat_id, prevbtn) logger.debug(r) # создаём новое newbtn = r["message_id"] logger.info(f"button message id: {newbtn}") storage.set(f"btn-{chat_id}-{from_id}", newbtn)