Пример #1
0
 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()
Пример #2
0
 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()
Пример #3
0
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()
Пример #4
0
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
Пример #5
0
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
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 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()
Пример #9
0
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()
Пример #10
0
	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)
Пример #11
0
 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)
Пример #12
0
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
Пример #13
0
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)
Пример #14
0
    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='Опиши проблему')
Пример #15
0
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()
Пример #16
0
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()
Пример #17
0
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()
Пример #18
0
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()
Пример #19
0
 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 = {}
Пример #20
0
    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)
Пример #21
0
 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()
Пример #22
0
 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
Пример #24
0
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
Пример #25
0
    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())
Пример #26
0
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
Пример #27
0
    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
Пример #28
0
 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
Пример #29
0
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