mirror of
https://github.com/fergalmoran/dss.api.git
synced 2026-01-03 23:24:01 +00:00
Fixed waveform flow and socket.io push
This commit is contained in:
19
api/views.py
19
api/views.py
@@ -3,7 +3,7 @@ import os
|
||||
|
||||
from django.core.exceptions import PermissionDenied, ObjectDoesNotExist
|
||||
from django.core.files.base import ContentFile
|
||||
from django.core.files.storage import FileSystemStorage, default_storage
|
||||
from django.core.files.storage import FileSystemStorage
|
||||
from django.db.models import Count
|
||||
from django.http.response import HttpResponse
|
||||
from rest_framework import viewsets
|
||||
@@ -17,9 +17,8 @@ from rest_framework.status import HTTP_202_ACCEPTED, HTTP_401_UNAUTHORIZED, HTTP
|
||||
HTTP_200_OK, HTTP_204_NO_CONTENT
|
||||
|
||||
from api import serializers
|
||||
from core.utils import cdn
|
||||
from dss import settings
|
||||
from spa.tasks import create_waveform_task, upload_to_cdn_task
|
||||
from spa import tasks
|
||||
from spa.models.genre import Genre
|
||||
from spa.models.activity import ActivityPlay
|
||||
from spa.models.mix import Mix
|
||||
@@ -187,13 +186,13 @@ class PartialMixUploadView(views.APIView):
|
||||
logger.debug("Processing input_file: {0}".format(input_file))
|
||||
logger.debug("Connecting to broker: {0}".format(settings.BROKER_URL))
|
||||
|
||||
from celery import group
|
||||
(create_waveform_task.s(input_file, uid) |
|
||||
group(
|
||||
upload_to_cdn_task.s(filetype='mp3', uid=uid, container_name='mixes'),
|
||||
upload_to_cdn_task.s(filetype='png', uid=uid, container_name='waveforms')
|
||||
)
|
||||
).delay()
|
||||
from celery import group, chain
|
||||
(
|
||||
tasks.create_waveform_task.s(input_file, uid) |
|
||||
tasks.upload_to_cdn_task.subtask(('mp3', uid, 'mixes'), immutable=True) |
|
||||
tasks.upload_to_cdn_task.subtask(('png', uid, 'waveforms'), immutable=True) |
|
||||
tasks.notify_subscriber.subtask((request.user.userprofile.get_session_id(), uid), immutable=True)
|
||||
).delay()
|
||||
logger.debug("Waveform task started")
|
||||
|
||||
except Exception, ex:
|
||||
|
||||
@@ -4,6 +4,7 @@ from django.db.models.signals import post_save, pre_save, m2m_changed
|
||||
from django.dispatch import Signal, receiver
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from core.realtime import activity
|
||||
|
||||
from core.utils.audio.mp3 import mp3_length
|
||||
from spa.models.activity import ActivityFollow
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from celery.task import task
|
||||
import os
|
||||
import logging
|
||||
from core.realtime import activity
|
||||
|
||||
from core.utils import cdn
|
||||
from spa.signals import waveform_generated_signal
|
||||
@@ -30,7 +31,7 @@ def create_waveform_task(in_file, uid):
|
||||
|
||||
|
||||
@task(timse_limit=3600)
|
||||
def upload_to_cdn_task(in_file, filetype, uid, container_name):
|
||||
def upload_to_cdn_task(filetype, uid, container_name):
|
||||
source_file = os.path.join(settings.CACHE_ROOT, '{0}/{1}.{2}'.format(container_name, uid, filetype))
|
||||
logger.info("Sending {0} to azure".format(uid))
|
||||
try:
|
||||
@@ -53,3 +54,9 @@ def update_geo_info_task(ip_address, profile_id):
|
||||
except Exception, e:
|
||||
logger.exception(e)
|
||||
pass
|
||||
|
||||
|
||||
@task
|
||||
def notify_subscriber(session_id, uid):
|
||||
if session_id is not None:
|
||||
activity.post_activity('user:message', session_id, {'type': 'waveform', 'target': uid})
|
||||
|
||||
Reference in New Issue
Block a user