]> git.0d.be Git - panikweb.git/blobdiff - panikweb/urls.py
misc: add support for offsite podcasts
[panikweb.git] / panikweb / urls.py
index fe18e640df765f596438bf46d28261d8214c2329..73f607a6990381976ef2aa495da6cd3c423bd24a 100644 (file)
@@ -1,58 +1,99 @@
-from django.conf.urls import patterns, include, url
+from combo import plugins as combo_plugins
 from django.conf import settings
-
+from django.conf.urls import include, url
+from django.conf.urls.static import static
+from django.contrib.staticfiles.urls import staticfiles_urlpatterns
+from django.urls import path, reverse_lazy
 from django.views.generic import RedirectView
-from django.core.urlresolvers import reverse_lazy
-
-from django.contrib import admin
-admin.autodiscover()
-
-urlpatterns = patterns('',
-    url(r'^$', 'panikweb.views.home', name='home'),
-    url(r'^onair.json$', 'panikweb.views.onair', name='onair'),
-    url(r'^program/$', 'panikweb.views.program', name='program'),
-    url(r'^program/(?P<year>\d{4})/(?P<week>\d+)/$', 'panikweb.views.program', name='program_week'),
-    url(r'^grid$', 'panikweb.views.grid', name='grid'),
-    url(r'^emissions/$', 'panikweb.views.emissions', name='emissions'),
-    url(r'^emissions/(?P<slug>[\w,-]+)/episodes/$', 'panikweb.views.emissionEpisodes', name='emissionEpisodes'),
-    url(r'^emissions/(?P<emission_slug>[\w,-]+)/(?P<slug>[\w,-]+)/$', 'panikweb.views.episode', name='episode-view'),
-    url(r'^emissions/(?P<slug>[\w,-]+)/$', 'panikweb.views.emission', name='emission-view'),
-    url(r'^ckeditor/', include('ckeditor.urls')),
-    url(r'^emissions/archives$', 'panikweb.views.emissionsArchives', name='emissionsArchives'),
-    url(r'^sounds/$', 'panikweb.views.listen', name='listen'),
-    url(r'^sounds/archives/$', 'panikweb.search.listenArchives', name='listenArchives'),
-    url(r'^news/$', 'panikweb.views.news', name='news'),
-    url(r'^news/archives/$', 'panikweb.search.newsArchives', name='newsArchives'),
-    url(r'^news/(?P<slug>[\w,-]+)$', 'panikweb.views.newsitemview', name='newsitem-view'),
-
-    url(r'^party', 'panikweb.views.party', name='party'),
+from django.views.i18n import JavaScriptCatalog
 
-    url(r'^search/', 'panikweb.search.view', name='search'),
-
-    url(r'^news.rss', 'panikweb.views.rss_news_feed', name='rss-feed'),
-    url(r'^news.atom', 'panikweb.views.atom_news_feed', name='atom-feed'),
-    url(r'^podcasts.rss', 'panikweb.views.podcasts_feed', name='podcasts-feed'),
+from . import search, views
+from .webstats.urls import urlpatterns as webstats_urlpatterns
 
+urlpatterns = [
+    url(r'^$', views.home, name='home'),
+    url(r'^onair.json$', views.onair, name='onair'),
+    url(r'^%s$' % settings.PROGRAM_PREFIX, views.program, name='program'),
+    url(r'^%s(?P<year>\d{4})/(?P<week>\d+)/$' % settings.PROGRAM_PREFIX, views.program, name='program_week'),
+    url(r'^grille$', views.grid, name='grid'),
+    url(r'^%s$' % settings.EMISSIONS_PREFIX, views.emissions, name='emissions'),
+    url(
+        r'^%s(?P<slug>[\w,-]+)/episodes/$' % settings.EMISSIONS_PREFIX,
+        views.emissionEpisodes,
+        name='emissionEpisodes',
+    ),
+    url(
+        r'^%s(?P<slug>[\w,-]+)/podcasts.rss' % settings.EMISSIONS_PREFIX,
+        views.emission_podcasts_feed,
+        name='emission-podcasts',
+    ),
+    url(r'^%s(?P<slug>[\w,-]+)/chat/$' % settings.EMISSIONS_PREFIX, views.chat, name='emission-chat'),
+    url(
+        r'^%s(?P<emission_slug>[\w,-]+)/(?P<slug>[\w,-]+)/$' % settings.EMISSIONS_PREFIX,
+        views.episode,
+        name='episode-view',
+    ),
+    url(
+        r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/embed/$' % settings.EMISSIONS_PREFIX,
+        views.episode_embed_redirect,
+        name='episode-embed-redirect-view',
+    ),
+    url(
+        r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/embed/(?P<pk>\d+)/$'
+        % settings.EMISSIONS_PREFIX,
+        views.soundfile_embed,
+        name='soundfile-embed-view',
+    ),
+    url(
+        r'^%s(?P<emission_slug>[\w,-]+)/(?P<episode_slug>[\w,-]+)/dlg-embed/(?P<pk>\d+)/$'
+        % settings.EMISSIONS_PREFIX,
+        views.soundfile_dlg_embed,
+        name='soundfile-dialog-embed-view',
+    ),
+    url(
+        r'^%s(?P<slug>[\w,-]+)/playlist/(?P<year>[0-9]{4})-(?P<month>[0-9]+)-(?P<day>[0-9]+)/$'
+        % settings.EMISSIONS_PREFIX,
+        views.nonstop_playlist,
+        name='nonstop-playlist',
+    ),
+    url(r'^%s(?P<slug>[\w,-]+)/$' % settings.EMISSIONS_PREFIX, views.emission, name='emission-view'),
+    url(r'^%sarchives$' % settings.EMISSIONS_PREFIX, views.emissionsArchives, name='emissionsArchives'),
+    url(r'^sons/$', RedirectView.as_view(url='/podcasts/'), name='listen'),
+    url(r'^sons-old/$', views.listen),
+    url(r'^podcasts/archives/$', search.listenArchives, name='listenArchives'),
+    url(r'^%s$' % settings.NEWSITEMS_PREFIX, views.news, name='news'),
+    url(r'^%sagenda/$' % settings.NEWSITEMS_PREFIX, views.agenda, name='agenda'),
+    url(
+        r'^%sagenda/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/$' % settings.NEWSITEMS_PREFIX,
+        views.agenda_by_month,
+        name='agenda_by_month',
+    ),
+    url(
+        r'^%sagenda$' % settings.NEWSITEMS_PREFIX, RedirectView.as_view(pattern_name='agenda', permanent=True)
+    ),
+    url(r'^%sarchives/$' % settings.NEWSITEMS_PREFIX, search.newsArchives, name='newsArchives'),
+    url(r'^%s(?P<slug>[\w,-]+)$' % settings.NEWSITEMS_PREFIX, views.newsitemview, name='newsitem-view'),
+    url(r'^party$', views.party, name='party'),
+    url(r'^recherche/$', search.view, name='search'),
+    url(r'^actus.rss$', views.rss_news_feed, name='rss-feed'),
+    url(r'^actus.atom$', views.atom_news_feed, name='atom-feed'),
+    url(r'^podcasts.rss$', views.podcasts_feed, name='podcasts-feed'),
     url(r'^newsletter/', include('newsletter.urls')),
-    (r'^api/v2/', include('fiber.rest_api.urls')),
-    (r'^admin/fiber/', include('fiber.admin_urls')),
-    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', {'packages': ('fiber',),}),
-
-    url(r'^admin/', include(admin.site.urls)),
-    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
-)
+    url(r'^__webstats/', include(webstats_urlpatterns)),
+    url(r'^jsi18n$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
+]
 
-from django.contrib.staticfiles.urls import staticfiles_urlpatterns
+urlpatterns = combo_plugins.register_plugins_urls(urlpatterns)
 urlpatterns += staticfiles_urlpatterns()
 
-from django.conf.urls.static import static
+if settings.OFFSITE_MEDIA_SOUNDS:
+    urlpatterns += [url(r'^media/(?P<location>sounds/.*)', views.media_hosting)]
+
 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 
-urlpatterns += patterns('',
-    (r'', 'panikweb.views.fiber_page'),
-)
+if settings.DEBUG_TOOLBAR:
+    urlpatterns += [
+        path('__debug__/', include('debug_toolbar.urls')),
+    ]
 
-try:
-    from local_urls import *
-except ImportError, e:
-    pass
+urlpatterns.append(url(r'', include('combo.public.urls')))