コード例 #1
0
 def view_events(self, user):
     data = self.get_events()
     events = []
     for i in data:
         today = int(datetime.datetime.timestamp(
             datetime.datetime.strptime(datetime.date.today().strftime('%d.%m.%Y'), '%d.%m.%Y')))
         emoji = ' \U0001F3C1' if int(i[2]) <= today else ''
         s = str(i[0]) + '. ' + str(i[1]) + emoji
         events.append(s)
     if len(events) == 0:
         events.append('Здесь пока пусто.')
     buttons = [
         interactive_media.InteractiveMediaGroup(
             [
                 interactive_media.InteractiveMedia(
                     9,
                     interactive_media.InteractiveMediaButton('back_to_menu', 'Назад в меню')
                 )
             ]
         )
     ]
     self.bot.messaging.send_message(
         self.bot.users.get_user_peer_by_id(user[0]),
         '*Для подробной информации пришли мне номер ивента*\n\n' + '\n'.join(events),
         buttons
     )
     self.set_state(user[0], 'view_events')
コード例 #2
0
ファイル: test.py プロジェクト: ShellAddicted/python-bot-sdk
 def sender(count=10):
     i = 0
     while i < count:
         i += 1
         if i % 2 == 0:
             d.messaging.send_message(private_peer(966246115),
                                      "Simple text")
         else:
             d.messaging.send_message(
                 private_peer(966246115), "Interactive media %d" % i, [
                     interactive_media.InteractiveMediaGroup([
                         interactive_media.InteractiveMedia(
                             1,
                             interactive_media.InteractiveMediaButton(
                                 "Test", "OK"),
                             interactive_media.InteractiveMediaConfirm(
                                 "Confirm text", "Confirm title")),
                         interactive_media.InteractiveMedia(
                             1,
                             interactive_media.InteractiveMediaSelect(
                                 "Some select", 'nope', {
                                     'yeah': "Yeah!",
                                     "nope": "Nope!",
                                     "maybe": "Maybe"
                                 }))
                     ], "Group title", "Group description")
                 ])
         time.sleep(2)
コード例 #3
0
def make_event_buttons(bot, peer, msg):

    outpeer = bot.manager.get_outpeer(peer)
    history = bot.messaging.load_message_history(
        outpeer, limit=10,
        direction=messaging_pb2.LISTLOADMODE_BACKWARD).history

    event = pd.read_csv("Events.csv", encoding='cp1251', sep=";")
    list_of_events = list(event["Event"].unique())
    buttons = []
    for i in range(len(list_of_events)):
        buttons.append(
            interactive_media.InteractiveMedia(
                i,
                interactive_media.InteractiveMediaButton(
                    list_of_events[i], list_of_events[i]),
                style='primary'))

    bot.messaging.send_message(
        peer, "Выберите мероприятие",
        [interactive_media.InteractiveMediaGroup(buttons)])

    for msg in history:
        if msg.sender_uid != peer.id:
            return bot.messaging.update_message(msg,
                                                msg.message.textMessage.text)
コード例 #4
0
def send_manager_buttons(id, peer):
    buttons = [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "add_guide", "Добавить гайд"),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "get_user_token",
                    "Получить ключ для приглашения Пользователя"),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "get_admin_token",
                    "Получить ключ для приглашения Офис менеджера",
                ),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "delete_guide", "Удалить гайд"),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "get_guides", "Получить все гайды"),
            ),
        ])
    ]

    bot.messaging.send_message(peer, "Выберите действие", buttons)
コード例 #5
0
def send_manager_buttons(id, peer):
    buttons = [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "current", "Узнать баланс"),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "add_costs", "Добавить расходы"),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "listOfCosts", "Список расходов"),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "add_money", "Добавить деньги"),
            ),
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton(
                    "get_admin_token",
                    "Получить ключ для приглашения Офис менеджера",
                ),
            ),
        ])
    ]

    bot.messaging.send_message(peer, "Выберите действие", buttons)
