mirror of
https://github.com/fergalmoran/dss.api.git
synced 2026-01-06 16:43:56 +00:00
Merge conflicts
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
from __future__ import absolute_import
|
||||
from .celeryconf import app as celery_app
|
||||
|
||||
@@ -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)
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
54
spa/tasks.py
Executable 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
|
||||
Reference in New Issue
Block a user