diff -r d9a981cc0806 -r a7a18893730d degal/commands/main.py --- 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) :