Example #1
0
def find_colleagues(user):
    request = dict()

    answer = 'Какая категория предметов Вас интересует?'
    subjects = backend.subjects(user, pupil=True)
    if not subjects:
        answer = 'Похоже, что Вы ещё не выбрали интересные Вам предметы. Добавить их Вы можете в личном кабинете на нашем сайте.\nhttps://bot.mipt.ru/student/amigo'

    keyboard = keyboards.catalogue(subjects.keys(), per_line=1)
    category = yield answer, keyboard

    answer = 'Чтобы найти коллег по интересующей вас теме или предмету, выберите его из списка:'
    keyboard = keyboards.catalogue(subjects[category].keys(), per_line=2)
    subject = yield answer, keyboard
    request['subject_id'] = subjects[category][subject]

    answer = 'Расскажите подробнее, например "Ищу, с кем бы обсудить матан и зарешать задавальник".'
    request['description'] = yield answer, keyboards.back()

    answer = 'Подтвердить запрос?'
    keyboard = keyboards.confirmation()
    confirm = yield answer, keyboard

    keyboard = keyboards.back()
    if 'Ok' in confirm:
        if backend.post_colleague_request(user, request):
            answer = 'Запрос на поиск коллег создан, ждите ответа от других пользователей.'
        else:
            answer = 'Извините, Вы наткнулись на баг. Пожалуйста, опишите ситуацию в обсуждениях группы, и мы попытаемся это исправить. Честно-честно.'
    else:
        answer = 'Запрос отменен.'

    yield answer, keyboard
Example #2
0
def accepted(user, offer):
    answer = 'Извините, Вы наткнулись на баг. Пожалуйста, опишите ситуацию в обсуждениях группы, и мы попытаемся это исправить. Честно-честно.'

    if offer['type'] == 'lesson':
        if backend.accept_lesson_offer(user, offer['id']):
            applicant = backend.contact_str(offer['applicant'][0],
                                            offer['applicant'][1])
            answer = 'Вы приняли урок. Напишите, пожалуйста, этому человеку: {}, он ждет Вашего ответа.'.format(
                applicant)

    elif offer['type'] == 'colleague':
        if backend.accept_colleague_request(user, offer['id']):
            pass

        applicant = backend.contact_str(offer['applicant'][0],
                                        offer['applicant'][1])
        answer = 'Напишите, пожалуйста, {}.\n'.format(applicant)

        if offer['participants']:
            participants = ''
            for user in offer['participants']:
                participants += backend.contact_str(user[0], user[1]) + '\n'

            answer += 'Также этой темой заинтересовались:\n{}Вы можете написать им тоже.'.format(
                participants)

    return answer, keyboards.back()
Example #3
0
File: bot.py Project: gdfd-asr/bot
async def first_test_state_case_met(message: types.Message, state: FSMContext):
    response = message.text.lower()
    try:
        if admin_id == message.from_user.id:
            if response == 'добавить канал':
                await message.answer(
                    'Введите имя канала из которого будут браться сообщения',
                    reply_markup=kb.back())
                await reg.STATE_1.set()
            elif response == 'удалить канал':
                await message.answer('Введите имя канала',
                                     reply_markup=kb.back_1())
                await reg.STATE_2.set()
            elif response == 'изменить канал':
                await message.answer(
                    'Введите имя канала для которого хотите поменять получаймый канал',
                    reply_markup=kb.back_1())
                await reg.STATE_4.set()
            else:
                await message.answer('Такой команды нет',
                                     reply_markup=kb.kb0())
        else:
            await message.answer('Такой команды нет')
    except Exception as e:
        print(e)
        await message.reply('ошибка', reply=False, reply_markup=kb.kb0())
        await state.finish()
Example #4
0
File: bot.py Project: gdfd-asr/bot
async def fname_step(message: types.Message, state: FSMContext):
    response = message.text
    try:
        if response.lower() == 'назад':
            await message.reply('Возвращаю в панель управления',
                                reply=False,
                                reply_markup=kb.kb0())
            await state.finish()
        else:
            if db.subscriber_cotegory(response):
                if await rer(response):
                    await state.update_data(cotegory=response)
                    await message.reply(
                        f'Введите новый канал в который будут отправляться сообщения из {response}',
                        reply=False,
                        reply_markup=kb.back())
                    await reg.STATE_5.set()
                else:
                    await message.reply('Вы не подписаны на данный канал')
            else:
                await message.reply(
                    'Данный канал не добавлен,введите другой или добавте его')
    except Exception as e:
        print(e)
        await message.reply('ошибка', reply=False, reply_markup=kb.kb0())
        await state.finish()