コード例 #6
0
def _get_admin_layout():
    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "default_admin",
                interactive_media.InteractiveMediaButton(
                    "new_guide", "Написать новый гайд")),
            interactive_media.InteractiveMedia(
                "default_admin",
                interactive_media.InteractiveMediaButton(
                    "list_guides", "Список гайдов")),
            interactive_media.InteractiveMedia(
                "default_admin",
                interactive_media.InteractiveMediaButton(
                    "delete_guide", "Удалить гайд")),
            interactive_media.InteractiveMedia(
                "default_admin",
                interactive_media.InteractiveMediaButton(
                    "edit_guide", "Редактировать гайд")),
            interactive_media.InteractiveMedia(
                "default_admin",
                interactive_media.InteractiveMediaButton(
                    "schedule", "Настроить отложенную отправку"))
        ])
    ]
コード例 #7
0
ファイル: Office_spend.py プロジェクト: dimvf/office_spend
def out_cons(message, peer):
    global is_out_cons, file
    wb = openpyxl.load_workbook(filename=file)
    sheets = wb.sheetnames
    if not is_out_cons:
        msg = "Выберите расходный период:\n"
        msg += "\n".join(sheets[1:len(sheets)])
        msg += "\nили нажмите кнопку 'отмена' для завершения отображения всех расходов"
        btn = interactive_media.InteractiveMedia(
            1, interactive_media.InteractiveMediaButton("отмена", "отмена"))
        bot.messaging.send_message(
            peer, msg, [interactive_media.InteractiveMediaGroup([btn])])
    else:
        if message in sheets:
            ws = wb[message]
            msg = "" + str(ws['A1'].value) + " "
            msg += str(ws['B1'].value) + " "
            msg += str(ws['C1'].value) + " "
            msg += str(ws['D1'].value) + "\n"
            msg += str(ws['A2'].value) + " "
            msg += str(ws['B2'].value) + " "
            msg += str(ws['C2'].value) + " "
            msg += str(ws['D2'].value) + "\n"
            msg += str(ws['E1'].value) + " "
            msg += str(ws['F1'].value) + "\n"
            msg += str(ws['E2'].value) + " "
            msg += str(ws['F2'].value) + "\n"
            pos = len(ws['A'])
            for i in range(4, pos + 1):
                msg += str(ws['A' + str(i)].value) + ". "
                msg += str(ws['B' + str(i)].value) + " "
                msg += str(ws['C' + str(i)].value) + " "
                msg += str(ws['D' + str(i)].value) + "\n"
            bot.messaging.send_message(peer, msg)
            is_out_cons = False
            return
        else:
            msg = "Выберите расходный период:\n"
            msg += "\n".join(sheets[1:len(sheets)])
            msg += "\nили нажмите кнопку 'отмена' для завершения отображения всех расходов"
            btn = interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton("отмена", "отмена"))
            bot.messaging.send_message(
                peer, msg, [interactive_media.InteractiveMediaGroup([btn])])
    is_out_cons = True
コード例 #8
0
ファイル: Office_spend.py プロジェクト: dimvf/office_spend
def add_period(peer):
    if not is_adding_period[4]:
        msg = "Введите дату начала периода в формате '1 января 2019' "
        msg += "\nили нажмите кнопку 'отмена' для завершения добавления периода"
        btn = interactive_media.InteractiveMedia(
            1, interactive_media.InteractiveMediaButton("отмена", "отмена"))
        bot.messaging.send_message(
            peer, msg, [interactive_media.InteractiveMediaGroup([btn])])
        is_adding_period[0] = True
        is_adding_period[4] = True
コード例 #9
0
def get_scheduled_jobs_list(jobs):

    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "scheduled_job_list",
                interactive_media.InteractiveMediaSelect(
                    jobs, label="Список отсроченных гайдов"))
        ])
    ]
