예제 #1
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", "Настроить отложенную отправку"))
        ])
    ]
예제 #2
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)
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)
예제 #4
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", "Нет")),
        ])
    ]
def generateButtons(queue_id):
    requestTypes = os.environ['ISSUE_TYPE_CONFIG'].split(',')
    buttons = []
    i = 0
    while i < len(requestTypes):
        requestTypeName = jira.getIssueTypeNameByIssueTypeId(credentials,requestTypes[i])
        buttons = buttons + [interactive_media.InteractiveMedia(1,interactive_media.InteractiveMediaButton("type," + requestTypes[i] + ","+queue_id, requestTypeName))]
        i += 1
    buttons = buttons + [interactive_media.InteractiveMedia(1,interactive_media.InteractiveMediaButton("delete,request,"+queue_id, translate(lang,'cancelTicketButton')))]
    common.conMsg('bot','Generated buttons ' + str(buttons))
    return buttons
예제 #6
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", "Отсрочить отправку гайда")),
        ])
    ]
예제 #7
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", "Список гайдов")),
        ])
    ]
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'),
        ])
    ])
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'),
        ])
    ])
예제 #10
0
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'
            ),
        ]
    )]
예제 #11
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')
예제 #12
0
 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)
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)
예제 #14
0
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
예제 #15
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", "Мои события")
            )
        ]
    )]
예제 #16
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", "Назад в главное меню")
            )
        ]
    )]
예제 #17
0
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
def make_reply_buttons(bot, peer, event):
    global flag_event
    outpeer = bot.manager.get_outpeer(peer)

    button_feedback = interactive_media.InteractiveMediaButton(
        "Feedback1", "Отзыв")
    button_mark = interactive_media.InteractiveMediaButton(
        "Feedback2", "Оценка")

    bot.messaging.send_message(
        peer, "Очень ждем твоего мнения о " + str(event), [
            interactive_media.InteractiveMediaGroup([
                interactive_media.InteractiveMedia(
                    1, button_feedback, style='primary'),
                interactive_media.InteractiveMedia(
                    2, button_mark, style='primary'),
            ])
        ])
    flag_event = 0
예제 #19
0
def new_form():
    return [interactive_media.InteractiveMediaGroup(
        [
            interactive_media.InteractiveMedia(
                21,
                interactive_media.InteractiveMediaButton("all", "Создать новую визитку"),
                'danger'
            ),
        ]
    )]
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", "Нет"),
                ),
            ])
        ],
    )
예제 #21
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))),
         ])
     ]
예제 #22
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")
                ),
            ]
        )]
    )
예제 #23
0
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])])
예제 #24
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)]
예제 #25
0
def get_default_layout():
    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton(
                    "update_budget", "Изменить бюджет офиса")),
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton(
                    "create_spend", "Добавить трату")),
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton(
                    "list_spends", "Удалить или изменить траты")),
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton(
                    "export_xlsx", "Экспортировать данные в табличный вид"))
        ])
    ]
예제 #26
0
def get_list_management_menu(id: int):
    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "cost_manager",
                interactive_media.InteractiveMediaButton(
                    f"delete_{id}", "Удалить трату")),
            interactive_media.InteractiveMedia(
                "cost_manager",
                interactive_media.InteractiveMediaButton(
                    f"name_{id}", "Изменить название траты")),
            interactive_media.InteractiveMedia(
                "cost_manager",
                interactive_media.InteractiveMediaButton(
                    f"cost_{id}", "Изменить сумму траты")),
            interactive_media.InteractiveMedia(
                "main_menu",
                interactive_media.InteractiveMediaButton(
                    "list_spends", "Назад к списку трат"))
        ])
    ]
예제 #27
0
    def spend_action(self, user, val, descr=''):
        balance, path = self.spend(val, descr)
        self.bot.messaging.send_message(
            self.bot.users.get_user_peer_by_id(user[0]),
            'Остаток: *%s*' % balance,
            [
                interactive_media.InteractiveMediaGroup(
                    [

                        interactive_media.InteractiveMedia(
                            1,
                            interactive_media.InteractiveMediaButton('add', 'Добавить расходы'),
                            'primary'
                        ),
                        interactive_media.InteractiveMedia(
                            2,
                            interactive_media.InteractiveMediaButton('reset', 'Изменить бюджет'),
                            'primary'
                        ),
                        interactive_media.InteractiveMedia(
                            3,
                            interactive_media.InteractiveMediaButton('view_spending', 'Посмотреть расходы'),
                            'primary'
                        ),
                        interactive_media.InteractiveMedia(
                            4,
                            interactive_media.InteractiveMediaButton('export', 'Экспортировать расходы в Excel'),
                            'primary'
                        ),
                        interactive_media.InteractiveMedia(
                            5,
                            interactive_media.InteractiveMediaButton('reset_spending', 'Обнулить траты'),
                            'danger'
                        )
                    ]
                )
            ]
        )
        self.bot.messaging.send_image(self.bot.users.get_user_peer_by_id(user[0]), path)
        os.remove(path)
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
예제 #29
0
def get_spends_list(uid: int):
    costs = {}

    for cost in BalanceChange.select().where(
            BalanceChange.owner == uid).order_by(BalanceChange.name):
        costs[str(cost.get_id())] = f"{cost.name}"

    return [
        interactive_media.InteractiveMediaGroup([
            interactive_media.InteractiveMedia(
                "cost_list",
                interactive_media.InteractiveMediaSelect(costs,
                                                         label="Список трат")),
            interactive_media.InteractiveMedia(
                "cancel",
                interactive_media.InteractiveMediaButton(
                    "cancel", "В главное меню")),
            interactive_media.InteractiveMedia(
                "delete_all",
                interactive_media.InteractiveMediaButton(
                    "delete_all", "Удалить ВСЕ траты"))
        ])
    ]
예제 #30
0
 def back_to_menu(self, user):
     self.bot.messaging.send_message(
         self.bot.users.get_user_peer_by_id(user[0]),
         'Главное меню',
         [
             interactive_media.InteractiveMediaGroup(
                 [
                     interactive_media.InteractiveMedia(
                         1,
                         interactive_media.InteractiveMediaButton('add_event', 'Добавить мероприятие'),
                         'primary'
                     ),
                     interactive_media.InteractiveMedia(
                         2,
                         interactive_media.InteractiveMediaButton('view_events',
                                                                  'Посмотреть мероприятия'),
                         'primary'
                     )
                 ]
             )
         ]
     )
     self.set_state(user[0], 'menu')
     self.set_state_info(user[0], '')