From f07de58c036fda19b1b4c5c9c5eda330b4892698 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 16 Mar 2015 11:03:49 +0100 Subject: [PATCH] cleanup staging modules, add a script for importing items --- examples/deploy/celery_app.sh | 2 - examples/deploy/start_app.sh | 3 -- .../commands/timeside-import-items.py | 47 +++++++++++++++++++ 3 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 timeside/server/management/commands/timeside-import-items.py diff --git a/examples/deploy/celery_app.sh b/examples/deploy/celery_app.sh index 44a896e..1c9b687 100644 --- a/examples/deploy/celery_app.sh +++ b/examples/deploy/celery_app.sh @@ -5,8 +5,6 @@ app_dir='/opt/TimeSide/' sandbox_dir='/home/timeside/' manage=$sandbox_dir'manage.py' -pip install django-celery - python $manage migrate --noinput $manage celery worker -A celery_app diff --git a/examples/deploy/start_app.sh b/examples/deploy/start_app.sh index 0a01c21..0f7fe78 100644 --- a/examples/deploy/start_app.sh +++ b/examples/deploy/start_app.sh @@ -11,9 +11,6 @@ app_static_dir=$app_dir'timeside/player/static/' #  this is not needed for TimeSide but for Timeside-diadems cp -uR /opt/TimeSide/examples/sandbox/* /home/timeside/ -# add some staging modules -pip install watchdog django-celery - # django init python $manage syncdb --noinput python $manage migrate --noinput diff --git a/timeside/server/management/commands/timeside-import-items.py b/timeside/server/management/commands/timeside-import-items.py new file mode 100644 index 0000000..d725270 --- /dev/null +++ b/timeside/server/management/commands/timeside-import-items.py @@ -0,0 +1,47 @@ +from optparse import make_option +from django.conf import settings +from django.core.management.base import BaseCommand, CommandError +from django.core.files.base import ContentFile +from timeside.server.models import * +import os, sys + +try: + from django.utils.text import slugify +except ImportError: + def slugify(string): + killed_chars = re.sub('[\(\),]', '', string) + return re.sub(' ', '_', killed_chars) + +def beautify(string): + return os.path.splitext(string)[0].replace('_',' ') + + +class Command(BaseCommand): + help = """import media files from the media directory into some items + and create a selection (no file copy)""" + args = "selection_title media_dir" + + def handle(self, *args, **options): + selection_title = args[-2] + import_dir = os.path.abspath(args[-1]) + media_dir = os.path.normpath(settings.MEDIA_ROOT) + + if not media_dir in import_dir: + sys.exit('This directory is not in the MEDIA_ROOT directory') + + selection, c = Selection.objects.get_or_create(title=selection_title) + if c: + print 'Selection "' + selection_title + '" created' + + for root, dirs, files in os.walk(import_dir): + for filename in files: + path = root + os.sep + filename + path = path[len(media_dir)+1:] + name, ext = os.path.splitext(filename) + title = unicode(selection_title + '_' + filename) + item, c = Item.objects.get_or_create(title=title, file=path) + if c: + print 'Item "' + title + '" created' + if not item in selection.items.all(): + selection.items.add(item) + print 'Item "' + title + '" added to selection "' + selection_title +'"' \ No newline at end of file -- 2.39.5