Add a cache for post reading during blog generation
This commit is contained in:
		| @@ -14,7 +14,6 @@ class StrictUTF8Writer(codecs.StreamWriter): | ||||
|  | ||||
|     def __init__(self): | ||||
|         self.value = u'' | ||||
|         pass | ||||
|  | ||||
|     def write(self, object): | ||||
|         object = object.replace('<', '<') | ||||
| @@ -41,9 +40,10 @@ class DynastieGenerator: | ||||
|     report = '' | ||||
|     somethingWrote = False | ||||
|  | ||||
|     def __init__(self): | ||||
|     def __init__(self, hash_posts=None): | ||||
|         self.report = '' | ||||
|         self.somethingWrote = False | ||||
|         self.hash_posts = hash_posts | ||||
|  | ||||
|     def addReport(self, string, color=''): | ||||
|         if color != '': | ||||
|   | ||||
| @@ -98,9 +98,13 @@ class Index(DynastieGenerator): | ||||
|             self.addError('File does not exists ' + filename) | ||||
|             return | ||||
|  | ||||
|         f = open(filename, 'rb') | ||||
|         post_content = f.read() | ||||
|         f.close() | ||||
|         if self.hash_posts is None or not filename in self.hash_posts: | ||||
|             f = open(filename, 'rb') | ||||
|             post_content = f.read() | ||||
|             f.close() | ||||
|             self.hash_posts[filename] = post_content | ||||
|         else: | ||||
|             post_content = self.hash_posts[filename] | ||||
|  | ||||
|         while True: | ||||
|             start = post_content.find('<dyn:code') | ||||
| @@ -310,18 +314,18 @@ class Index(DynastieGenerator): | ||||
|         if not directory is None and not os.path.exists(output + self.dirname): | ||||
|             os.mkdir(output + self.dirname) | ||||
|  | ||||
|         filename = self.dirname + self.filename + '.html' | ||||
|         filename = self.dirname + '/' + self.filename + '.html' | ||||
|  | ||||
|         while self.cur_page <= self.nb_pages: | ||||
|             #print 'Generate ' + filename | ||||
|             nodes = dom.getElementsByTagName("*") | ||||
|             nodes[0] = self.parse(src, self.hooks, posts, dom, nodes[0]) | ||||
|             self.writeIfNotTheSame(output + '/' + filename, nodes[0]) | ||||
|             self.writeIfNotTheSame(output + filename, nodes[0]) | ||||
|             self.cur_page = self.cur_page + 1 | ||||
|             filename = self.dirname + self.filename + str(self.cur_page) + '.html' | ||||
|             filename = self.dirname + '/' + self.filename + str(self.cur_page) + '.html' | ||||
|             dom = parse(src + '/_%s.html' % name) | ||||
|  | ||||
|         filename = output + '/' + filename | ||||
|         filename = output + filename | ||||
|  | ||||
|         while os.path.exists(filename): | ||||
|             self.addReport('Removing unused ' + filename) | ||||
| @@ -331,7 +335,8 @@ class Index(DynastieGenerator): | ||||
|                 self.addReport('Removing unused ' + filename) | ||||
|                 os.unlink(filename) | ||||
|             self.cur_page = self.cur_page + 1 | ||||
|             filename = output + '/' + self.filename + str(self.cur_page) + '.html' | ||||
|             filename = self.dirname + '/' + self.filename + str(self.cur_page) + '.html' | ||||
|             filename = output + filename | ||||
|  | ||||
|     def generate(self, blog, src, output): | ||||
|         from dynastie.models import Post, Blog | ||||
|   | ||||
		Reference in New Issue
	
	Block a user