web/ldt/ldt_utils/utils.py
changeset 54 24397932219d
parent 16 b3692a42ac79
child 57 3a3c15c462f8
equal deleted inserted replaced
53:1fcf0bd88ba3 54:24397932219d
     8 import urllib
     8 import urllib
     9 import xml.dom
     9 import xml.dom
    10 import xml.dom.minidom
    10 import xml.dom.minidom
    11 import xml.dom.ext
    11 import xml.dom.ext
    12 import xml.xpath
    12 import xml.xpath
    13 import os
       
    14 import os.path
       
    15 import datetime
    13 import datetime
       
    14 import Ft
    16 
    15 
    17 class LdtSearch(object):
    16 class LdtSearch(object):
    18 
    17 
    19     def query(self, field, query):
    18     def query(self, field, query):
    20         indexSearcher = lucene.IndexSearcher(STORE)
    19         indexSearcher = lucene.IndexSearcher(STORE)
   275     
   274     
   276     writer.startElement(u"head")
   275     writer.startElement(u"head")
   277     
   276     
   278     writer.simpleElement(u'meta', attributes={u'name':u'id', 'content':unicode(content.iri_id)})
   277     writer.simpleElement(u'meta', attributes={u'name':u'id', 'content':unicode(content.iri_id)})
   279     writer.simpleElement(u'meta', attributes={u'name':u'title', 'content':unicode(content.title)})
   278     writer.simpleElement(u'meta', attributes={u'name':u'title', 'content':unicode(content.title)})
       
   279     writer.simpleElement(u'meta', attributes={u'name':u'abstract', 'content':unicode(content.description)})
   280     writer.simpleElement(u'meta', attributes={u'name':u'author', 'content':unicode(username)})
   280     writer.simpleElement(u'meta', attributes={u'name':u'author', 'content':unicode(username)})
   281     writer.simpleElement(u'meta', attributes={u'name':u'contributor', 'content':unicode(username)})
   281     writer.simpleElement(u'meta', attributes={u'name':u'contributor', 'content':unicode(username)})
   282     writer.simpleElement(u'meta', attributes={u'name':u'date', 'content':unicode(datetime.date.today().isoformat())})
   282     writer.simpleElement(u'meta', attributes={u'name':u'date', 'content':unicode(datetime.date.today().isoformat())})
   283     writer.simpleElement(u'meta', attributes={u'name':u'copyright', 'content':u'IRI'})
   283     writer.simpleElement(u'meta', attributes={u'name':u'copyright', 'content':u'IRI'})
   284     writer.simpleElement(u'meta', attributes={u'name':u'type', 'content':u'video'})    
   284     writer.simpleElement(u'meta', attributes={u'name':u'type', 'content':u'video'})    
   292     
   292     
   293     writer.simpleElement(u'links')
   293     writer.simpleElement(u'links')
   294     writer.startElement(u"medias")
   294     writer.startElement(u"medias")
   295 
   295 
   296     writer.startElement(u"media", attributes={u'id':u'video'})
   296     writer.startElement(u"media", attributes={u'id':u'video'})
   297     writer.simpleElement(u'video', attributes={u'src':unicode(content.src),u'id':unicode(uuid.uuid1()),u'dur':unicode(content.duration),u'begin':u'0'})
   297     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'})
   298     writer.endElement(u"media")
   298     writer.endElement(u"media")
   299 
   299 
   300     writer.startElement(u"media", attributes={u'id':u'tool'})
   300     writer.startElement(u"media", attributes={u'id':u'tool'})
   301     writer.simpleElement(u'tool')
   301     writer.simpleElement(u'tool')
   302     writer.endElement(u"media")
   302     writer.endElement(u"media")
   310 
   310 
   311     
   311     
   312     writer.endElement(u"iri")
   312     writer.endElement(u"iri")
   313     writer.endDocument()
   313     writer.endDocument()
   314     
   314     
       
   315 def update_iri(filepath, content, username):
       
   316     
       
   317     # open xml
       
   318     doc = xml.dom.minidom.parse(filepath)
       
   319     doc = Ft.Xml.Domlette.ConvertDocument(doc) 
       
   320     
       
   321     con = xml.xpath.Context.Context(doc, 1, 1, None)
       
   322     res = xml.xpath.Evaluate("/iri/heqd/meta", context=con)
       
   323     # update meta
       
   324     
       
   325     for meta_node in res:
       
   326         meta_name = meta_node.getAttributeNS(None,"name")
       
   327         content_attr = None
       
   328         if meta_name == u'id':
       
   329             content_attr = unicode(content.iri_id)
       
   330         elif meta_name == u'title':
       
   331             content_attr = unicode(content.title)
       
   332         elif meta_name == u'abstract':
       
   333             content_attr = unicode(content.description)
       
   334         elif meta_name == u'contributor':
       
   335             content_attr = unicode(username)
       
   336         elif meta_name == u"date":
       
   337             content_attr = unicode(datetime.date.today().isoformat())
       
   338         if content_attr is not None:
       
   339             meta_node.setAttributeNS(None, u"content", content_attr)
       
   340 
       
   341     res = xml.xpath.Evaluate("/iri/body/medias/media[@id='video']/video", context=con)
       
   342     
       
   343     if len(res) > 0:
       
   344         video_node = res[0]
       
   345         video_node.setAttributeNS(None, u'src', unicode(content.src))
       
   346         video_node.setAttributeNS(None, u'dur', unicode(content.duration))
       
   347         video_node.setAttributeNS(None, u'id', unicode(content.iri_id))
       
   348     # update video
       
   349     
       
   350     f = open(filepath, "w")
       
   351     try:
       
   352         xml.dom.ext.Print(doc, stream=f)
       
   353     finally:
       
   354         f.close()