diff --git a/generate-html.py b/generate-html.py index 64dfed2..8035a3d 100644 --- a/generate-html.py +++ b/generate-html.py @@ -15,20 +15,39 @@ rawext = [".ARW", ".tif", ".tiff", ".TIF", ".TIFF"] def listfolder(folder: str): items: list[str] = os.listdir(folder) items.sort() - for item in items: - if item != "Galleries" and item != ".previews": - if os.path.isdir(os.path.join(folder, item)): - print(f'{item}
') - listfolder(os.path.join(folder, item)) - else: - if os.path.splitext(item)[1] in imgext: - print(f'{item}
') - for raw in rawext: - if os.path.exists(os.path.join(folder, os.path.splitext(item)[0] + raw)): - print(f'RAW
') + images: list[str] = [] + subfolders: list[str] = [] + + if not os.path.exists(os.path.join(root, ".previews", folder.removeprefix(root))): + os.mkdir(os.path.join(root, ".previews", folder.removeprefix(root))) + + with open(os.path.join(folder, "list.txt"), "w", encoding="utf-8") as f: + for item in items: + if item != "Galleries" and item != ".previews": + if os.path.isdir(os.path.join(folder, item)): + subfolders.extend([f'{item}
']) + listfolder(os.path.join(folder, item)) + else: + if os.path.splitext(item)[1] in imgext: + images.extend([f'{item}
']) + if not os.path.exists(os.path.join(root, ".previews", folder.removeprefix(root), item)): + # os.system(f'magick {os.path.join(folder, item)} -resize 1024x768! {os.path.join(root, ".previews", folder.removeprefix(root), item)}') + print(f'magick {os.path.join(folder, item)} -resize 1024x768! {os.path.join(root, ".previews", folder.removeprefix(root), item)}') + for raw in rawext: + if os.path.exists(os.path.join(folder, os.path.splitext(item)[0] + raw)): + images.extend([f'RAW
']) + for image in images: + f.write(image) + f.write("\n") + for subfolder in subfolders: + f.write(subfolder) + f.write("\n") + f.close() def main(): + global root + global webroot if not root.endswith("/"): root += "/" if not webroot.endswith("/"): @@ -36,5 +55,6 @@ def main(): listfolder(root) # @TODO: write actual html files (and css 🙄) + if __name__ == "__main__": main()