Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
def get_language_confirmation_keyboard():
    buttons = [
        [
            CallbackButtonCmd('Да / Yes', 'greeting', intent=Intent.POSITIVE),
            CallbackButtonCmd('Нет / No', 'set_lang', intent=Intent.POSITIVE)
        ],
    ]

    return buttons
Exemplo n.º 5
0
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'})
            ]]
Exemplo n.º 6
0
    def main_menu_buttons(self):
        # type: () -> []
        buttons = [
            [CallbackButtonCmd('About bot', 'start', intent=Intent.POSITIVE)],
            [
                CallbackButtonCmd('View message properties',
                                  'vmp',
                                  intent=Intent.POSITIVE)
            ],
        ]

        return buttons
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
def get_language_keyboard():
    buttons = [
        [
            CallbackButtonCmd('🇷🇺Русский',
                              'set_lang', {'lang': 'ru'},
                              intent=Intent.POSITIVE),
            CallbackButtonCmd('🇬🇧English',
                              'set_lang', {'lang': 'en'},
                              intent=Intent.POSITIVE)
        ],
    ]

    return buttons
Exemplo n.º 10
0
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
Exemplo n.º 11
0
    def main_menu_buttons(self):
        # type: () -> []
        buttons = [
            # Кнопка будет выведена цветом по умолчанию - серым
            [CallbackButtonCmd('О боте', 'start')],
            # Кнопка будет выведена цветом для позитивных действий - синим. Также есть негативная - красная
            [
                CallbackButtonCmd('Показать свойства сообщения',
                                  'vmp',
                                  intent=Intent.POSITIVE)
            ],
        ]

        return buttons
Exemplo n.º 12
0
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
Exemplo n.º 13
0
def get_try_again_keyboard(user):
    return [[
        CallbackButtonCmd('Попробовать ещё раз'
                          if user.language_code == 'ru' else 'Try again',
                          'pick_time',
                          intent=Intent.POSITIVE)
    ]]
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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})],
        ]
Exemplo n.º 16
0
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
Exemplo n.º 17
0
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
Exemplo n.º 18
0
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
Exemplo n.º 19
0
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
Exemplo n.º 20
0
    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
Exemplo n.º 21
0
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
Exemplo n.º 22
0
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
Exemplo n.º 23
0
    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)
Exemplo n.º 24
0
    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
Exemplo n.º 25
0
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