mirror of
https://github.com/fergalmoran/dss.git
synced 2025-12-22 09:38:18 +00:00
First draft of azure management command
This commit is contained in:
@@ -95,7 +95,7 @@ MIDDLEWARE_CLASSES = (
|
|||||||
'django_user_agents.middleware.UserAgentMiddleware',
|
'django_user_agents.middleware.UserAgentMiddleware',
|
||||||
'pipeline.middleware.MinifyHTMLMiddleware',
|
'pipeline.middleware.MinifyHTMLMiddleware',
|
||||||
# 'spa.middleware.uploadify.SWFUploadMiddleware',
|
# 'spa.middleware.uploadify.SWFUploadMiddleware',
|
||||||
#'spa.middleware.sqlprinter.SqlPrintingMiddleware' if DEBUG else None,
|
'spa.middleware.sqlprinter.SqlPrintingMiddleware' if DEBUG else None,
|
||||||
#'debug_toolbar.middleware.DebugToolbarMiddleware',
|
#'debug_toolbar.middleware.DebugToolbarMiddleware',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -58,4 +58,5 @@ djrill
|
|||||||
python-shout
|
python-shout
|
||||||
django-dirtyfields
|
django-dirtyfields
|
||||||
django-storages
|
django-storages
|
||||||
django-user-sessions
|
django-user-sessions
|
||||||
|
apache-libcloud
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
from django.core.management.base import NoArgsCommand
|
from django.core.management.base import NoArgsCommand
|
||||||
from libcloud.storage.types import Provider
|
from libcloud.storage.types import Provider
|
||||||
from libcloud.storage.providers import get_driver
|
from libcloud.storage.providers import get_driver
|
||||||
|
from core.utils.url import url_path_join
|
||||||
from dss import settings
|
from dss import settings
|
||||||
from spa.models.mix import Mix
|
from spa.models.mix import Mix
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
@@ -8,32 +9,36 @@ from django.db.models import Count
|
|||||||
import os
|
import os
|
||||||
import urlparse
|
import urlparse
|
||||||
|
|
||||||
|
|
||||||
class Command(NoArgsCommand):
|
class Command(NoArgsCommand):
|
||||||
def handle_noargs(self, **options):
|
def handle_noargs(self, **options):
|
||||||
try:
|
try:
|
||||||
FILE_PATH = '/tmp/dss.log'
|
|
||||||
cls = get_driver(Provider.AZURE_BLOBS)
|
cls = get_driver(Provider.AZURE_BLOBS)
|
||||||
driver = cls(settings.AZURE_ACCOUNT_NAME, settings.AZURE_ACCOUNT_KEY)
|
driver = cls(settings.AZURE_ACCOUNT_NAME, settings.AZURE_ACCOUNT_KEY)
|
||||||
container = driver.get_container(container_name='mixes')
|
container = driver.get_container(container_name=settings.AZURE_CONTAINER)
|
||||||
|
|
||||||
|
mixes = Mix.objects.filter(slug='lsd')
|
||||||
|
"""
|
||||||
mixes = Mix.objects.filter(upload_date__lte=datetime.today() - timedelta(days=180)) \
|
mixes = Mix.objects.filter(upload_date__lte=datetime.today() - timedelta(days=180)) \
|
||||||
.annotate(num_plays=Count('activity_plays')) \
|
.annotate(num_plays=Count('activity_plays')) \
|
||||||
.order_by('num_plays')[:10]
|
.order_by('num_plays')[:1]
|
||||||
|
"""
|
||||||
for mix in mixes:
|
for mix in mixes:
|
||||||
if os.path.isfile(mix.get_absolute_path()):
|
if os.path.isfile(mix.get_absolute_path()):
|
||||||
print "Uploading file for: %s" % mix.slug
|
print "Uploading file for: %s" % mix.slug
|
||||||
file_name = "%s%s.mp3" % (urlparse.urljoin(settings.AZURE_ITEM_BASE_URL, "mixes/"), mix.uid)
|
file_name = "%s.%s" % (mix.uid, mix.filetype)
|
||||||
|
archive_path = url_path_join(settings.AZURE_ITEM_BASE_URL, settings.AZURE_CONTAINER, file_name)
|
||||||
|
|
||||||
with open(mix.get_absolute_path(), 'rb') as iterator:
|
with open(mix.get_absolute_path(), 'rb') as iterator:
|
||||||
obj = driver.upload_object_via_stream(
|
obj = driver.upload_object_via_stream(
|
||||||
iterator=iterator,
|
iterator=iterator,
|
||||||
container=container,
|
container=container,
|
||||||
object_name = file_name
|
object_name=file_name
|
||||||
)
|
)
|
||||||
mix.archive_file = file_name;
|
print "Uploaded"
|
||||||
mix.save()
|
mix.archive_path = archive_path
|
||||||
print "done- file is %s" % file_name
|
mix.save()
|
||||||
|
print "done- file is %s" % mix.archive_path
|
||||||
|
|
||||||
except Exception, ex:
|
except Exception, ex:
|
||||||
print "Debug exception: %s" % ex.message
|
print "Debug exception: %s" % ex.message
|
||||||
|
|||||||
@@ -163,13 +163,10 @@ class Mix(BaseModel):
|
|||||||
return super(Mix, self).get_image_url(self.mix_image, settings.STATIC_URL + 'img/default-track.png')
|
return super(Mix, self).get_image_url(self.mix_image, settings.STATIC_URL + 'img/default-track.png')
|
||||||
|
|
||||||
def get_stream_path(self):
|
def get_stream_path(self):
|
||||||
ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid)
|
|
||||||
"""
|
|
||||||
if self.archive_path in [None, '']:
|
if self.archive_path in [None, '']:
|
||||||
ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid)
|
ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid)
|
||||||
else:
|
else:
|
||||||
ret = self.archive_path
|
ret = self.archive_path
|
||||||
"""
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
#used for podcast xml
|
#used for podcast xml
|
||||||
|
|||||||
Reference in New Issue
Block a user