51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
from bot.api import send_message, send_photo, get_userphotos
|
||
from bot.utils.mention import mention, userdata_extract
|
||
from bot.storage import storage
|
||
|
||
|
||
async def show_request_msg(msg):
|
||
print("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)
|
||
print(r)
|
||
if r["ok"] and r["result"]["total_count"] > 0:
|
||
print("show button with photo")
|
||
file_id = r["result"]["photos"][0][0]["file_id"]
|
||
_uid, identity, username = userdata_extract(msg["from"])
|
||
r = send_photo(
|
||
chat_id,
|
||
file_id,
|
||
caption=newcomer_message + f"{identity}{username}",
|
||
reply_to=msg.get("message_id", ""),
|
||
reply_markup=reply_markup,
|
||
)
|
||
else:
|
||
print("show button without photo")
|
||
r = send_message(
|
||
chat_id,
|
||
newcomer_message + mention(msg["from"]),
|
||
reply_to=msg.get("message_id", ""),
|
||
reply_markup=reply_markup,
|
||
)
|
||
print(r)
|
||
if "message_id" in r:
|
||
# удаляем предыдущее сообщение с кнопкой в этом чате
|
||
prevbtn = storage.get(f"btn-{chat_id}-{from_id}")
|
||
if prevbtn:
|
||
r = await delete_message(chat_id, prevbtn)
|
||
print(r)
|
||
# создаём новое
|
||
newbtn = r["message_id"]
|
||
print(f"button message id: {newbtn}")
|
||
storage.set(f"btn-{chat_id}-{from_id}", newbtn)
|