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", "Настроить отложенную отправку")) ]) ]
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)
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
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", "Отсрочить отправку гайда")), ]) ]
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'), ]) ])
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' ), ] )]
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')
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)
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
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", "Мои события") ) ] )]
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", "Назад в главное меню") ) ] )]
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
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", "Нет"), ), ]) ], )
def interactive_start(gid, lang): return [ interactive_media.InteractiveMediaGroup([ interactive_media.InteractiveMedia( gid, interactive_media.InteractiveMediaButton( "Start", i18n.t(MEDIA + '.start tracking', locale=lang))), ]) ]
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") ), ] )] )
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])])
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)]
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", "Экспортировать данные в табличный вид")) ]) ]
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", "Назад к списку трат")) ]) ]
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
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", "Удалить ВСЕ траты")) ]) ]
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], '')