Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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))
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
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()
Exemplo n.º 12
0
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()
Exemplo n.º 16
0
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()
Exemplo n.º 19
0
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()
Exemplo n.º 22
0
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()