Exemplo n.º 1
0
def get_keyboard():
    keyboard = VkKeyboard(one_time=True)
    keyboard.add_button('Новый вопрос', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button('Сдаться', color=VkKeyboardColor.NEGATIVE)
    return keyboard.get_keyboard()
Exemplo n.º 2
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
Exemplo n.º 3
0
    def send_editor_keyboard(api, user_id):
        keyboard = VkKeyboard(one_time=False)

        keyboard.add_button('Рaзослать', color=VkKeyboardColor.NEGATIVE)
        keyboard.add_button('Добавить', color=VkKeyboardColor.POSITIVE)

        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.DEFAULT)

        api.messages.send(peer_id=user_id,
                          random_id=get_random_id(),
                          keyboard=keyboard.get_keyboard(),
                          message='Меню редактора открыто!')
Exemplo n.º 4
0
    def send_editor_keyboard_add(api, user_id):
        keyboard = VkKeyboard(one_time=False)

        keyboard.add_button('Информация', color=VkKeyboardColor.NEGATIVE)
        keyboard.add_button('ДЗ', color=VkKeyboardColor.POSITIVE)

        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.DEFAULT)

        api.messages.send(peer_id=user_id,
                          random_id=get_random_id(),
                          keyboard=keyboard.get_keyboard(),
                          message='Меню добавления открыто!')
Exemplo n.º 5
0
 def command_show_recommendation(self, from_id, payload):
     page = int(payload['button'].split('_')[2])
     recommendation = self.db_session.query(self.db.UserStatuses).filter(
         self.db.UserStatuses.user_id == from_id).first()
     recommendation = recommendation.subjects.split('&')
     group_ids = self.db_session.query(self.db.GroupsIds).filter(
         or_(self.db.GroupsIds.subject == recommendation[0],
             self.db.GroupsIds.subject == recommendation[1],
             self.db.GroupsIds.subject == recommendation[2])).all()
     show_groups = group_ids[(page - 1) * 10:page * 10]
     message = f'Страница {page}:\n'
     message += '\n'.join([
         f'{i + 1}. {show_groups[i].name} -- '
         f'https://vk.com/club{show_groups[i].group_id}'
         for i in range(len(show_groups))
     ])
     keyboard = VkKeyboard(one_time=True)
     keyboard.add_button('Начать анализ повторно',
                         color=VkKeyboardColor.SECONDARY,
                         payload=json.dumps({'button': 'start_analysis'}))
     keyboard.add_line()
     page_number = page - 1 if page > 1 else len(group_ids) // 10 + 1
     keyboard.add_button(f'Страница {page_number}',
                         color=VkKeyboardColor.PRIMARY,
                         payload=json.dumps({
                             'button':
                             f'show_recommendation_{page_number}'
                         }))
     page_number = (page + 1) % (len(group_ids) // 10 + 1)
     page_number = page_number or len(group_ids) // 10 + 1
     keyboard.add_button(f'Страница {page_number}',
                         color=VkKeyboardColor.PRIMARY,
                         payload=json.dumps({
                             'button':
                             f'show_recommendation_{page_number}'
                         }))
     self.send_message(from_id, message, keyboard.get_keyboard())
     user_status = self.db_session.query(self.db.UserStatuses).filter(
         self.db.UserStatuses.user_id == from_id).first()
     user_status.status = 'show_page'
     user_status.page = page
     self.db_session.commit()
Exemplo n.º 6
0
    def send_shedule_keyboard(api, user_id):
        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.PRIMARY)

        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.DEFAULT)

        api.messages.send(peer_id=user_id,
                          random_id=get_random_id(),
                          keyboard=keyboard.get_keyboard(),
                          message='Что интересует?')
Exemplo n.º 7
0
import config
import requests
import vk_api
import random

session = requests.Session()
vk_session = vk_api.VkApi(token="TOKEN_API")

