Files
dss/spa/signals.py
2013-06-19 19:24:50 +01:00

64 lines
1.9 KiB
Python
Executable File

from celery.task import task
from django.core.exceptions import ObjectDoesNotExist
from django.db.models.signals import post_save
from django.dispatch import Signal
from django.contrib.auth.models import User
from south import signals
from core.utils.audio.mp3 import mp3_length
from dss import settings
from spa.models import UserProfile
from spa.models.mix import Mix
waveform_generated = Signal()
def waveform_generated_callback(sender, **kwargs):
print "Updating model with waveform"
try:
uid = kwargs['uid']
if uid is not None:
mix = Mix.objects.get(uid=uid)
if mix is not None:
mix.waveform_generated = True
mix.duration = mp3_length(mix.get_absolute_path())
mix.save()
except ObjectDoesNotExist:
pass
waveform_generated.connect(waveform_generated_callback)
@task
def async_send_activity_to_message_queue(instance):
# do something with the instance.
pass
def send_activity_to_message_queue(sender, *args, **kwargs):
try:
pass
except Exception, ex:
print "Error reporting activity to message queue: %s" % ex.message
post_save.connect(send_activity_to_message_queue, sender=None)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User, dispatch_uid="users-profilecreation")
if "notification" in settings.INSTALLED_APPS:
from notification import models as notification
def create_notice_types(app, created_models, verbosity, **kwargs):
notification.create_notice_type("new_follower", _("You have a new follower on deepsouthsounds.com"), _("You have a new follower."))
signals.post_migrate.connect(create_notice_types, sender=notification)
else:
print "Skipping creation of NoticeTypes as notification app not found"