Fixed missing extensions bug in missing waveforms

This commit is contained in:
Fergal Moran
2013-04-19 14:18:33 +01:00
parent 47ec7bb8a1
commit c12ecda621

View File

@@ -1,26 +1,36 @@
import os
from dss import settings
from core.utils.waveform import generate_waveform
from django.core.management.base import NoArgsCommand
from dss import settings
from spa.models.Mix import Mix
from core.tasks import create_waveform_task
class Command(NoArgsCommand):
help = "Generate all outstanding waveforms"
def _generateWaveform(self, guid):
output_file = 'waveforms/%s.png' % guid
local_file = '%s/%s' % (settings.CACHE_ROOT, guid)
if os.path.isfile(local_file):
self._check_file(local_file, output_file)
def _check_file(self, local_file, output_file):
if os.path.isfile(os.path.join(settings.MEDIA_ROOT, local_file)):
file = os.path.join(settings.MEDIA_ROOT, output_file)
if not os.path.isfile(file):
print "Found missing waveform"
generate_waveform(local_file, file)
def _generateWaveform(self, mix):
fileName, extension = os.path.splitext(mix.local_file.name)
if extension == "" or extension == ".":
extension = ".mp3"
in_file = '%s/%s%s' % (settings.CACHE_ROOT, mix.uid, extension)
try:
if os.path.isfile(in_file):
create_waveform_task.delay(in_file=in_file, mix_uid=mix.uid)
else:
print "File %s not fou nd" % in_file
except Exception, ex:
print "Error generating waveform: %s" % ex.message
def handle(self, *args, **options):
pass
print "Scanning for missing waveforms"
unprocessed = Mix.objects.filter(waveform_generated=False)
for mix in unprocessed:
print "Generating waveform for mix %d" % mix.id
self._generateWaveform(mix)
def handle_noargs(self, **options):
print "Scanning for missing waveforms"