Merge conflicts

This commit is contained in:
Fergal Moran
2015-07-28 22:05:13 +01:00
8 changed files with 76 additions and 19 deletions

View File

@@ -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.cdn import upload_to_azure
from dss import settings
from core.tasks import create_waveform_task, archive_mix_task
from spa.tasks import create_waveform_task, archive_mix_task
from spa.models.genre import Genre
from spa.models.activity import ActivityPlay
from spa.models.mix import Mix

View File

@@ -0,0 +1,2 @@
from __future__ import absolute_import
from .celeryconf import app as celery_app

View File

@@ -1,13 +1,17 @@
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dss.settings")
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
from django.conf import settings
app = Celery('dss')
CELERY_TIMEZONE = 'UTC'
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

View File

@@ -3,7 +3,6 @@ import os
import mimetypes
from datetime import timedelta
from django.core.urlresolvers import reverse_lazy
import djcelery
from django.conf import global_settings
from utils import here
@@ -106,7 +105,6 @@ INSTALLED_APPS = (
#'django_facebook',
'django_extensions',
'django_gravatar',
'djcelery',
'corsheaders',
'sorl.thumbnail',
'spa',

View File

@@ -30,10 +30,11 @@ apache-libcloud
mandrill
djrill
celery
djangorestframework==3.1.3
djangorestframework-jwt==1.6.0
drf-nested-routers
django-celery
pillow
django-gravatar2

View File

@@ -1,21 +1,19 @@
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.db.models import Count, Q, F
from django.db.models import Count, Q
from django.conf.urls import url
from tastypie import fields
from tastypie.authentication import Authentication
from tastypie.authorization import Authorization
from django.conf.urls import url
from tastypie.constants import ALL, ALL_WITH_RELATIONS
from tastypie.http import HttpGone, HttpMultipleChoices
from tastypie.utils import trailing_slash
from tastypie_msgpack import Serializer
from dss import settings
from spa.api.v1.BaseResource import BaseResource
from spa.api.v1.PlaylistResource import PlaylistResource
from spa.models.basemodel import BaseModel
from spa.models.userprofile import UserProfile
from spa.models.mix import Mix
from core.tasks import update_geo_info_task
class UserResource(BaseResource):

View File

@@ -1,10 +1,11 @@
from optparse import make_option
import os
from django.core.management.base import NoArgsCommand, BaseCommand
from spa.management.commands import helpers
from django.core.management.base import BaseCommand
from spa.management.commands import helpers
from spa.models.mix import Mix
from core.tasks import create_waveform_task
from spa.tasks import create_waveform_task
class Command(BaseCommand):
@@ -40,7 +41,7 @@ class Command(BaseCommand):
return processed_file
except Exception, ex:
print "Error generating waveform: %s" % ex.message
print "Error generating waveform: {0}".format(ex.message)
return ""

54
spa/tasks.py Executable file
View File

@@ -0,0 +1,54 @@
import shutil
from celery.task import task
import os
from core.utils.cdn import upload_to_azure
from spa.signals import waveform_generated_signal
try:
from django.contrib.gis.geoip import GeoIP
except ImportError:
pass
from core.utils.waveform import generate_waveform
from dss import settings
@task(time_limit=3600)
def create_waveform_task(in_file, uid):
out_file = os.path.join(settings.MEDIA_ROOT, 'waveforms/%s.png' % uid)
print "Creating waveform \n\tIn: %s\n\tOut: %s" % (in_file, out_file)
generate_waveform(in_file, out_file)
if os.path.isfile(out_file):
print "Waveform generated successfully"
out_file, extension = os.path.splitext(in_file)
new_file = os.path.join(settings.MEDIA_ROOT, "mixes", "%s%s" % (uid, extension))
print "Moving cache audio clip from %s to %s" % (in_file, new_file)
shutil.move(in_file, new_file)
print "Uid: %s" % uid
waveform_generated_signal.send(sender=None, uid=uid)
return new_file
else:
print "Outfile is missing"
@task(time_limit=3600)
def archive_mix_task(in_file, filetype, uid):
print "Sending {0} to azure".format(uid)
try:
upload_to_azure(in_file, filetype, uid)
except Exception, ex:
print "Unable to upload: {0}".format(ex.message)
@task
def update_geo_info_task(ip_address, profile_id):
try:
ip = '188.141.70.110' if ip_address == '127.0.0.1' else ip_address
if ip:
g = GeoIP()
city = g.city(ip)
country = g.country(ip)
print "Updated user location"
except Exception, e:
print e.message
pass