コード例 #10
0
ファイル: buttons.py プロジェクト: dialogs/dialog-event-bot
def new_form():
    return [interactive_media.InteractiveMediaGroup(
        [
            interactive_media.InteractiveMedia(
                21,
                interactive_media.InteractiveMediaButton("all", "Создать новую визитку"),
                'danger'
            ),
        ]
    )]
コード例 #11
0
 def interactive_start(gid, lang):
     return [
         interactive_media.InteractiveMediaGroup([
             interactive_media.InteractiveMedia(
                 gid,
                 interactive_media.InteractiveMediaButton(
                     "Start", i18n.t(MEDIA + '.start tracking',
                                     locale=lang))),
         ])
     ]
コード例 #12
0
def on_msg(*params):
    print('on msg', params)
    #print(params[0].message.textMessage)
    p = params[0]
    
    if str(params[0].message.textMessage.text) == "/start":
        bot.messaging.send_message(
            params[0].peer,
            "Хочешь узнать что я могу?",
            [interactive_media.InteractiveMediaGroup(
            [
                interactive_media.InteractiveMedia(
                    1,
                    interactive_media.InteractiveMediaButton("Yes", "ДА")
                ),
                interactive_media.InteractiveMedia(
                    2,
                    interactive_media.InteractiveMediaButton("No", "НЕТ")
                ),
            ]
        )])
    else:
        bot.messaging.send_message(
        params[0].peer,
        "Хотите забронировать аудиторию?",
        [interactive_media.InteractiveMediaGroup(
            [
                interactive_media.InteractiveMedia(
                    1,
                    interactive_media.InteractiveMediaButton("Yes", "ДА")
                ),
                interactive_media.InteractiveMedia(
                    2,
                    interactive_media.InteractiveMediaButton("No", "НЕТ")
                ),
                interactive_media.InteractiveMedia(
                    3,
                    interactive_media.InteractiveMediaButton("feedback", "Запросить FEEDBACK")
                ),
            ]
        )]
    )
コード例 #13
0
def get_essentialness():
    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "new_guide_essential",
                interactive_media.InteractiveMediaButton("True", "Да")),
            interactive_media.InteractiveMedia(
                "new_guide_essential",
                interactive_media.InteractiveMediaButton("False", "Нет")),
        ])
    ]
コード例 #14
0
ファイル: Office_spend.py プロジェクト: dimvf/office_spend
def delete_period(message, peer):
    global is_delete_period, file
    if not is_delete_period:
        wb = openpyxl.load_workbook(filename=file)
        sheets = wb.sheetnames
        if len(sheets) > 1:
            msg = "Выберите расходный период для удаления:\n"
            msg += "\n".join(sheets[1:len(sheets)])
            msg += "\nили нажмите кнопку 'отмена' для завершения удаления периода"
            btn = interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton("отмена", "отмена"))
            bot.messaging.send_message(
                peer, msg, [interactive_media.InteractiveMediaGroup([btn])])
            is_delete_period = True
        else:
            msg = "Добавтье хотя бы один расчетный период"
            msg += "\nили нажмите кнопку 'отмена' для завершения удаления периода"
            btn = interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton("отмена", "отмена"))
            bot.messaging.send_message(
                peer, msg, [interactive_media.InteractiveMediaGroup([btn])])
    else:
        wb = openpyxl.load_workbook(filename=file)
        sheets = wb.sheetnames
        if message in sheets:
            wb.remove(wb[message])
            wb.save(file)
            msg = "Расчетный период " + message + " удален."
            is_delete_period = False
            bot.messaging.send_message(peer, msg)
        else:
            msg = "Выберите расходный период для удаления:\n"
            msg += "\n".join(sheets[1:len(sheets)])
            msg += "\nили нажмите кнопку 'отмена' для завершения удаления периода"
            btn = interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton("отмена", "отмена"))
            bot.messaging.send_message(
                peer, msg, [interactive_media.InteractiveMediaGroup([btn])])
