1 from combo import plugins as combo_plugins
2 from django.conf import settings
3 from django.conf.urls import include, url
4 from django.conf.urls.static import static
5 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
6 from django.urls import path, reverse_lazy
7 from django.views.generic import RedirectView
8 from django.views.i18n import JavaScriptCatalog
10 from . import search, views
11 from .webstats.urls import urlpatterns as webstats_urlpatterns
14 url(r'^$', views.home, name='home'),
15 url(r'^onair.json$', views.onair, name='onair'),
16 url(r'^%s$' % settings.PROGRAM_PREFIX, views.program, name='program'),
17 url(r'^%s(?P<year>\d{4})/(?P<week>\d+)/$' % settings.PROGRAM_PREFIX, views.program, name='program_week'),
18 url(r'^grille$', views.grid, name='grid'),
19 url(r'^%s$' % settings.EMISSIONS_PREFIX, views.emissions, name='emissions'),
21 r'^%s(?P<slug>[\w,-]+)/episodes/$' % settings.EMISSIONS_PREFIX,
22 views.emissionEpisodes,
23 name='emissionEpisodes',
26 r'^%s(?P<slug>[\w,-]+)/podcasts.rss' % settings.EMISSIONS_PREFIX,
27 views.emission_podcasts_feed,
28 name='emission-podcasts',
30 url(r'^%s(?P<slug>[\w,-]+)/chat/$' % settings.EMISSIONS_PREFIX, views.chat, name='emission-chat'),
32 r'^%s(?P<emission_slug>[\w,-]+)/(?P<slug>[\w,-]+)/$' % settings.EMISSIONS_PREFIX,
37 r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/embed/$' % settings.EMISSIONS_PREFIX,
38 views.episode_embed_redirect,
39 name='episode-embed-redirect-view',
42 r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/embed/(?P<pk>\d+)/$'
43 % settings.EMISSIONS_PREFIX,
44 views.soundfile_embed,
45 name='soundfile-embed-view',
48 r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/dlg-embed/(?P<pk>\d+)/$'
49 % settings.EMISSIONS_PREFIX,
50 views.soundfile_dlg_embed,
51 name='soundfile-dialog-embed-view',
54 r'^%s(?P<slug>[\w,-]+)/playlist/(?P<year>[0-9]{4})-(?P<month>[0-9]+)-(?P<day>[0-9]+)/$'
55 % settings.EMISSIONS_PREFIX,
56 views.nonstop_playlist,
57 name='nonstop-playlist',
59 url(r'^%s(?P<slug>[\w,-]+)/$' % settings.EMISSIONS_PREFIX, views.emission, name='emission-view'),
60 url(r'^%sarchives$' % settings.EMISSIONS_PREFIX, views.emissionsArchives, name='emissionsArchives'),
61 url(r'^sons/$', RedirectView.as_view(url='/podcasts/'), name='listen'),
62 url(r'^sons-old/$', views.listen),
63 url(r'^podcasts/archives/$', search.listenArchives, name='listenArchives'),
64 url(r'^%s$' % settings.NEWSITEMS_PREFIX, views.news, name='news'),
65 url(r'^%sagenda/$' % settings.NEWSITEMS_PREFIX, views.agenda, name='agenda'),
67 r'^%sagenda/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/$' % settings.NEWSITEMS_PREFIX,
68 views.agenda_by_month,
69 name='agenda_by_month',
72 r'^%sagenda$' % settings.NEWSITEMS_PREFIX, RedirectView.as_view(pattern_name='agenda', permanent=True)
74 url(r'^%sarchives/$' % settings.NEWSITEMS_PREFIX, search.newsArchives, name='newsArchives'),
75 url(r'^%s(?P<slug>[\w,-]+)$' % settings.NEWSITEMS_PREFIX, views.newsitemview, name='newsitem-view'),
76 url(r'^party$', views.party, name='party'),
77 url(r'^recherche/$', search.view, name='search'),
78 url(r'^actus.rss$', views.rss_news_feed, name='rss-feed'),
79 url(r'^actus.atom$', views.atom_news_feed, name='atom-feed'),
80 url(r'^podcasts.rss$', views.podcasts_feed, name='podcasts-feed'),
81 url(r'^newsletter/', include('newsletter.urls')),
82 url(r'^__webstats/', include(webstats_urlpatterns)),
83 url(r'^jsi18n$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
86 urlpatterns = combo_plugins.register_plugins_urls(urlpatterns)
87 urlpatterns += staticfiles_urlpatterns()
89 if settings.OFFSITE_MEDIA_SOUNDS:
90 urlpatterns += [url(r'^media/(?P<location>sounds/.*)', views.media_hosting)]
92 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
94 if settings.DEBUG_TOOLBAR:
96 path('__debug__/', include('debug_toolbar.urls')),
99 urlpatterns.append(url(r'', include('combo.public.urls')))