def extensions_urlpatterns(): urlpatterns = [] for url_module in get_extensions_modules('urls'): urlpatterns += getattr(url_module, 'urlpatterns', []) return urlpatterns
def extensions_urlpatterns(): urlpatterns = [] for url_module in get_extensions_modules("urls"): urlpatterns += getattr(url_module, "urlpatterns", []) return urlpatterns
def extensions_urlpatterns(): urlpatterns = [] for url_module in get_extensions_modules('urls'): urlpatterns += getattr(url_module, 'urlpatterns', []) return urlpatterns
# WebSockets route_class( consumers.WaitPage, path=r'^/wait_page/(?P<params>[\w,]+)/$'), route_class( consumers.GroupByArrivalTime, path=r'^/group_by_arrival_time/(?P<params>[\w,\.]+)/$'), route_class( consumers.AutoAdvance, path=r'^/auto_advance/(?P<params>[\w,]+)/$'), route_class(consumers.WaitForSession, path=r'^/wait_for_session/(?P<pre_create_id>\w+)/$'), route_class( consumers.RoomParticipant, path=r'^/wait_for_session_in_room/(?P<params>[\w,]+)/$'), route_class( consumers.RoomAdmin, path=r'^/room_without_session/(?P<room>\w+)/$'), route_class( consumers.BrowserBotsLauncher, path=r'^/browser_bots_client/(?P<session_code>\w+)/$'), route_class( consumers.BrowserBot, path=r'^/browser_bot_wait/$'), ] for extensions_module in get_extensions_modules('routing'): channel_routing += getattr(extensions_module, 'channel_routing', [])
from channels.routing import route, route_class from otree.channels import consumers from otree.extensions import get_extensions_modules channel_routing = [ route('otree.create_session', consumers.create_session), # WebSockets route_class(consumers.WaitPage, path=r'^/wait_page/(?P<params>[\w,]+)/$'), route_class(consumers.GroupByArrivalTime, path=r'^/group_by_arrival_time/(?P<params>[\w,\.]+)/$'), route_class(consumers.AutoAdvance, path=r'^/auto_advance/(?P<params>[\w,]+)/$'), route_class(consumers.WaitForSession, path=r'^/wait_for_session/(?P<pre_create_id>\w+)/$'), route_class(consumers.RoomParticipant, path=r'^/wait_for_session_in_room/(?P<params>[\w,]+)/$'), route_class(consumers.RoomAdmin, path=r'^/room_without_session/(?P<room>\w+)/$'), route_class(consumers.BrowserBotsLauncher, path=r'^/browser_bots_client/(?P<session_code>\w+)/$'), route_class(consumers.BrowserBot, path=r'^/browser_bot_wait/$'), ] # TODO: perf issue. this takes 0.1-0.5 seconds. for extensions_module in get_extensions_modules('routing'): channel_routing += getattr(extensions_module, 'channel_routing', [])
url(r'^wait_for_session_in_room/$', consumers.RoomParticipant), url(r'^room_without_session/(?P<room>\w+)/$', consumers.RoomAdmin), url(r'^session_monitor/(?P<code>\w+)/$', consumers.SessionMonitor), url(r'^browser_bots_client/(?P<session_code>\w+)/$', consumers.BrowserBotsLauncher), url(r'^browser_bot_wait/$', consumers.BrowserBot), url( # so it doesn't clash with addon r"^live/$", consumers.LiveConsumer, ), url( # so it doesn't clash with addon r"^otreechat_core/(?P<params>[a-zA-Z0-9_/-]+)/$", consumers.ChatConsumer, ), url(r"^export/$", consumers.ExportData), # for django autoreloader # just so client can detect when server has finished restarting url(r'^no_op/$', consumers.NoOp), ] extensions_modules = get_extensions_modules('routing') for extensions_module in extensions_modules: websocket_routes += getattr(extensions_module, 'websocket_routes', []) application = ProtocolTypeRouter( {"websocket": AuthMiddlewareStack(URLRouter(websocket_routes))} )