async def managing_admins_main_menu_list_admins(callback: types.CallbackQuery): """Отправляет список администраторов бота""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( AdminHelper.get_list_admins(user), reply_markup=AdminGenerateKeyboard.managing_admin_list_admins(user))
async def managing_admin_main_menu_add_admin_write_login( message: types.Message, state: FSMContext): """Обработчик ввода логина администратора""" user = DataBaseFunc.get_user(int(message.from_user.id)) user_message = AdminHelper.get_user_from_message(message) data = await state.get_data() if (user_message): await message.delete() data = await state.get_data() user_message.is_admin = True DataBaseFunc.commit() await bot.edit_message_text( chat_id=message.chat.id, message_id=data['message_id'], text=get_text( user, 'managing_admins_main_menu_add_admin_success').format( username=AdminHelper.escape_telegrambot_underscore( user_message.username)), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set() else: await message.delete() await bot.edit_message_text( chat_id=message.chat.id, message_id=data['message_id'], text=get_text(user, 'managing_admins_main_menu_add_admin_not_found'), reply_markup=AdminGenerateKeyboard. managing_admins_main_menu_add_admin(user))
async def managing_courses_edit(callback: types.CallbackQuery): """Обработка кнопки назад""" user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'admin_menu_managing_courses'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_courses(user)) await AdminStateMainMenu.managing_courses.set()
async def managing_user_add_time_write_time(message: types.Message, state: FSMContext): """Ввод времени""" data = await state.get_data() user = DataBaseFunc.get_user(message.from_user.id) try: time = int(message.text) await state.update_data(time=time) await message.delete() user_addtime = DataBaseFunc.get_user(data['user_deletetime_id']) await bot.edit_message_text( text=AdminHelper.get_text_managing_users_delete_time_final( user_addtime, data['course_id'], time), chat_id=message.chat.id, message_id=data['message_id'], reply_markup=AdminGenerateKeyboard.managing_users_add_time_final( user)) await AdminStateManagingUser.delete_time_final.set() except: await message.delete() await bot.edit_message_text( chat_id=message.chat.id, message_id=data['message_id'], text=get_text(user, 'managing_user_add_time_write_time_not_str'), reply_markup=AdminGenerateKeyboard. managing_users_add_time_choose_time(user))
async def managing_admins_main_menu_back(callback: types.CallbackQuery): """Возвращает в главное меню админки""" user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'main_admin_menu'), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set()
async def managing_admin_list_admins_back(callback: types.CallbackQuery): """Возвращает в главное меню управления администрации""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'admin_menu_managing_admins'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_admins(user)) await AdminStateManagingAdmin.main_menu.set()
async def managing_courses_delete(callback: types.CallbackQuery): """Обработка кнопки удалить""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) text = get_text(user, 'managing_courses_delete') keyboard = AdminGenerateKeyboard.managing_courses_delete(user) await callback.message.edit_text(text, reply_markup=keyboard) await AdminStateManaginCourseDelete.get_course.set()
async def managing_users_add_course_back(callback: types.CallbackQuery): """Возвращает в меню выбора действий в управлении пользователями""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'admin_menu_managing_users'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_users(user)) await AdminStateManagingUser.main_menu.set()
async def managign_users_delete_time_back(callback: types.CallbackQuery): """Возвращает в главное меню управления пользователями""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'admin_menu_managing_users'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_users(user)) await AdminStateManagingUser.main_menu.set()
async def managing_users_add_time_final_cancel(callback: types.CallbackQuery, state: FSMContext): await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'admin_menu_managing_users'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_users(user)) await AdminStateManagingUser.main_menu.set()
async def managing_courses_add_additionaly_cancel( callback: types.CallbackQuery, state: FSMContext): """Возвращает в менеджер управления подписками""" await state.reset_data() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'admin_menu_managing_courses'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_courses(user)) await AdminStateMainMenu.managing_courses.set()
async def managing_admins_main_menu_add_admin_back( callback: types.CallbackQuery): """Кнопка назад из ввода имени для добавления администратора""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'admin_menu_managing_admins'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_admins(user)) await AdminStateManagingAdmin.main_menu.set()
async def managin_users_main_menu_delete_course_choose_use_back( callback: types.CallbackQuery): """Вернуться в панель управления пользователями""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'main_admin_menu'), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set()
async def managing_users_delete_course_final_cancel( callback: types.CallbackQuery): """Отменяет удаление курса у пользователя.""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'main_admin_menu'), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set()
async def managing_users_main_menu_add_course_choose_user_cancel( callback: types.CallbackQuery): """Обработка кнопки отменить добавление подписки пользователю""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'main_admin_menu'), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set()
async def admin_menu(callback: types.CallbackQuery): """Отправляет админ-панель.""" user = DataBaseFunc.get_user(callback.from_user.id) await callback.message.edit_text( get_text(user, 'main_admin_menu'), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await DataBaseFunc.delete_messages_from_callback( user, callback.message.message_id) await AdminStateMainMenu.admin_menu.set()
async def managing_courses_edit_back(callback: types.CallbackQuery, state=FSMContext): """Вернуться назад к курсам""" await callback.answer() await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) text = get_text(user, 'managing_courses_edit') keyboard = AdminGenerateKeyboard.managing_courses_edit(user) await callback.message.edit_text(text, reply_markup=keyboard) await AdminStateManaginCourseEdit.get_course.set()
async def managing_users_main_menu_delete_time(callback: types.CallbackQuery, state: FSMContext): """Обработка кнопки убавить время из админ панели менеджера пользователей. """ await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await state.update_data(message_id=callback.message.message_id) await callback.message.edit_text( get_text(user, 'managing_users_add_time_choose_user'), reply_markup=AdminGenerateKeyboard.managign_users_add_time(user)) await AdminStateManagingUser.delete_time_choose_user.set()
async def managing_admins_main_menu_add_admin(callback: types.CallbackQuery, state: FSMContext): """Добавить администратора""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) await state.update_data(message_id=callback.message.message_id) await callback.message.edit_text( text=get_text(user, 'managing_admins_main_menu_add_admin'), reply_markup=AdminGenerateKeyboard.managing_admins_main_menu_add_admin( user)) await AdminStateManagingAdmin.add_admin.set()
async def managing_courses_delete_choose(callback: types.CallbackQuery): """Удаление конкретно выбранного курса""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) course = DataBaseFunc.get_course(int(callback.data[23:])) course.is_delete = True DataBaseFunc.commit() await callback.message.edit_text( get_text(user, 'admin_menu_managing_courses'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_courses(user)) await AdminStateMainMenu.managing_courses.set()
async def managing_courses_add_continue(callback: types.CallbackQuery, state: FSMContext): """Кнопка продолжить при добавлении курса.""" user = DataBaseFunc.get_user(callback.from_user.id) data = await state.get_data() text = AdminHelper.get_text_for_additionaly_course(user, data) keyboard = AdminGenerateKeyboard.managing_courses_additionaly(user) await callback.message.edit_text(text, parse_mode="markdown", reply_markup=keyboard) await AdminStateManagingCourses.confirm.set()
async def write_shedule(message : types.Message, state : FSMContext): user = DataBaseFunc.get_user(message.from_user.id) id_shedule = (await state.get_data())["id_shedule"] if id_shedule == 1: with open(texts_shedule_filename, 'w', encoding='utf8') as file: file.write(message.text) else: with open(texts_shedule2_filename, 'w', encoding='utf8') as file: file.write(message.text) await message.answer('Расписание изменено', reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set()
async def managing_courses_add_additionaly_complete( callback: types.CallbackQuery, state: FSMContext): """Добавляет новый курс в базу данных""" user = DataBaseFunc.get_user(callback.from_user.id) data = await state.get_data() DataBaseFunc.create_new_course(data) channels = data["channels"] channels = [] await state.update_data(channels=channels) await callback.message.edit_text( get_text(user, 'admin_menu_managing_courses'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_courses(user)) await AdminStateMainMenu.managing_courses.set()
async def managing_users_delete_time_choose_course( callback: types.CallbackQuery, state: FSMContext): """Выбор курса для убавления ему времени""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) course_id = int(callback.data[38:]) await state.update_data(course_id=course_id, message_id=callback.message.message_id) await callback.message.edit_text( get_text(user, 'managing_users_delete_time_choose_time'), reply_markup=AdminGenerateKeyboard.managing_users_add_time_choose_time( user)) await AdminStateManagingUser.delete_time_write_time.set()
async def managing_course_edit_choose(callback: types.CallbackQuery, state: FSMContext): """Обрабатывает редакт конкретного курса""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) course = DataBaseFunc.get_course(int(callback.data[21:])) await state.update_data(id_course=course.id) text = AdminHelper.get_text_info_course(user, course) keyboard = AdminGenerateKeyboard.managing_courses_edit_button(user) await callback.message.edit_text(text, parse_mode="markdown", reply_markup=keyboard) await AdminStateManaginCourseEdit.choose_edit.set()
async def managing_users_choose_course_for_delete( callback: types.CallbackQuery, state: FSMContext): """Выбор курса для удаления.""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) course_id = callback.data[49:] await state.update_data(course_id=course_id) data = await state.get_data() await callback.message.edit_text( AdminHelper.get_info_for_delete_course(user, data['user_delete_id'], course_id), reply_markup=AdminGenerateKeyboard.managing_users_delete_course_final( user)) await AdminStateManagingUser.delete_course_final.set()
async def managing_users_delete_time_final_add(callback: types.CallbackQuery, state: FSMContext): """Удалить время пользователю в конкретный курс.""" await callback.answer() data = await state.get_data() user = DataBaseFunc.get_user(callback.from_user.id) user_deletetime_id = DataBaseFunc.get_user(data['user_deletetime_id']) course = DataBaseFunc.get_course(data['course_id']) time = data['time'] await DataBaseFunc.delete_time_in_course(user_deletetime_id, course, time) await callback.message.edit_text( get_text(user, 'managing_users_delete_time_final_add'), reply_markup=AdminGenerateKeyboard.admin_menu_managing_users(user)) await AdminStateManagingUser.main_menu.set()
async def managing_courses_edit_access_msg(message: types.Message, state: FSMContext): user = DataBaseFunc.get_user(message.from_user.id) data = await state.get_data() DataBaseFunc.add_channel_in_course(message, data) await message.delete() course = DataBaseFunc.get_course(data['id_course']) text = AdminHelper.get_text_info_course(user, course) keyboard = AdminGenerateKeyboard.managing_courses_edit_button(user) await bot.edit_message_text(text=text, chat_id=message.chat.id, message_id=data['message_id'], reply_markup=keyboard, parse_mode="markdown") await AdminStateManaginCourseEdit.choose_edit.set()
async def managing_users_main_menu_add_course_choose_user_add( callback: types.CallbackQuery, state: FSMContext): """Обработка кнопки добавить подписку пользователю""" await callback.answer() data = await state.get_data() user = DataBaseFunc.get_user(callback.from_user.id) user_add = DataBaseFunc.get_user(data['user_add_course_id']) course = DataBaseFunc.get_course(data['course_id']) DataBaseFunc.add_course_in_user(user_add, course) user.subscribe_end = False user.is_register = True DataBaseFunc.commit() await callback.message.edit_text( get_text(user, 'managing_users_main_menu_add_course_choose_user_add'), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set()
async def managing_users_delete_course_final_add(callback: types.CallbackQuery, state: FSMContext): """Удалить курс у пользователя.""" await callback.answer() user = DataBaseFunc.get_user(callback.from_user.id) data = await state.get_data() delete_user = DataBaseFunc.get_user(data['user_delete_id']) course = DataBaseFunc.get_course(data['course_id']) await DataBaseFunc.delete_course_from_user(delete_user, course) await callback.message.edit_text( get_text(user, 'managing_users_delete_course_final_add').format( course=course.name, username=AdminHelper.escape_telegrambot_underscore( delete_user.username)), reply_markup=AdminGenerateKeyboard.admin_main_menu(user)) await AdminStateMainMenu.admin_menu.set()