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)
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)
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') )
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'), )
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')