degal/commands/main.py
changeset 94 676c1d201cfe
parent 87 a7a18893730d
child 101 698dc68a985d
equal deleted inserted replaced
93:d3872a673fbe 94:676c1d201cfe
     1 from degal.command import command
     1 from degal.command import command
     2 from degal import templates
     2 from degal import templates
     3 
     3 
     4 def render_image (ctx, image) :
     4 def render_image_html (ctx, image) :
     5     """
     5     """
     6         Render the thumbnails and .html for one image
     6         Render the thumbnails and .html for one image
     7     """
     7     """
     8 
       
     9     # log image path
       
    10     ctx.log_info("%s", image)
       
    11 
     8 
    12     # render output
     9     # render output
    13     tpl = templates.master(ctx.gallery, image.title, image.html, 
    10     tpl = templates.master(ctx.gallery, image.title, image.html, 
    14         templates.image_page(image)
    11         templates.image_page(image)
    15     )
    12     )
    16     
    13     
    17     # write output
    14     # write output
    18     tpl.render_file(image.html)
    15     tpl.render_file(image.html)
       
    16 
       
    17 def render_image_thumbs (image) :
       
    18     """
       
    19         Render the thubmnails for the given image
       
    20     """
       
    21 
       
    22     image.update()
       
    23 
       
    24 def render_folder_images (ctx, images) :
       
    25     """
       
    26         Render the given series of images
       
    27     """
       
    28     
       
    29     # render them in parallel as required
       
    30     for image in images :
       
    31         # log image path
       
    32         ctx.log_info("%s", image)
       
    33         
       
    34         # render output thumbs
       
    35         render_image_thumbs(image)
       
    36         
       
    37         # render HTML
       
    38         render_image_html(ctx, image)
    19 
    39 
    20 def render_folder_page (ctx, folder) :
    40 def render_folder_page (ctx, folder) :
    21     """
    41     """
    22         Render the .html output for one folder
    42         Render the .html output for one folder
    23     """
    43     """
    32             templates.folder_page(folder, page)
    52             templates.folder_page(folder, page)
    33         )
    53         )
    34 
    54 
    35         # write output
    55         # write output
    36         tpl.render_file(html_file)
    56         tpl.render_file(html_file)
    37     
       
    38 
    57 
    39 def render_folder (ctx, folder) :
    58 def render_folder (ctx, folder) :
       
    59     """
       
    60         Render the HTML/images for this folder if needed, and recrurse into subfolders.
       
    61     """
       
    62 
    40     # index images that require updating
    63     # index images that require updating
    41     image_count = len(folder.images)
    64     image_count = len(folder.images)
    42     new_images = list(folder.index_images(for_update=(not ctx.config.force_update)))
    65     new_images = list(folder.index_images(for_update=(not ctx.config.force_update)))
    43     
    66     
    44     if new_images or ctx.config.force_update:
    67     if new_images or ctx.config.force_update:
    46         render_folder_page(ctx, folder)
    69         render_folder_page(ctx, folder)
    47         
    70         
    48         ctx.log_info("%s - render %d/%d images", folder, len(new_images), image_count)
    71         ctx.log_info("%s - render %d/%d images", folder, len(new_images), image_count)
    49 
    72 
    50         # update images
    73         # update images
    51         for image in new_images :
    74         render_folder_images(ctx, new_images)
    52             # update thumbs
       
    53             image.update()
       
    54             
       
    55             # render output
       
    56             render_image(ctx, image)
       
    57     
    75     
    58     else :
    76     else :
    59         ctx.log_info("%s - up to date", folder)
    77         ctx.log_info("%s - up to date", folder)
    60 
    78 
    61     # index subfolders
    79     # index subfolders