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 import shutil
from celery.task import task from celery.task import task
import os import os
from django.core.exceptions import ObjectDoesNotExist
try: try:
from django.contrib.gis.geoip import GeoIP from django.contrib.gis.geoip import GeoIP
except ImportError: except ImportError:
@@ -8,9 +10,10 @@ except ImportError:
from core.utils.waveform import generate_waveform from core.utils.waveform import generate_waveform
from dss import settings 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 from spa.models.userprofile import UserProfile
@task(time_limit=3600) @task(time_limit=3600)
def create_waveform_task(in_file, uid): def create_waveform_task(in_file, uid):
out_file = os.path.join(settings.MEDIA_ROOT, 'waveforms/%s.png' % 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) shutil.move(in_file, new_file)
print "Uid: %s" % uid print "Uid: %s" % uid
waveform_generated.send(sender=None, uid=uid) waveform_generated_signal.send(sender=None, uid=uid)
else: else:
print "Outfile is missing" print "Outfile is missing"
@task @task
def update_geo_info_task(ip_address, profile_id): def update_geo_info_task(ip_address, profile_id):
try: try:
@@ -36,13 +40,8 @@ def update_geo_info_task(ip_address, profile_id):
g = GeoIP() g = GeoIP()
city = g.city(ip) city = g.city(ip)
country = g.country(ip) country = g.country(ip)
try: update_user_geoip_signal.send(sender=None, profile_id=profile_id, city=city['city'],
user = UserProfile.objects.get(pk=profile_id) country=country['country'])
user.city = city['city']
user.country = country['country_name']
user.save()
except ObjectDoesNotExist:
pass
print "Updated user location" print "Updated user location"
except Exception, e: except Exception, e:
print e.message 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.userprofile import UserProfile
from spa.models.mix import Mix from spa.models.mix import Mix
waveform_generated = Signal() waveform_generated_signal = Signal()
def _waveform_generated_callback(sender, **kwargs):
def waveform_generated_callback(sender, **kwargs):
print "Updating model with waveform" print "Updating model with waveform"
try: try:
uid = kwargs['uid'] uid = kwargs['uid']
@@ -25,10 +23,18 @@ def waveform_generated_callback(sender, **kwargs):
except ObjectDoesNotExist: except ObjectDoesNotExist:
print "Mix has still not been uploaded" print "Mix has still not been uploaded"
pass pass
waveform_generated_signal.connect(_waveform_generated_callback)
update_user_geoip_signal = Signal()
waveform_generated.connect(waveform_generated_callback) 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): def create_profile(sender, **kw):
user = kw["instance"] user = kw["instance"]
@@ -77,3 +83,4 @@ def session_pre_save(sender, **kwargs):
p.save() p.save()
except ObjectDoesNotExist: except ObjectDoesNotExist:
pass pass