manage_users.py 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. from bot import database
  2. from aiogram import types, Dispatcher
  3. from bot.functions import beauty_reg_request
  4. from bot.keyboards import user_manage_kb, register_kb
  5. async def list_users(message: types.Message):
  6. db = database.Database()
  7. if not db.sql_fetchone(sql=f"select tg_id from user_table where tg_id ={message.from_user.id}") or \
  8. not db.sql_fetchone(sql=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. if not db.sql_parse_users("select id,name,phone from user_table where approved = '0'"):
  12. await message.answer('Заявки на регистрацию отсутствуют')
  13. else:
  14. data = db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  15. await message.answer(beauty_reg_request(data[0]),
  16. reply_markup=user_manage_kb(f"accept:{data[0]['ID']}",
  17. f"deny:{data[0]['ID']}",
  18. f"next:0",
  19. f"prev:0",
  20. f"1/{len(data)}"))
  21. async def next_user_page(call: types.CallbackQuery):
  22. db = database.Database()
  23. data = db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  24. index = int(call.data.split(":")[1]) + 1
  25. if not data:
  26. await call.message.answer('Заявки на регистрацию отсутствуют')
  27. if index == len(data):
  28. pass
  29. else:
  30. user_id = data[index]['ID']
  31. await call.message.edit_text(beauty_reg_request(data[index]),
  32. reply_markup=user_manage_kb(f"accept:{user_id}",
  33. f"deny:{user_id}",
  34. f"next:{index}",
  35. f"prev:{index}",
  36. f"{index + 1}/{len(data)}"))
  37. async def prev_user_page(call: types.CallbackQuery):
  38. db = database.Database()
  39. data = db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  40. index = int(call.data.split(":")[1])-1
  41. # print(f"prev_index{index}")
  42. if not data:
  43. await call.message.answer('Заявки на регистрацию отсутствуют')
  44. elif index < 0:
  45. pass
  46. else:
  47. user_id = data[index]['ID']
  48. await call.message.edit_text(beauty_reg_request(data[index]),
  49. reply_markup=user_manage_kb(f"accept:{user_id}",
  50. f"deny:{user_id}",
  51. f"next:{index}",
  52. f"prev:{index}",
  53. f"{index+1}/{len(data)}"))
  54. async def accept_user(call: types.CallbackQuery):
  55. db = database.Database()
  56. data = db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  57. # data = db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  58. index = int(call.message.reply_markup.inline_keyboard[1][1].text.split("/")[0])-1
  59. # print(index)
  60. if len(data) == 1:
  61. user_id = data[index]['ID']
  62. db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  63. await call.message.delete()
  64. await call.message.answer('Заявки на регистрацию отсутствуют')
  65. elif index == 0:
  66. user_id = data[index]['ID']
  67. db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  68. await call.message.edit_text(beauty_reg_request(data[index+1]),
  69. reply_markup=user_manage_kb(f"accept:{user_id}",
  70. f"deny:{user_id}",
  71. f"next:{index + 1}",
  72. f"prev:{index + 1}",
  73. f"{index+1}/{len(data) - 1}"))
  74. elif index == len(data)-1:
  75. user_id = data[index]['ID']
  76. db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  77. await call.message.edit_text(beauty_reg_request(data[index-1]),
  78. reply_markup=user_manage_kb(f"accept:{user_id}",
  79. f"deny:{user_id}",
  80. f"next:{index - 1}",
  81. f"prev:{index - 1}",
  82. f"{index}/{len(data) - 1}"))
  83. else:
  84. user_id = data[index]['ID']
  85. db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  86. await call.message.edit_text(beauty_reg_request(data[index-1]),
  87. reply_markup=user_manage_kb(f"accept:{user_id}",
  88. f"deny:{user_id}",
  89. f"next:{index}",
  90. f"prev:{index - 1}",
  91. f"{index}/{len(data) - 1}"))
  92. # Регистрация команд
  93. def admin_handlers(dp: Dispatcher):
  94. dp.register_message_handler(list_users, text='👤 Управление пользователями')
  95. dp.register_callback_query_handler(next_user_page, text_startswith='next')
  96. dp.register_callback_query_handler(prev_user_page, text_startswith='prev')
  97. dp.register_callback_query_handler(accept_user, text_startswith='accept')