start.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import asyncio
  2. from aiogram import types, Dispatcher
  3. from bot.keyboards import main_kb, register_kb
  4. from bot import database
  5. from bot import sql
  6. from aiogram.dispatcher.storage import FSMContext
  7. from bot.states import SendBugState, MessageToAll
  8. from bot.notifications import new_bug
  9. # @dp.message_handler(commands=['start'])
  10. async def start_cmd(message: types.Message):
  11. db = database.Database()
  12. if message.chat.type == 'private':
  13. if not db.sql_fetchone(sql.check_id(message.from_user.id)):
  14. await message.answer(f"🤖Вас приветствует бот 405 кабинета🤖\n"
  15. f"\n"
  16. f"Для доступа к функционалу необходимо зарегистрироваться\n"
  17. f"", reply_markup=register_kb())
  18. elif db.sql_fetchone(f'select approved from user_table where tg_id ={message.from_user.id}') == '0':
  19. msg = await message.answer("Аккаунт еще не подтвержден")
  20. await asyncio.sleep(5)
  21. await msg.delete()
  22. else:
  23. await message.answer(f"🤖Вас приветствует бот 405 кабинета🤖\n"
  24. f"Я помогу Вам запланировать мероприятие.\n\n"
  25. f"Вот что можно сделать:\n"
  26. f"<b>Запланировать мероприятие</b>\n"
  27. f"Планирование мероприятия\n\n"
  28. f"<b>Мои события</b>\n"
  29. f"События запланированные Вами\n\n"
  30. f"<b>Все события</b>\n"
  31. f"События всех пользователей\n"
  32. f"с выборкой по интервалам\n\n"
  33. f"Если есть пожелания или замечания\n"
  34. f"Можете обратиться к @FeldwebelWillman\n"
  35. f"Или воспользовтаься обратной связью /feedback",
  36. reply_markup=main_kb())
  37. # else:
  38. # await message.answer(f"Если Вы хотите , запланировать мероприятие в 405"
  39. # f"напишите лично @TTITTechSuppBot")
  40. async def stop_cmd(message: types.Message):
  41. if message.from_user.id == 338836490:
  42. await message.answer("Остановка")
  43. else:
  44. await message.answer("Я слушаюсь только создателя")
  45. async def send_report(message: types.Message):
  46. await message.delete()
  47. await SendBugState.send_bug.set()
  48. msg = await message.answer("Опишите проблему")
  49. await asyncio.sleep(60)
  50. await msg.delete()
  51. async def get_report(message: types.Message, state: FSMContext):
  52. await state.update_data(bug=message.text)
  53. await state.update_data(from_user=message.from_user.username)
  54. data = await state.get_data()
  55. await state.finish()
  56. await new_bug(data)
  57. await message.delete()
  58. async def broadcast_cmd(message: types.Message):
  59. await message.delete()
  60. await MessageToAll.send_message.set()
  61. msg = await message.answer("Введите сооьщение которое будет отправленно всем пользователям")
  62. await asyncio.sleep(5)
  63. await msg.delete()
  64. async def get_message(message: types.Message, state: FSMContext):
  65. await state.update_data(bug=message.text)
  66. await state.update_data(from_user=message.from_user.username)
  67. data = await state.get_data()
  68. await state.finish()
  69. await message_to_all(data)
  70. await message.delete()
  71. def main_register(dp: Dispatcher):
  72. dp.register_message_handler(start_cmd, commands=['start', 'help'])
  73. dp.register_message_handler(stop_cmd, commands=['stop'])
  74. dp.register_message_handler(send_report, commands=['feedback'])
  75. dp.register_message_handler(get_report, state=SendBugState.send_bug)
  76. dp.register_message_handler(broadcast_cmd, commands=['broadcast'])
  77. dp.register_message_handler(get_message, state=MessageToAll.send_message)