try:
    # vk_session.auth(token_only=True)

    vk = vk_session.get_api()
    long_poll = VkBotLongPoll(vk_session, 194736647)

    keyboard = VkKeyboard(one_time=True)
    keyboard.add_button("Кнопка 1", color=VkKeyboardColor.DEFAULT)
    keyboard.add_button("Кнопка 2", color=VkKeyboardColor.NEGATIVE)
    keyboard.add_button("Кнопка 3.1", color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button("Кнопка 4", color=VkKeyboardColor.PRIMARY)
    keyboard.add_line()
    keyboard.add_location_button()
    keyboard.add_line()
    keyboard.add_vkpay_button(hash="action=pay-to-user&amount=100&user_id=23382988")
    keyboard.add_line()
    keyboard.add_vkpay_button(hash="action=transfer-to-group&group_id=194736647&aid=7439933")

    for event in long_poll.listen():
        if event.type == VkBotEventType.MESSAGE_NEW and event.obj['message']['from_id']:
            print(event)
Exemplo n.º 8
0
def send_exchange_menu(session, event):

    keyboard = VkKeyboard(inline=True)
    keyboard.add_button('1я',
                        VkKeyboardColor.NEGATIVE,
                        payload=json.dumps({'fid': 1}))
    keyboard.add_button('2я',
                        VkKeyboardColor.POSITIVE,
                        payload=json.dumps({'fid': 2}))
    keyboard.add_button('3я',
                        VkKeyboardColor.PRIMARY,
                        payload=json.dumps({'fid': 3}))
    keyboard.add_button('Запечатать',
                        VkKeyboardColor.SECONDARY,
                        payload=json.dumps({'to_token': True}))
    session.messages.send(
        peer_id=event.obj.message['peer_id'],
        message='Ваш сквад полон! Выберете какую флоппу заменить',
        random_id=random.randint(100000, 999999),
        keyboard=keyboard.get_keyboard())
def generate_bot_commands_keyboard() -> VkKeyboard:
    keyboard_commands = VkKeyboard()
    keyboard_commands.add_callback_button(label='Начать игру',
                                          color=VkKeyboardColor.PRIMARY,
                                          payload={"type": "text"})
    keyboard_commands.add_callback_button(label='Завершить игру',
                                          color=VkKeyboardColor.PRIMARY,
                                          payload={"type": "text"})
    keyboard_commands.add_line()
    keyboard_commands.add_callback_button(label='Об игре',
                                          color=VkKeyboardColor.PRIMARY,
                                          payload={"type": "text"})
    keyboard_commands.add_callback_button(label='О боте',
                                          color=VkKeyboardColor.PRIMARY,
                                          payload={"type": "text"})
    keyboard_commands.add_line()
    keyboard_commands.add_callback_button(label='Мои очки',
                                          color=VkKeyboardColor.PRIMARY,
                                          payload={"type": "text"})
    return keyboard_commands
Exemplo n.º 10
0
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from json import dumps
from copy import deepcopy

empty_keyboard = dumps({"buttons": [], "one_time": True})

basic_keyboard = VkKeyboard(one_time=True)
basic_keyboard.add_button('Помощь', color=VkKeyboardColor.PRIMARY)

notification_keyboard = VkKeyboard(one_time=True)
notification_keyboard.add_button('Включить', color=VkKeyboardColor.POSITIVE)
notification_keyboard.add_button('Выключить', color=VkKeyboardColor.NEGATIVE)
notification_keyboard.add_button('Выход', color=VkKeyboardColor.DEFAULT)

options_keyboard = VkKeyboard(one_time=True)
options_keyboard.add_button('Уведомления', color=VkKeyboardColor.PRIMARY)
options_keyboard.add_button('Подписка', color=VkKeyboardColor.DEFAULT)

options_keyboard_with_help = deepcopy(options_keyboard)
options_keyboard_with_help.add_button('Помощь', color=VkKeyboardColor.PRIMARY)

subscribe_keyboard = VkKeyboard(one_time=True)
subscribe_keyboard.add_button('Подписаться', color=VkKeyboardColor.POSITIVE)
subscribe_keyboard.add_button('Отписаться', color=VkKeyboardColor.NEGATIVE)
subscribe_keyboard.add_button('Информация', color=VkKeyboardColor.PRIMARY)
subscribe_keyboard.add_button('Выход', color=VkKeyboardColor.DEFAULT)
Exemplo n.º 11
0
def create_keyboard(response):
    keyboard = VkKeyboard(one_time=False)

    if 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.POSITIVE)

    elif response == 'котики':
        keyboard.add_button('Котики!', color=VkKeyboardColor.POSITIVE)

    elif response == 'закрыть':
        print('закрываем клаву')
        return keyboard.get_empty_keyboard()

    keyboard = keyboard.get_keyboard()
    return keyboard