Example #5
0
def subjects(message):
    subjects = database.subjects()
    m_text = text.subjects_list
    for subject in subjects:
        m_text += f"\n<a href='5plus.uz/{subject['url']}'>{subject['name']}</a>"
    bot.send_message(message.from_user.id,
                     m_text,
                     parse_mode="HTML",
                     disable_web_page_preview=True,
                     reply_markup=keyboards.back())
Example #6
0
def teachers(message):
    m_text = text.teachers_list
    teachers = database.teachers()
    for teacher in teachers:
        m_text += f"{teacher['title']} <a href='5plus.uz/{teacher['url']}'>{teacher['name']}</a>\n"
    bot.send_message(message.from_user.id,
                     m_text,
                     parse_mode="HTML",
                     disable_web_page_preview=True,
                     reply_markup=keyboards.back())
Example #7
0
def dialog(user):
    answer = 'Здравствуйте! Вы написали боту MiptHelpBot. Выберите действие:'
    keyboard = keyboards.main_menu()
    action = yield answer, keyboard
    if action == 'Запросить урок':
        yield from order_lesson(user)
    elif action == 'Найти коллег':
        yield from find_colleagues(user)
    elif action == 'Посмотреть актуальные предложения':
        yield from current_offers(user)
    elif action == 'На сайт':
        link = 'bot.mipt.ru'
        yield link, keyboards.back()
Example #8
0
def order_lesson(user):
    order = dict()

    answer = 'Какая категория предметов Вас интересует?'
    subjects = backend.subjects(user)

    if not subjects:
        answer = 'Извините, Вы наткнулись на баг. Пожалуйста, опишите ситуацию в обсуждениях группы, и мы попытаемся это исправить. Честно-честно.'

    keyboard = keyboards.catalogue(subjects.keys(), per_line=1)
    category = yield answer, keyboard

    answer = 'Чтобы запросить бесплатный урок, выберите предмет из списка.'
    keyboard = keyboards.catalogue(subjects[category].keys(), per_line=2)
    subject = yield answer, keyboard
    order['subject_id'] = subjects[category][subject]

    answer = 'Oпишите тему урока, например "Двойные интегралы".'
    keyboard = keyboards.back()
    order['title'] = yield answer, keyboard

    answer = 'Расскажите более подробно, например "Не понимаю вообще ничего", или "Помогите с теорией".'
    order['description'] = yield answer, None

    answer = 'Заказать бесплатный урок по предмету "{}" с подробностями "{}" и "{}"?'.format(
        subject, order['title'], order['description'])
    keyboard = keyboards.confirmation()
    confirm = yield answer, keyboard

    keyboard = keyboards.back()
    if 'Ok' in confirm:
        if backend.post_lesson_order(user, order):
            answer = 'Запрос на бесплатный урок получен, ждите ответа от преподавателей в системе.'
        else:
            answer = 'Извините, Вы наткнулись на баг. Пожалуйста, опишите ситуацию в обсуждениях группы, и мы попытаемся это исправить. Честно-честно.'
    else:
        answer = 'Запрос отменен'
    yield answer, keyboard
def lessons(user):
    offers = backend.lesson_offers(user)
    heads = list(offers.keys())

    while True:
        choice = yield from scroll_keyboard(heads)
        offer = offers[choice]

        answer = 'Нужна помощь по теме "{}".\nОписание: "{}".\nНажмите "Принять", чтобы откликнуться.'.format(
            offer[1], offer[2])
        keyboard = keyboards.accept()
        decision = yield answer, keyboards.accept()

        if decision == 'Принять':
            answer = 'Извините, Вы наткнулись на баг. Пожалуйста, опишите ситуацию в обсуждениях группы, и мы попытаемся это исправить. Честно-честно.'

            if backend.accept_lesson_offer(user, offer[0]):
                answer = 'Вы приняли урок. Напишите, пожалуйста, этому человеку: {}, он ждет Вашего ответа.'.format(
                    offer[3])

            yield answer, keyboards.back()
def colleagues(user):
    offers = backend.colleague_offers(user)
    heads = list(offers.keys())

    while True:
        choice = yield from scroll_keyboard(heads)
        offer = offers[choice]

        answer = offer[1]
        keyboard = keyboards.accept()
        decision = yield answer, keyboards.accept()

        if decision == 'Принять':
            answer = 'Извините, Вы наткнулись на баг. Пожалуйста, опишите ситуацию в обсуждениях группы, и мы попытаемся это исправить. Честно-честно.'

            if backend.accept_colleague_request(user, offer[0]):
                answer = 'Напишите, пожалуйста, {}.\n'.format(offer[2])

            if offer[3]:
                answer += 'Также этой темой заинтересовались:\n{}Вы можете написать им тоже.'.format(
                    offer[3])

            yield answer, keyboards.back()
