Beispiel #1
0
def money(user_id, data = None):
    print(data['payload'])
    if data['payload'] == '"Стипендия"':
        settings = dict(one_time=False, inline=True)
        keyboard = VkKeyboard(**settings)
        # pop-up кнопка
        keyboard.add_callback_button(label='Академическая', color=VkKeyboardColor.POSITIVE,
                                       payload='\"Академическая\"')
        keyboard.add_callback_button(label='Социальная', color=VkKeyboardColor.POSITIVE,
                                       payload='\"Социальная\"')
        
        app.send_message(user_id, message="Виды стипендии", keyboard=keyboard.get_keyboard())
    if data['payload'] == 'Академическая':
        message="""Академическая стипендия зависит от успеваемости обучаегося.
При получении образования степендия составляет 2200 рублей.
Если по итогам сессии обучающийся имеет оценки «ХОРОШО» и «ОТЛИЧНО» или только «ХОРОШО», стипендия составляет 2200 рублей.
Если обучающийся по итогам сессии имеет только оценки «ОТЛИЧНО», он может рассчитывать на повышенную стипендию в размере 3000 рублей."""
        app.message_edit(data['peer_id'], message, data['conversation_message_id'])
    if data['payload'] == 'Социальная':
        message="""Социальная стипендия назначается студенту с даты предоставления документа, подтверждающего соответствие одной из категорий студентов, указанных в ФЗ № 273 «Об образовании в РФ» статья 36 пункт 5 по месяц прекращения действия основания её назначения.
Государственная социальная стипендия назначается студентам:
1.распорядительным актом руководителя организации на основании документа, подтверждающего соответствие одной из категорий граждан, с даты его представления
2.В случае, если документ бессрочный назначается до конца обучения
В РГЭУ РИНХ социальную стипендию могут получить:
-студенты, из числа детей - сирот и детей, оставшихся без попечения родителей - 3800 руб
-студенты - инвалиды 1 и 2 группы, дети - инвалиды и инвалидам с детства -3000 руб
-студенты, подвергшиеся радиации вследствие катастрофы на Чернобыльской АЭС и иных радикальных катастроф - 3000 руб
-студенты, инвалиды и ветераны боевых действий - 3000 руб
-студенты, получающих государственную помощь - 3000 руб"""
        app.message_edit(data['peer_id'], message, data['conversation_message_id'])
def generate_answers_keyboard(answers: list) -> VkKeyboard:
    chars = ['a', 'b', 'c', 'd']
    keyboard_answers = VkKeyboard(inline=True)
    for char, answer in zip(chars, answers):
        keyboard_answers.add_callback_button(label=char,
                                             color=VkKeyboardColor.PRIMARY,
                                             payload={
                                                 "type": "text",
                                                 "answer": answer
                                             })
    return keyboard_answers
