correct project json export
authorymh <ymh.work@gmail.com>
Fri, 04 Feb 2011 18:35:20 +0100
changeset 19 d5ffd0b5bf0d
parent 18 2984757e6d98
child 20 45cf063be4a5
correct project json export
src/ldt/ldt/ldt_utils/contentindexer.py
src/ldt/ldt/ldt_utils/projectserializer.py
src/ldt/ldt/ldt_utils/utils.py
--- a/src/ldt/ldt/ldt_utils/contentindexer.py	Fri Feb 04 17:18:16 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/contentindexer.py	Fri Feb 04 18:35:20 2011 +0100
@@ -1,16 +1,14 @@
 import tempfile
 import os
 import os.path
-import shutil
 from ldt.utils import zipfileext
-import urllib
+import urllib 
 # import ldt.utils.log
 import ldt.utils.xml
 from django.conf import settings
 from models import Content
 import fnmatch
 import uuid
-import shutil
 import lucene
 from ldt.ldt_utils import STORE
 from ldt.ldt_utils import ANALYZER
--- a/src/ldt/ldt/ldt_utils/projectserializer.py	Fri Feb 04 17:18:16 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/projectserializer.py	Fri Feb 04 18:35:20 2011 +0100
@@ -1,6 +1,6 @@
 from datetime import datetime
 from django.utils.datastructures import SortedDict
-from ldt.ldt_utils.models import Content, Project
+from ldt.ldt_utils.models import Content
 from ldt.ldt_utils.utils import reduce_text_node
 import logging
 import lxml.etree
@@ -150,7 +150,14 @@
                 
                 element_title = reduce_text_node(element_node, "title/text()")        
                 element_description = reduce_text_node(element_node, "abstract/text()")                
-                element_twitter = reduce_text_node(element_node, "meta/twitter/text()")
+                
+                element_source_node_list = element_node.xpath("meta/source")
+                
+                if len(element_source_node_list) > 0:
+                    element_source_node = element_source_node_list[0]
+                    element_source = {"mimetype" :element_source_node.get(u'mimetype'), "url":element_source_node.get(u'url'), "content":reduce_text_node(element_source_node)}
+                else:
+                    element_source = None
                 
                 element_audio_src = ""
                 element_audio_href = ""
@@ -226,8 +233,8 @@
                     }
                 }
                 
-                if element_twitter:
-                    new_annotation['meta']['twitter'] = element_twitter
+                if element_source:
+                    new_annotation['meta']['dc:source'] = element_source
                 
                 self.annotations_dict[element_id] = new_annotation
                 self.annotations_by_annotation_types[decoupage_id].append(new_annotation)
--- a/src/ldt/ldt/ldt_utils/utils.py	Fri Feb 04 17:18:16 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/utils.py	Fri Feb 04 18:35:20 2011 +0100
@@ -1,12 +1,10 @@
-import lucene
-from ldt.ldt_utils import STORE
-from ldt.ldt_utils import ANALYZER
-import uuid
+from django.conf import settings
+import datetime
 import django.core.urlresolvers
-from django.conf import settings
+import lucene
+import lxml.etree
 import urllib
-import datetime
-import lxml.etree
+import uuid
 
 __BOOLEAN_DICT = {
     'false':False,
@@ -17,8 +15,13 @@
     'f':False
 }
 
-def reduce_text_node(element_node, xpath_str):
-    return reduce(lambda t, s: t + s, element_node.xpath(xpath_str, smart_strings=False), "")
+def reduce_text_node(element_node, xpath_str=None):
+    node_list = []
+    if xpath_str is not None:
+        node_list = element_node.xpath(xpath_str, smart_strings=False)
+    else:
+        node_list = [element_node.text]
+    return reduce(lambda t, s: t + s,node_list , "")
 
 def boolean_convert(bool):
     if bool is None:
@@ -93,24 +96,20 @@
                         if ens.tag.endswith("ensemble"):
                             contentnode["ensembles"].append(ens.tag)
     
