예제 #1
0
파일: main.py 프로젝트: fckxorg/VkBot
def create_menu():
    keyboard = VkKeyboard(one_time=False)

    keyboard.add_button(label='Расписание',     color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button(label='Ближайшая пара', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_openlink_button(label='Полезные материалы', link="https://drive.google.com/drive/folders/1H7jYyMx5fR7wAt6kDrakeFneDmGpru3O")

    return keyboard.get_keyboard()
예제 #2
0
def mainMenu(userId):  #Главное Меню
    keyboard = VkKeyboard(one_time=False)
    keyboard.add_button('Профиль', color=VkKeyboardColor.PRIMARY)
    #keyboard.add_button('Подписки', color=VkKeyboardColor.PRIMARY)
    keyboard.add_openlink_button(
        'Подписки', info.subs
    )  #Ссылка на подписки, можно просто вставит т.к. используется 1 раз, я прост в отдельный файл засунул
    keyboard.add_line()
    keyboard.add_button('Играть', color=VkKeyboardColor.POSITIVE)
    return keyboard
 def show_default():
     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.POSITIVE)
     keyboard.add_line()
     keyboard.add_openlink_button(
         'RICKROLL', link='https://www.youtube.com/watch?v=dQw4w9WgXcQ')
     return keyboard.get_keyboard()
예제 #4
0
def keyboard_start():
    keyboard = VkKeyboard(False)
    keyboard.add_button('📖 Мои баллы', VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button('📒 Направления и специальности',
                        VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button('📰 Новости с сайта СамГУПС', VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_openlink_button('Группа ВК', 'http://vk.com/pgsga')

    return keyboard.get_keyboard()
예제 #5
0
def create_menu():
    log_engine_main_thread.log("create_menu")

    keyboard = VkKeyboard(one_time=False)

    keyboard.add_button(label='Расписание', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button(label='Ближайшая пара', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_openlink_button(label='Полезные материалы', link="")

    return keyboard.get_keyboard()
예제 #6
0
    def handler_send_payment(self, cashbox):
        mess = Message(self)

        link = cashbox.new_bill(user_id=self.user_id,
                                type_='1 BTC',
                                amount='2.00')

        keyboard = VkKeyboard(inline=True)
        keyboard.add_openlink_button(label='Ссылка на оплату', link=link)
        mess.set_text('Cсылка действительна 10 минут')
        mess.set_keyboard(keyboard)

        return mess.get_message()
예제 #7
0
def create_lecture():
    log_engine_main_thread.log("create_lecture")

    keyboard = VkKeyboard(one_time=False)

    lesson_idx, day = the_nearest_lesson()
    closest_lesson = lessons[day][lesson_idx]
    keyboard.add_openlink_button(label=closest_lesson.name,
                                 link=closest_lesson.link)
    keyboard.add_line()
    keyboard.add_button(label='Меню', color=VkKeyboardColor.POSITIVE)

    return keyboard.get_keyboard()
예제 #8
0
def materials_page():
    """Клавиатура с полезными материалами"""

    keyboard = VkKeyboard(one_time=False, inline=False)

    keyboard.add_openlink_button("Записи лекций",
                                 "https://vk.com/videos-199418622")
    keyboard.add_line()
    keyboard.add_button("Ссылки на сайты", VkKeyboardColor.SECONDARY,
                        {"type": "url_mat"})
    keyboard.add_line()
    keyboard.add_button("E-mail преподавателей", VkKeyboardColor.SECONDARY,
                        {"type": "mail_mat"})
    keyboard.add_line()
    keyboard.add_button("Назад", VkKeyboardColor.POSITIVE,
                        {"type": "btn_back_mat"})

    return keyboard.get_keyboard()
예제 #9
0
def send_keyboard(vk_session, key_us_id, mess):
    keyboard = VkKeyboard(one_time=False)

    keyboard.add_button('Смешной анекдот', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button('Не всегда смешная картинка',
                        color=VkKeyboardColor.POSITIVE)

    keyboard.add_line()  # Переход на вторую строку
    keyboard.add_openlink_button(label="Если ничего не хочется, можно сюда",
                                 link="https://natribu.org/ru/")

    vk_session.method(
        'messages.send', {
            'user_id': key_us_id,
            'message': mess,
            'random_id': random.randint(0, 2048),
            'keyboard': keyboard.get_keyboard()
        })
예제 #10
0
def main():
    keyboard = VkKeyboard(one_time=False)
    keyboard.add_button('Банк', color=VkKeyboardColor.POSITIVE)
    keyboard.add_button('Баланс', color=VkKeyboardColor.POSITIVE)
    keyboard.add_line()
    keyboard.add_button('Красное', color=VkKeyboardColor.PRIMARY)
    keyboard.add_button('Чёрное', color=VkKeyboardColor.PRIMARY)
    keyboard.add_line()
    keyboard.add_button('1-12', color=VkKeyboardColor.PRIMARY)
    keyboard.add_button('13-24', color=VkKeyboardColor.PRIMARY)
    keyboard.add_button('25-36', color=VkKeyboardColor.PRIMARY)
    keyboard.add_line()
    keyboard.add_button('Чётное', color=VkKeyboardColor.NEGATIVE)
    keyboard.add_button('На число', color=VkKeyboardColor.NEGATIVE)
    keyboard.add_button('Нечётное', color=VkKeyboardColor.NEGATIVE)
    keyboard.add_line()
    keyboard.add_openlink_button(
        'Пополнить', link='http://vk.com/app7349811#merchant505458404_1000000')
    keyboard.add_button('Вывод', color=VkKeyboardColor.DEFAULT)
    return keyboard.get_keyboard()
예제 #11
0
def main_page():
    """Главная клавиатура"""

    keyboard = VkKeyboard(one_time=False, inline=False)

    keyboard.add_button("Расписание занятий", VkKeyboardColor.PRIMARY,
                        {"type": "btn_shedule"})
    keyboard.add_line()
    keyboard.add_button("Домашнее задание", VkKeyboardColor.PRIMARY,
                        {"type": "btn_homework"})
    keyboard.add_button("Полезные материалы", VkKeyboardColor.POSITIVE,
                        {"type": "btn_materials"})
    keyboard.add_line()
    keyboard.add_openlink_button(
        "Посещаемость",
        "https://docs.google.com/spreadsheets/d/1LxPQZ8VwG3Acu-TG8Tclr4POjnXcXlhVa2jsa3LP_Go/edit?usp=sharing"
    )
    keyboard.add_button("Замены в расписании")
    keyboard.add_line()
    keyboard.add_button("Админ", VkKeyboardColor.PRIMARY,
                        {"type": "btn_admin"})

    return keyboard.get_keyboard()
예제 #12
0
def create_keyboard(response: str) -> VkKeyboard:
    ''' Возвращает пользователю сформированную клавиатуру.

        Аргументы:
            response: str - запрос, который отправляет пользователь

        Возвращает:
            VkKeyboard - сформированную клавиатуру, которую запросил пользователь
    '''

    keyboard = VkKeyboard(one_time=False)

    if response == 'кнопка на случай, если устал учиться':
        keyboard.add_button('но не устал от математики',
                            color=VkKeyboardColor.POSITIVE)
        keyboard.add_line()
        keyboard.add_button('Что посмотреть?', color=VkKeyboardColor.POSITIVE)

    elif response == 'дни рождения':
        keyboard.add_button('На месяц', color=VkKeyboardColor.POSITIVE)
        keyboard.add_button('На неделю', color=VkKeyboardColor.POSITIVE)
        keyboard.add_button('Все', color=VkKeyboardColor.POSITIVE)

    elif response == 'журналы':
        keyboard.add_openlink_button(
            'Журнал ПМ-1901',
            'https://docs.google.com/spreadsheets/d/1bkuZWPd4poOCDnAlB_Q6nTssKl7RAgQJWdeR-H3f5p4/edit?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Журнал ПМ-1902',
            'https://docs.google.com/spreadsheets/d/12BweSMPcNlnrSGqC3ojNCwSVIUX4ckU7uN0zJ7W_8AQ/edit?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'учебники':
        keyboard.add_button('1 курс', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('2 курс', color=VkKeyboardColor.POSITIVE)

    elif response == '1 курс':
        keyboard.add_button('Мат. анализ', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Алгебра', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Дискр. мат', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('Wolfram Mathematica',
                            color=VkKeyboardColor.PRIMARY)
        keyboard.add_openlink_button(
            'Python',
            'https://drive.google.com/drive/folders/1gZ5SsNq9-9eVDHBjnu0E0WRly2Xgq4kW'
        )
        keyboard.add_line()
        keyboard.add_button('Английский', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == '2 курс':
        keyboard.add_button('Мат. анализ', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('Диффуры', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_openlink_button('Python',
                                     'https://yadi.sk/d/GyZhNPZfU41Znw?w=1')
        keyboard.add_line()
        keyboard.add_button('Английский', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'диффуры':
        keyboard.add_openlink_button(
            'Филиппов (задачник)',
            'https://drive.google.com/file/d/1vgoG9860XxwyUYgHbn77qeij3EDUUhYM/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Филиппов (учебник)',
            'https://drive.google.com/file/d/1w14id9t4uAoY43H8ofqCHAHI0rQsKrPH/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Самойленко',
            'https://drive.google.com/file/d/1lxTncQv4LBv_XVblqR-xl7-kSuPG6Nu_/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'английский':
        keyboard.add_openlink_button(
            'Market Leader',
            'https://drive.google.com/file/d/1erhO4mlomjMJmNBiesKzbUBTxhnpZhyt/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Facilitator',
            'https://drive.google.com/file/d/1W--_OH5gCdeKtTpdRbrfComGIW47xhHA/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Practical Grammar Course',
            'https://drive.google.com/file/d/18K5DeIlanen5FK81GBQNJ9T2Pt-w5kTd/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'wolfram mathematica':
        keyboard.add_openlink_button(
            'Фридман, Леора',
            'https://drive.google.com/file/d/1xg9g1LAuw-jIH6HwH9e-UE_GU9bq8Kri/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'S. Wolfram "Wolfram Language"',
            'https://www.wolfram.com/language/elementary-introduction/2nd-ed/index.html'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Help', 'https://reference.wolfram.com/language/')
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'мат. анализ':
        keyboard.add_openlink_button(
            'Демидович (задачник)',
            'https://drive.google.com/file/d/1VnHhcsfAlVg48nsYXWdXfNZiVkakamv-/view'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Виноградов, Громов',
            'https://drive.google.com/file/d/1WgfLnZ2DOyz7d0rW34cBfzY_A4Ew5-_T/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Фихтенгольц',
            'https://drive.google.com/file/d/1pZ3DSjtPLJMmk12mP3e-kcW9QIez4_dq/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Конспект (1 курс 2 сем.)',
            'https://drive.google.com/file/d/1AB5NmJGMzNU8HWodGXJfld0ycp9bQncR/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'алгебра':
        keyboard.add_openlink_button(
            'Икрамов',
            'https://drive.google.com/file/d/1KxIrUV3yGT_IKzz2X52JW6x1mUmoqP7C/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Воеводин',
            'https://drive.google.com/file/d/1KxIrUV3yGT_IKzz2X52JW6x1mUmoqP7C/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Курош',
            'https://drive.google.com/file/d/1ylNm8CkkiKSu27dJMEx0PcDKQWrjZjmA/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Фадеев',
            'https://drive.google.com/file/d/1Dvui_BDw4EA-3eh5A0EYNyzcCjamPCYK/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'дискр. мат':
        keyboard.add_openlink_button(
            'Иванов, Фридман',
            'https://drive.google.com/file/d/1_dAhc25iIYUQ-S877zowmfzYt07kN9gZ/view?usp=sharing'
        )
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Корте, Фиген "Комбинаторная оптимизация"',
            'https://drive.google.com/file/d/1kOZcitXuRBTKX0pgpXC8FEPenW4rjz6y/view'
        )
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'полезные ссылки':
        keyboard.add_openlink_button(
            'Мат. анализ',
            'https://us02web.zoom.us/j/86270022069?pwd=ZndYYjhFVlJvTGlGNkVteHBTVkx6QT09'
        )
        keyboard.add_line()
        keyboard.add_openlink_button('Диффуры',
                                     'https://zoom.us/j/97568214849')
        keyboard.add_line()
        keyboard.add_openlink_button('БРС', 'http://www.rating.unecon.ru/')
        keyboard.add_line()
        keyboard.add_openlink_button('Moodle', 'https://student.unecon.ru/')
        keyboard.add_line()
        keyboard.add_button('Назад', color=VkKeyboardColor.NEGATIVE)

    elif response == 'на месяц':
        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.PRIMARY)
        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.PRIMARY)
        keyboard.add_button('Ноябрь', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Декабрь', color=VkKeyboardColor.PRIMARY)

    else:
        keyboard.add_button('Привет', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Пока', color=VkKeyboardColor.DEFAULT)
        keyboard.add_button('Уровень', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()

        keyboard.add_button('Журналы', color=VkKeyboardColor.POSITIVE)
        keyboard.add_button('Учебники', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Дедлайны', color=VkKeyboardColor.NEGATIVE)
        keyboard.add_line()

        keyboard.add_button('Дни Рождения', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Почты', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Полезные ссылки', color=VkKeyboardColor.POSITIVE)
        keyboard.add_line()

        keyboard.add_button('Кнопка на случай, если устал учиться',
                            color=VkKeyboardColor.PRIMARY)

    keyboard = keyboard.get_keyboard()
    return keyboard
예제 #13
0
main.add_button(label='полезные ссылки', color=VkKeyboardColor.PRIMARY)
main.add_button(label='всё дз', color=VkKeyboardColor.PRIMARY)
main.add_line()
main.add_button(label='призвать админа', color=VkKeyboardColor.PRIMARY)
main.add_button(label='режим разработчика', color=VkKeyboardColor.PRIMARY)

# admin keyboard
admin = VkKeyboard(inline=False)
admin.add_button(label='load data', color=VkKeyboardColor.PRIMARY)
admin.add_button(label='добавить дз', color=VkKeyboardColor.PRIMARY)
admin.add_line()
admin.add_button(label='обычный режим', color=VkKeyboardColor.NEGATIVE)

# link keyboard
link = VkKeyboard(inline=False)
link.add_openlink_button(label='Сайт Школы',
                         link='http://школа91.екатеринбург.рф')
link.add_line()
link.add_openlink_button(label='СГ', link='http://62.245.43.79')
link.add_line()
link.add_openlink_button(label='ответы', link='https://www.google.ru')
link.add_line()
link.add_button(label='назад', color=VkKeyboardColor.NEGATIVE)

# day keyboard
day = VkKeyboard(inline=False)
count = 0
for i in schedule.keys():
    day.add_button(label=i, color=VkKeyboardColor.PRIMARY)
    count += 1
    if count % 2 == 0:
        day.add_line()
예제 #14
0
                                 'Если ошибка в переводе, обратитесь в техподдержку QIWI.',
                                 back_payment_keyboard.get_keyboard())
                    else:
                        send('❌ Вы не оплатили товар.', back_payment_keyboard.get_keyboard())
                else:
                    send('Никаких транзакций не производиться ⚙✅')

            elif 'нетпро' in text:
                send('ок', mainmenu.get_keyboard())
                database_query(f'UPDATE users SET pro=0 WHERE user_id={user_id}')

            elif 'купить pro' in text:
                url = get_qiwi_payment_url()
                code = generate_payment_code()
                check_payment_keyboard = VkKeyboard(inline=True)
                check_payment_keyboard.add_openlink_button('Оплатить ▶', url)
                check_payment_keyboard.add_button('Проверить платёж 💲', VkKeyboardColor.PRIMARY)
                send(f'💳 Чек на сумму @datingbotvk ({qiwi_count} рублей)\n'
                     '🎈 Статус: не оплачено ❌\n\nВаша платёжная форма готова.\n'
                     f'\n ❗ ВАЖНО: в комментарий к платежу оставьте код: {code}\n'
                     f'После совершения платежа нажмите "Проверить платёж".\n\n'
                     f'⬇ Чтобы оплатить нажмите кнопку ниже.', check_payment_keyboard.get_keyboard())
                send('Если вы передумали, можно отменить покупку кнопкой "отменить платёж".',
                     back_payment_keyboard.get_keyboard())
                database_query(f'UPDATE users SET payment_code={int(code)} WHERE user_id={user_id}')

            elif 'изменить выборку' in text:
                send('Выбери, кого ты хочешь видеть в рекомендациях?', sex_keyboard.get_keyboard())
                database_query(f'UPDATE users SET state=101 WHERE user_id={user_id}')

            elif 'обновить фото' in text:
class VKPayloadProcessor:
    def __init__(self, data: dict, vk, peer_id: int):
        self.message = ''
        self.attachments = []
        self.keyboard = None
        self.session = requests.Session()
        self.peer_id = peer_id if peer_id else None

        self.upload = VkUpload(vk)

        if data.get('text'):
            self.message = data['text']
        if data.get('image_url'):
            self.get_image_from_url(data['image_url'])
        if data.get('keyboard'):
            self.parse_keyboard(data['keyboard'])
        if data.get('attachments'):
            self.get_attachments_from_urls(data['attachments'])

    def get_image_from_url(self, url: str):
        f = self.session.get(url, stream=True)
        photo = self.upload.photo_messages(photos=f.raw,
                                           peer_id=self.peer_id)[0]
        self.attachments.append(f"photo{photo['owner_id']}_{photo['id']}")

    def get_attachments_from_urls(self, urls: List[dict]):
        for file in urls:

            if file.get('vk_id') is not None:
                self.attachments.append(file.get('vk_id'))
                return

            f = self.session.get(file.get('url'), stream=True)

            # TODO really gotta find a way around writing the file to the disk to save it
            with open('/tmp/metadata.' + file.get('extension'), 'wb') as fp:
                for chunk in f.iter_content(chunk_size=8192):
                    fp.write(chunk)

            doc = self.upload.document_message(doc='/tmp/metadata.pdf',
                                               title=file.get('title'),
                                               peer_id=self.peer_id)['doc']
            self.attachments.append(f"doc{doc['owner_id']}_{doc['id']}")

    def parse_keyboard(self, data: Dict):
        self.keyboard = VkKeyboard()
        self.keyboard.one_time = data.get('one_time') or True
        self.keyboard.inline = data.get('inline') or True

        for btn in data.get('buttons'):
            btn = btn[0]
            action_type = btn.get('action').get('type')
            if action_type == 'open_link':
                self.keyboard.add_openlink_button(
                    link=btn.get('action').get('link'),
                    label=btn.get('action').get('label'),
                    payload=btn.get('action').get('payload'),
                )
            elif action_type == 'text':
                self.keyboard.add_button(label=btn.get('action').get('label'),
                                         color=btn.get('color'))
            else:
                raise NotImplementedError('Unsupported keyboard action type!')

    def get_json_data(self) -> Dict:
        values = {
            'attachment':
            ','.join(self.attachments) if self.attachments else None,
            'message': self.message,
            'keyboard': self.keyboard.get_keyboard() if self.keyboard else None
        }
        return values
예제 #16
0
def buttons_handler(user_id, button_text):
    """ Handles all available buttons """

    if button_text == "\U0001F4B4Оплата":
        open_dialogue("vk_id", user_id, state="PAY")

        keyboard = VkKeyboard(inline=True)
        keyboard.add_button("В рублях ₽ или в гривнах ₴")
        keyboard.add_line()
        keyboard.add_button("В юанях ¥")
        keyboard.add_line()
        keyboard.add_button("\U00002753Связаться с поддержкой")

        vk_send_message(user_id, messages.pay_type, keyboard.get_keyboard())

    elif button_text == "В рублях ₽ или в гривнах ₴":
        vk_send_message(user_id, messages.rub_text_vk, reply_keyboard())

    elif button_text == "В юанях ¥":
        vk_send_message(user_id, messages.yuan_text_vk, reply_keyboard())

    elif button_text == "\U0001F193Попробовать":
        keyboard = VkKeyboard(inline=True)

        keyboard.add_button("\U0001F4B4Оплата")
        keyboard.add_line()
        keyboard.add_button("\U00002753Связаться с поддержкой")

        vk_send_message(user_id, messages.trial_text_vk,
                        keyboard.get_keyboard())

    elif button_text == "\U00002753Связаться с поддержкой":
        vk_support(user_id)

    elif button_text == "Срочная связь":
        vk_support(user_id, urgent=True)

    elif button_text == "Первичная настройка":
        vk_send_message(user_id, messages.first_install, reply_keyboard())

    elif button_text == "Другое":
        vk_send_message(user_id, messages.support_vk, reply_keyboard())

    elif button_text == "ZGC SHOP":
        open_dialogue("vk_id", user_id)
        vk_send_message(
            user_id,
            "Здравствуйте! Укажите, пожалуйста, продукт и вопросы по нему",
            reply_keyboard())

    elif button_text == "\U0001F4F0Узнать больше":
        keyboard = VkKeyboard(inline=True)

        keyboard.add_openlink_button("Блог",
                                     "https://market.zgc.su/zgcvpnblog")

        vk_send_message(
            user_id,
            "Узнайте как заблокировать рекламу, какие появились сервера и многое другое",
            keyboard.get_keyboard())

    elif button_text == "\U0001F1F9\U0001F1F2Туркменистан":
        keyboard = VkKeyboard(inline=True)

        keyboard.add_openlink_button("Сайт обслуживания", "http://tm.zgc.su")
        keyboard.add_line()
        keyboard.add_openlink_button(
            "Как подключить?",
            "https://sites.google.com/view/zgcvpn/try?authuser=0")

        vk_send_message(user_id, messages.turk, keyboard.get_keyboard())

    elif button_text == "\U0001F6D2ZGC SHOP":
        keyboard = VkKeyboard(inline=True)

        keyboard.add_openlink_button("\U0001F6D2 ZGC SHOP",
                                     "https://market.zgc.su")
        keyboard.add_line()
        keyboard.add_button("Связаться с поддержкой")

        vk_send_message(user_id, messages.shop, keyboard.get_keyboard())

    elif button_text == "Связаться с поддержкой":
        open_dialogue("vk_id", user_id)
        vk_send_message(
            user_id,
            "Здравствуйте! Укажите, пожалуйста, продукт и вопросы по нему",
            reply_keyboard())

    elif button_text == "\U0001F91DСотрудничество":
        keyboard = VkKeyboard(inline=True)

        keyboard.add_openlink_button("Сделать предложение",
                                     "https://zgcvpn.ru/partnership")

        vk_send_message(user_id, messages.coop, keyboard.get_keyboard())

    # If user rated quality less than 5 and pushed feedback button, open dialogue for one message only
    elif button_text == "\U0001F4A1 Оставить пожелание":
        vk_send_message(user_id, messages.get_better)
        update_clients(["vk_id", user_id], ["state", "ONE MESSAGE"],
                       ["review_time", f"{int(time.time())}"])

    # Buttons to rate the quality of support
    elif button_text in [
            "\U0001F92C 1", "\U00002639 2", "\U0001F610 3", "\U0001F642 4",
            "\U0001F600 5"
    ]:
        keyboard = VkKeyboard(inline=True)

        # User has already rated
        if get_info("rate", "vk_id", user_id) != "0":
            vk_send_message(user_id, "Вы уже поставили оценку, спасибо!")
            return

        rating = button_text[-1]

        # Ask user to make review if he gave the highest rate
        if rating == "5":
            keyboard.add_openlink_button("\U0001F49B Оставить отзыв",
                                         config.review_link)

            vk_send_message(
                user_id, "Если вам понравился наш сервис - оставьте отзыв, "
                "и мы предоставим вам 10 дней бесплатного VPN!\n\n"
                "Когда оставите отзыв свяжитесь с нами для получения бонуса",
                keyboard=keyboard.get_keyboard())

        # Ask user to write feedback
        else:
            keyboard.add_button("\U0001F4A1 Оставить пожелание")
            vk_send_message(user_id,
                            "Мы можем что-то улучшить в обслуживании?",
                            keyboard=keyboard.get_keyboard())

        time.sleep(1)
        bot.send_message(config.group_id,
                         f"Клиент `{user_id}` поставил вам {rating}",
                         parse_mode='Markdown')
        update_clients(["vk_id", user_id], ["rate", rating])
예제 #17
0
    def new_keyboard(dicts, perm=True):
        from vk_api.keyboard import VkKeyboard, VkKeyboardColor
        if perm == False:
            keyboard = VkKeyboard(one_time=True)
        elif perm == True:
            keyboard = VkKeyboard(one_time=False)

        def color(title, col):
            col = str(col).upper()
            m = [['POSITIVE', '3', 'ЗЕЛЕНЫЙ'], ['NEGATIVE', '2', 'КРАСНЫЙ'],
                 ['SECONDARY', '1', 'БЕЛЫЙ'], ['PRIMARY', '0', 'СИНИЙ']]
            if col in m[0]:
                keyboard.add_button(title, color=VkKeyboardColor.NEGATIVE)
            elif col in m[1]:
                keyboard.add_button(title, color=VkKeyboardColor.POSITIVE)
            elif col in m[2]:
                keyboard.add_button(title, color=VkKeyboardColor.SECONDARY)
            elif col in m[3]:
                keyboard.add_button(title, color=VkKeyboardColor.PRIMARY)
            else:
                raise ValueError(
                    'Ошибка создания клавиатуры (new_keyboard):\n=====\nНеправильно указан цвет/указан специальный объект клавиатуры\n====='
                )

        for dt in dicts:
            try:
                for i in dt.keys():
                    if i == 'new_line':
                        keyboard.add_line()
                    elif i == 'vk_pay':
                        keyboard.add_vkpay_button(hash=dt[i])
                    elif i == 'open_app':
                        for t in range(4):
                            dti = dt[i][t]
                            for key, value in dti.items():
                                if key == 'app_id':
                                    app_id = value
                                elif key == 'owner_id':
                                    owner_id = value
                                elif key == 'label':
                                    label = value
                                elif key == 'hash':
                                    hash1 = value
                        keyboard.add_vkapps_button(app_id, owner_id, label,
                                                   hash1)
                    elif i == 'open_link':
                        for t in range(2):
                            dti = dt[i][t]
                            for key, value in dti.items():
                                if key == 'label':
                                    label = value
                                elif key == 'link':
                                    link = value
                        keyboard.add_openlink_button(label, link)
                    else:
                        color(i, dt[i])
            except:
                raise ValueError(
                    'Ошибка создания клавиатуры (new_keyboard):\n=====\nНеправильно указан один из параметров клавиатуры\n====='
                )
        return keyboard
예제 #18
0
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor

from my_bot_token import token

vk_session = vk_api.VkApi(token=token)
vk_session._auth_token()
keyboard = VkKeyboard(one_time=False)
vk = vk_session.get_api()

keyboard.add_button('Когда вайп?', color=VkKeyboardColor.POSITIVE)
keyboard.add_button('Промо', color=VkKeyboardColor.POSITIVE)

keyboard.add_line()  # Переход на новую строку
keyboard.add_openlink_button("Наш магазин",
                             "https://galakrond.playrust.ru/products")

keyboard.add_line()  # Переход на новую строку
keyboard.add_button('Хочу стать модератором', color=VkKeyboardColor.PRIMARY)
keyboard.add_button('Пиратка?', color=VkKeyboardColor.PRIMARY)

keyboard.add_line()  # Переход на новую строку
keyboard.add_button('Бан\Разбан', color=VkKeyboardColor.NEGATIVE)
keyboard.add_button('Команды', color=VkKeyboardColor.NEGATIVE)

connection_counter = 0

try:

    def main():
        global connection_counter
예제 #19
0
def create_keyboard(response, inline, user_id=None):
    keyboard = VkKeyboard(one_time=True, inline=False)
    if response == 'menu' or response == 'меню' or response == 'начать':
        keyboard.add_button('Таинства')
        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.add_line()
        keyboard.add_button('Контакты', color=VkKeyboardColor.PRIMARY)
        keyboard.add_line()
        keyboard.add_openlink_button(
            'Оставить отзыв', link='https://f3.cool/Alnashi_Church?hl=ru')

    elif response == 'to_menu':
        if inline == 'support':
            menu = VkKeyboard(one_time=False, inline=True)
            menu.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
            return menu.get_keyboard()
        elif inline == 'not_support':
            menu = VkKeyboard(one_time=True, inline=False)
            menu.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
            return menu.get_keyboard()
    elif response == 'answer':
        if inline == 'support':
            menu = VkKeyboard(one_time=False, inline=True)
            menu.add_openlink_button(
                'Ответить',
                link=f'https://vk.com/gim{config.group_id}?sel={user_id}')
            return menu.get_keyboard()
        elif inline == 'not_support':
            menu = VkKeyboard(one_time=True, inline=False)
            menu.add_openlink_button(
                'Ответить',
                link=f'https://vk.com/gim{config.group_id}?sel={user_id}')
            return menu.get_keyboard()
    elif response == 'молитвы':
        keyboard.add_openlink_button(
            'Молитва дня',
            link=pr_every_day['{}'.format(dt.today().weekday() + 1)])
        keyboard.add_line()
        keyboard.add_openlink_button('Основные молитвы',
                                     link='https://vk.cc/atBHq9')
        keyboard.add_line()
        keyboard.add_openlink_button('Утренние', link='https://vk.cc/atFzD1')
        keyboard.add_openlink_button('На сон грядущий',
                                     link='https://vk.cc/atFBjy')
        keyboard.add_line()
        keyboard.add_button('Ко Причастию')
        keyboard.add_line()
        keyboard.add_openlink_button('Ко Пресвятой Троице',
                                     link='https://vk.cc/atBN2U')
        keyboard.add_line()
        keyboard.add_openlink_button('Трем Святителям',
                                     link='https://vk.cc/atBRGj')
        keyboard.add_line()
        keyboard.add_openlink_button('Петру и Павлу',
                                     link='https://vk.cc/atBTv7')
        keyboard.add_line()
        keyboard.add_openlink_button('Акафист Николаю Чудотворцу',
                                     link='https://vk.cc/atBGt9')
        keyboard.add_line()
        keyboard.add_openlink_button('Ко Пресвятой Богородице',
                                     link='https://vk.cc/atBJVm')
        keyboard.add_line()
        keyboard.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
        return keyboard.get_keyboard()
    elif response == 'ко причастию':
        keyboard.add_openlink_button('Последование к Причащению',
                                     link='https://vk.cc/atzNpP')
        keyboard.add_line()
        keyboard.add_openlink_button('Канон Иисусу Христу',
                                     link='https://vk.cc/atzL8T')
        keyboard.add_line()
        keyboard.add_openlink_button('Канон Богородице',
                                     link='https://vk.cc/atzLAK')
        keyboard.add_line()
        keyboard.add_openlink_button('Канон Ангелу-Хранителю',
                                     link='https://vk.cc/atzM43')
        keyboard.add_line()
        keyboard.add_openlink_button('Акафист ко Святому Причащению',
                                     link='https://vk.cc/atzOKn')
        keyboard.add_line()
        keyboard.add_openlink_button('Благодарственные молитвы',
                                     link='https://vk.cc/atzNj3')
        keyboard.add_line()
        keyboard.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
    elif response == 'записки':
        keyboard.add_button('О Здравии', color=VkKeyboardColor.PRIMARY)
        keyboard.add_button('Об Упокоении', color=VkKeyboardColor.PRIMARY)
        if user_id in admin:
            keyboard.add_line()
            keyboard.add_button('Печатать', color=VkKeyboardColor.DEFAULT)
        keyboard.add_line()
        keyboard.add_openlink_button('Правила', link='https://vk.cc/atsViE')
        keyboard.add_line()
        keyboard.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
    elif response == 'о здравии':
        if inline == 'support':
            menu = VkKeyboard(one_time=False, inline=True)
            menu.add_button('Об Упокоении', color=VkKeyboardColor.PRIMARY)
            menu.add_line()
            menu.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
            return menu.get_keyboard()
        elif inline == 'not_support':
            menu = VkKeyboard(one_time=True, inline=False)
            menu.add_button('Об Упокоении', color=VkKeyboardColor.PRIMARY)
            menu.add_line()
            menu.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
            return menu.get_keyboard()
    elif response == 'об упокоении':
        if inline == 'support':
            menu = VkKeyboard(one_time=False, inline=True)
            menu.add_button('О Здравии', color=VkKeyboardColor.PRIMARY)
            menu.add_line()
            menu.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
            return menu.get_keyboard()
        elif inline == 'not_support':
            menu = VkKeyboard(one_time=True, inline=False)
            menu.add_button('О Здравии', color=VkKeyboardColor.PRIMARY)
            menu.add_line()
            menu.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
            return menu.get_keyboard()
    elif response == 'таинства':
        keyboard.add_openlink_button('Таинство Крещения',
                                     link='https://vk.cc/atsGcX')
        keyboard.add_line()
        keyboard.add_openlink_button('Таинство Миропомазания',
                                     link='https://vk.cc/attirf')
        keyboard.add_line()
        keyboard.add_openlink_button('Таинство Покаяния(Исповедь)',
                                     link='https://vk.cc/attzdL')
        keyboard.add_line()
        keyboard.add_openlink_button('Таинство Причащения(Евхаристия)',
                                     link='https://vk.cc/attNKZ')
        keyboard.add_line()
        keyboard.add_openlink_button('Таинство Елеосвящения(Соборование)',
                                     link='https://vk.cc/atwWgs')
        keyboard.add_line()
        keyboard.add_openlink_button('Таинство Брака',
                                     link='https://vk.cc/atwYVs')
        keyboard.add_line()
        keyboard.add_openlink_button('Таинство Священства',
                                     link='https://vk.cc/atx1YJ')
        keyboard.add_line()
        keyboard.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
    elif response == 'контакты':
        keyboard.add_openlink_button('Связаться с создателем',
                                     link='https://vk.com/im?sel=292995613')
        keyboard.add_line()
        keyboard.add_button('Меню', color=VkKeyboardColor.NEGATIVE)
    return keyboard.get_keyboard()