def vk_support(user_id, urgent=False): """ Handles every attempt to open support dialogue. Does not open if not urgent and not in working time """ time.sleep(1) keyboard = VkKeyboard(inline=True) if not urgent: # User trying to contact support in non working time if not 17 <= datetime.datetime.today( ).hour < 22 or datetime.datetime.today().isoweekday() in [6, 7]: keyboard.add_button("Срочная связь") vk_send_message(user_id, messages.non_working, keyboard.get_keyboard()) return open_dialogue("vk_id", user_id) keyboard.add_button("Первичная настройка") keyboard.add_line() keyboard.add_button("Другое") keyboard.add_line() keyboard.add_button("ZGC SHOP") # Ask user to choose problem type msg = messages.type_support user_info = db_find_value('vk_id', user_id) sub = user_info['sub'] if sub != '-' and int(user_info['verified']): msg += f"\U000026A1 Ваша подписка: {sub}" vk_send_message(user_id, msg, keyboard.get_keyboard())
def delete_keyboard(userid, msg='Клавиатура закрыта!', chats=False): from vk_api.keyboard import VkKeyboard from vk_api.utils import get_random_id keyboard = VkKeyboard(one_time=True) keyboard.keyboard['buttons'] = [] try: if chats == False: vk.messages.send(peer_id=userid, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message=msg) elif chats == True: vk.messages.send(key=key, server=server, ts=ts, peer_id=userid, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message=msg) else: raise ValueError( 'Ошибка удаления клавиатуры (delete_keyboard):\n=====\nНе правильно введен параметр chats\n=====' ) except: raise ValueError( 'Ошибка удаления клавиатуры (delete_keyboard):\n=====\nНе правильно введен параметр userid/диалог с пользователем не обозначен\ (бот раньше не писал ему сообщения или не находится в беседе)\n=====')
def command_dataset_filter(self, from_id, payload): user_status = self.db_session.query(self.db.UserStatuses).filter( self.db.UserStatuses.user_id == from_id).first() if user_status.status == 'admin': if '#' in payload['button']: _, gr_id, cat = payload['button'].split('#') gr_id = int(gr_id) if gr_id > self.latest_id: self.latest_id = gr_id cat = self.new_cats[int(cat)] if cat != '-1' else 'other' old_group = self.db_session.query(self.db.GroupsIds).get( self.latest_id) self.db_session.add( self.db.Groups(group_id=self.latest_id, name=old_group.name, subject=cat, link=old_group.link)) msg = (f"{old_group.name} теперь относится к группе " f"{cat.capitalize()}") else: msg = f'Группа {gr_id} уже была добавлена' self.send_message(from_id, msg) group = self.db_session.query(self.db.GroupsIds).order_by( self.db.GroupsIds.group_id.asc()).filter( self.db.GroupsIds.group_id > self.latest_id).first() keyboard = VkKeyboard(one_time=True) msg = ('К какой категории относится эта группа?\n' f'https://vk.com/club{group.group_id}\n\n') for i, cat in enumerate(self.new_cats): keyboard.add_button( cat.capitalize(), color=VkKeyboardColor.SECONDARY, payload=json.dumps({ 'button': f'dataset_filter#{group.group_id}#{self.new_cats.index(cat)}' })) if (i + 1) % 3 == 0: keyboard.add_line() if (i + 1) % 3 != 0: keyboard.add_line() keyboard.add_button('Ни к одной', color=VkKeyboardColor.NEGATIVE, payload=json.dumps({ 'button': f'dataset_filter#{group.group_id}#-1' })) keyboard.add_button('Завершить', color=VkKeyboardColor.NEGATIVE, payload=json.dumps({'command': 'start'})) self.send_message(from_id, msg, keyboard.get_keyboard()) else: keyboard = VkKeyboard(one_time=True) keyboard.add_button('Начать анализ', color=VkKeyboardColor.POSITIVE, payload=json.dumps( {'button': 'start_analysis'})) msg = 'Начнём анализ?' self.send_message(from_id, msg, keyboard.get_keyboard())
def build_step(vk, event, upload, job_queue, step, player_quest, text="Вы победили!"): if step: print(step) if step.image: image = get_or_upload_photo(upload, step, "image", step.image) vk.messages.send(peer_id=event.obj.from_id, random_id=get_random_id(), attachment=image) options_temp = step.options.all() options = [] changes = player_quest.changes.all() for option in options_temp: is_hidden = option.is_hidden if option in changes: is_hidden = not option.is_hidden if not is_hidden: options.append(option) if options: button_list = VkKeyboard() for option in options: button_list.add_button(option.text) button_list.add_line() button_list.add_button(quest_utils.menu_text_full("MAIN_MENU")) send_step_partly(vk, event, job_queue, button_list, step.delay, step.description) else: # Step has no options - Lose button_list = VkKeyboard() button_list.add_button( quest_utils.menu_text_full("ASK_TO_RESTART")) button_list.add_line() button_list.add_button(quest_utils.menu_text_full("MAIN_MENU")) vk.messages.send( peer_id=event.obj.from_id, random_id=get_random_id(), message=step.description, keyboard=button_list.get_keyboard(), ) else: button_list = VkKeyboard() button_list.add_button(quest_utils.menu_text_full("ASK_TO_RESTART")) button_list.add_line() button_list.add_button(quest_utils.menu_text_full("MAIN_MENU")) vk.messages.send( peer_id=event.obj.from_id, random_id=get_random_id(), message=(text + "\nНачать заново?"), keyboard=button_list.get_keyboard(), )
class Keyboard: def __init__(self): self.controlKeyboard = VkKeyboard(one_time=False, inline=False) self.eventsKeyboard = VkKeyboard(one_time=False, inline=False) self.yesKeyBoard = VkKeyboard(one_time = False, inline = False) self.confirmationKeyboard = VkKeyboard(one_time = False, inline = False) self.buttonsColor = "positive" self.serviceButtonsColor = 'negative' def getConfirmationKeyboard(self): self.confirmationKeyboard.add_button("Да", self.buttonsColor) self.confirmationKeyboard.add_button("Нет", self.buttonsColor) return self.confirmationKeyboard.get_keyboard() def getYesKeyBoard(self): self.yesKeyBoard.add_button("Да", self.buttonsColor) self.yesKeyBoard.add_button('Назад', self.serviceButtonsColor) return self.yesKeyBoard.get_keyboard() def getControlKeyBoard(self): self.registrationButtonText = "Регистрация на мероприятие" self.eventButtonText = "Мои мероприятия" self.controlKeyboard.add_button(self.registrationButtonText, 'primary') self.controlKeyboard.add_line() self.controlKeyboard.add_button(self.eventButtonText, 'primary') return self.controlKeyboard.get_keyboard() def getEventsKeyBoard(self, events): self.eventsKeyboard = VkKeyboard(one_time=False, inline=False) index = 0 eventsLen = len(events) even = True if eventsLen % 2 == 0 else False for event in events: if(index != 0 and (index % 2 == 0 or (not even and index == eventsLen))): self.eventsKeyboard.add_line() self.eventsKeyboard.add_button(event, self.buttonsColor) index += 1 self.addServiceButtons() return self.eventsKeyboard.get_keyboard() def addServiceButtons(self): self.eventsKeyboard.add_line() self.eventsKeyboard.add_button('исправить предыдущий шаг', self.serviceButtonsColor) self.eventsKeyboard.add_button('Назад', self.serviceButtonsColor) def get_regButtonText(self): return self.registrationButtonText def get_eventButtonText(self): return self.eventButtonText
def commands_plus(command, user): if not user.checkWork(): if command in ['Массовая отправка', 'Spam']: keyboard = VkKeyboard(one_time=True) keyboard.add_button('Отмена', color=VkKeyboardColor.NEGATIVE) vk_session.method('messages.send', {'user_id': user.id, 'random_id': get_random_id(), 'message': 'Отправь мне сообщение, а я разошлю всем.\n Напиши отмена или нажми кнопку ниже', 'keyboard': keyboard.get_keyboard()}) user.work('Spam') elif command in ['Изменить роль', 'роли'] and user.status == 'admin': listname = '' keyboard = VkKeyboard(one_time=True) keyboard.add_button('Отмена', color=VkKeyboardColor.NEGATIVE) vk_session.method('messages.send', {'user_id': user.id, 'random_id': get_random_id(), 'message': 'Список \n' + user.createdSubscribe(vk_session) + 'Доступные роли: user, head, admin, test \n`Роль номер', 'keyboard': keyboard.get_keyboard()}) user.work('reRole') else: if user.lastCommand == 'Spam': if not command in ['Отмена', 'отмена']: users = user.getOtherUser(' and `mailing`=1') for user_id in users: vk_session.method('messages.send', {'user_id': user_id, 'random_id': get_random_id(), 'message': command}) vk_session.method('messages.send', {'user_id': user.id, 'random_id': get_random_id( ), 'message': 'Сообщения успешно всем отправлены', 'keyboard': user.createKeyboard().get_keyboard()}) else: vk_session.method('messages.send', {'user_id': user.id, 'random_id': get_random_id(), 'message': 'Ожидаю другие приказы!', 'keyboard': user.createKeyboard().get_keyboard()}) user.work(None) elif user.lastCommand == 'reRole': if not command in ['Отмена', 'отмена']: if not command: return if command[4] == ' ': role = command[:4] number = command[5:] else: number = command[6:] role = command[:5] # Работа с sqlite## sql = 'SELECT * FROM `subscriber` WHERE `number`={}'.format(number) with sqlite3.connect(__DB__) as db: cursor = db.cursor() cursor.execute(sql) user_id = cursor.fetchone() ################### Users(user_id[0]).reStarus(role) name = vk_session.method( 'users.get', {'user_ids': user_id[0], 'name_case': 'Nom'})[0] vk_session.method('messages.send', {'user_id': user.id, 'random_id': get_random_id( ), 'message': '{0} {1} успешно получил {2}'.format(name['first_name'], name['last_name'], role), 'keyboard': user.createKeyboard().get_keyboard()}) else: vk_session.method('messages.send', {'user_id': user.id, 'random_id': get_random_id( ), 'message': 'Жду другие команды!', 'keyboard': user.createKeyboard().get_keyboard()}) user.work(None)
def main(): vk_session = vk_api.VkApi( token='token', # Вынесено в .gitignore api_version='5.90') vk = vk_session.get_api() keyboard = VkKeyboard(one_time=None) keyboard.add_button('Купить', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Продать', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Получить скидку', color=VkKeyboardColor.PRIMARY) longpoll = VkLongPoll(vk_session) vk = vk_session.get_api() for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: if event.text == 'Начать' and event.from_user: # Если написали в ЛС vk.messages.send( # Отправляем сообщениe user_id=event.user_id, random_id=get_random_id(), message='Выбери интересующую категорию', keyboard=keyboard.get_keyboard()) if event.text == 'Купить' and event.from_user: # Если написали в ЛС vk.messages.send( # Отправляем сообщениe user_id=event.user_id, random_id=get_random_id(), message= 'Здесь можно посмотреть товары по категориям: https://vk.com/market-73747588. Если тебя заинтересовал товар, то пришли его сюда, мы тебе ответим. Не нашёл нужного товара? Напиши нам об этом!', keyboard=keyboard.get_keyboard()) elif event.text == 'Продать' and event.from_user: vk.messages.send( # Отправляем собщение user_id=event.user_id, random_id=get_random_id(), message= 'Если надо продать вещь, заполни краткую анкету, и консультант свяжется с тобой в ближайшее время :) https://vk.com/app5708398_-73747588', keyboard=keyboard.get_keyboard()) elif event.text == 'Получить скидку' and event.from_user: vk.messages.send( # Отправляем собщение user_id=event.user_id, random_id=get_random_id(), message= 'Твой личный промокод, который даёт пожизненную скидку 5% на наши и так низкие цены: VK431Sk5. Всё, что нужно сделать - это приехать в любой из наших магазинов и продиктовать промокод менеджеру, чтобы получить приятную скидку 5%.', keyboard=keyboard.get_keyboard()) elif event.text == 'Убери кнопки' and event.from_user: vk.messages.send(user_id=event.user_id, random_id=get_random_id(), message='Окей', keyboard=keyboard.get_empty_keyboard())
async def start_branch(ans: Message, response=None): if ans.text.lower() == "я готов!" or ans.payload == '1': keyboard = VkKeyboard(one_time=False) keyboard.add_button("🐕 Собака", VkKeyboardColor.POSITIVE) keyboard.add_button("🐈 Кошка", VkKeyboardColor.POSITIVE) keyboard = keyboard.get_keyboard() await ans("Выбери свое бойца", keyboard=keyboard) elif ans.text == "🐕 Собака": keyboard = VkKeyboard(one_time=False) keyboard.add_button("Беру!", VkKeyboardColor.POSITIVE, payload=11) keyboard.add_line() keyboard.add_button("Я еще подумаю...", VkKeyboardColor.NEGATIVE, payload=1) keyboard = keyboard.get_keyboard() await ans("Это собка очень крутая", keyboard=keyboard) elif ans.text == "🐈 Кошка": keyboard = VkKeyboard(one_time=False) keyboard.add_button("Беру!", VkKeyboardColor.POSITIVE, payload=12) keyboard.add_line() keyboard.add_button("Я еще подумаю...", VkKeyboardColor.NEGATIVE, payload=1) keyboard = keyboard.get_keyboard() await ans("Это кошка очень крутая", keyboard=keyboard) elif ans.payload == '11': u = await Users.get(user_id=ans.peer_id) u.enimal = "собака" await u.save() await ans("Как будут звать ващего питомца?") elif ans.payload == '12': u = await Users.get(user_id=ans.peer_id) u.enimal = "кошка" await u.save() await ans("Как будут звать ващего питомца?") else: name = ans.text u = await Users.get(user_id=ans.peer_id) u.nickname = name u.train = True await u.save() await ans(f"{name} прекрасное имя!") await menu(ans) await bot.branch.exit(ans.peer_id)
def getKeybord(self, state=0): kb = VkKeyboard() if state == 2: kb.add_button('1') kb.add_button('2') kb.add_button('3') return kb.get_keyboard() if self.state == 0: kb.add_button('▶') kb.add_button('⏭') elif self.state == 1: kb.add_button('⏸') kb.add_button('⏭') print(self.state) return kb.get_keyboard()
async def feed(ans: Message): u = await GameValues.get(user_id=ans.peer_id) keyboard = VkKeyboard(one_time=False) if u.milk > 0: keyboard.add_button(f"🥛 Молоко +5🍖 - {u.milk}", VkKeyboardColor.DEFAULT, payload={"button":"молоко"}) keyboard.add_line() if u.carrot > 0: keyboard.add_button(f"🥕 Морковь +10🍖 - {u.carrot}", VkKeyboardColor.DEFAULT, payload={"button":"морковь"}) keyboard.add_line() if u.bread > 0: keyboard.add_button(f"🍞 Хлеб +15🍖 - {u.bread}", VkKeyboardColor.DEFAULT, payload={"button":"хлеб"}) keyboard.add_line() if u.agg > 0: keyboard.add_button(f"🍳 Яичница +20🍖 - {u.agg}", VkKeyboardColor.DEFAULT, payload={"button":"яичница"}) keyboard.add_line() if u.cake > 0: keyboard.add_button(f"🎂 Торт +25🍖 - {u.cake}", VkKeyboardColor.DEFAULT, payload={"button":"торт"}) keyboard.add_line() if u.rice > 0: keyboard.add_button(f"🍚 Рис +30🍖 - {u.rice}", VkKeyboardColor.DEFAULT, payload={"button":"рис"}) keyboard.add_line() if u.pizza > 0: keyboard.add_button(f"🍕 Пицца +35🍖 - {u.pizza}", VkKeyboardColor.DEFAULT, payload={"button":"пицца"}) keyboard.add_line() if u.leg > 0: keyboard.add_button(f"🍗 Куриная ножка +40🍖 - {u.leg}", VkKeyboardColor.DEFAULT, payload={"button":"ножка"}) keyboard.add_line() if u.meat > 0: keyboard.add_button(f"🥩 Мясо +45🍖 - {u.meat}", VkKeyboardColor.DEFAULT, payload={"button":"мясо"}) keyboard.add_line() if u.milk == 0 and u.carrot == 0 and u.bread == 0 and u.cake == 0 and u.rice == 0 and u.pizza == 0 and u.leg == 0 and u.meat == 0: print("1") keyboard.add_button("🏪 Магазин", VkKeyboardColor.DEFAULT, payload={"button":"магазин"}) keyboard.add_line() keyboard.add_button("🔙 Назад", VkKeyboardColor.POSITIVE, payload={"button": "меню"}) keyboard = keyboard.get_keyboard() await ans("У вас совсем нет еды..\n Отправляйтесь в магазин и прикупите чего-нибудь:", keyboard=keyboard) else: info = await Users.get(user_id=ans.peer_id) keyboard.add_button("🔙 Назад", VkKeyboardColor.POSITIVE, payload={"button": "меню"}) keyboard = keyboard.get_keyboard() await ans(f"Сытость - {info.hunger}/50", keyboard=keyboard) if u.milk > 0 or u.carrot > 0 or u.bread > 0 or u.cake > 0 or u.rice > 0 or u.pizza > 0 or u.leg > 0 or u.meat > 0: await bot.branch.add(ans.peer_id, "feed_branch")
def welcome_user(self, user): keyboard = VkKeyboard(one_time=False) user_in_db = user.select_from_db(User.id, User.id == user.user_id).first() if not user_in_db: user.insert_self_to_db() keyboard.add_button("Привет", color=VkKeyboardColor.PRIMARY) keyboard.add_button("Новый поиск", color=VkKeyboardColor.SECONDARY) self.write_msg( user.user_id, f"😊 Привет, {user.first_name.capitalize()}!", keyboard=keyboard.get_keyboard()) else: check_query = user.select_from_db( Query.id, Query.user_id == user.user_id).all() if not check_query: keyboard.add_button("Привет", color=VkKeyboardColor.PRIMARY) keyboard.add_button("Новый поиск", color=VkKeyboardColor.SECONDARY) self.write_msg( user.user_id, f"😊 Привет, {user.first_name.capitalize()}! Давно не виделись!", keyboard=keyboard.get_keyboard()) else: keyboard.add_button("Привет", color=VkKeyboardColor.POSITIVE) keyboard.add_button("Новый поиск", color=VkKeyboardColor.SECONDARY) keyboard.add_line() keyboard.add_button(f"Результаты последнего поиска", color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(f"Все лайкнутые", color=VkKeyboardColor.POSITIVE) keyboard.add_button(f"Все непонравившиеся", color=VkKeyboardColor.NEGATIVE) self.write_msg( user.user_id, f"😊 Привет, {user.first_name.capitalize()}! Давно не виделись!", keyboard=keyboard.get_keyboard()) user.welcomed = True return user.welcomed
def quize_keyboard(): keyboard = VkKeyboard(one_time=False) keyboard.add_button('Пройти опрос', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('Что тут вообще происходит?', color=VkKeyboardColor.NEGATIVE) keyboard = keyboard.get_keyboard() return keyboard
def get_shift(self, event): keyboard_ = VkKeyboard(one_time=True) keyboard_.add_button("Первая смена") keyboard_.add_button("Вторая смена", color=VkKeyboardColor.PRIMARY) self.send_keyboard(event, "Выбери смену, в которой ты учишься", keyboard_.get_keyboard())
def money(user_id, data = None): print(data['payload']) if data['payload'] == '"Стипендия"': settings = dict(one_time=False, inline=True) keyboard = VkKeyboard(**settings) # pop-up кнопка keyboard.add_callback_button(label='Академическая', color=VkKeyboardColor.POSITIVE, payload='\"Академическая\"') keyboard.add_callback_button(label='Социальная', color=VkKeyboardColor.POSITIVE, payload='\"Социальная\"') app.send_message(user_id, message="Виды стипендии", keyboard=keyboard.get_keyboard()) if data['payload'] == 'Академическая': message="""Академическая стипендия зависит от успеваемости обучаегося. При получении образования степендия составляет 2200 рублей. Если по итогам сессии обучающийся имеет оценки «ХОРОШО» и «ОТЛИЧНО» или только «ХОРОШО», стипендия составляет 2200 рублей. Если обучающийся по итогам сессии имеет только оценки «ОТЛИЧНО», он может рассчитывать на повышенную стипендию в размере 3000 рублей.""" app.message_edit(data['peer_id'], message, data['conversation_message_id']) if data['payload'] == 'Социальная': message="""Социальная стипендия назначается студенту с даты предоставления документа, подтверждающего соответствие одной из категорий студентов, указанных в ФЗ № 273 «Об образовании в РФ» статья 36 пункт 5 по месяц прекращения действия основания её назначения. Государственная социальная стипендия назначается студентам: 1.распорядительным актом руководителя организации на основании документа, подтверждающего соответствие одной из категорий граждан, с даты его представления 2.В случае, если документ бессрочный назначается до конца обучения В РГЭУ РИНХ социальную стипендию могут получить: -студенты, из числа детей - сирот и детей, оставшихся без попечения родителей - 3800 руб -студенты - инвалиды 1 и 2 группы, дети - инвалиды и инвалидам с детства -3000 руб -студенты, подвергшиеся радиации вследствие катастрофы на Чернобыльской АЭС и иных радикальных катастроф - 3000 руб -студенты, инвалиды и ветераны боевых действий - 3000 руб -студенты, получающих государственную помощь - 3000 руб""" app.message_edit(data['peer_id'], message, data['conversation_message_id'])
def create_keyboard3(): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Ввести заново', color='primary') keyboard = keyboard.get_keyboard() return keyboard
def create_keyboard(response): keyboard = VkKeyboard(one_time=False) if response == 'меню' or response == 'начать' or response == 'назад' or response == 'ютуб анал' or response == 'донат или реклама' or ( 'разраб' in response and response != 'разраб') or ('ютубер' in response and response != 'ютубер'): keyboard.add_button('Мем', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Видос', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Ютуб канал', color=VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Связь с админами', color=VkKeyboardColor.PRIMARY) keyboard.add_button('Донат или реклама', color=VkKeyboardColor.PRIMARY) elif response == 'связь с админами': keyboard.add_button('Ютубер', color=VkKeyboardColor.NEGATIVE) keyboard.add_button('Разраб', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('назад', color=VkKeyboardColor.DEFAULT) elif response == response == 'разраб' or response == 'ютубер': return keyboard.get_empty_keyboard() keyboard = keyboard.get_keyboard() return keyboard
def create_keyboard(buttons=None, inline=False, location=False, geo=False, one_time=False, d=3): keyboard = VkKeyboard(one_time=one_time, inline=inline) line = False if geo: keyboard.add_location_button() keyboard.add_line() if not location: for i in range(len(buttons) // d): for j in range(d): keyboard.add_button(buttons[i * d + j][0], color=buttons[i * d + j][1]) keyboard.add_line() for i in range(len(buttons) % d): keyboard.add_button(buttons[-i - 1][0], color=buttons[-i - 1][1]) line = True if line: keyboard.add_line() keyboard.add_button('Вернуться на главную', color=VkKeyboardColor.NEGATIVE) else: keyboard.add_location_button() return keyboard.get_keyboard()
def create_keyboard_for_which_yrok(response): keyboard = VkKeyboard(one_time=False) if response == 'какой урок будет первым в...?': # Создание кнопок keyboard.add_button('Понедельник', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Вторник', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Среда', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Четверг', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Пятница', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE) elif response == 'закрыть': print('закрываем клаву') return keyboard.get_empty_keyboard() keyboard = keyboard.get_keyboard() return keyboard
def help_keyboard(): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Хочу выпить кофе', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('Пройти опрос', color=VkKeyboardColor.POSITIVE) keyboard = keyboard.get_keyboard() return keyboard
def create_keyboard(response): keyboard = VkKeyboard(one_time=False) if response == 'привет' or 'новая возможность': # Создание кнопок #keyboard.add_button('Домашнее задание', color=VkKeyboardColor.NEGATIVE) #keyboard.add_line() keyboard.add_button('Будет ли завтра дождь?', color=VkKeyboardColor.PRIMARY) #keyboard.add_line() #keyboard.add_button('Какой сегодня первый урок?', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Какой урок будет первым в...?', color=VkKeyboardColor.POSITIVE) #keyboard.add_line() #keyboard.add_button('Какой следующий урок?', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Погода', color=VkKeyboardColor.DEFAULT) #keyboard.add_button('ФИО учителей', color=VkKeyboardColor.DEFAULT) #keyboard.add_button('ГДЗ', color=VkKeyboardColor.NEGATIVE) #keyboard.add_line() #keyboard.add_button('Правила по русскому языку', color=VkKeyboardColor.DEFAULT) keyboard = keyboard.get_keyboard() return keyboard
def send_menu_keyboard(api, user_id, msg='Я снова здесь)', perms='user'): keyboard = VkKeyboard(one_time=False) if perms == 'admin': keyboard.add_button('Admin', color=VkKeyboardColor.POSITIVE) if perms == 'admin' or perms == 'editor': keyboard.add_button('Editor', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Учебники', color=VkKeyboardColor.PRIMARY) keyboard.add_button('Расписание', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('Info', color=VkKeyboardColor.PRIMARY) keyboard.add_button('ДЗ', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('help', color=VkKeyboardColor.DEFAULT) keyboard.add_button('report', color=VkKeyboardColor.NEGATIVE) api.messages.send(peer_id=user_id, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message=msg)
def create_keyboard(x): keyboard = VkKeyboard(one_time=False) if x == 'тест': keyboard = VkKeyboard(one_time=True) keyboard.add_button('Белая кнопка', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Зелёная кнопка', color=VkKeyboardColor.POSITIVE) keyboard.add_line() # Переход на вторую строку keyboard.add_button('Красная кнопка', color=VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Синяя кнопка', color=VkKeyboardColor.PRIMARY) keyboard.add_button('Привет', color=VkKeyboardColor.PRIMARY) elif x == 'смех': keyboard.add_button("хочу смешную картинку!", color=VkKeyboardColor.POSITIVE) elif x == 'король здесь': keyboard = VkKeyboard(one_time=True) keyboard.add_button('Король здесь', color=VkKeyboardColor.POSITIVE) elif x == 'закрыть': print('закрываем клаву') return keyboard.get_empty_keyboard() keyboard = keyboard.get_keyboard() return keyboard
def create_key(event): if (str(event.user_id) in adminlist or moderlist or mains): keyboard = VkKeyboard(one_time=False) keyboard.add_button('Бот', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Аптайм', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Статус', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Выкл', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Помощь', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Закрыть', color=VkKeyboardColor.DEFAULT) else: keyboard = VkKeyboard(one_time=False) keyboard.add_button('Бот', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Аптайм', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Помощь', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Закрыть', color=VkKeyboardColor.DEFAULT) keyboard = keyboard.get_keyboard() return keyboard
def make_keyb(my_keyb, user_id, answer, col=1): keyboard = VkKeyboard(one_time=False) last = True for i in range(min(8 * col, len(my_keyb))): keyboard.add_button(my_keyb[i]['label'], color=my_keyb[i]['color'], payload=my_keyb[i]['payload']) if (i + 1) % col == 0: keyboard.add_line() last = True else: last = False if len(my_keyb) > 8 * col: sessionStorage[user_id]._KEYB = my_keyb sessionStorage[user_id]._PAGE = 0 sessionStorage[user_id]._COL = col keyboard.add_button('Далее ->', color=VkKeyboardColor.PRIMARY, payload={ 'action': 'bot.next_page', 'text': answer }) keyboard.add_line() if not last: keyboard.add_line() keyboard.add_button('Отмена', color=VkKeyboardColor.PRIMARY, payload={'action': 'bot.cancel'}) return keyboard.get_keyboard()
def get_keyboard() -> Dict: keyboard = VkKeyboard(one_time=True) keyboard.add_button(NEW_QUESTION_TEXT, color=VkKeyboardColor.DEFAULT) keyboard.add_button(SURRENDER_TEXT, color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button(SCORE_TEXT, color=VkKeyboardColor.DEFAULT) return keyboard.get_keyboard()
def offer(usr,user_id): res=False send_message('Это тот, кто нужен?\nhttps://vk.com/id{}\nИмя: {}\nФамилия: {}'.format(usr.id_of_user, usr.name, usr.surname),user_id) keyboard = VkKeyboard(one_time=True) keyboard.add_button('Да', color=VkKeyboardColor.POSITIVE, payload='0') keyboard.add_button('Нет', color=VkKeyboardColor.DEFAULT, payload='1') vk.messages.send( peer_id=user_id, random_id=random.randint(1000000000,100000000000), keyboard=keyboard.get_keyboard(), message='Выберите пользователя' ) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: if event.text == 'Да': print('Yes') #raise KeybooardInterrupt return True else: print('No') return False #TODO: need send_message function defined --- done #TODO: show buttons 'Yes' or 'No' #TODO: res = ... '''True or False'''
def f(): global start global info_chats threading.Timer(3600, f).start() # Перезапуск через 60 минут if start == False: for i in info_chats.keys(): keyboard = info_chats[i]["keyboard"] if info_chats[i]["ue4"] == "t": vk.method( "messages.send", { 'peer_id': i, 'random_id': get_random_id(), 'message': "Последнее видео Marco Ghislanzoni - " + youtube.get_last_video(ue4_blogers[0]), 'keyboard': keyboard }) else: vk.method( "messages.send", { 'peer_id': i, 'random_id': get_random_id(), 'message': "А вы знали, что " + random.randelem(facts), 'keyboard': keyboard }) else: for i in info_chats.keys(): keyboard = VkKeyboard(one_time=False) if info_chats[i]["ue4"] == "t": keyboard.add_button("!скажи факт", color=VkKeyboardColor.POSITIVE) keyboard.add_button("!покажи документацию", color=VkKeyboardColor.NEGATIVE) keyboard.add_button("!настройки", color=VkKeyboardColor.SECONDARY) keyboard.add_button("!новости ue4", color=VkKeyboardColor.PRIMARY) else: keyboard.add_button("!скажи факт", color=VkKeyboardColor.POSITIVE) keyboard.add_button("!покажи документацию", color=VkKeyboardColor.NEGATIVE) keyboard.add_button("!настройки", color=VkKeyboardColor.SECONDARY) keyboard = keyboard.get_keyboard() info_chats[i]["keyboard"] = keyboard vk.method( "messages.send", { 'peer_id': i, 'random_id': get_random_id(), 'message': greeting, 'keyboard': info_chats[i]["keyboard"] }) start = False
def create_keyboard(response): keyboard = VkKeyboard(one_time=False) if response == "/help" or response == "!начать" or response == "!старт" or response == "старт" or response == "начать" or response == "назад" or response == "/start" or response == "start" or response == "!start": keyboard.add_button('Купить', color=VkKeyboardColor.POSITIVE) keyboard.add_button('Продать', color=VkKeyboardColor.POSITIVE) keyboard.add_button('Пруфы', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Отключить бота', color=VkKeyboardColor.NEGATIVE) elif response == 'купить': keyboard.add_button('100к', color=VkKeyboardColor.POSITIVE) keyboard.add_button('500к', color=VkKeyboardColor.POSITIVE) keyboard.add_button('1кк', color=VkKeyboardColor.POSITIVE) keyboard.add_button('5кк', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Другое', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE) elif response == 'продать': keyboard.add_button('До 1кк', color=VkKeyboardColor.POSITIVE) keyboard.add_button('1кк-5кк', color=VkKeyboardColor.POSITIVE) keyboard.add_button('5кк-15кк', color=VkKeyboardColor.POSITIVE) keyboard.add_button('От 15кк', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE) elif response == 'отключить бота': print('Отключаю') return keyboard.get_empty_keyboard() keyboard = keyboard.get_keyboard() return keyboard
def create_keyboard(USER_MESSAGE): ## СОЗДАНИЕ КНОПОК keyboard = VkKeyboard(one_time=False) if USER_MESSAGE == "начать": print("Фнкция запустилась") keyboard.add_button('Рандомный мем', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Начать анонимный чат', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Давай поболтаем', color=VkKeyboardColor.POSITIVE) elif USER_MESSAGE == 'давай поболтаем': keyboard.add_button('Вернуться в начало', color=VkKeyboardColor.DEFAULT) elif USER_MESSAGE == 'начать анонимный чат': keyboard.add_button('Покинуть анонимный чат', color=VkKeyboardColor.DEFAULT) elif USER_MESSAGE == 'рандмоный мем': keyboard.add_button('Еще мем', color=VkKeyboardColor.DEFAULT) elif USER_MESSAGE == 'вернуться в начало' or 'gокинуть анонимный чат': keyboard.add_button('Рандомный мем', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Начать анонимный чат', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Давай поболтаем', color=VkKeyboardColor.POSITIVE) #print('закрываем клаву') #return keyboard.get_empty_keyboard() keyboard = keyboard.get_keyboard() return keyboard
def getkeyboard(answered): keyboard = VkKeyboard() # если игрок ответил на вопрос, предложить ему получить новый if answered == True: keyboard.add_button('Вопрос ЧГК', 'primary') keyboard.add_button('Вопрос свояк') keyboard.add_button('Вопрос брейн') keyboard.add_line() keyboard.add_button('Вопрос студ') keyboard.add_button('Вопрос шк') keyboard.add_line() keyboard.add_button('Источник') #keyboard.add_line() keyboard.add_button('Турнир') #keyboard.add_line() keyboard.add_button('Автор') # если игрок еще не ответил на вопрос, предложить получить ответ elif answered == False: keyboard.add_button('Ответ', 'primary') keyboard.add_line() keyboard.add_button('Турнир') keyboard.add_line() keyboard.add_button('Автор') keyboard = keyboard.get_keyboard() return keyboard
def main(): """ Пример создания клавиатуры для отправки ботом """ vk_session = vk_api.VkApi(token='bot_api_token') vk = vk_session.get_api() keyboard = VkKeyboard(one_time=True) keyboard.add_button('Белая кнопка', color=VkKeyboardColor.DEFAULT) keyboard.add_button('Зелёная кнопка', color=VkKeyboardColor.POSITIVE) keyboard.add_line() # Переход на вторую строку keyboard.add_button('Красная кнопка', color=VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Синяя кнопка', color=VkKeyboardColor.PRIMARY) vk.messages.send( peer_id=123456, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message='Пример клавиатуры' )