### DB ### BACKEND *** Need to use thread-safe sessions per Thread, half-assed version did not work * create A WalkTree( dir, func ) that calls func(file) per file ... for use * in AI, but also maybe gen hash, etc. * need a "batch" processing system that uses ionice to minimise load on mara and is threaded and used DB to interact with gunicorn'd pa * pa_job_manager, needs ai code * needs broad jobs to: DONE: find files in {import_dir & storage_dir} DONE: calc thumbs/hashes { " } run AI against { " } move files from import_dir to appropriate sub_dir in storage_dir (list will come from pa web) NEW_FILE -> add, has_unidentified_face ?has_face?, AI_SCAN: id date of scan version of code? settings used AI_SCAN_FILE_LINK id to link to AI_scan refimg used/found When AI kicks in, it processes per person per DIR, only compares to an image if it has_unidentified_face Admin -> reset face_flag AI -> rescan for --> can do this on new image only (optimised to only scan has_unidentified_face)... BUT if you change thresholds on AI, or we get a new/better one some day, then it can all images with faces, or if we 'reset face_flag' rescan all images TODO: Handle file deletions from file system (remove dangling DIR/FILE combos) -- also when moving to storage_dir, need to reset DIR, but keep FILE data ### UI ### AI * store reference images (UI allows this now) * check images * allow for threshold/settings to be tweaked from the GUI - it would be good to then say, just run the scanner against this image or maybe this DIR, to see how it IDs ppl ### SORTER * date stuff * exif processing? * location stuff - test a new photo from my camera out