Преглед изворни кода

Remove unused functions, add methods functionality

Oz N Tiram пре 9 година
родитељ
комит
b887332215
1 измењених фајлова са 30 додато и 43 уклоњено
  1. 30 43
      blogit2.py

+ 30 - 43
blogit2.py

@@ -147,20 +147,29 @@ class Tag(object):
 
         context = GLOBAL_TEMPLATE_CONTEXT.copy()
         context['tag'] = self
-        context['entries'] = self.entries
         context['entries'] = _sort_entries(self.entries)
-        destination = "%s/tags/%s" % (CONFIG['output_to'], self.slug)
-        template = jinja_env.get_template('tag_index.html')
-        html = template.render(context)
-        file = codecs.open("%s/index.html" % destination,
-                           'w', CONFIG['content_encoding'])
-        file.write(html)
-        file.close()
-        render_atom_feed(context['entries'],
-                         render_to="%s/atom.xml" % destination)
+        sorted_entries = _sort_entries(self.entries)
+        encoding = CONFIG['content_encoding']
+        render_to = "%s/tags/%s" % (CONFIG['output_to'], self.slug)
+
+        jobs = [{'tname': 'tag_index.html',
+                'output': codecs.open("%s/index.html" % render_to, 'w', encoding),
+                'entries': sorted_entries},
+                {'tname': 'atom.xml',
+                 'output': codecs.open("%s/atom.xml" % render_to, 'w', encoding),
+                 'entries': sorted_entries[:10]}
+                ]
+
+        for j in jobs:
+            template = jinja_env.get_template(j['tname'])
+            context['entries'] = j['entries']
+            html = template.render(context)
+            j['output'].write(html)
+            j['output'].close()
 
         return True
 
+
 class Entry(object):
 
     def __init__(self, path):
@@ -332,21 +341,6 @@ def _sort_entries(entries):
     return list(reversed(sorted(entries, key=operator.attrgetter('date'))))
 
 
-def render_index(entries):
-    """
-    this function renders the main page located at index.html
-    under oz123.github.com
-    """
-    context = GLOBAL_TEMPLATE_CONTEXT.copy()
-    context['entries'] = entries[:10]
-    template = jinja_env.get_template('entry_index.html')
-    html = template.render(context)
-    destination = codecs.open("%s/index.html" % CONFIG[
-                              'output_to'], 'w', CONFIG['content_encoding'])
-    destination.write(html)
-    destination.close()
-
-
 def render_archive(entries, render_to=None):
     """
     this function creates the archive page
@@ -365,18 +359,6 @@ def render_archive(entries, render_to=None):
     destination.close()
 
 
-def render_atom_feed(entries, render_to=None):
-    context = GLOBAL_TEMPLATE_CONTEXT.copy()
-    context['entries'] = entries[:10]
-    template = jinja_env.get_template('atom.xml')
-    html = template.render(context)
-    if not render_to:
-        render_to = "%s/atom.xml" % CONFIG['output_to']
-    destination = codecs.open(render_to, 'w', CONFIG['content_encoding'])
-    destination.write(html)
-    destination.close()
-
-
 def find_new_posts(posts_table):
     """
     Walk content dir, put each post in the database
@@ -400,16 +382,21 @@ def update_index():
     """find the last 10 entries in the database and create the main
     page.
     Each entry in has an eid, so we only get the last 10 eids.
+
+    This method also update the ATOM feed.
     """
     entries = _get_last_entries()
     context = GLOBAL_TEMPLATE_CONTEXT.copy()
     context['entries'] = entries
-    template = jinja_env.get_template('entry_index.html')
-    html = template.render(context)
-    destination = codecs.open("%s/index.html" % CONFIG[
-                              'output_to'], 'w', CONFIG['content_encoding'])
-    destination.write(html)
-    destination.close()
+
+    for name, out in {'entry_index.html': 'index.html',
+                      'atom.xml': 'atom.xml'}.items():
+        template = jinja_env.get_template(name)
+        html = template.render(context)
+        destination = codecs.open("%s/%s" % (CONFIG['output_to'], out),
+                                  'w', CONFIG['content_encoding'])
+        destination.write(html)
+        destination.close()
 
 
 def new_build():