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 = ''
somethingWrote = False
def __init__(self, hash_posts=None):
def __init__(self, hash_posts=None, hash_posts_content=None):
self.report = ''
self.somethingWrote = False
self.hash_posts = hash_posts
self.hash_posts_content = hash_posts_content
def addReport(self, string, color=''):
if color != '':

View File

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

View File

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