version-0.2.0

This commit is contained in:
2024-01-06 14:25:35 +03:00
parent bc05b93c47
commit 908529b5bb
26 changed files with 185 additions and 153 deletions

56
handlers/send_button.py Normal file
View File

@@ -0,0 +1,56 @@
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)