utils.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from .keyboards.inline import keyboards_inline
  2. import db.utils as db_utils
  3. from . import message_texts
  4. async def display_set_of_new_task(state, message) -> None:
  5. """ Отображаем набор новых задач """
  6. def get_list_of_tasks_in_form_text(list_of_tasks) -> str:
  7. """ Получаем список задач для отображения """
  8. final_text = ''
  9. for task in list_of_tasks:
  10. text = message_texts.TEXT_TO_DISPLAY_TASK.format(
  11. task['name'],
  12. task['number'],
  13. task['topics'],
  14. task['complexity'],
  15. task['number_of_solutions'],
  16. task['link'],
  17. ) + '\n'
  18. final_text += text
  19. return final_text
  20. # ВЫШЕ ОПРЕДЕЛЕНИЕ ФУНКЦИЙ
  21. if not 'id_of_last_tasks' in await state.get_data():
  22. await state.update_data(id_of_last_tasks='')
  23. user_data = await state.get_data()
  24. id_of_new_tasks, new_set_of_tasks = db_utils.DbUtils().get_set_of_new_tasks(
  25. user_data
  26. )
  27. if new_set_of_tasks:
  28. text_for_message = get_list_of_tasks_in_form_text(new_set_of_tasks)
  29. else:
  30. text_for_message = message_texts.TEXT_FOR_NOTIFICATION_OF_ABSENCE_OF_TASKS
  31. await state.update_data(id_of_last_tasks=id_of_new_tasks)
  32. await message.answer(
  33. text=text_for_message,
  34. reply_markup=keyboards_inline.get_keyboard_fro_found_task_list()
  35. )