コード例 #15
0
ファイル: core.py プロジェクト: Kideri/dialogTest
def get_a(set_id, id, score):
    ret = []
    answ = q_s.q_list[set_id][id].get_a()
    bId = 1
    for cur in answ:
        ret.append(
            interactive_media.InteractiveMedia(
                str(set_id) + '.' + str(id) + '.' + str(score) + '.' +
                str(bId),
                interactive_media.InteractiveMediaButton(cur[1], cur[0])))
        bId += 1
    return [interactive_media.InteractiveMediaGroup(ret)]
コード例 #16
0
ファイル: main.py プロジェクト: dialogs/dialog-gcalendar-bot
def months_select(lang):
    actions = {}
    for month, value in MONTHS.items():
        actions[month] = i18n.t("{0}.{1}".format(MONTHS_I18N, month), locale=lang)

    return [interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "months",
                interactive_media.InteractiveMediaSelect(actions, i18n.t(PHRASES + '.month', locale=lang))
            )
        ]
    )]
コード例 #17
0
ファイル: main.py プロジェクト: dialogs/dialog-gcalendar-bot
def quarters_select(lang):
    actions = {}
    for i in range(1, 5):
        actions[str(i)] = "Q{}".format(str(i))
    return [interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "quarters",
                interactive_media.InteractiveMediaSelect(actions, i18n.t(PHRASES + '.quarter', locale=lang),
                                                         i18n.t(PHRASES + '.quarter', locale=lang))
            )
        ]
    )]
コード例 #18
0
def _get_user_layout():
    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "default_user",
                interactive_media.InteractiveMediaButton(
                    "read_guide_by_name", "Получить гайд по названию")),
            interactive_media.InteractiveMedia(
                "default_user",
                interactive_media.InteractiveMediaButton(
                    "list_guides", "Список гайдов")),
        ])
    ]
コード例 #19
0
def get_guides_layout(guides: list):
    interactive_media_list = {}
    for guide in guides:
        interactive_media_list[str(guide.get_id())] = guide.name

    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "get_guide",
                interactive_media.InteractiveMediaSelect(
                    interactive_media_list, label="Выбери гайд"))
        ])
    ]
コード例 #20
0
def render_guides_buttons(peer, guides):
    def make_button(guide):
        return interactive_media.InteractiveMedia(
            1,
            interactive_media.InteractiveMediaButton(guide["value"],
                                                     guide["title"]))

    buttons = [
        interactive_media.InteractiveMediaGroup(
            [make_button(x) for x in guides])
    ]

    bot.messaging.send_message(peer, "Выберите гайд", buttons)
コード例 #21
0
def get_schedule_layout():
    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "default_schedule",
                interactive_media.InteractiveMediaButton(
                    "get_schedule_waitline", "Список гайдов на отправку")),
            interactive_media.InteractiveMedia(
                "default_schedule",
                interactive_media.InteractiveMediaButton(
                    "add_guide_to_schedule", "Отсрочить отправку гайда")),
        ])
    ]
コード例 #22
0
def make_mark_buttons(bot, peer):
    global flag_mark
    buttons = []
    for i in range(5):
        buttons.append(
            interactive_media.InteractiveMedia(
                str(i + 5),
                interactive_media.InteractiveMediaButton(
                    "mark" + str(i + 1), str(i + 1)),
                style='danger'))
    bot.messaging.send_message(
        peer, "Поставь оценку от 1 - 5",
        [interactive_media.InteractiveMediaGroup(buttons)])
    flag_mark = 0
コード例 #23
0
def make_statistic_by_all_events(bot, peer):

    button_full_stat = interactive_media.InteractiveMediaButton(
        "Full_stat", "Статистика по всем мероприятиям")
    button_download = interactive_media.InteractiveMediaButton(
        "Files", "Выгрузить данные по статистике")
    bot.messaging.send_message(peer, " ", [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                1, button_full_stat, style='default'),
            interactive_media.InteractiveMedia(
                2, button_download, style='default'),
        ])
    ])
