Dynastie/generators/generator.py

66 lines
1.9 KiB
Python
Raw Normal View History

2012-07-18 11:30:54 +02:00
import os
import hashlib
from xml.dom import *
2012-07-15 18:21:26 +02:00
class DynastieGenerator:
2012-07-18 11:30:54 +02:00
URI = "http://indefero.soutade.fr/p/dynastie"
report = ''
def addReport(self, string, color=''):
if color != '':
self.report = self.report + '<span style="color:' + color + '">'
self.report = self.report + '<b>' + self.__class__.__name__ + '</b> : '
self.report = self.report + string
if color != '':
self.report = self.report + '</span>'
self.report = self.report + '<br/>\n'
def addWarning(self, string):
self.addReport(string, 'yellow')
def addError(self, string):
self.addReport(string, 'red')
2012-07-15 18:21:26 +02:00
def generate(self, blog, src, output):
return
2012-07-18 11:30:54 +02:00
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...')
return
os.unlink(filename)
self.addReport('Write ' + filename)
f = 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
2012-07-15 18:21:26 +02:00
2012-07-18 11:30:54 +02:00
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))