events.py 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from aiogram import types, Dispatcher
  2. from bot import database
  3. from bot.keyboards import register_kb, make_calendar, events_range_kb
  4. from bot.functions import make_date, date_range, beauty_all_events
  5. async def make_event(message: types.message):
  6. db = database.Database()
  7. if not db.sql_simple_check(f"select tg_id from user_table where tg_id ={message.from_user.id}") or \
  8. not db.sql_simple_check(f"select approved from user_table where tg_id={message.from_user.id}"):
  9. await message.delete()
  10. await message.answer("Команды станут доступны после регистрации", reply_markup=register_kb)
  11. else:
  12. if message.text == "🎯 Запланировать мероприятие":
  13. await message.delete()
  14. await message.answer(f"выберите дату чтобы увидеть список мероприятий\n\n"
  15. f"Так же календарь мероприятий можно посмотреть в "
  16. f"<a href=moodle.tomtit.tomsk.ru>Moodle</a>\n\n"
  17. f"Сегодняшняя дата <b>{make_date()}</b>", reply_markup=make_calendar())
  18. async def select_date(call: types.CallbackQuery):
  19. await call.message.answer(call.data)
  20. # TODO: Планирование по дате
  21. async def my_events(message: types.Message):
  22. db = database.Database()
  23. if not db.sql_simple_check(sql=f"select tg_id from user_table where tg_id ={message.from_user.id}") or \
  24. not db.sql_simple_check(sql=f"select approved from user_table where tg_id={message.from_user.id}"):
  25. await message.delete()
  26. await message.answer("Команды станут доступны после регистрации", reply_markup=register_kb)
  27. else:
  28. events = db.sql_parse_user_events(
  29. f"select description,`dat` from events_table WHERE owner = {message.from_user.id}")
  30. await message.answer("Список событий которые Вы запланировали")
  31. for event in events:
  32. await message.answer(event)
  33. # await message.answer(beauty_all_events(event))
  34. async def all_events(message: types.Message):
  35. db = database.Database()
  36. if not db.sql_simple_check(sql=f"select tg_id from user_table where tg_id ={message.from_user.id}") or \
  37. not db.sql_simple_check(sql=f"select approved from user_table where tg_id={message.from_user.id}"):
  38. await message.delete()
  39. await message.answer("Команды станут доступны после регистрации", reply_markup=register_kb)
  40. else:
  41. await message.answer("Укажите диапазон дат или выберите кнопкой", reply_markup=events_range_kb())
  42. async def select_range(call: types.CallbackQuery):
  43. db = database.Database()
  44. if call.data == "today":
  45. await call.message.answer(date_range(call.data))
  46. tim = str(date_range("today"))
  47. tim = "'"+tim+"'"
  48. data1 = db.sql_parse_all_events(sql=f"select events_table.description, user_table.name, events_table.dat "
  49. f"from events_table inner join user_table "
  50. f"on events_table.owner = user_table.tg_id "
  51. f"where events_table.dat={tim}")
  52. msg = ""
  53. for elem in data1:
  54. msg += "".join(beauty_all_events(elem))
  55. await call.message.answer(msg)
  56. if call.data == "week":
  57. await call.message.answer(date_range(call.data))
  58. if call.data == "month":
  59. await call.message.answer(date_range(call.data))
  60. def events_register(dp: Dispatcher):
  61. dp.register_message_handler(make_event, text="🎯 Запланировать мероприятие")
  62. dp.register_message_handler(my_events, text="🗒 Мои события")
  63. dp.register_message_handler(all_events, text="📅 Все события")
  64. dp.register_callback_query_handler(select_date, text_startswith='date_')
  65. dp.register_callback_query_handler(select_range, text=(['month', 'week', 'today']))