예제 #1
0
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())
예제 #2
0
    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=====')
예제 #3
0
    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())
예제 #4
0
파일: utils.py 프로젝트: whydie/questbot
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(),
        )
예제 #5
0
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
예제 #6
0
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())
예제 #8
0
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)
예제 #9
0
 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()
예제 #10
0
파일: StartBot.py 프로젝트: Marlinsmas/tam
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")
예제 #11
0
    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"&#128522; Привет, {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"&#128522; Привет, {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"&#128522; Привет, {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
예제 #13
0
    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())
예제 #14
0
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'])
예제 #15
0
def create_keyboard3():
    keyboard = VkKeyboard(one_time=True)

    keyboard.add_button('Ввести заново', color='primary')

    keyboard = keyboard.get_keyboard()
    return keyboard
예제 #16
0
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
예제 #17
0
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()
예제 #18
0
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
예제 #20
0
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
예제 #21
0
    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)
예제 #22
0
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
예제 #23
0
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
예제 #24
0
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()
예제 #25
0
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()
예제 #26
0
파일: bot.py 프로젝트: yuliyadubonos/bot
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'''
예제 #27
0
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
예제 #28
0
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
예제 #29
0
파일: main.py 프로젝트: Mejay013/Vk_BOT1
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
예제 #30
0
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
예제 #31
0
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='Пример клавиатуры'
    )