2 # -*- coding: utf-8 -*-
4 from dateutil.tz import *
5 from datetime import datetime
6 from dateutil.parser import parse
11 from lxml import etree
12 from lxml.builder import ElementMaker
16 from treecutter import constants as const
19 def __init__(self, count):
22 for dirname, dirnames, filenames in os.walk('.'):
23 for filename in filenames:
24 if fnmatch.fnmatch(filename, '*index.??.xml'):
25 file_ = os.path.join(dirname,filename)
26 doc = etree.parse(file_)
28 u'/db:article/db:info/db:mediaobject/db:imageobject/db:imagedata',
29 namespaces=const.XPATH):
30 self.events.append(Doc(doc,dirname))
33 db = ElementMaker(namespace=const.DB_NS, nsmap=const.NSMAP)
34 doclist = db.itemizedlist(db.title(u'Latest Projects'))
35 for ev in self.events:
36 doclist.append(ev.db_xml())
41 def __init__(self,doc,link):
42 self.pubdate = doc.xpath(u'/db:article/db:info/db:pubdate',
43 namespaces=const.XPATH)
44 self.fn = doc.xpath(u'/db:article/db:info/db:author/db:personname/db:firstname',
45 namespaces=const.XPATH)
46 self.ln = doc.xpath(u'/db:article/db:info/db:author/db:personname/db:surname',
47 namespaces=const.XPATH)
48 self.title = doc.xpath(u'/db:article/db:info/db:title',
49 namespaces=const.XPATH)
50 self.photo = doc.xpath(
51 u'/db:article/db:info/db:mediaobject/db:imageobject/db:imagedata',
52 namespaces=const.XPATH)
56 db = ElementMaker(namespace=const.DB_NS, nsmap=const.NSMAP)
58 db.link(db.inlinemediaobject(
60 db.imagedata(fileref=self.link+'/'+self.photo[0].attrib['fileref'],
61 width="198", depth="111"))),
62 **{const.XLINK+"href": self.link}),
63 db.para("Project: "+self.title[0].text,role="project"),
64 db.para("Author: "+self.fn[0].text+" "+self.ln[0].text,role="author"),
65 db.link("Read Details",**{const.XLINK+"href": self.link})
69 if __name__ == "__main__":
70 for arg in sys.argv[1:]:
77 latest = Latest(argument)
78 exml = latest.db_xml()
79 sys.stdout.write(etree.tostring(exml,encoding='UTF-8',pretty_print=False))