def keyboard_help(self): keyboard = VkKeyboard() keyboard.add_button(MESSAGE_KEYBOARD['settings_keyb_time'], color=VkKeyboardColor.DEFAULT) keyboard.add_button(MESSAGE_KEYBOARD['settings_keyb_sort'], color=VkKeyboardColor.DEFAULT) keyboard.add_button(MESSAGE_KEYBOARD['settings_keyb_display'], color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button(MESSAGE_KEYBOARD['menu_keyb'], color=VkKeyboardColor.PRIMARY) return keyboard.get_keyboard()
def keyboard_display(self): keyboard = VkKeyboard() keyboard.add_button(MESSAGE_KEYBOARD['settings_keyb_display_inside_1'], color=VkKeyboardColor.DEFAULT) keyboard.add_button(MESSAGE_KEYBOARD['settings_keyb_display_inside_2'], color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button(MESSAGE_KEYBOARD['menu_keyb'], color=VkKeyboardColor.PRIMARY) keyboard.add_button(MESSAGE_KEYBOARD['menu_keyb'], color=VkKeyboardColor.PRIMARY) return keyboard.get_keyboard()
def create_time_keyboard(): keyboard = VkKeyboard() keyboard.add_button("Сейчас", color=VkKeyboardColor.POSITIVE) keyboard.add_button("Через несколько часов", color=VkKeyboardColor.POSITIVE) keyboard.add_button("Ближайшие время", color=VkKeyboardColor.POSITIVE) return keyboard.get_keyboard()
def get_question_not_found_keyboard(): keyboard = VkKeyboard() keyboard.add_button('Частые вопросы', color=VkKeyboardColor.PRIMARY) keyboard.add_button('Заказать звонок', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('Основное меню') return keyboard
def get_keyboard(): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Новый вопрос', color=VkKeyboardColor.PRIMARY) keyboard.add_button('Сдаться', color=VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Мой счет', color=VkKeyboardColor.SECONDARY) return keyboard
def StartSell(self, uid): k = VkKeyboard(one_time=False) k.add_button(langs.back, color=VkKeyboardColor.NEGATIVE) self.vk.messages.send(peer_id=int(uid), random_id=get_random_id(), message=langs.sell_stage_1, keyboard=k.get_keyboard()) self.SetActivity(uid, 11)
def new_rules(self): text = "Добавим дополнительные правила?" keyboard = VkKeyboard(one_time=True) keyboard.add_button("Нет", color=VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button("Длинее какого-то числа", color=VkKeyboardColor.SECONDARY) self.step += 1 self.send_messages(text=text, keyboard=keyboard)
def keyboard_menu(self): keyboard = VkKeyboard() keyboard.add_button(MESSAGE_KEYBOARD['start_keyb_kontroler'], color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(MESSAGE_KEYBOARD['start_keyb_settings'], color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(MESSAGE_KEYBOARD['start_keyb_info'], color=VkKeyboardColor.PRIMARY) return keyboard.get_keyboard()
def get_keyboard(answers): random.shuffle(answers) keyboard = VkKeyboard(one_time=True) for index, answer in enumerate(answers, 1): keyboard.add_button(answer, color=VkKeyboardColor.PRIMARY) if is_too_many_buttons_in_ow(index, answers): keyboard.add_line() return keyboard.get_keyboard()
def __init__(self): self.token = "c067f6d5d251a343def6605cb6be50e52b1482d917298b71a01eefe0895b6186f5ebc4342436607dfbd08" self.vk_session = vk_api.VkApi(token=self.token) self.club_id = 194439099 self.longpoll = VkBotLongPollRaw(self.vk_session, 194439099) self.keyboard = VkKeyboard(one_time=True) self.keyboard.add_button('Да', color=VkKeyboardColor.POSITIVE) self.keyboard.add_button('Нет', color=VkKeyboardColor.DEFAULT)
def welcome(self): text = "Здраствуй! Я бот для игы в слова. Выберите действие." keyboard = VkKeyboard(one_time=True) keyboard.add_button("Начать игру", color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button("Помощь", color=VkKeyboardColor.NEGATIVE) self.step += 1 self.send_messages(text=text, keyboard=keyboard)
def genetateKeyboard(o1, o2): keyboard = VkKeyboard(one_time=True) keyboard.add_button(o1, color=VkKeyboardColor.DEFAULT) keyboard.add_button(o2, color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Мой счет', color=VkKeyboardColor.POSITIVE) return keyboard
def email3(id, body): ## Проверка проверочного кода with open(pat, 'r') as f: json_data = json.load(f) code = str(json_data['code']) email = json_data['email2'] if code == str(body): with open(pat, 'r') as f: json_data = json.load(f) json_data['com'] = "email4" json_data['email'] = email with open(pat, 'w') as f: f.write(json.dumps(json_data)) email4(id) elif body == 'Отмена': with open(pat, 'r') as f: json_data = json.load(f) json_data['com'] = 'pro' with open(pat, 'w') as f: f.write(json.dumps(json_data)) pro(id) elif body == 'Отправить новый код подтверждения': with open(pat, 'r') as f: json_data = json.load(f) json_data['email2'] = "" json_data['com'] = "email2" with open(pat, 'w') as f: f.write(json.dumps(json_data)) email2(id, email) elif body == 'Изменить email': with open(pat, 'r') as f: json_data = json.load(f) json_data['email2'] = "" json_data['com'] = "email1" with open(pat, 'w') as f: f.write(json.dumps(json_data)) email1(id) else: vk_session = vk_api.VkApi(token=token) vk1 = vk_session.get_api() keyboard = VkKeyboard(one_time=True) keyboard.add_button('Отправить новый код подтверждения', color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button('Изменить email', color=VkKeyboardColor.SECONDARY) vk1.messages.send(peer_id=id, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message='Не верный код') with open(pat, 'r') as f: json_data = json.load(f) json_data['email2'] = "" json_data['com'] = "email2" with open(pat, 'w') as f: f.write(json.dumps(json_data)) email2(id, email)
def send_report_keyboard(api, user_id): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Назад', color=VkKeyboardColor.DEFAULT) api.messages.send(peer_id=user_id, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message='Опиши проблему')
def enable_keyboard_rasp_ffkis_2019(geo_button=False): keyboard = VkKeyboard(False) keyboard.add_button('ФФКС-б19По1', VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('ФФКС-б19По2', VkKeyboardColor.DEFAULT) keyboard.add_button('ФФКС-б19Фо', VkKeyboardColor.DEFAULT) keyboard.add_button('🥇 Назад', VkKeyboardColor.NEGATIVE) return keyboard.get_keyboard()
def rank_keyboard(): keyboard = VkKeyboard(one_time=False) keyboard.add_button("В кружке", color=VkKeyboardColor.POSITIVE) keyboard.add_button("По городу", color=VkKeyboardColor.POSITIVE) keyboard.add_button("По стране", color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button("Hазад", color=VkKeyboardColor.SECONDARY) return keyboard.get_keyboard()
def create_delivery_buttons(distance): keyboard = VkKeyboard() if distance <= 20: keyboard.add_button("Доставка", payload=json.dumps("delivery")) keyboard.add_line() keyboard.add_button("Самовывоз", payload=json.dumps("pickup")) else: keyboard.add_button("Самовывоз", payload=json.dumps("pickup")) return keyboard.get_keyboard()
def keyboard(): keyboard = VkKeyboard(one_time=False) keyboard.add_button("курс", color=VkKeyboardColor.PRIMARY) keyboard.add_button("погода", color=VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button("команды", color=VkKeyboardColor.DEFAULT) keyboard.add_button("мем", color=VkKeyboardColor.DEFAULT) return keyboard.get_keyboard()
def __init__(self): # noinspection SpellCheckingInspection # FIXME: укажите Ваш токен сообщества (группы) Вконтакте вместо os.getenv("VKINDER_TOKEN") TOKEN = os.getenv("VKINDER_TOKEN") self.vk_bot = vk_api.VkApi(token=TOKEN, api_version='5.124') # noinspection SpellCheckingInspection self.longpoll = VkLongPoll(self.vk_bot) self.empty_keyboard = VkKeyboard().get_empty_keyboard() self.users = {}
def start(self): for event in self.long_poll.listen(): # Слушаем сервер # TODO сделать обработку иключений, чтобы бот не падал просто так # Создаем словарь параметров для передачи в функцию CoreBot`a params = { "ID": event.object.from_id, "trigger": event.object.text.lower() } # Передаем данные в CoreBot и получаем ответ по протоколу try: answer = self.func(**params) except Exception as e: print(e) continue params = {"peer_id": answer['ID'], "random_id": get_random_id()} # Смотрим, существуют ли кнопки keyboard = answer.get('keyboard') if keyboard is not None: # Создаем VkKeyboard и добавляем туда кнопки, согласно протоколу buttons = VkKeyboard(one_time=True) for i, line in enumerate(keyboard): for button in line: buttons.add_button(button, color=VkKeyboardColor.PRIMARY) if i + 1 < len(keyboard): buttons.add_line() # Добавляем клавиатуру в параметры сообщения params.update({"keyboard": buttons.get_keyboard()}) # Добавляем сообщение, если оно есть message = answer.get("message") if message is not None: if type(message) is list: self.vk.messages.send(peer_id=params['peer_id'], message=message[0], random_id=get_random_id()) params.update({"message": message[1]}) else: params.update({"message": message}) # TODO сделать поддержку вложений и стикеров # Отправляем сообщение пользователю files = answer.get('attachments') attachments = [] if files is not None: photos = self.upload.photo_messages(photos=files) for photo in photos: attachments.append('photo{}_{}'.format( photo['owner_id'], photo['id'])) params.update({'attachment': ','.join(attachments)}) self.vk.messages.send(**params)
def keyboard_main(self): keyboard_main = VkKeyboard(one_time=False) keyboard_main.add_button('Замены', color=VkKeyboardColor.POSITIVE) keyboard_main.add_line() keyboard_main.add_button('Сегодня', color=VkKeyboardColor.PRIMARY) keyboard_main.add_button('Завтра', color=VkKeyboardColor.PRIMARY) keyboard_main.add_line() keyboard_main.add_button('Помощь', color=VkKeyboardColor.DEFAULT) return keyboard_main.get_keyboard()
def get_keyboard_professor(message): keyboard = VkKeyboard(one_time=True) keyboard.add_button('На сегодня', color=VkKeyboardColor.POSITIVE) keyboard.add_button('На завтра', color=VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('На эту неделю', color=VkKeyboardColor.PRIMARY) keyboard.add_button('На следующую неделю', color=VkKeyboardColor.PRIMARY) return Response(message, keyboard)
def main_keyboard(): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Хочу выпить кофе', color=VkKeyboardColor.PRIMARY) # keyboard.add_button('Хочу фильм', color=VkKeyboardColor.NEGATIVE) # keyboard.add_button('Хочу книгу', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Что тут вообще происходит?', color=VkKeyboardColor.NEGATIVE) keyboard = keyboard.get_keyboard() return keyboard
def init_keyboard(): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Новый вопрос', color=VkKeyboardColor.POSITIVE) keyboard.add_button('Сдаться', color=VkKeyboardColor.DEFAULT) keyboard.add_line() # Переход на вторую строку keyboard.add_button('Мой счёт', color=VkKeyboardColor.NEGATIVE) return keyboard
def __init__(self, authorization_data, database, function_dict, measuring_system): """Выполняет инициализацию класса""" self.__database = database self.__room_list = self.__database.get_room_list() self.__token = authorization_data.get_token() self.__function_dict = function_dict self.__measuring_system = measuring_system # Создание экземпляров клавиатуры self.__function_keyboard = VkKeyboard(one_time=True) self.__rooms_keyboard = VkKeyboard(one_time=True) # Определение переменных для работы с vk-api self.__vk_session = vk_api.VkApi(token=self.__token) self.__vk = self.__vk_session.get_api() self.__upload = VkUpload(self.__vk_session) self.__longpoll = VkBotLongPoll(self.__vk_session, authorization_data.get_group_id())
def create_keyboard(): keyboard = VkKeyboard(one_time=True) keyboard.add_button('Привет', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Hello', color=VkKeyboardColor.PRIMARY) keyboard = keyboard.get_keyboard() return keyboard
def Request(self, step, event, module_num, vk_session): if (step == 0): #user = db.User(event.obj.from_id) #user.execute_if_not_exists() print("Работа в модуле привет") keyboard = VkKeyboard(one_time=True) keyboard.add_button("Ура!!!!!!!!", color=VkKeyboardColor.DEFAULT) return 'Привет, я твой лучший друг, ', keyboard, None
def create_work_keyboard(self): menu = VkKeyboard() menu.add_button(label="Работа Рэкет по городу", color="positive") menu.add_line() menu.add_button(label="Работа Смена на заводе", color="positive") menu.add_line() menu.add_button(label="Работа Грабеж", color="positive") menu = menu.get_keyboard() return menu
def main(): # init console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) formatter = logging.Formatter( fmt='%(asctime)s %(name)s:%(lineno)d - %(message)s', datefmt='%Y-%b-%d %H:%M:%S (%Z)', style='%', ) console_handler.setFormatter(formatter) logger.setLevel(logging.DEBUG) logger.addHandler(console_handler) quiz_tools_logger = logging.getLogger('quiz_tools') quiz_tools_logger.addHandler(console_handler) quiz_tools_logger.setLevel(logging.DEBUG) redis_tools_logger = logging.getLogger('redis_tools') redis_tools_logger.addHandler(console_handler) redis_tools_logger.setLevel(logging.DEBUG) load_dotenv() vk_token = getenv('VK_TOKEN') vk_session = vk_api.VkApi(token=vk_token) longpoll = VkLongPoll(vk_session) vk = vk_session.get_api() keyboard = VkKeyboard(one_time=True) keyboard.add_button('Новый вопрос', color=VkKeyboardColor.DEFAULT) keyboard.add_line() keyboard.add_button('Сдаться', color=VkKeyboardColor.DEFAULT) # do try: logger.debug('Стартуем бота') for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me: if event.text == 'Привет': send_text_message(event, vk, keyboard) elif event.text == 'Новый вопрос': handle_new_question(event, vk, keyboard) elif event.text == 'Сдаться': handle_capitulate(event, vk, keyboard) else: handle_answer_attempt(event, vk, keyboard) except KeyboardInterrupt: logger.info('Бот остановлен') except ConnectionError: logger.error('Connection aborted') except requests.exceptions.ReadTimeout: logger.error('Переподключение к серверам ВК') time.sleep(3) except Exception as err: logger.error('Бот упал с ошибкой:') logger.error(err) logger.debug(err, exc_info=True)
def create_keyb1(buttons): keyboard = VkKeyboard(one_time=True) for b in buttons: if b == 'new_line': keyboard.add_line() else: keyboard.add_button(b, color=VkKeyboardColor.POSITIVE) keyboard = keyboard.get_keyboard() return keyboard