It's version 0.5
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
from aiogram import Dispatcher, Bot
|
||||
from aiogram.types import Message
|
||||
from aiogram.filters import Command
|
||||
from aiogram.fsm.state import State, StatesGroup
|
||||
from aiogram.fsm.context import FSMContext
|
||||
import logging
|
||||
from .DB import get_tasks, add_task, delete_tasks_by_who
|
||||
from storage.message_storage import save_message
|
||||
from datetime import datetime
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class TodoForm(StatesGroup):
|
||||
waiting_for_task = State()
|
||||
|
||||
def register_handlers(dp: Dispatcher, state, bot: Bot):
|
||||
# /todos — начать добавление задачи
|
||||
@dp.message(Command("todos"))
|
||||
async def cmd_todos(message: Message, state: FSMContext):
|
||||
save_message(message.chat.id, message.message_id) # сохраняем сообщение
|
||||
await message.answer("Введите текст задачи:")
|
||||
await state.set_state(TodoForm.waiting_for_task)
|
||||
|
||||
# обработка текста задачи
|
||||
@dp.message(TodoForm.waiting_for_task)
|
||||
async def process_task(message: Message, state: FSMContext):
|
||||
save_message(message.chat.id, message.message_id) # сохраняем сообщение
|
||||
task_text = message.text
|
||||
user_id = message.from_user.id
|
||||
try:
|
||||
created_at = datetime.now().strftime("%d.%m.%Y %H:%M:%S")
|
||||
add_task(user_id, task_text, created_at)
|
||||
reply = await message.answer(f"Задача сохранена ✅\n{task_text}")
|
||||
save_message(reply.chat.id, reply.message_id) # сохраняем ответ бота
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при добавлении задачи: {e}")
|
||||
reply = await message.answer("Не удалось сохранить задачу ❌")
|
||||
save_message(reply.chat.id, reply.message_id)
|
||||
finally:
|
||||
await state.clear()
|
||||
|
||||
# /todor — показать список задач
|
||||
@dp.message(Command("todor"))
|
||||
async def cmd_todor(message: Message):
|
||||
save_message(message.chat.id, message.message_id) # сохраняем сообщение
|
||||
user_id = message.from_user.id
|
||||
try:
|
||||
tasks = get_tasks(user_id)
|
||||
if not tasks:
|
||||
reply = await message.answer("У вас пока нет задач 📝")
|
||||
save_message(reply.chat.id, reply.message_id)
|
||||
return
|
||||
|
||||
text = "Ваши задачи:\n\n"
|
||||
for tid, task, created_at in tasks:
|
||||
text += f"• {task} (создана {created_at})\n"
|
||||
reply = await message.answer(text)
|
||||
save_message(reply.chat.id, reply.message_id)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при чтении задач: {e}")
|
||||
reply = await message.answer("Не удалось получить список задач ❌")
|
||||
save_message(reply.chat.id, reply.message_id)
|
||||
|
||||
@dp.message(Command("todod"))
|
||||
async def del_todo(message: Message):
|
||||
delete_tasks_by_who(message.from_user.id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user