* Generates static pages * Output directory structure: YYYY = year, e.g. 2003 MM = month, e.g. 12 for Dec and 2 for Feb nnnn = Kodak photo index number For thumbs: /thumbs/YYYY/MM/t-filename.png For root index: /index.html Nested unorder list YYYY MM (p) MM (p) MM (p) MM (p) p is the number of images contained in the month directory For each folder with images in it: /YYYY/MM/index.html %s % (authorative-time) Relative directories, so they could be put on a CD or something. * Building a list If same file name is found md5sum should be run to double check. This could fail as the same image may exist in different locations however they have different rotations. Tar, tar.gz, tar.bz2 files should be opened for possible images. * Authorative time algorithm: Notice the filename has two important parts to it. It's directory, and it's index number (nnnn) appended to the filename. When I offload images from my camera, I typically create a directory and offload them all them into that directory. Filename lastmodification-time exif-time authorative-time last-time next-time a/DCP_1001 12/03 11/03 11/03 0 11/03 We choose authorative time as exif time as it's not the reset time, and another sanity check is that it's not greater than lastmodification-time. EXIF date might be incorrect, like the default (reset) year 2000 after the camera loses the current time due to removal of batteries. The next thing to look at is the modification time(lastmodification-time) of the image file on the filesystem. If that looks acceptable, then that could be the authorative time. Although this is strictly always incorrect, it is simply the time when the images were copied from the camera. Filename lastmodification-time exif-time authorative-time last-time next-time a/DCP_1002 12/03 01/00 12/03 11/03 01/04 a/DCP_1003 12/03 01/00 12/03 11/03 01/04 a/DCP_1004 12/03 01/00 12/03 11/03 01/04 a/DCP_1005 12/03 01/00 12/03 11/03 01/04 a/DCP_1006 12/03 01/00 12/03 11/03 01/04 b/DCP_1007 12/03 01/04 01/04 01/04 01/04 Exif time is the reset time in examples DCP_[1002-1006], hence it can't be authorative. lastmodification-time is not less than the previous pictures authorative-time(last-time), which is good. If this happens, that means that the previous authorative-time is wrong. This case must be checked. Algorithm needs to increment ahead until it finds the next reasonable exif time (next-time) in DCP_1007. If the lastmodification-time is more than last-time however less than next-time, lastmodification-time is chosen. If lastmodification-time is greater than next-time, then next-time (or last-time if in same folder?) should be chosen as the authorative time. Filename lastmodification-time exif-time authorative-time last-time next-time b/DCP_1008 02/04 01/00 01/04 01/04 05/04 All sorts of strange things could happen if the EXIF time being set incorrectly. The algorithm should do a pre-check to see the (non-reset/reasonable) EXIF times are incrementing with the filenames. If not they must be resolved by hand somehow. * Silly case However is the next-time and last-time differs a lot, AND in a different directory. Then perhaps the authorative-time should be set as some average of the two. Somehow time should be grouped by the directories that images are commonly stored in. I guess this falls under the strange case, where the authorative time really has to be set manually and fixed. Filename lastmodification-time exif-time authorative-time last-time next-time b/DCP_1008 02/04 01/00 01/04 01/04 05/04 c/DCP_1009 02/04 01/00 0?/04 01/04 05/04 d/DCP_1010 05/04 05/04 05/04 0?/04 05/04 REASONS FOR FAILURE: 0 No index 1 No exiftime