Exemplo n.º 12
0
    def __init__(self, api_token, group_id, server_name: str = "Empty"):
        self.group_id = # айди группы в формате integer

        self.api_token = "Ваш токен"
        # Даем серверу имя
        self.server_name = server_name

        # Для Long Poll
        self.vk = vk_api.VkApi(token=api_token)

        # Для использования Long Poll API
        self.long_poll = VkBotLongPoll(self.vk, group_id, wait=100)

        # Для вызова методов vk_api
        self.vk_api = self.vk.get_api()

        self.valutes = ["Австралийский доллар", "Азербайджанский манат", "Фунт стерлингов Соединенного королевства",
                        "Армянских драмов", "Белорусский рубль", "Болгарский лев", "Бразильский реал",
                        "Венгерских форинтов",
                        "Гонконгских долларов",
                        "Датская крона", "Доллар США", "Евро", "Индийских рупий", "Казахстанских тенге",
                        "Канадский доллар",
                        "Киргизских сомов", "Китайский юань", "Молдавских леев", "Норвежских крон", "Польский злотый",
                        "Румынский лей", "СДР - специальные права заимствования", "Сингапурский доллар",
                        "Таджикских сомони", "Турецкая лира", "Новый туркменский манат", "Узбекских сумов",
                        "Украинских гривен", "Чешских крон", "Шведских крон", "Швейцарский франк",
                        "Южноафриканских рэндов",
                        "Вон Республики Корея", "Японских иен"]
        self.valuteskod = ["AUD", "AZN", "GBP", "AMD", "BYN", "BGN", "BRL", "HUF", "HKD", "DKK", "USD", "EUR", "INR",
                           "KZT",
                           "CAD", "KGS", "CNY", "MDL", "NOK", "PLN ", "RON", "XDR", "SGD", "TJS", "TRY", "TMT", "UZS",
                           "UAH",
                           "CZK", "SEK", "CHF", "ZAR", "KRW", "JPY"]
        self.citys = ["Москва", "Санкт-Петербург", "Краснодар", "Новосибирск", "Красноярск", "Владивосток",
                      "Ростов-На-Дону"]

        self.keyboard = VkKeyboard(one_time=True)
        self.keyboard.add_button('Погода❄⛈🌤', color=VkKeyboardColor.PRIMARY)
        self.keyboard.add_button('Последняя новость', color=VkKeyboardColor.PRIMARY)
        self.keyboard.add_line()
        self.keyboard.add_button('Расписание', color=VkKeyboardColor.POSITIVE)
        self.keyboard.add_button('Курс валют', color=VkKeyboardColor.POSITIVE)
        self.keyboard.add_line()
        self.keyboard.add_location_button()

        self.raspis = VkKeyboard(one_time=True)
        self.raspis.add_button('Москва', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_button('Санкт-Петербург', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Краснодар', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_button('Новосибирск', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Красноярск', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_button('Владивосток', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Ростов-На-Дону', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Другой город', color=VkKeyboardColor.SECONDARY)
        self.raspis.add_button('Меню', color=VkKeyboardColor.SECONDARY)

        self.moneykb = VkKeyboard(one_time=True)
        self.moneykb.add_button('Доллар США и Евро', color=VkKeyboardColor.PRIMARY)
        self.moneykb.add_button('Курс биткоина', color=VkKeyboardColor.PRIMARY)
        self.moneykb.add_line()
        self.moneykb.add_button('Список валют', color=VkKeyboardColor.POSITIVE)
        self.moneykb.add_line()
        self.moneykb.add_button('Меню', color=VkKeyboardColor.SECONDARY)

        self.kblist1 = VkKeyboard(one_time=True)
        self.kblist1.add_button('Австралийский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Азербайджанский манат', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Фунт стерлингов Соединенного королевства', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Армянских драмов', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Белорусский рубль', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Болгарский лев', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Бразильский реал', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Китайский юань', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Гонконгских долларов', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Датская крона', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Датская крона', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Доллар США', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Евро', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Индийских рупий', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Казахстанских тенге', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Канадский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Меню', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Далее', color=VkKeyboardColor.PRIMARY)

        self.kblist2 = VkKeyboard(one_time=True)
        self.kblist2.add_button('Казахстанских тенге', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Канадский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Киргизских сомов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Венгерских форинтов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Молдавских леев', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Норвежских крон', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Польский злотый', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Румынский лей', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('СДР - специальные права заимствования', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Сингапурский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Таджикских сомони', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Турецкая лира', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Новый туркменский манат', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Венгерских форинтов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Узбекских сумов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Украинских гривен', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Чешских крон', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Шведских крон', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Нaзад', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Далeе', color=VkKeyboardColor.PRIMARY)

        self.kblist3 = VkKeyboard(one_time=True)
        self.kblist3.add_button('Швейцарский франк', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_button('Южноафриканских рэндов', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_line()
        self.kblist3.add_button('Вон Республики Корея', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_button('Японских иен', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_line()
        self.kblist3.add_button('Назaд', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_button('Меню', color=VkKeyboardColor.PRIMARY)

        self.tram1 = Tram()
Exemplo n.º 13
0
class Server:

    def __init__(self, api_token, group_id, server_name: str = "Empty"):
        self.group_id = # айди группы в формате integer

        self.api_token = "Ваш токен"
        # Даем серверу имя
        self.server_name = server_name

        # Для Long Poll
        self.vk = vk_api.VkApi(token=api_token)

        # Для использования Long Poll API
        self.long_poll = VkBotLongPoll(self.vk, group_id, wait=100)

        # Для вызова методов vk_api
        self.vk_api = self.vk.get_api()

        self.valutes = ["Австралийский доллар", "Азербайджанский манат", "Фунт стерлингов Соединенного королевства",
                        "Армянских драмов", "Белорусский рубль", "Болгарский лев", "Бразильский реал",
                        "Венгерских форинтов",
                        "Гонконгских долларов",
                        "Датская крона", "Доллар США", "Евро", "Индийских рупий", "Казахстанских тенге",
                        "Канадский доллар",
                        "Киргизских сомов", "Китайский юань", "Молдавских леев", "Норвежских крон", "Польский злотый",
                        "Румынский лей", "СДР - специальные права заимствования", "Сингапурский доллар",
                        "Таджикских сомони", "Турецкая лира", "Новый туркменский манат", "Узбекских сумов",
                        "Украинских гривен", "Чешских крон", "Шведских крон", "Швейцарский франк",
                        "Южноафриканских рэндов",
                        "Вон Республики Корея", "Японских иен"]
        self.valuteskod = ["AUD", "AZN", "GBP", "AMD", "BYN", "BGN", "BRL", "HUF", "HKD", "DKK", "USD", "EUR", "INR",
                           "KZT",
                           "CAD", "KGS", "CNY", "MDL", "NOK", "PLN ", "RON", "XDR", "SGD", "TJS", "TRY", "TMT", "UZS",
                           "UAH",
                           "CZK", "SEK", "CHF", "ZAR", "KRW", "JPY"]
        self.citys = ["Москва", "Санкт-Петербург", "Краснодар", "Новосибирск", "Красноярск", "Владивосток",
                      "Ростов-На-Дону"]

        self.keyboard = VkKeyboard(one_time=True)
        self.keyboard.add_button('Погода❄⛈🌤', color=VkKeyboardColor.PRIMARY)
        self.keyboard.add_button('Последняя новость', color=VkKeyboardColor.PRIMARY)
        self.keyboard.add_line()
        self.keyboard.add_button('Расписание', color=VkKeyboardColor.POSITIVE)
        self.keyboard.add_button('Курс валют', color=VkKeyboardColor.POSITIVE)
        self.keyboard.add_line()
        self.keyboard.add_location_button()

        self.raspis = VkKeyboard(one_time=True)
        self.raspis.add_button('Москва', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_button('Санкт-Петербург', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Краснодар', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_button('Новосибирск', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Красноярск', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_button('Владивосток', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Ростов-На-Дону', color=VkKeyboardColor.PRIMARY)
        self.raspis.add_line()
        self.raspis.add_button('Другой город', color=VkKeyboardColor.SECONDARY)
        self.raspis.add_button('Меню', color=VkKeyboardColor.SECONDARY)

        self.moneykb = VkKeyboard(one_time=True)
        self.moneykb.add_button('Доллар США и Евро', color=VkKeyboardColor.PRIMARY)
        self.moneykb.add_button('Курс биткоина', color=VkKeyboardColor.PRIMARY)
        self.moneykb.add_line()
        self.moneykb.add_button('Список валют', color=VkKeyboardColor.POSITIVE)
        self.moneykb.add_line()
        self.moneykb.add_button('Меню', color=VkKeyboardColor.SECONDARY)

        self.kblist1 = VkKeyboard(one_time=True)
        self.kblist1.add_button('Австралийский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Азербайджанский манат', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Фунт стерлингов Соединенного королевства', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Армянских драмов', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Белорусский рубль', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Болгарский лев', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Бразильский реал', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Китайский юань', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Гонконгских долларов', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Датская крона', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Датская крона', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Доллар США', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Евро', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Индийских рупий', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Казахстанских тенге', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Канадский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_line()
        self.kblist1.add_button('Меню', color=VkKeyboardColor.PRIMARY)
        self.kblist1.add_button('Далее', color=VkKeyboardColor.PRIMARY)

        self.kblist2 = VkKeyboard(one_time=True)
        self.kblist2.add_button('Казахстанских тенге', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Канадский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Киргизских сомов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Венгерских форинтов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Молдавских леев', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Норвежских крон', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Польский злотый', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Румынский лей', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('СДР - специальные права заимствования', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Сингапурский доллар', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Таджикских сомони', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Турецкая лира', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Новый туркменский манат', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Венгерских форинтов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Узбекских сумов', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Украинских гривен', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Чешских крон', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Шведских крон', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_line()
        self.kblist2.add_button('Нaзад', color=VkKeyboardColor.PRIMARY)
        self.kblist2.add_button('Далeе', color=VkKeyboardColor.PRIMARY)

        self.kblist3 = VkKeyboard(one_time=True)
        self.kblist3.add_button('Швейцарский франк', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_button('Южноафриканских рэндов', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_line()
        self.kblist3.add_button('Вон Республики Корея', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_button('Японских иен', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_line()
        self.kblist3.add_button('Назaд', color=VkKeyboardColor.PRIMARY)
        self.kblist3.add_button('Меню', color=VkKeyboardColor.PRIMARY)

        self.tram1 = Tram()

    def start(self):
        for event in self.long_poll.listen():  # Слушаем сервер

            # Пришло новое сообщение
            if event.type == VkBotEventType.MESSAGE_NEW:
                comand = ""
                wlst = event.object.text.split()
                if len(wlst) == 2:
                    comand = str(wlst[0]).lower()
                print('Текст сообщения: ' + str(event.object.text))
                response = event.object.text.lower()
                if event.object.peer_id and not event.object.peer_id < 0 and not event.object.from_me:
                    if response == "погода❄⛈🌤" or response == "погода":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id, 'message': "Город:",
                                        'random_id': get_random_id(), 'keyboard': self.raspis.get_keyboard()})
                    elif any([re.search(weat, event.object.text) for weat in self.citys]):
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': requests.get(
                                            'https://wttr.in/' + event.object.text + '?format=Город: %l ,'
                                                                                     'Температура воздуха: %t%c ,По ощущению: %f ,'
                                                                                     'Ветер: %w ,Осадки: %p').text.replace(
                                            ',', '\n'),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "другой город":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Чтобы посмотреть погоду в любом городе мира - введите команду"
                                                   " <<Погода город>>",
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif comand == "погода" and len(wlst) == 2:
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id, 'message': weather(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "последняя новость":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': news(),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "курс валют":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Выберете валюту",
                                        'random_id': get_random_id(), 'keyboard': self.moneykb.get_keyboard()})
                    elif response == "доллар сша и евро":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': self.money(),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "список валют":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница1",
                                        'random_id': get_random_id(), 'keyboard': self.kblist1.get_keyboard()})
                    elif response == "далее":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 2",
                                        'random_id': get_random_id(), 'keyboard': self.kblist2.get_keyboard()})
                    elif response == "далeе":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 3",
                                        'random_id': get_random_id(), 'keyboard': self.kblist3.get_keyboard()})
                    elif response == "далеe":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 4",
                                        'random_id': get_random_id(), 'keyboard': self.kblist4.get_keyboard()})
                    elif response == "нaзад":
                        self.vk.method('messages.send',
                                       {'peer_id': event.peer_id,
                                        'message': "Страница 1",
                                        'random_id': get_random_id(), 'keyboard': self.kblist1.get_keyboard()})
                    elif response == "назaд":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 2",
                                        'random_id': get_random_id(), 'keyboard': self.kblist2.get_keyboard()})
                    elif any([re.search(val, event.object.text) for val in self.valutes]):
                        for num in range(len(self.valutes)):
                            if event.object.text == self.valutes[num]:
                                break
                        nlav = self.valuteskod[num]
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': self.indmoney(nlav),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "курс биткоина":
                        btc = requests.get("https://apirone.com/api/v1/ticker?currency=btc")
                        btc_json = json.loads(btc.text)
                        bt = btc_json['RUB']['last']
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "BTC к RUB = " + str(round(bt, 4)),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "расписание":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Город",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.t_k_rasp.get_keyboard()})
                    elif response == "трамвай":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Маршрут",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.t_k_marsh.get_keyboard()})
                    elif response == "kраснодар":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Транспорт",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.rasp.get_keyboard()})
                    elif comand == "кт":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': tram_rasp.start(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "вернуть":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Транспорт",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.rasp.get_keyboard()})
                    elif response == "троллейбус":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Маршрут",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.tl_k_marsh.get_keyboard()})
                    elif comand == "ктл":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': tram_rasp.krastrolleybus(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "автобус":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Маршрут",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_k_marsh.get_keyboard()})
                    elif comand == "ат":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': tram_rasp.krasbus(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "рoстов-на-дону":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Транспорт",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.raspr.get_keyboard()})
                    elif response == "aвтобус":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Маршрут",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_r_marsh.get_keyboard()})
                    elif comand == "ар":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': tram_rasp.rastbus(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "дальшe":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 2",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_r_marsh2.get_keyboard()})
                    elif response == "дaльше":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 3",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_r_marsh3.get_keyboard()})
                    elif response == "вперед":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 4",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_r_marsh4.get_keyboard()})
                    elif response == "вeрнуть":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 1",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_r_marsh.get_keyboard()})
                    elif response == "bернуть":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 2",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_r_marsh2.get_keyboard()})
                    elif response == "beрнуть":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Страница 3",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.b_r_marsh3.get_keyboard()})
                    elif response == "tроллейбус":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Маршрут",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.tl_r_marsh.get_keyboard()})
                    elif comand == "тлр":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': tram_rasp.rastrolleubus(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "tрамвай":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Маршрут",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.t_r_marsh.get_keyboard()})
                    elif comand == "тр":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': tram_rasp.rastram(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    elif response == "межгородской":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Маршрут",
                                        'random_id': get_random_id(), 'keyboard': self.tram1.no_city_rast.get_keyboard()})
                    elif comand == "мгр":
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': tram_rasp.mrast(wlst[1]),
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})
                    else:
                        self.vk.method('messages.send',
                                       {'peer_id': event.object.peer_id,
                                        'message': "Доступные команды",
                                        'random_id': get_random_id(), 'keyboard': self.keyboard.get_keyboard()})


    def money(self):
        mny = requests.get("https://www.cbr-xml-daily.ru/daily_json.js")
        s = json.loads(mny.text)
        usd = s['Valute']['USD']['Value']
        eur = s['Valute']['EUR']['Value']
        raznusd = s['Valute']['USD']['Value'] - s['Valute']['USD']['Previous']
        razneur = s['Valute']['EUR']['Value'] - s['Valute']['EUR']['Previous']
        if raznusd > 0:
            endusd = s['Valute']['USD']['Name'] + " " + str(round(usd, 4)) + " ⬆ " + str(round(raznusd, 4))
        else:
            endusd = s['Valute']['USD']['Name'] + " " + str(round(usd, 4)) + " ⬇ " + str(round(raznusd, 4))
        if razneur > 0:
            endeur = s['Valute']['EUR']['Name'] + " " + str(round(eur, 4)) + " ⬆ " + str(round(razneur, 4))
        else:
            endeur = s['Valute']['EUR']['Name'] + " " + str(round(eur, 4)) + " ⬇ " + str(round(razneur, 4))
        endmoney = endusd + "\n" + endeur
        return endmoney

    def indmoney(self, st):
        mny = requests.get("https://www.cbr-xml-daily.ru/daily_json.js")
        s = json.loads(mny.text)
        val = s['Valute'][st]['Value']
        raznval = s['Valute'][st]['Value'] - s['Valute'][st]['Previous']
        if raznval > 0:
            endval = s['Valute'][st]['Name'] + " " + str(round(val, 4)) + " ⬆ " + str(round(raznval, 4))
        else:
            endval = s['Valute'][st]['Name'] + " " + str(round(val, 4)) + " ⬇ " + str(round(raznval, 4))
        return endval
Exemplo n.º 14
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_location_button()
    
    keyboard.add_line()
    keyboard.add_vkpay_button(hash="action=transfer-to-group&group_id=74030368&aid=6222115")
    
    keyboard.add_line()
    keyboard.add_vkapps_button(app_id=6979558, 
                               owner_id=-181108510, 
                               label="Отправить клавиатуру",
                               hash="sendKeyboard")
                               

    vk.messages.send(
        peer_id=123456,
        random_id=get_random_id(),
        keyboard=keyboard.get_keyboard(),
        message='Пример клавиатуры'
    )
Exemplo n.º 15
0
from vk_api.keyboard import VkKeyboard, VkKeyboardColor

menu = VkKeyboard(one_time=False)
menu.add_button('🏛 Биржи', color=VkKeyboardColor.POSITIVE)
menu.add_line()
menu.add_button('Навыки', color=VkKeyboardColor.DEFAULT)
menu.add_button('🛍 Магазин', color=VkKeyboardColor.NEGATIVE)
menu.add_button('Выносливость', color=VkKeyboardColor.DEFAULT)
menu.add_line()
menu.add_button('📰 Лицензии', color=VkKeyboardColor.DEFAULT)
menu.add_button('📱 Смартфон', color=VkKeyboardColor.DEFAULT)
menu.add_button('🔸 Опыт', color=VkKeyboardColor.DEFAULT)
menu.add_line()
menu.add_button('🔎 Квесты', color=VkKeyboardColor.PRIMARY)
menu.add_button('📚 Помощь', color=VkKeyboardColor.NEGATIVE)
menu.add_button('🎁 Бонус', color=VkKeyboardColor.PRIMARY)


profile = VkKeyboard(inline=True)

Exemplo n.º 16
0
import requests
import vk_api
import json
from vk_api.longpoll import VkLongPoll, VkEventType
from random import randint
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
vk_session = vk_api.VkApi(token='YOUR TOKEN')
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW and event.to_me:
            if event.from_user:
                if not event.text:
                    keyboard = VkKeyboard(one_time=True)
                    keyboard.add_button("Подобрать займ", color=VkKeyboardColor.PRIMARY)
                    keyboard.add_line()
                    keyboard.add_button("Займы под 0%!", color=VkKeyboardColor.NEGATIVE)
                    keyboard.add_line()
                    keyboard.add_button("Акции и бонусы", color=VkKeyboardColor.POSITIVE)
                    vk.messages.send(
                        user_id=event.user_id,
                        message='Извините, ваше сообщение не распознано. Пожалуйста, используйте инструкции от бота или кнопки в меню',
                        random_id=randint(1, 100000000000000000000000000000000),
                        keyboard=keyboard.get_keyboard()
                    )
                else:
                    if event.text == "0" or event.text == "Главное меню" or event.text == "Начать" or event.text == "Start":
                        keyboard = VkKeyboard(one_time=True)
                        keyboard.add_button("Подобрать займ", color=VkKeyboardColor.PRIMARY)
                        keyboard.add_line()
                        keyboard.add_button("Займы под 0%!", color=VkKeyboardColor.NEGATIVE)
Exemplo n.º 17
0
 def main_keyboard(event_func):
     my_peer = event_func.message.peer_id
     if lich_or_beseda(my_peer):
         keyboard = VkKeyboard(one_time=False)
         # keyboard.add_button('аниме(в разработке)', color=VkKeyboardColor.NEGATIVE)
         keyboard.add_button('Валюта', color=VkKeyboardColor.POSITIVE)
         keyboard.add_button('Мои файлы', color=VkKeyboardColor.NEGATIVE)
         keyboard.add_line()  # Отступ строки
         keyboard.add_button('Погода', color=VkKeyboardColor.PRIMARY)
         keyboard.add_line()  # Отступ строки
         keyboard.add_button('Посоветуй аниме',
                             color=VkKeyboardColor.PRIMARY)
         keyboard.add_button('Посоветуй фильм',
                             color=VkKeyboardColor.PRIMARY)
         keyboard.add_line()
         if user_in_db(event_func.message.from_id):
             keyboard.add_button('Выйти', color=VkKeyboardColor.NEGATIVE)
         else:
             keyboard.add_button('Войти', color=VkKeyboardColor.POSITIVE)
             keyboard.add_button('Регистрация',
                                 color=VkKeyboardColor.POSITIVE)
         vk.messages.send(peer_id=my_peer,
                          random_id=get_random_id(),
                          keyboard=keyboard.get_keyboard(),
                          message='Выберите команду:')
Exemplo n.º 18
0
    def command_start_analysis(self, from_id):
        texts = []

        try:
            group_ids = self.get_subscriptions(from_id)
        except vk_api.exceptions.ApiError:
            message = 'Ваш профиль закрыт, я не могу увидеть подписки'
            keyboard = VkKeyboard(one_time=True)
            keyboard.add_button('Теперь профиль открыт, начать анализ',
                                color=VkKeyboardColor.POSITIVE,
                                payload=json.dumps(
                                    {'button': 'start_analysis'}))
            self.send_message(from_id, message, keyboard.get_keyboard())
            return

        message = ('Анализ может занять несколько минут. Пожалуйста, '
                   'подождите.')
        self.send_message(from_id, message)
        for _id in group_ids:
            try:
                posts = map(
                    itemgetter('text'),
                    filter(lambda x: not x['marked_as_ads'],
                           self.get_posts(-_id, 10)))
                texts.append('\n'.join(posts))
            except TypeError:
                continue

        prediction = list(map(itemgetter(0),
                              self.predictor.predict(texts)[:3]))

        user_status = self.db_session.query(self.db.UserStatuses).filter(
            self.db.UserStatuses.user_id == from_id).first()
        user_status.subjects = '&'.join(prediction)
        user_status.status = 'show_page'
        user_status.page = 1
        self.db_session.commit()

        message = 'В ходе анализа было выявлено, что вас ' \
                  'интересуют следующие категории групп:\n'
        message += '\n'.join([
            f'{i}. {category.capitalize()}'
            for i, category in enumerate(prediction, 1)
        ])

        self.send_message(from_id, message)

        keyboard = VkKeyboard(one_time=True)
        keyboard.add_button('Начать анализ повторно',
                            color=VkKeyboardColor.SECONDARY,
                            payload=json.dumps({'button': 'start_analysis'}))

        group_ids = self.db_session.query(self.db.GroupsIds).filter(
            or_(self.db.GroupsIds.subject == prediction[0],
                self.db.GroupsIds.subject == prediction[1],
                self.db.GroupsIds.subject == prediction[2])).all()

        if len(group_ids) > 0:
            show_groups = group_ids[:10]
            message = 'Страница 1:\n'
            message += '\n'.join([
                f'{i + 1}. {show_groups[i].name} -- '
                f'https://vk.com/club{show_groups[i].group_id} '
                for i in range(len(show_groups))
            ])
            page_number = len(group_ids) // 10 + 1

            keyboard.add_line()
            keyboard.add_button(f'Страница {page_number}',
                                color=VkKeyboardColor.PRIMARY,
                                payload=json.dumps({
                                    'button':
                                    f'show_recommendation_{page_number}'
                                }))
            keyboard.add_button(f'Страница 2',
                                color=VkKeyboardColor.PRIMARY,
                                payload=json.dumps(
                                    {'button': f'show_recommendation_2'}))
        else:
            message = "Проанализировать ещё раз?"
        self.send_message(from_id, message, keyboard.get_keyboard())
Exemplo n.º 19
0
 def my_files_keyboard(event_func):
     my_peer = event_func.message.peer_id
     if lich_or_beseda(my_peer):
         UserName = user_in_db(event_func.message.from_id)
         if UserName is not None:
             keyboard = VkKeyboard(one_time=False)
             # keyboard.add_button('аниме(в разработке)', color=VkKeyboardColor.NEGATIVE)
             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.POSITIVE)
             keyboard.add_button('гс', color=VkKeyboardColor.POSITIVE)
             keyboard.add_button('граффити', color=VkKeyboardColor.POSITIVE)
             keyboard.add_line()  # Отступ строки
             keyboard.add_button('главная', color=VkKeyboardColor.NEGATIVE)
             vk.messages.send(peer_id=my_peer,
                              random_id=get_random_id(),
                              keyboard=keyboard.get_keyboard(),
                              message='Выберите команду:')
