Files
dss/spa/audio.py
Fergal Moran 50c9e4e8c1 Removed userfollows model and changed to ForeignKey properties in UserProfile
Migrations got a bit borked so doing this commit to stage the migrations in live as I don't want to have a massive, potentially dangerous, migration.
2013-04-30 23:26:42 +01:00

62 lines
1.8 KiB
Python

import os
import logging
from django.conf.urls import url
from django.http import Http404
from sendfile import sendfile
from dss import settings
from spa.models.mix import Mix
from utils import here
logger = logging.getLogger('spa')
class AudioHandler(object):
@property
def urls(self):
pattern_list = [
url(r'^stream/(?P<mix_id>\d+)/$', 'spa.audio.start_streaming', name='audio_start_streaming'),
url(r'^download/(?P<mix_id>\d+)/$', 'spa.audio.download', name='audio_download'),
]
return pattern_list
def download(request, mix_id):
try:
mix = Mix.objects.get(pk=mix_id)
if mix is not None:
if mix.download_allowed:
mix.add_download(request.user)
filename = mix.local_file.path # Select your file here.
file, ext = os.path.splitext(filename)
response = sendfile(request, filename, attachment=True, attachment_filename="%s.%s" % (mix.title, ext))
return response
except Exception, ex:
print ex
raise Http404("Mix not found")
def start_streaming(request, mix_id):
logger.debug('Start streaming called: %s' % mix_id)
try:
mix = Mix.objects.get(pk=mix_id)
if mix is not None:
mix.add_play(request.user)
#logger.debug('Found the mix (old method): %s' % mix.uid)
#filename = mix.local_file.path
logger.debug('Found the mix (new method) %s' % mix.uid)
filename = "%s/mixes/%s.mp3" % (here(settings.MEDIA_ROOT), mix.uid)
logger.debug('Serving file: %s' % filename)
response = sendfile(request, filename)
return response
except Exception, ex:
print ex
raise Http404("Mix not found")