degal/commands/main.py
changeset 66 322e5cd0cb1f
parent 48 20355dd2e61a
child 76 e22d9f699081
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/degal/commands/main.py	Fri Jun 05 23:00:38 2009 +0300
@@ -0,0 +1,53 @@
+from degal.commands import command
+from degal import templates
+
+def render_image (ctx, image) :
+    """
+        Render the thumbnails and .html for one image
+    """
+    
+    # log image path
+    ctx.log_debug("%s", image)
+
+    # render output
+    tpl = templates.master(ctx.gallery, image.title, image.html, 
+        templates.image_page(image)
+    )
+    
+    # write output
+    tpl.render_file(image.html)
+
+def render_folder (ctx, folder) :
+    """
+        Render the .html output for one folder, recursively
+    """
+
+    # log folder path
+    ctx.log_debug("%s", folder)
+
+    # render folder index
+    for page in xrange(folder.page_count) :
+        # output .html page
+        html_file = folder.html_file(page)
+        
+        # render template
+        tpl = templates.master(ctx.gallery, folder.title, html_file,
+            templates.folder_page(folder, page)
+        )
+
+        # write output
+        tpl.render_file(html_file)
+
+    # render images
+    for image in folder.images :
+        render_image(ctx, image)
+
+@command
+def main (ctx) :
+    """
+        Scan the gallery for new folders/images, and render updated ones
+    """
+
+    # render the gallery
+    render_folder(ctx, ctx.gallery)
+