def get_days_keyboard(user_id): user = User.get(user_id) ru_days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'] en_days = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'] days = ru_days if user.language_code == 'ru' else en_days buttons = [[ CallbackButtonCmd( '✔️' + day if day_of_week in preparing_habits[user_id]['days_of_week'] else day, 'pick_days', {'days_of_week': [day_of_week]}) for day_of_week, day in enumerate(days[:4]) ], [ CallbackButtonCmd( '✔️' + day if day_of_week + 4 in preparing_habits[user_id]['days_of_week'] else day, 'pick_days', {'days_of_week': [day_of_week + 4]}) for day_of_week, day in enumerate(days[4:]) ], [ CallbackButtonCmd( 'Все' if user.language_code == 'ru' else 'All', 'pick_days', {'days_of_week': [0, 1, 2, 3, 4, 5, 6]}) ]] if len(preparing_habits[user_id]['days_of_week']) > 0: buttons.append([ CallbackButtonCmd( 'Готово' if user.language_code == 'ru' else 'Done', 'pick_time', intent=Intent.POSITIVE) ]) return buttons
def get_plans_keyboard(user): today_plan = user.today_plan if today_plan: today_plan_button = CallbackButtonCmd( 'План на сегодня' if user.language_code == 'ru' else 'Today plan', 'show_plan', {'plan_id': today_plan.id}, Intent.POSITIVE) else: today_plan_button = CallbackButtonCmd( 'Составить план на сегодня' if user.language_code == 'ru' else 'Create today plan', 'new_plan', {'day': 'today'}, Intent.POSITIVE) tomorrow_plan = user.tomorrow_plan if tomorrow_plan: tomorrow_plan_button = CallbackButtonCmd( 'План на завтра' if user.language_code == 'ru' else 'Tomorrow plan', 'show_plan', {'plan_id': tomorrow_plan.id}, Intent.POSITIVE) else: tomorrow_plan_button = CallbackButtonCmd( 'Составить план на завтра' if user.language_code == 'ru' else 'Create tomorrow plan', 'new_plan', {'day': 'tomorrow'}, Intent.POSITIVE) buttons = [ [today_plan_button], [tomorrow_plan_button], [ CallbackButtonCmd( '⬅ Назад' if user.language_code == 'ru' else '⬅ Back', 'menu') ], ] return buttons
def main_menu_buttons(self): # type: () -> [] buttons = [ [ CallbackButtonCmd(_('About bot'), 'start', intent=Intent.POSITIVE) ], # [CallbackButton(_('All chat bots'), '/list_all_chats', Intent.POSITIVE)], [ LinkButton(_('Message to the developer'), 'mailto:[email protected]') ], [ LinkButton(_('Chat to discuss the bot'), 'https://tt.me/FileToAudioChat') ], ] if len(self.languages_dict) > 1: buttons.append([ CallbackButtonCmd('Изменить язык / set language', 'set_language', intent=Intent.DEFAULT) ]) return buttons
def get_language_confirmation_keyboard(): buttons = [ [ CallbackButtonCmd('Да / Yes', 'greeting', intent=Intent.POSITIVE), CallbackButtonCmd('Нет / No', 'set_lang', intent=Intent.POSITIVE) ], ] return buttons
def get_report_plan_keyboard(user, plan_id): return [[ CallbackButtonCmd( 'Отчитаться' if user.language_code == 'ru' else 'Report', 'report_plan', {'plan_id': plan_id}, Intent.POSITIVE) ], [ CallbackButtonCmd( '⬅ Назад' if user.language_code == 'ru' else '⬅ Back', 'menu', {'section': 'plans'}) ]]
def main_menu_buttons(self): # type: () -> [] buttons = [ [CallbackButtonCmd('About bot', 'start', intent=Intent.POSITIVE)], [ CallbackButtonCmd('View message properties', 'vmp', intent=Intent.POSITIVE) ], ] return buttons
def get_menu_keyboard(user): ru_buttons = [ [ CallbackButtonCmd('🗓 Привычки', 'menu', {'section': 'habits'}, Intent.POSITIVE) ], [ CallbackButtonCmd('📝 Планы', 'menu', {'section': 'plans'}, Intent.POSITIVE) ], [ CallbackButtonCmd('🔔 Напомнинания 🆕', 'menu', {'section': 'reminders'}, Intent.POSITIVE) ], [ CallbackButtonCmd('⚙️ Настройки', 'menu', {'section': 'settings'}, Intent.POSITIVE) ], [ CallbackButtonCmd('✉️ Написать разработчикам', 'menu', {'section': 'contact_developers'}, Intent.POSITIVE) ], ] en_buttons = [ [ CallbackButtonCmd('🗓 Habits', 'menu', {'section': 'habits'}, Intent.POSITIVE) ], [ CallbackButtonCmd('📝 Plans', 'menu', {'section': 'plans'}, Intent.POSITIVE) ], [ CallbackButtonCmd('🔔 Reminders 🆕', 'menu', {'section': 'reminders'}, Intent.POSITIVE) ], [ CallbackButtonCmd('⚙️ Settings', 'menu', {'section': 'settings'}, Intent.POSITIVE) ], [ CallbackButtonCmd('✉️ Contact developers', 'menu', {'section': 'contact_developers'}, Intent.POSITIVE) ], ] buttons = ru_buttons if user.language_code == 'ru' else en_buttons return buttons
def get_finish_plan_keyboard(user): buttons = [[ CallbackButtonCmd( '❌ Отменить' if user.language_code == 'ru' else '❌ Cancel', 'cancel_plan', {}, Intent.POSITIVE) ]] if len(preparing_plans[user.id]['plan_array']) > 0: buttons.insert(0, [ CallbackButtonCmd( 'Завершить' if user.language_code == 'ru' else 'Finish', 'finish_plan', {}, Intent.POSITIVE) ]) return buttons
def get_language_keyboard(): buttons = [ [ CallbackButtonCmd('🇷🇺Русский', 'set_lang', {'lang': 'ru'}, intent=Intent.POSITIVE), CallbackButtonCmd('🇬🇧English', 'set_lang', {'lang': 'en'}, intent=Intent.POSITIVE) ], ] return buttons
def get_habits_keyboard(user): ru_buttons = [ [ CallbackButtonCmd('🚴♂️ Активные', 'menu', {'section': 'active_habits'}, Intent.POSITIVE) ], [ CallbackButtonCmd('🎯 Новая привычка', 'new_habit', {}, Intent.POSITIVE) ], [ CallbackButtonCmd('✔️ Завершённые', 'menu', {'section': 'completed_habits'}, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Назад', 'menu')], ] en_buttons = [ [ CallbackButtonCmd('🚴♂ Active', 'menu', {'section': 'active_habits'}, Intent.POSITIVE) ], [CallbackButtonCmd('🎯 New habit', 'new_habit', {}, Intent.POSITIVE)], [ CallbackButtonCmd('✔️ Completed', 'menu', {'section': 'completed_habits'}, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Back', 'menu')], ] buttons = ru_buttons if user.language_code == 'ru' else en_buttons return buttons
def main_menu_buttons(self): # type: () -> [] buttons = [ # Кнопка будет выведена цветом по умолчанию - серым [CallbackButtonCmd('О боте', 'start')], # Кнопка будет выведена цветом для позитивных действий - синим. Также есть негативная - красная [ CallbackButtonCmd('Показать свойства сообщения', 'vmp', intent=Intent.POSITIVE) ], ] return buttons
def get_new_habit_keyboard(user): ru_buttons = [ [ CallbackButtonCmd('🎯 Новая привычка', 'new_habit', {}, Intent.POSITIVE) ], ] en_buttons = [ [CallbackButtonCmd('🎯 New habit', 'new_habit', {}, Intent.POSITIVE)], ] buttons = ru_buttons if user.language_code == 'ru' else en_buttons return buttons
def get_try_again_keyboard(user): return [[ CallbackButtonCmd('Попробовать ещё раз' if user.language_code == 'ru' else 'Try again', 'pick_time', intent=Intent.POSITIVE) ]]
def get_delete_reminder_keyboard(user, reminder_id): button_label = 'Удалить' if user.language_code == 'ru' else 'Delete' buttons = [ [ CallbackButtonCmd(button_label, 'delete_reminder', {'reminder_id': reminder_id}, Intent.NEGATIVE) ], ] return buttons
def get_plan_item_keyboard(user, plan_id, item_idx, pending=True): if pending: done_label = '✔ Сделано' if user.language_code == 'ru' else '✔ Done' failed_label = '❌ Не сделано' if user.language_code == 'ru' else '❌ Failed' return [ [ CallbackButtonCmd('⬅️', 'plan_item_change', { 'plan_id': plan_id, 'item_idx': item_idx, 'to': 'prev' }, Intent.POSITIVE), CallbackButtonCmd('➡️', 'plan_item_change', { 'plan_id': plan_id, 'item_idx': item_idx, 'to': 'next' }, Intent.POSITIVE) ], [ CallbackButtonCmd( done_label, 'plan_item_report', { 'plan_id': plan_id, 'item_idx': item_idx, 'status': CheckStatus.SUCCESS.value }, Intent.POSITIVE) ], [ CallbackButtonCmd( failed_label, 'plan_item_report', { 'plan_id': plan_id, 'item_idx': item_idx, 'status': CheckStatus.FAIL.value }, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Назад', 'show_plan', {'plan_id': plan_id})], ] else: return [ [ CallbackButtonCmd('⬅️', 'plan_item_change', { 'plan_id': plan_id, 'item_idx': item_idx, 'to': 'prev' }, Intent.POSITIVE), CallbackButtonCmd('➡️', 'plan_item_change', { 'plan_id': plan_id, 'item_idx': item_idx, 'to': 'next' }, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Назад', 'show_plan', {'plan_id': plan_id})], ]
def get_check_keyboard(user, check_id): buttons = [ [ CallbackButtonCmd( '✔️ Да' if user.language_code == 'ru' else '✅ Yes', 'habit_report', { 'check_id': check_id, 'status': CheckStatus.SUCCESS.name }, intent=Intent.POSITIVE), CallbackButtonCmd( '❌ Нет' if user.language_code == 'ru' else '❌ No', 'habit_report', { 'check_id': check_id, 'status': CheckStatus.FAIL.name }, intent=Intent.POSITIVE) ], ] return buttons
def get_settings_keyboard(user): ru_buttons = [ [ CallbackButtonCmd('🇷🇺 Язык', 'menu', {'section': 'language'}, Intent.POSITIVE) ], [ CallbackButtonCmd('🕒 Часовой пояс', 'menu', {'section': 'timezone'}, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Назад', 'menu')], ] en_buttons = [ [ CallbackButtonCmd('🇬🇧 Language', 'menu', {'section': 'language'}, Intent.POSITIVE) ], [ CallbackButtonCmd('🕒 Timezone', 'menu', {'section': 'timezone'}, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Back', 'menu')], ] buttons = ru_buttons if user.language_code == 'ru' else en_buttons return buttons
def get_reminders_keyboard(user): ru_buttons = [ [ CallbackButtonCmd('🔔 Мои напоминания', 'menu', {'section': 'my_reminders'}, Intent.POSITIVE) ], [ CallbackButtonCmd('❓ Как создать напоминание', 'menu', {'section': 'reminders_help'}, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Назад', 'menu')], ] en_buttons = [ [ CallbackButtonCmd('🔔 My reminders', 'menu', {'section': 'my_reminders'}, Intent.POSITIVE) ], [ CallbackButtonCmd('❓ How to create a reminder', 'menu', {'section': 'reminders_help'}, Intent.POSITIVE) ], [CallbackButtonCmd('⬅ Back', 'menu')], ] buttons = ru_buttons if user.language_code == 'ru' else en_buttons return buttons
def get_language_keyboard(user): buttons = [ [ CallbackButtonCmd('🇷🇺Русский', 'menu', { 'section': 'language_change', 'language_code': 'ru' }, intent=Intent.POSITIVE), CallbackButtonCmd('🇬🇧English', 'menu', { 'section': 'language_change', 'language_code': 'en' }, intent=Intent.POSITIVE) ], [ CallbackButtonCmd( '⬅ Назад' if user.language_code == 'ru' else '⬅ Back', 'menu') ], ] return buttons
def main_menu_buttons(self): # type: () -> [] self.lgz.warning( 'The default main menu buttons is used. Maybe is error?') buttons = [ [ CallbackButtonCmd(_('About bot'), 'start', intent=Intent.POSITIVE, bot_username=self.username) ], [ CallbackButtonCmd(_('All chat bots'), 'list_all_chats', intent=Intent.POSITIVE, bot_username=self.username) ], [ CallbackButtonCmd('Доступные чаты | Available chats', 'view_chats_available', intent=Intent.POSITIVE, bot_username=self.username) ], [ CallbackButtonCmd( 'Управление подписками | Managing subscriptions', 'subscriptions_mng', intent=Intent.POSITIVE, bot_username=self.username) ], [ CallbackButtonCmd('Подключенные чаты | Attached chats', 'view_chats_attached', intent=Intent.POSITIVE, bot_username=self.username) ], [ CallbackButtonCmd('Тест кнопок | Buttons test', 'view_buttons_test', intent=Intent.POSITIVE, bot_username=self.username) ], ] if len(self.languages_dict) > 1: buttons.append([ CallbackButtonCmd('Изменить язык / set language', 'set_language', intent=Intent.DEFAULT, bot_username=self.username) ]) return buttons
def get_timezone_keyboard(user): buttons = [ [ RequestGeoLocationButton( 'Поделиться местоположением' if user.language_code == 'ru' else 'Share location', True) ], [ CallbackButtonCmd( '👆 Указать вручную' if user.language_code == 'ru' else '👆 Specify manually', 'menu', {'section': 'pick_tz_menu'}) ], ] return buttons
def get_location_keyboard(user): buttons = [ [ RequestGeoLocationButton( 'Поделиться местоположением' if user.language_code == 'ru' else 'Share location', True) ], [ CallbackButtonCmd( 'Указать вручную' if user.language_code == 'ru' else 'Specify manually', 'pick_tz') ], ] return buttons
def cmd_handler_view_buttons_test(self, update): lt = [] for i in range(CallbackButtonCmd.MAX_ROWS * 20): lt.append([]) for j in range(5): s = '%0.2d_%0.2d' % (i + 1, j + 1) # s = '+' lt[-1].append( CallbackButtonCmd(s, s, intent=Intent.DEFAULT, bot_username=self.username)) self.view_buttons('Test', lt, user_id=update.user_id, add_close_button=True, add_info=True)
def get_buttons_for_chats_attached(self, user_id, cmd, ext_args): # type: (int, str, dict) -> [[CallbackButtonCmd]] ext_args = ext_args or {} buttons = [] chats_dict = self.get_chats_attached(user_id) i = 0 for chat in sorted(chats_dict.values()): i += 1 args = {'chat_id': chat.chat_id} args.update(ext_args) buttons.append([ CallbackButtonCmd('%d. %s' % (i, chat.chat_name), cmd, args, Intent.POSITIVE, bot_username=self.username) ]) return buttons
def get_timezone_keyboard(): buttons = [ [CallbackButtonCmd('GMT', 'pick_tz', {'tz': 'Etc/GMT'})], [ CallbackButtonCmd('GMT-0', 'pick_tz', {'tz': 'Etc/GMT+0'}), CallbackButtonCmd('GMT+0', 'pick_tz', {'tz': 'Etc/GMT-0'}) ], [ CallbackButtonCmd('GMT-1', 'pick_tz', {'tz': 'Etc/GMT+1'}), CallbackButtonCmd('GMT+1', 'pick_tz', {'tz': 'Etc/GMT-1'}) ], [ CallbackButtonCmd('GMT-2', 'pick_tz', {'tz': 'Etc/GMT+2'}), CallbackButtonCmd('GMT+2', 'pick_tz', {'tz': 'Etc/GMT-2'}) ], [ CallbackButtonCmd('GMT-3', 'pick_tz', {'tz': 'Etc/GMT+3'}), CallbackButtonCmd('GMT+3', 'pick_tz', {'tz': 'Etc/GMT-3'}) ], [ CallbackButtonCmd('GMT-4', 'pick_tz', {'tz': 'Etc/GMT+4'}), CallbackButtonCmd('GMT+4', 'pick_tz', {'tz': 'Etc/GMT-4'}) ], [ CallbackButtonCmd('GMT-5', 'pick_tz', {'tz': 'Etc/GMT+5'}), CallbackButtonCmd('GMT+5', 'pick_tz', {'tz': 'Etc/GMT-5'}) ], [ CallbackButtonCmd('GMT-6', 'pick_tz', {'tz': 'Etc/GMT+6'}), CallbackButtonCmd('GMT+6', 'pick_tz', {'tz': 'Etc/GMT-6'}) ], [ CallbackButtonCmd('GMT-7', 'pick_tz', {'tz': 'Etc/GMT+7'}), CallbackButtonCmd('GMT+7', 'pick_tz', {'tz': 'Etc/GMT-7'}) ], [ CallbackButtonCmd('GMT-8', 'pick_tz', {'tz': 'Etc/GMT+8'}), CallbackButtonCmd('GMT+8', 'pick_tz', {'tz': 'Etc/GMT-8'}) ], [ CallbackButtonCmd('GMT-9', 'pick_tz', {'tz': 'Etc/GMT+9'}), CallbackButtonCmd('GMT+9', 'pick_tz', {'tz': 'Etc/GMT-9'}) ], [ CallbackButtonCmd('GMT-10', 'pick_tz', {'tz': 'Etc/GMT+10'}), CallbackButtonCmd('GMT+10', 'pick_tz', {'tz': 'Etc/GMT-10'}) ], [ CallbackButtonCmd('GMT-11', 'pick_tz', {'tz': 'Etc/GMT+11'}), CallbackButtonCmd('GMT+11', 'pick_tz', {'tz': 'Etc/GMT-11'}) ], [ CallbackButtonCmd('GMT-12', 'pick_tz', {'tz': 'Etc/GMT+12'}), CallbackButtonCmd('GMT+12', 'pick_tz', {'tz': 'Etc/GMT-12'}) ], [CallbackButtonCmd('GMT+13', 'pick_tz', {'tz': 'Etc/GMT-13'})], [CallbackButtonCmd('GMT+14', 'pick_tz', {'tz': 'Etc/GMT-14'})], ] return buttons