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 |