from telegram import Update
from telegram.ext import CommandHandler, MessageHandler, filters, CallbackContext
from utils.logger import logger
from utils.user_data import validate_input, get_user_info, format_names
from utils.database import USER_DATA, save_database
from handlers.user_handlers import user_keyboard
from utils.message_sender import send_message
from utils.formating import format_names
async def show_names(update: Update, context: CallbackContext) -> None: # handlers/handlers.py
try:
valid_text = validate_input(update.callback_query.message.text)
global USER_DATA
user = await get_user_info(update, context)
user_id = user["id"]
# Проверяем, есть ли данные для пользователя
if user_id not in USER_DATA:
logger.info(f"id:{user_id}, name:{user}")
logger.info(f"{USER_DATA}")
await send_message(update, context, f"{user['name']}, вы еще не сохранили ни одного имени")
await send_message (update,context,"Выберите действие:", reply_markup=user_keyboard)
return
# Получаем данные пользователя
user_info = USER_DATA[user_id]
# Формируем сообщение
message = ""
for typen in ["О здравии","За упокой"]:
if typen in user_info:
#message += formating_names(user_)
message += f"{typen}:\n{format_names(user_info[typen],'')}\n\n"
# Комментарий
if "Комментарий" in user_info and user_info["Комментарий"]:
if message: # Если уже есть текст, добавляем разделитель
message += "\n"
message += f"Комментарий: {user_info['Комментарий']}"
# Если сообщение пустое (все списки пустые), выводим специальное сообщение
if not message:
await send_message (update,context,f"{user_name}, у вас нет сохраненных данных")
return
# Отправляем сформированное сообщение
await send_message(update, context, message.strip())
except ValueError as e:
await send_message(update, context, f"Ошибка: {e}")
return
await send_message (update,context,"Выберите действие:", reply_markup=user_keyboard)
async def clear_names(update: Update, context: CallbackContext) -> None: #handlers/handlers.py
global USER_DATA
try:
user_info = await get_user_info(update, context)
user_id = user_info["id"]
user_name = user_info["name"]
if user_id not in USER_DATA:
await send_message(update, context, f"{user_name}, у вас нет сохраненных данных")
return
if 'type' in context.user_data:
typen = context.user_data['typen']
if typen in USER_DATA[user_id]:
del USER_DATA[user_id][typen]
await send_message(update, context, f"Записка {typen} очищена")
else:
USER_DATA[user_id] = {}
await send_message(update, context, f"Записки удалены")
save_database(USER_DATA)
TEMP_UDATA = USER_DATA[user_id]
context.user_data["TEMP_UDATA"]=TEMP_UDATA
except Exception as e:
logger.error(f"Ошибка при очистке данных: {e}")
await send_message(update, context, "Произошла ошибка при удалении данных")