Example #11
0
async def wrapper(ans: Message):
    await ans(
        "Введите промокд и количесвто использований\n Пример SDA-QRT-E3T 50",
        keyboard=kb.back())
    await bot.branch.add(ans.peer_id, "code")
Example #12
0
async def wrapper(ans: Message):
    await ans("Введите сообщение которое хотите разослать всем",
              keyboard=kb.back())
    await bot.branch.add(ans.peer_id, "mas")
Example #13
0
async def wrapper(ans: Message):
    await ans(
        "Введите id пользователя и на сколько нужно пополнить\nПример: 1392393 40",
        keyboard=kb.back())
    await bot.branch.add(ans.peer_id, "plus_point")
Example #14
0
async def wrapper(ans: Message):
    await ans(
        "Введите id пользователя и сколько нужно снять\nПример: 1392393 40",
        keyboard=kb.back())
    await bot.branch.add(ans.peer_id, "minus")
Example #15
0
async def wrapper(ans: Message):
    response = ans.text
    user_id = ans.peer_id
    if (not db.subscriber_exists(user_id)):
        user_info = await bot.api.users.get(user_id, name_case="gen")
        user_name = user_info[0].first_name
        user_surname = user_info[0].last_name
        user_name = user_name + ' ' + user_surname
        db.add_db(user_id, user_name)
        await ans('За регистрацию в боте мы дарим вам 1000🧿')
    if response.lower() == 'начать':
        await ans(
            'Это главная страница. Ты можешь выбрать любое действие на клавиатуре!',
            keyboard=kb.kb0())

    elif response.lower() == 'баланс 💳':
        a, b = db.balance(user_id)
        await ans(
            'Баланс 💳: \nНа вашем балансе:\n{:.0f}🧿 ( ={:.0f} руб. ) \n {:.0f} 💰'
            .format(b, b / 100, a),
            keyboard=kb.kb1(link))

    elif response.lower() == 'работать 🤖':
        f, c = db.doxod(user_id)
        if f == 1:
            await ans('Задание пройдено!\nВы получаете награду: 200🧿')
        elif f == 2:
            await ans('Задание пройдено!\nВы получаете награду: 1000🧿')
        elif f == 4:
            await ans('Задание пройдено!\nВы получаете награду: 1200🧿')
        elif f == 5:
            await ans('Задание пройдено!\nВы получаете награду: 1200🧿')

        await ans(f'Вы заработали {c} (🧿)')

    elif response.lower() == 'вывести деньги (🧿)':
        if db.balance1(user_id) >= 75:
            if db.get_cheker1(user_id) == 0:
                await ans('Выберите реквизиты ', keyboard=kb.kb2())
            else:
                await ans('Вы уже отправили заявку на вывод средств')
        else:
            await ans(
                'Недостаточно голды (💰) для вывода средств.У вас на балансе должно быть как минимум 75 голды!💰 Купить голду можно в разделе Баланс'
            )

    elif response.lower() == 'киви':
        await ans(
            'Введите свои реквезиты и ожидайте когда модерация расмотрит вашу заявку',
            keyboard=kb.back())
        await bot.branch.add(ans.peer_id, "qiwi")

    elif response.lower() == 'карта':
        await ans(
            'Введите свои реквезиты и ожидайте когда модерация расмотрит вашу заявку',
            keyboard=kb.back())
        await bot.branch.add(ans.peer_id, "carta")

    elif response.lower() == 'яндекс деньги':
        await ans(
            'Введите свои реквезиты и ожидайте когда модерация расмотрит вашу заявку',
            keyboard=kb.back())
        await bot.branch.add(ans.peer_id, "yandex")

    elif response.lower() == 'назад':
        await ans(
            'Это главная страница. Ты можешь выбрать любое действие на клавиатуре!',
            keyboard=kb.kb0())

    elif response.lower() == '❓ зачем нужен донат':
        await ans('vk.com/@-187582264-dlya-chego')

    elif response.lower() == 'промокод 🏷':
        await ans(f'Твой промокод {db.coder(user_id)}')

    elif response.lower() == 'колесо фортуны 🎰':
        if db.get_point(user_id) >= 300:
            sum = random.randint(100, 900)
            f = db.cazino(user_id, 300 - sum)
            if f == 2:
                await ans('Задание пройдено!\nВы получаете награду: 400🧿')
            elif f == 3:
                await ans('Задание пройдено!\nВы получаете награду: 1💰')
            elif f == 4:
                await ans('Задание пройдено!\nВы получаете награду: 1200🧿')
            elif f == 5:
                await ans('Задание пройдено!\nВы получаете награду: 2000🧿')
            elif f == 6:
                await ans('Задание пройдено!\nВы получаете награду: 1💰')

            await ans(
                "Добро пожадывать в казино 'Фортуна'\n Вы поставили 300🧿\nИ вы выиграли {}🧿"
                .format(sum))
        else:
            await ans("Вам не хватает 🧿, нужно 300🧿 для ставки")

    elif response.lower() == 'бизнесы 📦':
        a, b, d, f, j, g, h, q, w, m, n = db.biznos(user_id)
        await ans(
            "Бизнесы 📦: \n1 - Точка кофе ☕ {} \n2 - Продуктовый магазин 🍏 {}\n3 - Компьютерный клуб 💻 {} \n4 - Пятёрочка ⃣ {}\n5 - Магазин Adidas 👟 {}\n6 - KFS 🐔 {} \n7 - Макдональдс 🍟 {} \n8 - Автосалон Tesla 🚗 {}\n9 - Компания SpaceX 🚀 {}\n\nВаш доход в час {}🧿\nВаш доход за работу {}🧿"
            .format(a, b, d, f, j, g, h, q, w, m, n),
            keyboard=kb.kb3())

    elif response.lower() == 'купить слейдующий бизнес 📈':
        d = db.bizno3s(user_id)
        if d == True:
            await ans('Вы приобрели новый бизнес')
            if db.qw3(user_id) == 1:
                await ans('Задание пройдено!\nВы получаете награду: 800🧿')
        elif d == 5:
            await ans('У вас максимальный бизнес')
        else:
            await ans('У вас не хватает 🧿')

    elif response.lower() == 'ежедневный бонус 🎁':
        if db.get_user_bonus(user_id) == 0:
            sum = random.randint(500, 3000)
            await ans("Вам выпало {}🧿".format(sum))
            db.plus_point_user(user_id, sum)
        else:
            await ans("У вас уже получин ежедневный бонус!")

    elif response.lower() == 'задания 📌':
        if db.qio(user_id) == False:
            await ans("Все задания выполнены!")
        else:
            if db.chek2(user_id) == 1:
                await ans(
                    "За выполнение всех (10) заданий он получит 700 рублей, которые сразу же сможет вывести"
                )
            a, b, c, h, g = db.qio(user_id)
            await ans(
                "📌 Задание {}/10: \n{}\n\nНаграда: {}\nПрогресс: {}/{}".format(
                    a, b, c, h, g))

    else:
        if db.chek(user_id) == 0:
            if (not db.code(user_id, response)):
                await ans('К сожалению, такого промокода не существует(')
            else:
                id, name = db.code1(response)
                if id == 1:
                    await ans('Вы ввели промокод! Вы получаете 1000🧿'.format(
                        id, name))
                else:
                    await ans(
                        'Вы ввели промокод @id{}({})! Вы получаете 1000🧿'.
                        format(id, name))
                db.plus_point(user_id, 1000)
        else:
            await ans('Список команд ты можешь увидеть на клавиатуре!')
