]> git.parisson.com Git - telemeta.git/commitdiff
add lam import command
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 20 Feb 2014 10:46:16 +0000 (11:46 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 20 Feb 2014 10:46:16 +0000 (11:46 +0100)
telemeta/management/commands/telemeta-import-items-without-copy-lam.py [new file with mode: 0644]

diff --git a/telemeta/management/commands/telemeta-import-items-without-copy-lam.py b/telemeta/management/commands/telemeta-import-items-without-copy-lam.py
new file mode 100644 (file)
index 0000000..38e4836
--- /dev/null
@@ -0,0 +1,59 @@
+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 telemeta.models import *
+from telemeta.util.unaccent import unaccent
+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 a directory in the media directory into a collection (no file copy)"
+    args = "media_dir"
+
+    def handle(self, *args, **options):
+        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')     
+
+        for root, dirs, files in os.walk(import_dir):
+            for filename in files:
+                path = root + os.sep + filename
+                path = path[len(media_dir)+1:]
+        filename_pre, ext = os.path.splitext(filename)
+        if ext == '.wav':
+            collection_code = '_'.join(filename_pre.split('_')[:4])
+                #filename_pre = slugify(collection_code + '_' + filename_pre)
+            collections = MediaCollection.objects.filter(code=collection_code)
+            if not collections:
+                collection = MediaCollection(code=collection_code, title=collection_code)
+                collection.public_access = 'full'
+                collection.save()
+                print 'collection created: ' + collection_code
+            else:
+                collection = collections[0]
+                print 'using collection: ' + collection.code
+                
+            items = MediaItem.objects.filter(code=filename_pre)
+            if not items:
+                item = MediaItem(collection=collection, code=filename_pre)
+                print 'item created: ' + item.code
+            else:
+                item = item[0]
+                print 'item already exists: ' + items.code
+            
+            item.title = filename_pre
+            item.file = path
+            item.public_access = 'full'
+            item.save()