Beispiel #3
0
def mailing_notifications_about_new_homework(db, user_id):
    '''Функция рассылки оповещения о новом домашнем задании на завтра людям, предварительно сегодня посмотревших ДЗ на завтрашний день.'''
    users = db.get_users_in_homework_f()
    #
    keyboard = VkKeyboard(one_time=False, inline=True)
    keyboard.add_callback_button(
        label="Посмотреть",
        color=VkKeyboardColor.POSITIVE,
        payload={"type": "show_homework_tomorrow"},
    )
    #
    msg = 'Внимание, на завтра было добавлено новое домашнее задание❗'
    #
    for user in users:
        if user_id != user[
                0]:  # если пользователь не тот, кто добавил домашнее задание
            write_msg_withKeyboard(user[0], msg, 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
Beispiel #5
0
    def list_delete_2():
        """Список учеников группы"""

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

        keyboard.add_callback_button("Маматов", VkKeyboardColor.SECONDARY,
                                     {"type": "mamatov_del"})
        keyboard.add_callback_button("Могучева", VkKeyboardColor.SECONDARY,
                                     {"type": "mogucheva_del"})
        keyboard.add_line()

        keyboard.add_callback_button("Плиев", VkKeyboardColor.SECONDARY,
                                     {"type": "pliev_del"})
        keyboard.add_line()

        keyboard.add_callback_button("Реута", VkKeyboardColor.SECONDARY,
                                     {"type": "reuta_del"})
        keyboard.add_callback_button("Семкив", VkKeyboardColor.SECONDARY,
                                     {"type": "semkiv_del"})

        return keyboard.get_keyboard()
Beispiel #6
0
def info(user_id, data=None):
    print(data['payload'])
    if data['payload'] == '"вузинфа"':
        settings = dict(one_time=False, inline=True)
        settings = dict(one_time=False, inline=True)
        keyboard = VkKeyboard(**settings)
        # pop-up кнопка
        keyboard.add_callback_button(label='Информация о вузе',
                                     color=VkKeyboardColor.POSITIVE,
                                     payload='\"Информация о вузе\"')
        keyboard.add_line()
        keyboard.add_callback_button(label='РГЭУ РИНХ Большая Садовая',
                                     color=VkKeyboardColor.POSITIVE,
                                     payload='\"РГЭУ РИНХ Большая Садовая\"')
        keyboard.add_line()
        keyboard.add_callback_button(label='РГЭУ РИНХ Буденовский',
                                     color=VkKeyboardColor.POSITIVE,
                                     payload='\"РГЭУ РИНХ Буденовский\"')
        keyboard.add_line()
        keyboard.add_callback_button(label='РГЭУ РИНХ Максима-Горького',
                                     color=VkKeyboardColor.POSITIVE,
                                     payload='\"РГЭУ РИНХ Максима-Горького\"')
        app.send_message(user_id,
                         message="🏫",
                         keyboard=keyboard.get_keyboard())
    if data['payload'] == 'Информация о вузе':
        message = """В 1930—1931 годах в СССР были созданы финансово-экономические институты в Москве, Ленинграде, Харькове, Ташкенте, Иркутске, Казани, Киеве и в Ростове-на-Дону (1931).
Ростовский финансово-экономический институт (РФЭИ) возник на базе экономического факультета Северо-Кавказского государственного университета (прежнее название РГУ). Именно на его кадровой, научно-исследовательской и учебно-методической базе развивался институт в предвоенное десятилетие.
Постановлением Совета Народных Комиссаров СССР от 28 февраля 1933 года за № 330 РФЭИ был включен в список высших учебных заведений страны, 11 марта 1939 года приказом Всесоюзного комитета высшей школы был утвержден устав института.
13 октября 1964 года приказом Министерства высшего и среднего специального образования РСФСР № 718 РФЭИ был переименован в Ростовский институт народного хозяйства (РИНХ). В 1994 году институт стал академией, а 2000 году — университетом."""
        app.send_message(user_id, message)
        #app.message_edit(data['peer_id'], message, data['conversation_message_id'])
    if data['payload'] == 'РГЭУ РИНХ Большая Садовая':
        message = """Факультеты:
Факультет Торгового Дела
Факультет Компьютерных технологий и информационной безопасности
Учетно-экономический факультет
Факультет Экономики и финансов
Факультет Лингвистики и журналистики"""
        app.send_message(user_id, message, longi=39.739537, lat=47.223185)
        #app.message_edit(data['peer_id'], message, data['conversation_message_id'])
    if data['payload'] == 'РГЭУ РИНХ Буденовский':
        message = """Факультеты:
Факультет Менеджмента и предпринимательства"""
        app.send_message(user_id, message, longi=39.705702, lat=47.221863)
        #app.message_edit(data['peer_id'], message, data['conversation_message_id'])
    if data['payload'] == 'РГЭУ РИНХ Максима-Горького':
        message = """Факультеты:
Юридический факультет"""
        app.send_message(user_id, message, longi=39.724418, lat=47.228614)
Beispiel #7
0
    keyboard.add_button("Отмена", color=VkKeyboardColor.SECONDARY)
    return keyboard.get_keyboard()


def join_course_by_name():
    keyboard = VkKeyboard(one_time=False)
    keyboard.add_button("Приcоединиться", color=VkKeyboardColor.POSITIVE)
    keyboard.add_button("Вернуться в главное меню",
                        color=VkKeyboardColor.SECONDARY)
    return keyboard.get_keyboard()


# №1. Клавиатура с 3 кнопками: "показать всплывающее сообщение", "открыть URL" и изменить меню (свой собственный тип)
keyboard_1 = VkKeyboard(**dict(one_time=False, inline=True))
keyboard_1.add_callback_button(label='1 балл',
                               color=VkKeyboardColor.POSITIVE,
                               payload={"type": "1_point"})
keyboard_1.add_callback_button(label='2 балла',
                               color=VkKeyboardColor.POSITIVE,
                               payload={"type": "2_point"})
keyboard_1.add_callback_button(label='3 балла',
                               color=VkKeyboardColor.POSITIVE,
                               payload={"type": "3_point"})
keyboard_1.add_line()
keyboard_1.add_callback_button(label='Отклонить достижение',
                               color=VkKeyboardColor.PRIMARY,
                               payload={"type": "Denied"})


def msg_send(user_id, text, keyboard=main_keyboard(), attachments=[]):
    max_len = 4092
Beispiel #8
0
def list_add_1():
    """Список учеников группы"""
    keyboard = VkKeyboard(one_time=False, inline=True)

    keyboard.add_callback_button("Аветисян", VkKeyboardColor.SECONDARY,
                                 {"type": "avetysyan"})
    keyboard.add_callback_button("Борзухин", VkKeyboardColor.SECONDARY,
                                 {"type": "borzuxin"})
    keyboard.add_callback_button("Генхель", VkKeyboardColor.SECONDARY,
                                 {"type": "genhel"})
    keyboard.add_line()

    keyboard.add_callback_button("Дятлова", VkKeyboardColor.SECONDARY,
                                 {"type": "dyatlova"})
    keyboard.add_callback_button("Евдокимов", VkKeyboardColor.SECONDARY,
                                 {"type": "evdokimov"})
    keyboard.add_callback_button("Егоров", VkKeyboardColor.SECONDARY,
                                 {"type": "egorov"})
    keyboard.add_line()

    keyboard.add_callback_button("Еременко", VkKeyboardColor.SECONDARY,
                                 {"type": "eremenko"})
    keyboard.add_callback_button("Каданчик", VkKeyboardColor.SECONDARY,
                                 {"type": "kadanchik"})
    keyboard.add_callback_button("Маматов", VkKeyboardColor.SECONDARY,
                                 {"type": "mamatov"})

    return keyboard.get_keyboard()
Beispiel #9
0
    def list_delete_3():
        """Список учеников группы"""

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

        keyboard.add_callback_button("Соловьев", VkKeyboardColor.SECONDARY,
                                     {"type": "soloviev_del"})
        keyboard.add_callback_button("Тебеньков", VkKeyboardColor.SECONDARY,
                                     {"type": "tebenkov_del"})
        keyboard.add_line()

        keyboard.add_callback_button("Ховрат", VkKeyboardColor.SECONDARY,
                                     {"type": "hovrat_del"})
        keyboard.add_callback_button("Черняков", VkKeyboardColor.SECONDARY,
                                     {"type": "chernyakov_del"})
        keyboard.add_callback_button("Чикинев", VkKeyboardColor.SECONDARY,
                                     {"type": "chykynev_del"})
        keyboard.add_line()

        keyboard.add_callback_button("Шубарина", VkKeyboardColor.SECONDARY,
                                     {"type": "shubarina_del"})

        return keyboard.get_keyboard()
Beispiel #10
0
def list_add_2():
    """Список учеников группы"""

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

    keyboard.add_callback_button("Корнинский", VkKeyboardColor.SECONDARY,
                                 {"type": "korninsky"})
    keyboard.add_callback_button("Могучева", VkKeyboardColor.SECONDARY,
                                 {"type": "mogucheva"})
    keyboard.add_callback_button("Плиев", VkKeyboardColor.SECONDARY,
                                 {"type": "pliev"})
    keyboard.add_line()

    keyboard.add_callback_button("Реута", VkKeyboardColor.SECONDARY,
                                 {"type": "reuta"})
    keyboard.add_callback_button("Семкив", VkKeyboardColor.SECONDARY,
                                 {"type": "semkiv"})
    keyboard.add_callback_button("Соловьев", VkKeyboardColor.SECONDARY,
                                 {"type": "soloviev"})
    keyboard.add_line()

    keyboard.add_callback_button("Тебеньков", VkKeyboardColor.SECONDARY,
                                 {"type": "tebenkov"})
    keyboard.add_callback_button("Ховрат", VkKeyboardColor.SECONDARY,
                                 {"type": "hovrat"})
    keyboard.add_callback_button("Черняков", VkKeyboardColor.SECONDARY,
                                 {"type": "chernyakov"})

    return keyboard.get_keyboard()
Beispiel #11
0
def main():
    # Запускаем бот
    vk_session = VkApi(token=GROUP_TOKEN, api_version=API_VERSION)
    vk = vk_session.get_api()
    longpoll = VkBotLongPoll(vk_session, group_id=GROUP_ID)

    # Создаем 2 клавиатуры
    # №1. Клавиатура с 3 кнопками: "показать всплывающее сообщение", "открыть URL" и изменить меню (свой собственный тип)
    keyboard_1 = VkKeyboard(one_time=False, inline=True)
    keyboard_1.add_callback_button(
        label="Покажи pop-up сообщение",
        color=VkKeyboardColor.SECONDARY,
        payload={
            "type": "show_snackbar",
            "text": "Это исчезающее сообщение на экране"
        },
    )
    keyboard_1.add_line()
    keyboard_1.add_callback_button(
        label="Откртыть Url",
        color=VkKeyboardColor.POSITIVE,
        payload={
            "type": "open_link",
            "link": "https://vk.com/dev/bots_docs_5"
        },
    )
    keyboard_1.add_line()
    keyboard_1.add_callback_button(
        label="Открыть приложение",
        color=VkKeyboardColor.NEGATIVE,
        payload={
            "type": "open_app",
            "app_id": APP_ID,
            "owner_id": OWNER_ID,
            "hash": "anything_data_100500",
        },
    )
    keyboard_1.add_line()
    keyboard_1.add_callback_button(
        label="Добавить красного ",
        color=VkKeyboardColor.PRIMARY,
        payload={"type": "my_own_100500_type_edit"},
    )

    # №2. Клавиатура с одной красной callback-кнопкой. Нажатие изменяет меню на предыдущее.
    keyboard_2 = VkKeyboard(one_time=False, inline=True)
    keyboard_2.add_callback_button(
        "Назад",
        color=VkKeyboardColor.NEGATIVE,
        payload={"type": "my_own_100500_type_edit"},
    )

    # Запускаем пуллинг
    f_toggle: bool = False
    for event in longpoll.listen():
        # отправляем меню 1го вида на любое текстовое сообщение от пользователя
        if event.type == VkBotEventType.MESSAGE_NEW:
            if event.obj.message["text"] != "":
                if event.from_user:
                    # Если клиент пользователя не поддерживает callback-кнопки, нажатие на них будет отправлять текстовые
                    # сообщения. Т.е. они будут работать как обычные inline кнопки.
                    if "callback" not in event.obj.client_info[
                            "button_actions"]:
                        print(
                            f'Клиент user_id{event.obj.message["from_id"]} не поддерживает callback-кнопки.'
                        )

                    vk.messages.send(
                        user_id=event.obj.message["from_id"],
                        random_id=get_random_id(),
                        peer_id=event.obj.message["from_id"],
                        keyboard=keyboard_1.get_keyboard(),
                        message="Меню #1",
                    )
        # обрабатываем клики по callback кнопкам
        elif event.type == VkBotEventType.MESSAGE_EVENT:
            if event.object.payload.get("type") in CALLBACK_TYPES:
                r = vk.messages.sendMessageEventAnswer(
                    event_id=event.object.event_id,
                    user_id=event.object.user_id,
                    peer_id=event.object.peer_id,
                    event_data=json.dumps(event.object.payload),
                )
            elif event.object.payload.get("type") == "my_own_100500_type_edit":
                last_id = vk.messages.edit(
                    peer_id=event.obj.peer_id,
                    message="Меню #2",
                    conversation_message_id=event.obj.conversation_message_id,
                    keyboard=(keyboard_1
                              if f_toggle else keyboard_2).get_keyboard(),
                )
                f_toggle = not f_toggle
Beispiel #12
0
def sch(user_id, data=None):

    con = pymysql.connect(host='',
                          user='',
                          password='',
                          db='',
                          charset='utf8mb4')

    if datetime.today().strftime("%a") == 'Sat':
        currentW = 0
    if data['payload'] == '"расписание"':

        settings = dict(one_time=False, inline=True)
        keyboard = VkKeyboard(**settings)
        print("button preesed")
        for row in range(0, 7):
            keyboard.add_callback_button(label=fakul[dictf[row]],
                                         color=VkKeyboardColor.POSITIVE,
                                         payload='\"' + dictf[row] + '\"')
            if row == 3:
                keyboard.add_line()
        app.send_message(user_id,
                         "Факультеты",
                         keyboard=keyboard.get_keyboard())

    faculty = []
    if data['payload'] in dictf:
        settings = dict(one_time=False, inline=True)
        keyboard = VkKeyboard(**settings)
        print("button preesed")
        for y in range(1, 5):
            keyboard.add_callback_button(label=y,
                                         color=VkKeyboardColor.POSITIVE,
                                         payload='\"' + data['payload'] +
                                         str(y) + '\"')
        #app.send_message(user_id, "Расписание", keyboard=keyboard.get_keyboard())
        print(dictfy)
        app.message_edit(data['peer_id'],
                         "Курс",
                         data['conversation_message_id'],
                         keyboard=keyboard.get_keyboard())
    if data['payload'] in dictfy:
        print(data)
        fct = data['payload'][0:3]
        yaer = data['payload'][3]
        with con:
            cur = con.cursor()
            fac = cur.execute(
                "SELECT distinct schedule.group FROM schedule where faculty = '"
                + fakulfull[fct] + "' AND year = " + yaer + "")
            print(fac)
            res = cur.fetchall()
            print(res)
            m = []
            for rw in res:
                print(rw)
                print(str(rw[0]))
                m += [str(rw[0])]
                print('next')
        settings = dict(one_time=False, inline=True)
        keyboard = VkKeyboard(**settings)
        print('keyboard')
        print(m)
        for row in range(0, len(m)):
            keyboard.add_button(label=m[row],
                                color=VkKeyboardColor.POSITIVE,
                                payload='\"group\"')
            print(m[row])
            if row == 3:
                keyboard.add_line()
                print(m[row])
        print(keyboard.get_keyboard())
        print('edit')
        app.message_edit(data['peer_id'],
                         "Группа",
                         data['conversation_message_id'],
                         keyboard=keyboard.get_keyboard())
        print('end')
    if data['payload'] == '"group"':
        m = [[]]
        with con:
            cur = con.cursor()
            fetch = cur.execute(
                "select schedule.day,schedule.schedule from schedule where schedule.group = '"
                + data['text'] + "' and schedule.up_weak = '+app.up+'")
            res = cur.fetchall()
            m = res
        message = ""
        for row in m:
            for col in row:
                message += str(col) + "\n"
        app.send_message(user_id, message)