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,
from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed
from django.views.decorators.cache import cache_control
from django.views.decorators.csrf import csrf_exempt
+from django.views.generic import RedirectView
from django.views.generic.base import TemplateView
from django.views.generic.dates import MonthArchiveView, _date_from_string
from django.views.generic.detail import DetailView
soundfile_embed = SoundFileEmbedView.as_view()
+class EpisodeEmbedRedirect(RedirectView):
+ def get_redirect_url(self, **kwargs):
+ try:
+ soundfile = SoundFile.objects.get(
+ episode__slug=kwargs['episode_slug'],
+ episode__emission__slug=kwargs['emission_slug'],
+ fragment=False,
+ )
+ except SoundFile.DoesNotExist:
+ raise Http404()
+ kwargs['pk'] = soundfile.id
+ return reverse('soundfile-embed-view', kwargs=kwargs)
+
+
+episode_embed_redirect = EpisodeEmbedRedirect.as_view()
+
+
class SoundFileDialogEmbedView(DetailView):
model = SoundFile
template_name = 'soundfiles/dialog-embed.html'