--- 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)