Fixed waveform generated task

This commit is contained in:
Fergal Moran
2013-11-08 21:49:03 +00:00
parent 20bea264ea
commit be33bacc0c
2 changed files with 23 additions and 17 deletions

View File

@@ -1,6 +1,8 @@
import shutil
from celery.task import task
import os
from django.core.exceptions import ObjectDoesNotExist
try:
from django.contrib.gis.geoip import GeoIP
except ImportError:
@@ -8,9 +10,10 @@ except ImportError:
from core.utils.waveform import generate_waveform
from dss import settings
from spa.signals import waveform_generated
from spa.signals import waveform_generated_signal, update_user_geoip_signal
from spa.models.userprofile import UserProfile
@task(time_limit=3600)
def create_waveform_task(in_file, uid):
out_file = os.path.join(settings.MEDIA_ROOT, 'waveforms/%s.png' % uid)
@@ -24,10 +27,11 @@ def create_waveform_task(in_file, uid):
shutil.move(in_file, new_file)
print "Uid: %s" % uid
waveform_generated.send(sender=None, uid=uid)
waveform_generated_signal.send(sender=None, uid=uid)
else:
print "Outfile is missing"
@task
def update_geo_info_task(ip_address, profile_id):
try:
@@ -36,13 +40,8 @@ def update_geo_info_task(ip_address, profile_id):
g = GeoIP()
city = g.city(ip)
country = g.country(ip)
try:
user = UserProfile.objects.get(pk=profile_id)
user.city = city['city']
user.country = country['country_name']
user.save()
except ObjectDoesNotExist:
pass
update_user_geoip_signal.send(sender=None, profile_id=profile_id, city=city['city'],
country=country['country'])
print "Updated user location"
except Exception, e:
print e.message

View File

@@ -9,10 +9,8 @@ from core.utils.audio.mp3 import mp3_length
from spa.models.userprofile import UserProfile
from spa.models.mix import Mix
waveform_generated = Signal()
def waveform_generated_callback(sender, **kwargs):
waveform_generated_signal = Signal()
def _waveform_generated_callback(sender, **kwargs):
print "Updating model with waveform"
try:
uid = kwargs['uid']
@@ -25,10 +23,18 @@ def waveform_generated_callback(sender, **kwargs):
except ObjectDoesNotExist:
print "Mix has still not been uploaded"
pass
waveform_generated_signal.connect(_waveform_generated_callback)
waveform_generated.connect(waveform_generated_callback)
update_user_geoip_signal = Signal()
def _update_user_geoip_callback(sender, **kwargs):
try:
user = UserProfile.objects.get(pk=kwargs['profile_id'])
user.city = kwargs['city']
user.country = kwargs['country']
user.save()
except ObjectDoesNotExist:
pass
update_user_geoip_signal.connect(_update_user_geoip_callback)
def create_profile(sender, **kw):
user = kw["instance"]
@@ -77,3 +83,4 @@ def session_pre_save(sender, **kwargs):
p.save()
except ObjectDoesNotExist:
pass