web/ldt/ldt_utils/utils.py
changeset 41 73753ea1dcef
parent 16 b3692a42ac79
child 57 3a3c15c462f8
--- a/web/ldt/ldt_utils/utils.py	Mon Jun 14 15:23:07 2010 +0200
+++ b/web/ldt/ldt_utils/utils.py	Tue Jun 15 00:25:30 2010 +0200
@@ -10,9 +10,8 @@
 import xml.dom.minidom
 import xml.dom.ext
 import xml.xpath
-import os
-import os.path
 import datetime
+import Ft
 
 class LdtSearch(object):
 
@@ -277,6 +276,7 @@
     
     writer.simpleElement(u'meta', attributes={u'name':u'id', 'content':unicode(content.iri_id)})
     writer.simpleElement(u'meta', attributes={u'name':u'title', 'content':unicode(content.title)})
+    writer.simpleElement(u'meta', attributes={u'name':u'abstract', 'content':unicode(content.description)})
     writer.simpleElement(u'meta', attributes={u'name':u'author', 'content':unicode(username)})
     writer.simpleElement(u'meta', attributes={u'name':u'contributor', 'content':unicode(username)})
     writer.simpleElement(u'meta', attributes={u'name':u'date', 'content':unicode(datetime.date.today().isoformat())})
@@ -294,7 +294,7 @@
     writer.startElement(u"medias")
 
     writer.startElement(u"media", attributes={u'id':u'video'})
-    writer.simpleElement(u'video', attributes={u'src':unicode(content.src),u'id':unicode(uuid.uuid1()),u'dur':unicode(content.duration),u'begin':u'0'})
+    writer.simpleElement(u'video', attributes={u'src':unicode(content.src),u'id':unicode(content.iri_id),u'dur':unicode(content.duration),u'begin':u'0'})
     writer.endElement(u"media")
 
     writer.startElement(u"media", attributes={u'id':u'tool'})
@@ -312,3 +312,43 @@
     writer.endElement(u"iri")
     writer.endDocument()
     
+def update_iri(filepath, content, username):
+    
+    # open xml
+    doc = xml.dom.minidom.parse(filepath)
+    doc = Ft.Xml.Domlette.ConvertDocument(doc) 
+    
+    con = xml.xpath.Context.Context(doc, 1, 1, None)
+    res = xml.xpath.Evaluate("/iri/heqd/meta", context=con)
+    # update meta
+    
+    for meta_node in res:
+        meta_name = meta_node.getAttributeNS(None,"name")
+        content_attr = None
+        if meta_name == u'id':
+            content_attr = unicode(content.iri_id)
+        elif meta_name == u'title':
+            content_attr = unicode(content.title)
+        elif meta_name == u'abstract':
+            content_attr = unicode(content.description)
+        elif meta_name == u'contributor':
+            content_attr = unicode(username)
+        elif meta_name == u"date":
+            content_attr = unicode(datetime.date.today().isoformat())
+        if content_attr is not None:
+            meta_node.setAttributeNS(None, u"content", content_attr)
+
+    res = xml.xpath.Evaluate("/iri/body/medias/media[@id='video']/video", context=con)
+    
+    if len(res) > 0:
+        video_node = res[0]
+        video_node.setAttributeNS(None, u'src', unicode(content.src))
+        video_node.setAttributeNS(None, u'dur', unicode(content.duration))
+        video_node.setAttributeNS(None, u'id', unicode(content.iri_id))
+    # update video
+    
+    f = open(filepath, "w")
+    try:
+        xml.dom.ext.Print(doc, stream=f)
+    finally:
+        f.close()