Exemplo n.º 20
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())
Exemplo n.º 21
0
 def my_files_keyboard_content(event_func):
     my_peer = event_func.message.peer_id
     if lich_or_beseda(my_peer):
         UserName = user_in_db(event_func.message.from_id)
         if UserName is None:
             send_msg(event_func.message.from_id, 'Вы не авторизированы!')
         else:
             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.NEGATIVE)
             vk.messages.send(peer_id=my_peer,
                              random_id=get_random_id(),
                              keyboard=keyboard.get_keyboard(),
                              message='Выберите команду:')
Exemplo n.º 22
0
    def send_ht_keyboard(api, user_id):
        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.PRIMARY)
        keyboard.add_button('Инфа', color=VkKeyboardColor.PRIMARY)

        keyboard.add_line()
        keyboard.add_button('История', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Физика', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Комба', color=VkKeyboardColor.PRIMARY)

        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.DEFAULT)

        api.messages.send(peer_id=user_id,
                          random_id=get_random_id(),
                          keyboard=keyboard.get_keyboard(),
                          message='По какому предмету?')
Exemplo n.º 23
0
def generate_keyboard(n):
    """генерирует клавиатуру"""
    global stocks
    keyboard = VkKeyboard(one_time=True)
    if n == 2:
        keyboard.add_button('валюта', color=VkKeyboardColor.PRIMARY)
        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)
        keyboard.add_line()
        keyboard.add_button('Летающие деньги', color=VkKeyboardColor.DEFAULT)
    elif n == 52:
        keyboard.add_button('неделя', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('день', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('вернуться в меню', color=VkKeyboardColor.DEFAULT)
    elif n == 7:
        keyboard.add_button('Да', color=VkKeyboardColor.POSITIVE)
        keyboard.add_button('Нет', color=VkKeyboardColor.NEGATIVE)
    elif n == 21:
        keyboard.add_button('добавить', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('\U0001F519', color=VkKeyboardColor.DEFAULT)
        keyboard.add_line()
        keyboard.add_button('отписаться от одной', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('отписаться от всех', color=VkKeyboardColor.PRIMARY)
    elif n == 70:
        keyboard.add_button('банк', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('\U0001F519', color=VkKeyboardColor.DEFAULT)
        keyboard.add_button('банкомат', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('обмен валюты', color=VkKeyboardColor.PRIMARY)
    elif n == 71:
        keyboard.add_location_button()
        keyboard.add_line()
        keyboard.add_button('вернуться в меню', color=VkKeyboardColor.DEFAULT)
    elif n == 40:
        keyboard.add_button('текущий курс', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('выбрать валюту', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('вернуться в меню', color=VkKeyboardColor.DEFAULT)
    elif n == 42 or n == 31:
        keyboard.add_button('неделя', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('месяц', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('год', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('вернуться в меню', color=VkKeyboardColor.DEFAULT)
    elif n == 30:
        with open('static/static_data/tickers.txt', 'r') as f:
            stocks = f.readlines()[0].split(',')
        for i in range(min(len(stocks), 20)):
            keyboard.add_button(stocks[i], color=VkKeyboardColor.PRIMARY)
            if i % 4 == 3 and i != len(stocks) - 1:
                keyboard.add_line()
    else:
        keyboard.add_button('Вернуться в меню', color=VkKeyboardColor.DEFAULT)
    return keyboard
Exemplo n.º 24
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)
Exemplo n.º 25
0
def create_keyboard(*buttons_text):
    """
    Создать клавиатуру
    :param buttons_text: переменное количество строк для кнопок
    :return: объект клавиатуры
    4х10 - максимум клавиатуры
    """

    k = VkKeyboard(one_time=True)
    had_exit = exit_bot_command in buttons_text
    had_back_to_menu = back_to_menu_message in buttons_text

    for button_text in buttons_text:
        if isinstance(
                button_text, str
        ) and button_text != exit_bot_command and button_text != back_to_menu_message:
            color = VkKeyboardColor.PRIMARY
            k.add_button(label=button_text, color=color)
            k.add_line()

    if had_exit:
        k.add_button(label=exit_bot_command, color=VkKeyboardColor.NEGATIVE)
    if had_back_to_menu:
        k.add_button(label=back_to_menu_message,
                     color=VkKeyboardColor.NEGATIVE)

    return k.get_keyboard()
Exemplo n.º 26
0
    def send_admin_keyboard(api, user_id):
        keyboard = VkKeyboard(one_time=False)

        keyboard.add_button('Demote', color=VkKeyboardColor.NEGATIVE)
        keyboard.add_button('Promote', color=VkKeyboardColor.POSITIVE)

        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.DEFAULT)

        api.messages.send(peer_id=user_id,
                          random_id=get_random_id(),
                          keyboard=keyboard.get_keyboard(),
                          message='Hello, Dear deer)')
Exemplo n.º 27
0
    def create_keyboard(self):

        print(self.response)
        keyboard = VkKeyboard(one_time=False)
        if self.response != " ":
            keyboard.add_button('информация о животном',
                                color=VkKeyboardColor.POSITIVE)
            keyboard.add_button('покормить', color=VkKeyboardColor.POSITIVE)
            keyboard.add_line()
            keyboard.add_button('уложить спать',
                                color=VkKeyboardColor.POSITIVE)
            keyboard.add_button('сводить в туалет',
                                color=VkKeyboardColor.POSITIVE)
            keyboard.add_line()
            keyboard.add_button('шуточка', color=VkKeyboardColor.POSITIVE)
            keyboard.add_button('факт', color=VkKeyboardColor.POSITIVE)
            keyboard.add_button('погода', color=VkKeyboardColor.POSITIVE)

        keyboard = keyboard.get_keyboard()
        return keyboard
Exemplo n.º 28
0
def close_keys():
    keyboard = VkKeyboard(one_time=True)
    return keyboard.get_empty_keyboard()
Exemplo n.º 29
0
def keyboard_vk(user_id):
    keyboard = VkKeyboard(one_time=True)
    keyboard.add_button('help', color=VkKeyboardColor.DEFAULT)
    keyboard.add_button('погода', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button('вики', color=VkKeyboardColor.NEGATIVE)
    vk.method(
        'messages.send', {
            'user_id': user_id,
            'keyboard': keyboard.get_keyboard(),
            'message': 'Вот команды',
            "random_id": int(random.uniform(0, 1000000))
        })
Exemplo n.º 30
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='Пример клавиатуры'
    )
Exemplo n.º 31
0
from vk_api.keyboard import VkKeyboard, VkKeyboardColor

empty = VkKeyboard()
empty.keyboard['buttons'] = []

init = VkKeyboard(one_time=False)
init.add_button('11', VkKeyboardColor.POSITIVE)
init.add_line()
init.add_button('10.1', VkKeyboardColor.POSITIVE)
init.add_button('10.2', VkKeyboardColor.POSITIVE)
init.add_line()
init.add_button('Задать вопрос куратору', VkKeyboardColor.PRIMARY)
init.add_line()
init.add_button('Отмена', VkKeyboardColor.NEGATIVE)

groups = VkKeyboard(one_time=True)
groups.add_button('11', VkKeyboardColor.POSITIVE)
groups.add_line()
groups.add_button('10.1', VkKeyboardColor.POSITIVE)
groups.add_button('10.2', VkKeyboardColor.POSITIVE)
groups.add_line()
groups.add_button('Отмена', VkKeyboardColor.NEGATIVE)

admin_default = VkKeyboard(one_time=False)
admin_default.add_button('Написать классу', VkKeyboardColor.POSITIVE)
admin_default.add_line()
admin_default.add_button('Написать отдельным людям', VkKeyboardColor.POSITIVE)
admin_default.add_line()
admin_default.add_button('Посмотреть список прочитавших')

cancel = VkKeyboard(one_time=False)