def invalid_value(user, vk_session, end=False): if not end: vk_session.method( 'messages.send', { 'user_id': user['id'], 'message': 'Проверьте корректность введённых Вами данных🙅🙇.', 'random_id': random.getrandbits(64) }) else: keyboard = vk_api.keyboard.VkKeyboard() keyboard.add_button('Подать ещё одну заявку🆕', vk_api.keyboard.VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('К предыдущему вопросу🔙', vk_api.keyboard.VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Рассылка📫', vk_api.keyboard.VkKeyboardColor.PRIMARY) vk_session.method( 'messages.send', { 'user_id': user['id'], 'message': 'Проверьте корректность введённых Вами данных🙅🙇.', 'random_id': random.getrandbits(64), 'keyboard': keyboard.get_keyboard() })
def services(vk, event): keyboard = vk_api.keyboard.VkKeyboard(one_time=True) keyboard.add_button("Узнать о наличии книги", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"section": "availability"}) keyboard.add_line() keyboard.add_button("Продлить срок", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"section": "extend"}) # keyboard.add_line() keyboard.add_button("Доставить книгу", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"section": "delivery"}) keyboard.add_line() keyboard.add_button("Назад", vk_api.keyboard.VkKeyboardColor.DEFAULT, {"command": "start"}) vk.messages.send( user_id=event.object.message['from_id'], random_id=get_random_id(), message=f"Через бота Вы можете воспользоваться следущими услугами:\n" f"• Узнать о наличии книги в наших библиотеках\n" f"• Продлить книгу в нашей библиотеке\n" f"• Доставить нужную книгу в удобную библиотеку\n\n" f"С остальными услугами можно ознакомиться на нашем сайте: " f"https://моб.екатеринбург.рф/about/services/", keyboard=keyboard.get_keyboard(), dont_parse_links=1)
def business_selling_keyboard(): keyboard = vk_api.keyboard.VkKeyboard(one_time=True) keyboard.add_button("продать 1", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_button("продать 2", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_button("продать 3", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_line() keyboard.add_button("продать 4", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_button("продать 5", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_button("продать 6", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_line() keyboard.add_button("продать 7", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_button("продать 8", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_button("продать 9", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) return keyboard.get_keyboard()
def create_keyboard(buttons: list, one_time=False, inline=False): # Buttons = [[text, color, new_line], [...], ] keyboard = vk_api.keyboard.VkKeyboard(one_time=one_time, inline=inline) for i, button in enumerate(buttons): if button[2]: keyboard.add_line() keyboard.add_button(button[0], color=B_COLORS[button[1]]) return keyboard.get_keyboard()
def mailout(): keyboard = VkKeyboard(one_time=False) keyboard.add_button('Откликнуться', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Меню', color=VkKeyboardColor.PRIMARY) keyboard = keyboard.get_keyboard() return keyboard
def start(vk, adminID, requests, **data): greeting = '' greetings = { "morning": "Доброе утро", "day": "Добрый день", "afternoon": "Добрый вечер", "night": "Доброй ночи" } if 4 <= int(strftime("%H")) <= 12: greeting = greetings['morning'] if 13 <= int(strftime("%H")) <= 16: greeting = greetings['day'] if 17 <= int(strftime("%H")) <= 23: greeting = greetings['afternoon'] if 0 <= int(strftime("%H")) <= 3: greeting = greetings['night'] keyboard = vk_api.keyboard.VkKeyboard(one_time=True) DNDstatus = "" DNDbutton = "" color = vk_api.keyboard.VkKeyboardColor.DEFAULT if data: if data['DND']: DNDstatus = "Уведомления выключены" DNDbutton = "Включить уведомления" color = vk_api.keyboard.VkKeyboardColor.PRIMARY else: DNDstatus = "Уведомления о новых запросах включены" DNDbutton = "Выключить уведомления" if requests['count'] > 0: req_txt = f"Количество запросов для библиотеки: {requests['count']}" keyboard.add_button("Рассмотреть запросы", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"command": "send requests", "requestID": requests['requests'][-1]} ) else: keyboard.add_button("Расмотреть запросы", vk_api.keyboard.VkKeyboardColor.DEFAULT, {"command": "send requests", "requestID": "None"}) req_txt = "На данный момент запросов нет. Вам придет уведомление, если что-то появится" keyboard.add_line() keyboard.add_button(f"{DNDbutton}", color, {"command": "switch DND"}) vk.messages.send( user_id=adminID, random_id=get_random_id(), message=f"{greeting}, " f"{vk.users.get(user_ids=adminID, name_case='Nom')[0]['first_name']}\n\n" + f"{req_txt}\n\n{DNDstatus}", keyboard=keyboard.get_keyboard() )
def which_offers(): 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 = keyboard.get_keyboard() return keyboard
def accept(): keyboard = VkKeyboard(one_time=False) keyboard.add_button('Принять', color=VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('Назад', color=VkKeyboardColor.PRIMARY) keyboard.add_button('Меню', color=VkKeyboardColor.PRIMARY) keyboard = keyboard.get_keyboard() return keyboard
def keyboardCreater(*args, count: int): keyboard = VkKeyboard(one_time=False) keyboard.add_button(args[0]) args[1:] for label in args[1:]: keyboard.add_line() keyboard.add_button(label) keyboard = keyboard.get_keyboard() return keyboard
def main_menu_keyboard(): keyboard = vk_api.keyboard.VkKeyboard(one_time=True) keyboard.add_button("деньги", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_button("бизнесы", color=vk_api.keyboard.VkKeyboardColor.SECONDARY) keyboard.add_line() keyboard.add_button("купить", color=vk_api.keyboard.VkKeyboardColor.POSITIVE) keyboard.add_button("продать", color=vk_api.keyboard.VkKeyboardColor.NEGATIVE) return keyboard.get_keyboard()
def main_menu(): 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.POSITIVE) keyboard.add_line() keyboard.add_button('На сайт', color=VkKeyboardColor.PRIMARY) keyboard = keyboard.get_keyboard() return keyboard
def done(user, vk_session): keyboard = vk_api.keyboard.VkKeyboard() keyboard.add_button('Подать ещё одну заявку🆕', vk_api.keyboard.VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('К предыдущему вопросу🔙', vk_api.keyboard.VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Рассылка📫', vk_api.keyboard.VkKeyboardColor.PRIMARY) vk_session.method( 'messages.send', { 'user_id': user['id'], 'random_id': random.getrandbits(64), 'message': 'Успех!', 'keyboard': keyboard.get_keyboard() })
def thanq(user, vk_session): keyboard = vk_api.keyboard.VkKeyboard() keyboard.add_button('Подать ещё одну заявку🆕', vk_api.keyboard.VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('К предыдущему вопросу🔙', vk_api.keyboard.VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Рассылка📫', vk_api.keyboard.VkKeyboardColor.PRIMARY) vk_session.method( 'messages.send', { 'user_id': user['id'], 'random_id': random.getrandbits(64), 'message': 'Спасибо за обращение, наш преподаватель свяжется с Вами в ближайшее время😊.', 'keyboard': keyboard.get_keyboard() })
def send_request(vk, event, msg, requestID): keyboard = vk_api.keyboard.VkKeyboard(one_time=True) keyboard.add_button("Да", vk_api.keyboard.VkKeyboardColor.POSITIVE, {"command": "request accepted", "requestID": requestID}) keyboard.add_button("Нет", vk_api.keyboard.VkKeyboardColor.NEGATIVE, {"command": "request denied", "requestID": requestID}) keyboard.add_line() keyboard.add_button("Назад", vk_api.keyboard.VkKeyboardColor.DEFAULT, {"command": "del cache", "cache": "admin DND"}) vk.messages.send( user_id=event.object.message['from_id'], random_id=get_random_id(), message=f"{msg}", keyboard=keyboard.get_keyboard() )
def del_keyboard(message_id, vk_session): message = vk_session.method('messages.getById', {'message_ids': message_id})['items'][0] keyboard = vk_api.keyboard.VkKeyboard() keyboard.add_button('Подать ещё одну заявку🆕', vk_api.keyboard.VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button('К предыдущему вопросу🔙', vk_api.keyboard.VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_button('Рассылка📫', vk_api.keyboard.VkKeyboardColor.PRIMARY) vk_session.method( 'messages.edit', { 'message': message['text'], 'message_id': message_id, 'keyboard': keyboard.get_keyboard(), 'peer_id': message['peer_id'] })
def about_us(vk, event, data): keyboard = vk_api.keyboard.VkKeyboard(one_time=True) keyboard.add_button("Муниципальное Объединение Библиотек", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"section": "mob"}) keyboard.add_line() keyboard.add_button("Назад", vk_api.keyboard.VkKeyboardColor.DEFAULT, {"command": "start"}) president = "" national = "" national_kids = "" if data['president']: president = "• Президентская библиотека\n" if data['national']: national = "• Национальная электронная библиотека\n" if data['national_kids']: national_kids = "• Национальная электронная детская библиотека\n" vk.messages.send( user_id=event.object.message['from_id'], random_id=get_random_id(), message=f"{data['title']}\n\n" f"Адрес: {data['location']}\n" f"Телефон: {data['phone']}\n" f"e-mail: {data['email']}\n" f"Сайт: {data['site']}\n\n" f"Часы работы:\n{data['time']}\n\n" f"Услуги:\n" f"{president}{national}{national_kids}\n" f"{data['services']}\n\n" f"Транспорт:\n{data['transport']}", keyboard=keyboard.get_keyboard(), lat=data['lat'], long=data['long'], dont_parse_links=1 )
def catalogue(item_list, per_line=1, more=False): keyboard = VkKeyboard(one_time=True) i = 0 for item in item_list: keyboard.add_button(item, color=VkKeyboardColor.POSITIVE) i += 1 if i % per_line == 0: keyboard.add_line() if i % per_line != 0: keyboard.add_line() if more: keyboard.add_button('Далее', color=VkKeyboardColor.PRIMARY) keyboard.add_button('Меню', color=VkKeyboardColor.PRIMARY) keyboard = keyboard.get_keyboard() return keyboard
def start(vk, event): greeting = '' greetings = { "morning": "Доброе утро", "day": "Добрый день", "afternoon": "Добрый вечер", "night": "Доброй ночи" } if 4 <= int(strftime("%H")) <= 12: greeting = greetings['morning'] if 13 <= int(strftime("%H")) <= 16: greeting = greetings['day'] if 17 <= int(strftime("%H")) <= 23: greeting = greetings['afternoon'] if 0 <= int(strftime("%H")) <= 3: greeting = greetings['night'] keyboard = vk_api.keyboard.VkKeyboard(one_time=True) keyboard.add_button("Наша библиотека", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"section": "about us"}) keyboard.add_line() keyboard.add_button("Мероприятия", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"section": "events"}) keyboard.add_button("Услуги", vk_api.keyboard.VkKeyboardColor.PRIMARY, {"section": "services"}) keyboard.add_line() keyboard.add_button("Мне нужна помощь человека", vk_api.keyboard.VkKeyboardColor.DEFAULT, {"command": "help"}) vk.messages.send( user_id=event.object.message['from_id'], random_id=get_random_id(), message=f"{greeting}, " f"{vk.users.get(user_ids=event.object.message['from_id'],name_case='Nom')[0]['first_name']}\n" + f"Для получения необходимой информации выберите кнопку с интересующим разделом", keyboard=keyboard.get_keyboard())
def ask_for_what(user, conn, c, user_from_db, vk_session): keyboard = vk_api.keyboard.VkKeyboard(inline=True) keyboard.add_button("Повышение качества знаний📚", color=vk_api.keyboard.VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button("Подготовка к экзамену💯", color=vk_api.keyboard.VkKeyboardColor.POSITIVE) message_id = vk_session.method( 'messages.send', { 'user_id': user['id'], 'random_id': random.getrandbits(64), 'message': 'Что Вас интересует?', 'keyboard': keyboard.get_keyboard() }) with conn: c.execute('''UPDATE people SET message_id=:message_id WHERE id=:id''', { 'id': user_from_db[0], 'message_id': message_id })
def ask_for_kind(user, conn, c, user_from_db, vk_session): keyboard = vk_api.keyboard.VkKeyboard(inline=True) keyboard.add_button("Индивидуальные", color=vk_api.keyboard.VkKeyboardColor.POSITIVE) keyboard.add_line() keyboard.add_button("Групповые", color=vk_api.keyboard.VkKeyboardColor.POSITIVE) message_id = vk_session.method( 'messages.send', { 'user_id': user['id'], 'random_id': random.getrandbits(64), 'message': 'Какой тип занятий Вы предпочитаете?', 'keyboard': keyboard.get_keyboard() }) with conn: c.execute('''UPDATE people SET message_id=:message_id WHERE id=:id''', { 'id': user_from_db[0], 'message_id': message_id })
def get_big_keyboard(buttonlist): keyboard = vk_api.keyboard.VkKeyboard(one_time=True) len_buttons_list = len(buttonlist) if len_buttons_list % 3 == 0: flag = 0 for buttongroupind in range(len_buttons_list): if flag != 0 and flag % 3 == 0: keyboard.add_line() keyboard.add_button(buttonlist[buttongroupind]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) flag += 1 if len_buttons_list == 4: keyboard.add_button(buttonlist[0]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[1]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[2]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[3]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) if len_buttons_list == 5: keyboard.add_button(buttonlist[0]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[1]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[2]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[3]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[4]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) if len_buttons_list == 7: keyboard.add_button(buttonlist[0]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[1]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[2]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[3]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[4]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[5]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[6]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) if len_buttons_list == 8: keyboard.add_button(buttonlist[0]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[1]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[2]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[3]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[4]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[5]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_line() keyboard.add_button(buttonlist[6]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) keyboard.add_button(buttonlist[7]['action']['label'], color=vk_api.keyboard.VkKeyboardColor.PRIMARY) return keyboard.get_keyboard()