コード例 #24
0
def make_buttons_to_stat(bot, peer, event):
    button_plot = interactive_media.InteractiveMediaButton(
        event + "plot", "График оценок")
    button_feedbacks = interactive_media.InteractiveMediaButton(
        event + "feed", "Отзывы")

    bot.messaging.send_message(peer, "Какую статистику вы хотите?", [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(1, button_plot,
                                               style='primary'),
            interactive_media.InteractiveMedia(
                2, button_feedbacks, style='primary'),
        ])
    ])
コード例 #25
0
ファイル: buttons.py プロジェクト: dialogs/dialog-event-bot
def check_group():
    return [interactive_media.InteractiveMediaGroup(
        [
            interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton("Yes", "Да"),
                'danger'
            ),
            interactive_media.InteractiveMedia(
                2,
                interactive_media.InteractiveMediaButton("No", "Нет, хочу внести изменения"),
                'danger'
            ),
        ]
    )]
コード例 #26
0
 def interactive_reminder(lang):
     return [
         interactive_media.InteractiveMediaGroup([
             interactive_media.InteractiveMedia(
                 "hours",
                 interactive_media.InteractiveMediaSelect(
                     HOURS, i18n.t(MEDIA + '.hour', locale=lang),
                     i18n.t(MEDIA + '.hour', locale=lang))),
             interactive_media.InteractiveMedia(
                 "minutes",
                 interactive_media.InteractiveMediaSelect(
                     MINUTES, i18n.t(MEDIA + '.minute', locale=lang),
                     i18n.t(MEDIA + '.minute', locale=lang))),
         ])
     ]
コード例 #27
0
def get_default_layout():
    return [interactive_media.InteractiveMediaGroup(
        [
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton("make_review", "Оставить отзыв")
            ),
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton("create_event", "Создать новое событие")
            ),
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton("list_events", "Мои события")
            )
        ]
    )]
コード例 #28
0
def get_event_actions(event_id):
    return [interactive_media.InteractiveMediaGroup(
        [
            interactive_media.InteractiveMedia(
                "event_action",
                interactive_media.InteractiveMediaButton(f"delete_{event_id}", "Удалить событие")
            ),
            interactive_media.InteractiveMedia(
                "event_action",
                interactive_media.InteractiveMediaButton(f"export_{event_id}",
                                                         "Выгрузить отзывы о событии в табличном формате")
            ),
            interactive_media.InteractiveMedia(
                "cancel",
                interactive_media.InteractiveMediaButton("cancel", "Назад в главное меню")
            )
        ]
    )]
コード例 #29
0
ファイル: Office_spend.py プロジェクト: dimvf/office_spend
def add_cons(peer):
    if not is_adding_cons[4]:
        wb = openpyxl.load_workbook(filename=file)
        sheets = wb.sheetnames
        if len(sheets) == 1:
            msg = "Добавьте хотя бы один расходный период"
            bot.messaging.send_message(peer, msg)
        else:
            msg = "Выберите расходный период:\n"
            msg += "\n".join(sheets[1:len(sheets)])
            msg += "\nили нажмите кнопку 'отмена' для завершения добавления расходов"
            btn = interactive_media.InteractiveMedia(
                1,
                interactive_media.InteractiveMediaButton("отмена", "отмена"))
            bot.messaging.send_message(
                peer, msg, [interactive_media.InteractiveMediaGroup([btn])])
            is_adding_cons[0] = True
            is_adding_cons[4] = True
コード例 #30
0
def want_to_create(*params):
    bot.messaging.send_message(
        params[0].peer,
        "Хотите создать новую компанию в списке?",
        [
            interactive_media.InteractiveMediaGroup([
                interactive_media.InteractiveMedia(
                    1,
                    interactive_media.InteractiveMediaButton(
                        "create_company", "Да"),
                ),
                interactive_media.InteractiveMedia(
                    1,
                    interactive_media.InteractiveMediaButton(
                        "not_create_company", "Нет"),
                ),
            ])
        ],
    )