--- a/degal/commands/main.py Thu Jun 11 00:36:33 2009 +0300
+++ b/degal/commands/main.py Thu Jun 11 00:37:01 2009 +0300
@@ -5,7 +5,7 @@
"""
Render the thumbnails and .html for one image
"""
-
+
# log image path
ctx.log_info("%s", image)
@@ -17,15 +17,12 @@
# write output
tpl.render_file(image.html)
-def render_folder (ctx, folder) :
+def render_folder_page (ctx, folder) :
"""
- Render the .html output for one folder, recursively
+ Render the .html output for one folder
"""
- # log folder path
- ctx.log_info("%s", folder)
-
- # render folder index
+ # render each page separately
for page in xrange(folder.page_count) :
# output .html page
html_file = folder.html_file(page)
@@ -37,10 +34,33 @@
# write output
tpl.render_file(html_file)
+
- # render images
- for image in folder.images :
- render_image(ctx, image)
+def render_folder (ctx, folder) :
+ # index images that require updating
+ image_count = len(folder.images)
+ new_images = list(folder.index_images(for_update=(not ctx.config.force_update)))
+
+ if new_images or ctx.config.force_update:
+ # update folder index
+ render_folder_page(ctx, folder)
+
+ ctx.log_info("%s - render %d/%d images", folder, len(new_images), image_count)
+
+ # update images
+ for image in new_images :
+ # update thumbs
+ image.update()
+
+ # render output
+ render_image(ctx, image)
+
+ else :
+ ctx.log_info("%s - up to date", folder)
+
+ # index subfolders
+ for subfolder in folder.subfolders :
+ render_folder(ctx, subfolder)
@command
def main (ctx) :