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, "Произошла ошибка при удалении данных")