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