-    
-            if len(annotations_nodes) > 0:
-                annotations = lxml.etree.SubElement(iri, "annotations")
+            annotations = lxml.etree.SubElement(iri, "annotations")
+            if len(annotations_nodes) > 0:                
                 for content in contentList:
                     if content.content_base.iri_id in annotations_nodes:
                         contentnode = annotations_nodes[content.content_base.iri_id]
                         if contentnode is not None:
                             if len(contentnode["ensembles"]) > 0:
-                                content = lxml.etree.SubElement(annotation, "content")
+                                content = lxml.etree.SubElement(annotations, "content")
                                 content.set("id", contentnode["id"])
                                 content.text = u""
                             else:
-                                content = lxml.etree.SubElement(annotation, "content")
+                                content = lxml.etree.SubElement(annotations, "content")
                                 content.set("id", contentnode["id"])
     
-            else:
-                annotations = lxml.etree.SubElement(iri, "annotations")
-    
     
         displays = lxml.etree.SubElement(iri, "displays")
         if len(contentList) > 0:
@@ -142,7 +141,7 @@
                 idas.set(u"idcut", startSegment["idcutting"])
                 idas.set(u"idseg", startSegment["idsegment"])
     
-        edits = lxml.etree.SubElement(iri, "edits")
+        lxml.etree.SubElement(iri, "edits")
         
         doc.write(file, pretty_print=True)
 
@@ -150,7 +149,7 @@
     def generateInit(self, url, method, search=None):
                 
         iri = lxml.etree.Element('iri')
-        impl = lxml.etree.ElementTree(iri)
+        lxml.etree.ElementTree(iri)
  
         elementFiles = lxml.etree.SubElement(iri, 'files')    
         elementInit = lxml.etree.SubElement(elementFiles, 'init')
@@ -167,8 +166,8 @@
         elementfile.set('pict', "")
         elementfile.set('extra', "")    
 
-        elementRecent = lxml.etree.SubElement(elementFiles, 'recent')
-        elementLibrary = lxml.etree.SubElement(elementFiles, 'library')
+        lxml.etree.SubElement(elementFiles, 'recent')
+        lxml.etree.SubElement(elementFiles, 'library')
     
         username = ''
         id = ''
@@ -221,7 +220,7 @@
         idsel = ""
 
     #node annotations
-    elementAnnotations = lxml.etree.SubElement(iri, 'annotations')
+    lxml.etree.SubElement(iri, 'annotations')
     
     #node displays
     elementDisplays = lxml.etree.SubElement(iri, 'displays')
@@ -259,7 +258,7 @@
             elementDecoupage.set('id', decoupage_id)
     
     #node edits
-    elementEdits = lxml.etree.SubElement(iri, 'edits')
+    lxml.etree.SubElement(iri, 'edits')
     
     #write dom in Project.ldt 
     project.ldt = lxml.etree.tostring(iri, pretty_print=True)
@@ -275,7 +274,6 @@
     new_project.changed_by = user.username
     new_project.state = 1
     
-    contentList = project.contents.all()
     
     """create xml"""
     
@@ -325,8 +323,8 @@
     meta_type.set(u'content', u'video')
 
     body = lxml.etree.SubElement(iri, 'body')
-    ensembles = lxml.etree.SubElement(body, 'ensembles')
-    links = lxml.etree.SubElement(body, 'links')
+    lxml.etree.SubElement(body, 'ensembles')
+    lxml.etree.SubElement(body, 'links')
 
     medias = lxml.etree.SubElement(body, 'medias')
 
@@ -340,9 +338,9 @@
 
     media_tool = lxml.etree.SubElement(medias, 'media')
     media_tool.set(u'id', u'tool')
-    tool = lxml.etree.SubElement(media_tool, 'tool')
+    lxml.etree.SubElement(media_tool, 'tool')
 
-    display = lxml.etree.SubElement(body, 'display')
+    lxml.etree.SubElement(body, 'display')
 
     doc.write(file, pretty_print=True)