annotate gpp/podcast/views.py @ 143:1ed461fd2030
Podcast enhancements for #39. Provide channel level keyword support. Provide an alternate download URL so we can support both m4a and mp3 formats.
author |
Brian Neal <bgneal@gmail.com> |
date |
Sun, 06 Dec 2009 21:28:31 +0000 |
parents |
dbd703f7d63a |
children |
9175392da056 |
rev |
line source |
gremmie@1
|
1 """Views for the podcast application"""
|
bgneal@143
|
2 import os.path
|
bgneal@143
|
3 from urlparse import urlparse
|
gremmie@1
|
4
|
gremmie@1
|
5 from django.shortcuts import render_to_response
|
gremmie@1
|
6 from django.template import RequestContext
|
gremmie@1
|
7 from django.shortcuts import get_object_or_404
|
gremmie@1
|
8
|
gremmie@1
|
9 from podcast.models import Channel
|
gremmie@1
|
10 from podcast.models import Item
|
gremmie@1
|
11
|
gremmie@1
|
12
|
bgneal@143
|
13 def get_ext_from_url(url):
|
bgneal@143
|
14 """
|
bgneal@143
|
15 This function returns the extension part of the path from the given
|
bgneal@143
|
16 url.
|
bgneal@143
|
17 """
|
bgneal@143
|
18 return os.path.splitext(urlparse(url).path)[1]
|
bgneal@143
|
19
|
bgneal@143
|
20
|
gremmie@1
|
21 def index(request):
|
gremmie@1
|
22 try:
|
gremmie@1
|
23 channel = Channel.objects.get(pk=1)
|
gremmie@1
|
24 except Channel.DoesNotExist:
|
gremmie@1
|
25 channel = None
|
gremmie@1
|
26
|
gremmie@1
|
27 return render_to_response('podcast/index.html', {
|
gremmie@1
|
28 'channel': channel,
|
gremmie@1
|
29 },
|
gremmie@1
|
30 context_instance = RequestContext(request))
|
gremmie@1
|
31
|
gremmie@1
|
32
|
gremmie@1
|
33 def detail(request, id):
|
bgneal@143
|
34 podcast = get_object_or_404(Item.objects.select_related(), pk = id)
|
bgneal@143
|
35
|
bgneal@143
|
36 ext = get_ext_from_url(podcast.enclosure_url)
|
bgneal@143
|
37 alt_ext = None
|
bgneal@143
|
38 if podcast.alt_enclosure_url:
|
bgneal@143
|
39 alt_ext = get_ext_from_url(podcast.alt_enclosure_url)
|
bgneal@143
|
40
|
gremmie@1
|
41 return render_to_response('podcast/detail.html', {
|
gremmie@1
|
42 'channel': podcast.channel,
|
gremmie@1
|
43 'podcast': podcast,
|
bgneal@143
|
44 'ext': ext,
|
bgneal@143
|
45 'alt_ext': alt_ext,
|
gremmie@1
|
46 },
|
gremmie@1
|
47 context_instance = RequestContext(request))
|
gremmie@1
|
48
|
gremmie@1
|
49
|
gremmie@1
|
50 def feed(request):
|
gremmie@1
|
51 try:
|
gremmie@1
|
52 channel = Channel.objects.get(pk=1)
|
gremmie@1
|
53 except Channel.DoesNotExist:
|
gremmie@1
|
54 channel = None
|
gremmie@1
|
55 return render_to_response('podcast/feed.xml', {
|
gremmie@1
|
56 'channel': channel,
|
gremmie@1
|
57 },
|
gremmie@1
|
58 context_instance = RequestContext(request))
|