import os import hashlib import gzip from xml.dom import * class DynastieGenerator: URI = "http://indefero.soutade.fr/p/dynastie" report = '' def __init__(self): self.report = '' def addReport(self, string, color=''): if color != '': self.report = self.report + '' self.report = self.report + '' + self.__class__.__name__ + ' : ' self.report = self.report + string if color != '': self.report = self.report + '' self.report = self.report + '
\n' def addWarning(self, string): self.addReport(string, 'yellow') def addError(self, string): self.addReport(string, 'red') def generate(self, blog, src, output): return def writeIfNotTheSame(self, filename, content): if os.path.exists(filename): src_md5 = hashlib.md5() f = open(filename,'rb') src_md5.update(f.read()) f.close() dst_md5 = hashlib.md5() dst_md5.update(content) if src_md5.digest() == dst_md5.digest(): self.addReport(filename + ' regenerated with the same content, skipping...') filename = filename + '.gz' if not os.path.exists(filename): self.addReport(filename + ' was not previously compressed') f = gzip.open(filename, 'wb') f.write(content) f.close() return os.unlink(filename) self.addReport('Write ' + filename) f = open(filename,'wb') f.write(content) f.close() filename = filename + '.gz' self.addReport('Compressing it ' + filename) f = gzip.open(filename, 'wb') f.write(content) f.close() def createElement(self, dom, name, content): div = dom.createElement('div') div.setAttribute('class', name) div.appendChild(dom.createTextNode(content)) return div def simpleTransform(self, values, dom, elem, root): for node in root.childNodes: if node.prefix == 'dyn': if node.localName in values: new_elem = self.createElement(dom, node.localName, values[node.localName]) elem.appendChild(new_elem) else: elem.appendChild(node.cloneNode(True))