mirror of
https://github.com/fergalmoran/dss.git
synced 2025-12-28 04:28:01 +00:00
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
import os
|
|
import subprocess
|
|
import traceback
|
|
import uuid
|
|
from dss import settings
|
|
from celery.task.base import task
|
|
import spa
|
|
|
|
@task(name='www.create_waveform_task')
|
|
def create_waveform_task(id, in_file):
|
|
try:
|
|
working_file = "/tmp/%s.wav" % (uuid.uuid1())
|
|
out_file = os.path.join(settings.MEDIA_ROOT, 'waveforms/%i.png' % id)
|
|
try:
|
|
print "Starting decode"
|
|
p = subprocess.call(["/usr/bin/lame", "--decode", in_file, working_file])
|
|
print "Finished decode"
|
|
if os.path.exists(working_file):
|
|
print "Starting waveform generation"
|
|
subprocess.call(["waveformgen", "-m", "-l", "-i", working_file, "-o", out_file])
|
|
|
|
if os.path.isfile(out_file):
|
|
os.remove(working_file)
|
|
print "Generated waveform"
|
|
return out_file
|
|
else:
|
|
print "Failed generating waveform: %s" % out_file
|
|
else:
|
|
print "Unable to find working file, did LAME succeed?"
|
|
return ""
|
|
except:
|
|
print "Error generating waveform"
|
|
traceback.print_exc()
|
|
|
|
except:
|
|
print "Error generating waveform"
|
|
traceback.print_exc()
|
|
|
|
|
|
@task(name='www.gmw')
|
|
def gmw():
|
|
objects = spa.models.mix.Mix.objects.all()
|
|
|
|
for object in objects:
|
|
file = os.path.join(settings.MEDIA_ROOT, 'waveforms/%i.png' % object.pk)
|
|
if not os.path.isfile(file):
|
|
print "Found missing waveform"
|
|
create_waveform_task(object.pk, object.local_file.file.name)
|
|
|
|
|