Example #16
0
     if GROUP == '0':
         mmessage += 'Ты не ввел номер своей группы\n'
     else:
         mmessage += 'Ты в группе ' + GROUP + '\n'
     mmessage += 'Если есть ошибка или чего-то не хватает, можешь исправить просто нажми на нужную кнопку'
     Lsvk.messages.send(user_id=event.user_id,
                        random_id=get_random_id(),
                        keyboard=keyboards.profile(
                            event.user_id).get_keyboard(),
                        message=mmessage)
 var = ['ФИО']  #Кнопка для изменения фио
 if event.text in var:
     data.setUserStatus(event.user_id, '2')
     Lsvk.messages.send(user_id=event.user_id,
                        random_id=get_random_id(),
                        keyboard=keyboards.back(
                            event.user_id).get_keyboard(),
                        message='Теперь просто введи свое ФИО')
 var = ['Cтудак']  #Кнопка для изменения студака
 if event.text in var:
     data.setUserStatus(event.user_id, '1')
     Lsvk.messages.send(
         user_id=event.user_id,
         random_id=get_random_id(),
         keyboard=keyboards.back(event.user_id).get_keyboard(),
         message='Теперь просто введи номер студака')
 var = ['Группа']  #Кнопка для изменения студака
 if event.text in var:
     data.setUserStatus(event.user_id, '3')
     Lsvk.messages.send(
         user_id=event.user_id,
         random_id=get_random_id(),