Beispiel #1
0
def setup(dp: Dispatcher):
    dp.register_message_handler(messages.send_start,
                                types.ChatType.is_private,
                                commands='start')
    dp.register_message_handler(messages.handle_settings,
                                types.ChatType.is_private,
                                text='⚙Settings')
    dp.register_message_handler(messages.handle_language,
                                types.ChatType.is_private,
                                text='🇺🇸Language')
    dp.register_message_handler(messages.handle_link,
                                types.ChatType.is_private,
                                regex=True)

    dp.register_callback_query_handler(
        callbacks.change_language, lambda call: call.data.startswith('lang'))
    dp.register_callback_query_handler(
        callbacks.change_client, lambda call: call.data.startswith('client'))

    dp.register_inline_handler(inlines.handle_inline_link,
                               regex=True,
                               len_restrict=True)
    dp.register_inline_handler(inlines.handle_wrong_inline_link, regex=True)
Beispiel #2
0
def register_handlers_settings(dp: Dispatcher):
    """Register routes handlers in Dispatcher."""
    log.info('Configuring settings handlers...')
    dp.register_message_handler(settings.settings_list, commands='settings')
    dp.register_callback_query_handler(
        settings.settings_list, cd_settings.filter(action='list')
    )
    dp.register_callback_query_handler(
        settings.settings_tz, cd_settings.filter(action='tz')
    )
    dp.register_callback_query_handler(
        settings.settings_tz_change, cd_settings.filter(action='tz-change')
    )
    dp.register_message_handler(
        settings.settings_tz_set,
        Text(startswith='UTC', ignore_case=True),
        state=SetTimezone,
    )
    dp.register_message_handler(settings.settings_tz_error, state=SetTimezone)
Beispiel #3
0
def register_handlers_routes(dp: Dispatcher):
    """Register routes handlers in Dispatcher."""
    log.info('Configuring routes handlers...')
    dp.register_message_handler(routes.route_list, commands='routes')
    dp.register_message_handler(routes.route_add, commands='routeadd')
    dp.register_message_handler(
        routes.route_add_error, is_name=False, state=CreateRoute.name
    )
    dp.register_message_handler(
        routes.route_add_name, is_name=True, state=CreateRoute.name
    )
    dp.register_message_handler(
        routes.route_add_error, is_url=False, state=CreateRoute.url
    )
    dp.register_message_handler(
        routes.route_add_url, is_url=True, state=CreateRoute.url
    )
    dp.register_callback_query_handler(
        routes.route_list, cd_routes.filter(action='list')
    )
    dp.register_callback_query_handler(
        routes.route_select, cd_routes.filter(action='select')
    )
    dp.register_callback_query_handler(
        routes.route_select, cd_routes.filter(action='toggle')
    )
    dp.register_callback_query_handler(
        routes.route_show, cd_routes.filter(action='show')
    )
    dp.register_callback_query_handler(
        routes.route_delete, cd_routes.filter(action='delete')
    )
    dp.register_callback_query_handler(
        routes.route_select, cd_routes.filter(action='delete_no')
    )
    dp.register_callback_query_handler(
        routes.route_delete_confirm, cd_routes.filter(action='delete_confirm')
    )
Beispiel #4
0
def register_handlers_schedules(dp: Dispatcher):
    """Register schedule handlers in Dispatcher."""
    log.info('Configuring schedule handlers...')
    dp.register_callback_query_handler(
        schedules.schedule_add_time,
        inline_schedule.cd_schedule_times.filter(),
        state=CreateSchedule,
    )
    dp.register_callback_query_handler(
        schedules.schedule_add_days,
        inline_schedule.cd_schedule_days.filter(),
        state=CreateSchedule.days,
    )
    dp.register_callback_query_handler(
        schedules.schedule_list, cd_routes.filter(action='schedule')
    )
    dp.register_callback_query_handler(
        schedules.schedule_toggle,
        inline_schedule.cd_schedules.filter(action='toggle'),
    )
    dp.register_callback_query_handler(
        schedules.schedule_delete,
        inline_schedule.cd_schedules.filter(action='delete'),
    )
    dp.register_callback_query_handler(
        schedules.schedule_add,
        inline_schedule.cd_schedules.filter(action='add'),
    )
    dp.register_callback_query_handler(
        schedules.schedule_select,
        inline_schedule.cd_schedules.filter(action='select'),
    )
Beispiel #5
0
def setup_handlers(dispatcher: Dispatcher):
    dispatcher.middleware.setup(context_data)

    # start/welcome commands
    dispatcher.register_message_handler(cmd_start, commands=['start', 'help'])

    # mycalendar
    dispatcher.register_message_handler(my_calendar, commands=['mycalendar'])

    dispatcher.register_message_handler(show_jobs, commands=['show_jobs'])

    # voice handlers
    dispatcher.register_message_handler(received_voice,
                                        content_types=ContentType.VOICE)
    # location
    dispatcher.register_message_handler(send_location,
                                        commands=['settimezone'])
    dispatcher.register_message_handler(set_timezone_by_location_from_voice,
                                        content_types=ContentType.LOCATION,
                                        state=STATE_LOCATION_FROM_VOICE)
    dispatcher.register_message_handler(set_timezone_by_location_from_voice,
                                        content_types=ContentType.TEXT,
                                        state=STATE_LOCATION_FROM_VOICE)
    dispatcher.register_message_handler(set_timezone_by_location,
                                        content_types=ContentType.LOCATION,
                                        state=STATE_LOCATION)
    dispatcher.register_message_handler(set_timezone_by_location,
                                        content_types=ContentType.TEXT,
                                        state=STATE_LOCATION)

    # calendar
    dispatcher.register_callback_query_handler(
        callback_calendar_previous_month,
        func=lambda query: query.data == 'callback_previous_month')
    dispatcher.register_callback_query_handler(
        callback_calendar_next_month,
        func=lambda query: query.data == 'callback_next_month')
    dispatcher.register_callback_query_handler(
        callback_calendar_select_day,
        func=lambda query: bool(
            re.search('^calendar-day-[0-9]{1,2}$',
                      query.data,
                      flags=re.IGNORECASE | re.MULTILINE)))
    dispatcher.register_callback_query_handler(
        callback_watch_select_time,
        func=lambda query: bool(
            re.search('^calendar-time-[0-9]{1,2}$',
                      query.data,
                      flags=re.IGNORECASE | re.MULTILINE)))

    # calendar history
    dispatcher.register_callback_query_handler(
        callback_calendar_previous_month_history,
        func=lambda query: query.data == 'callback_previous_month_history')
    dispatcher.register_callback_query_handler(
        callback_calendar_next_month_history,
        func=lambda query: query.data == 'callback_next_month_history')
    dispatcher.register_callback_query_handler(
        callback_calendar_select_day_history,
        func=lambda query: bool(
            re.search('^calendar-day-history-[0-9]{1,2}$',
                      query.data,
                      flags=re.IGNORECASE | re.MULTILINE)))
    dispatcher.register_callback_query_handler(
        callback_watch_history_select_time,
        func=lambda query: bool(
            re.search('^calendar-time-history-[0-9]{1,2}$',
                      query.data,
                      flags=re.IGNORECASE | re.MULTILINE)))

    dispatcher.register_callback_query_handler(
        callback_ignore, func=lambda query: query.data == 'ignore')

    dispatcher.register_callback_query_handler(
        callback_close_keyboard,
        func=lambda query: query.data == 'close_keyboard')