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()
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()
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()
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()
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()
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()
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()
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() })
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()
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()
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
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()
'Если ошибка в переводе, обратитесь в техподдержку 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
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])
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
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
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()