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',
|
||||
'pipeline.middleware.MinifyHTMLMiddleware',
|
||||
# 'spa.middleware.uploadify.SWFUploadMiddleware',
|
||||
#'spa.middleware.sqlprinter.SqlPrintingMiddleware' if DEBUG else None,
|
||||
'spa.middleware.sqlprinter.SqlPrintingMiddleware' if DEBUG else None,
|
||||
#'debug_toolbar.middleware.DebugToolbarMiddleware',
|
||||
)
|
||||
|
||||
|
||||
@@ -59,3 +59,4 @@ python-shout
|
||||
django-dirtyfields
|
||||
django-storages
|
||||
django-user-sessions
|
||||
apache-libcloud
|
||||
@@ -1,6 +1,7 @@
|
||||
from django.core.management.base import NoArgsCommand
|
||||
from libcloud.storage.types import Provider
|
||||
from libcloud.storage.providers import get_driver
|
||||
from core.utils.url import url_path_join
|
||||
from dss import settings
|
||||
from spa.models.mix import Mix
|
||||
from datetime import datetime, timedelta
|
||||
@@ -8,32 +9,36 @@ from django.db.models import Count
|
||||
import os
|
||||
import urlparse
|
||||
|
||||
|
||||
class Command(NoArgsCommand):
|
||||
def handle_noargs(self, **options):
|
||||
try:
|
||||
FILE_PATH = '/tmp/dss.log'
|
||||
cls = get_driver(Provider.AZURE_BLOBS)
|
||||
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)) \
|
||||
.annotate(num_plays=Count('activity_plays')) \
|
||||
.order_by('num_plays')[:10]
|
||||
|
||||
.order_by('num_plays')[:1]
|
||||
"""
|
||||
for mix in mixes:
|
||||
if os.path.isfile(mix.get_absolute_path()):
|
||||
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:
|
||||
obj = driver.upload_object_via_stream(
|
||||
iterator=iterator,
|
||||
container=container,
|
||||
object_name = file_name
|
||||
object_name=file_name
|
||||
)
|
||||
mix.archive_file = file_name;
|
||||
print "Uploaded"
|
||||
mix.archive_path = archive_path
|
||||
mix.save()
|
||||
print "done- file is %s" % file_name
|
||||
print "done- file is %s" % mix.archive_path
|
||||
|
||||
except Exception, ex:
|
||||
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')
|
||||
|
||||
def get_stream_path(self):
|
||||
ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid)
|
||||
"""
|
||||
if self.archive_path in [None, '']:
|
||||
ret = url_path_join(localsettings.STREAM_URL, "%s.mp3" % self.uid)
|
||||
else:
|
||||
ret = self.archive_path
|
||||
"""
|
||||
return ret
|
||||
|
||||
#used for podcast xml
|
||||
|
||||
Reference in New Issue
Block a user