all_events.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from aiogram import types, Dispatcher
  2. from bot import database, sql
  3. from bot.functions import beauty_all_events, date_range
  4. from bot.keyboards import events_range_kb
  5. async def all_events(call: types.CallbackQuery):
  6. await call.message.edit_text("Выберете интересующий диапазон", reply_markup=events_range_kb())
  7. async def select_range(call: types.CallbackQuery):
  8. if call.data == "today":
  9. db = database.Database()
  10. time = "'" + str(date_range("today")) + "'"
  11. data = db.sql_fetchall(sql=sql.get_all_events(time))
  12. if len(data) == 0:
  13. await call.message.answer("Сегодня мероприятий нет")
  14. else:
  15. await call.message.answer(beauty_all_events(sorted(data, key=lambda d: d['e_date'])))
  16. if call.data == "week":
  17. db = database.Database()
  18. time = date_range("week").split(" ")
  19. time = "'" + time[0] + "' " + time[1] + " '" + time[2] + "'"
  20. data = db.sql_fetchall(sql=sql.get_range_events(time))
  21. if len(data) == 0:
  22. await call.message.answer("На этой неделе мероприятий нет")
  23. else:
  24. await call.message.answer(beauty_all_events(sorted(data, key=lambda d: d['e_date'])))
  25. if call.data == "month":
  26. db = database.Database()
  27. time = date_range("month").split(" ")
  28. time = "'" + time[0] + "' " + time[1] + " '" + time[2] + "'"
  29. data = db.sql_fetchall(sql=sql.get_range_events(time))
  30. if len(data) == 0:
  31. await call.message.answer("В этом месяце мероприятий нет")
  32. else:
  33. await call.message.answer(beauty_all_events(sorted(data, key=lambda d: d['e_date'])))
  34. def register(dp: Dispatcher):
  35. dp.register_callback_query_handler(all_events, text='all_events')
  36. dp.register_callback_query_handler(select_range, text=(['month', 'week', 'today']))