diff -r 06e691528710 -r 73753ea1dcef web/ldt/ldt_utils/utils.py --- 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()