]> git.0d.be Git - panikweb.git/blob - panikweb/urls.py
misc: add support for offsite podcasts
[panikweb.git] / panikweb / urls.py
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
9
10 from . import search, views
11 from .webstats.urls import urlpatterns as webstats_urlpatterns
12
13 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'),
20     url(
21         r'^%s(?P<slug>[\w,-]+)/episodes/$' % settings.EMISSIONS_PREFIX,
22         views.emissionEpisodes,
23         name='emissionEpisodes',
24     ),
25     url(
26         r'^%s(?P<slug>[\w,-]+)/podcasts.rss' % settings.EMISSIONS_PREFIX,
27         views.emission_podcasts_feed,
28         name='emission-podcasts',
29     ),
30     url(r'^%s(?P<slug>[\w,-]+)/chat/$' % settings.EMISSIONS_PREFIX, views.chat, name='emission-chat'),
31     url(
32         r'^%s(?P<emission_slug>[\w,-]+)/(?P<slug>[\w,-]+)/$' % settings.EMISSIONS_PREFIX,
33         views.episode,
34         name='episode-view',
35     ),
36     url(
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',
40     ),
41     url(
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',
46     ),
47     url(
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',
52     ),
53     url(
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',
58     ),
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'),
66     url(
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',
70     ),
71     url(
72         r'^%sagenda$' % settings.NEWSITEMS_PREFIX, RedirectView.as_view(pattern_name='agenda', permanent=True)
73     ),
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'),
84 ]
85
86 urlpatterns = combo_plugins.register_plugins_urls(urlpatterns)
87 urlpatterns += staticfiles_urlpatterns()
88
89 if settings.OFFSITE_MEDIA_SOUNDS:
90     urlpatterns += [url(r'^media/(?P<location>sounds/.*)', views.media_hosting)]
91
92 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
93
94 if settings.DEBUG_TOOLBAR:
95     urlpatterns += [
96         path('__debug__/', include('debug_toolbar.urls')),
97     ]
98
99 urlpatterns.append(url(r'', include('combo.public.urls')))