Use another cache for posts content

This commit is contained in:
Grégory Soutadé 2013-01-06 18:28:03 +01:00
parent 6d747d8dfc
commit ede64026d6
3 changed files with 13 additions and 7 deletions

View File

@ -40,10 +40,11 @@ class DynastieGenerator:
report = '' report = ''
somethingWrote = False somethingWrote = False
def __init__(self, hash_posts=None): def __init__(self, hash_posts=None, hash_posts_content=None):
self.report = '' self.report = ''
self.somethingWrote = False self.somethingWrote = False
self.hash_posts = hash_posts self.hash_posts = hash_posts
self.hash_posts_content = hash_posts_content
def addReport(self, string, color=''): def addReport(self, string, color=''):
if color != '': if color != '':

View File

@ -17,8 +17,8 @@ class Index(DynastieGenerator):
dirname = '' dirname = ''
blog = None blog = None
def __init__(self, hash_posts=None): def __init__(self, hash_posts=None, hash_posts_content=None):
DynastieGenerator.__init__(self, hash_posts) DynastieGenerator.__init__(self, hash_posts, hash_posts_content)
self.hooks = {'posts' : self.createPosts, self.hooks = {'posts' : self.createPosts,
'title' : self.createTitle, 'title' : self.createTitle,
@ -127,9 +127,13 @@ class Index(DynastieGenerator):
self.addError('File does not exists ' + filename) self.addError('File does not exists ' + filename)
return None return None
f = open(filename, 'rb') if not filename in self.hash_posts_content:
post_content = f.read() f = open(filename, 'rb')
f.close() post_content = f.read()
f.close()
self.hash_posts_content[filename] = post_content
else:
post_content = self.hash_posts_content[filename]
while True: while True:
start = post_content.find('<dyn:code') start = post_content.find('<dyn:code')

View File

@ -150,13 +150,14 @@ class Blog(models.Model):
self.copytree(self.src_path, self.output_path) self.copytree(self.src_path, self.output_path)
generated = [] generated = []
hash_posts = {} hash_posts = {}
hash_posts_content = {}
for engine in self.engines: for engine in self.engines:
if not inspect.ismodule(engine): if not inspect.ismodule(engine):
continue continue
for name, obj in inspect.getmembers(engine): for name, obj in inspect.getmembers(engine):
if inspect.isclass(obj) and obj.__module__.startswith("dynastie.generators"): if inspect.isclass(obj) and obj.__module__.startswith("dynastie.generators"):
if obj.__module__ in generated: continue if obj.__module__ in generated: continue
e = obj(hash_posts) e = obj(hash_posts, hash_posts_content)
r = e.generate(self, self.src_path, self.output_path) r = e.generate(self, self.src_path, self.output_path)
generated.append(obj.__module__) generated.append(obj.__module__)
if not r is None: if not r is None: