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
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()
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()
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()
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())
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())
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()
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()
async def wrapper(ans: Message): await ans( "Введите промокд и количесвто использований\n Пример SDA-QRT-E3T 50", keyboard=kb.back()) await bot.branch.add(ans.peer_id, "code")
async def wrapper(ans: Message): await ans("Введите сообщение которое хотите разослать всем", keyboard=kb.back()) await bot.branch.add(ans.peer_id, "mas")
async def wrapper(ans: Message): await ans( "Введите id пользователя и на сколько нужно пополнить\nПример: 1392393 40", keyboard=kb.back()) await bot.branch.add(ans.peer_id, "plus_point")
async def wrapper(ans: Message): await ans( "Введите id пользователя и сколько нужно снять\nПример: 1392393 40", keyboard=kb.back()) await bot.branch.add(ans.peer_id, "minus")
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('Список команд ты можешь увидеть на клавиатуре!')
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(),