## GENERAL * going forward into search page (and probably all POSTs) does not work don't render_template instead do a redirect to a GET of the new, or list? for del... files.py:@app.route("/view/", methods=["POST"]) job.py:@app.route("/jobs", methods=["GET", "POST"]) job.py:@app.route("/job/", methods=["GET","POST"]) files.py:@app.route("/fix_dups", methods=["POST"]) files.py:@app.route("/viewlist", methods=["POST"]) -- this will need a total rewrite for viewer to handle fullscreen across offset/size boundaries so fix that instead * optim to not run_ai_on_* for scan, needs to make sure last run_ai_on actually ran/worked - might have failed (or in my case was marked stale and I cancelled it) -- also the case for get file details though, need to make sure last one was completed * per file you could select an unknown face and add it as a ref img to an existing person, or make a new person and attach? * [DONE] order/ find face with largest size and at least show that as unmatched - could also try to check it vs. other faces, if it matches more than say 10? we offer it up as a required ref img, then cut that face (with margin) out and use it is a new ref image / person * on viewer: allow face to be used to create person, add to existing person, and allow 'ignore', mark as 'not a face', etc. -> all into DB - so need face 'treatment' -> could be matched via face_refimg_link, but also could be 'ignore' or 'not a face', in each case we could exclude those faces from matching for the future, and reporting on matches, etc. - context-menu with rects on a canvas https://stackoverflow.com/questions/31601393/create-context-menu-using-jquery-with-html-5-canvas - also allow joblog search from the viewer for that file... * delete folder * allow joblog search * in Fullscreen mode and next/prev dropped out of FS when calling /viewlist route -- only way to fix this, is for when we POST to viewlist, it returns json, and we never leave /view/X -- then we can stay on-page, and stay in FS and then just call ViewImageOrVide() GUI overhaul? * on a phone, the files.html page header is a mess "Oldest.." line is too large to fit on 1 line (make it a hamburger?) - searched for text overlaps buttons above and below - < 10 files > is subsequently not centered - the fodler/bin icons might be best below search then? (and on same line as XS/S, etc.) * when search, have a way to hide deleted files -> not sure where to put this on GUI, its so busy... * metadata at folder level with file level to add more richness - store in DB? or store in hidden file (or both)... IF it is outside the DB, then I can 'rebuild' the DB at anytime from scratch * dont allow me to stupidly move a folder to itself * get build process to create a random string for secret for PROD, otherwise use builtin for dev * deal with changing/adding/removing a path in settings * dup issues: * when we have lots of dups, sort the directories by alpha so its consistent when choosing * auto-detect has 0 choices to keep 0 files -- not sure what that was about really * comment your code -> only html files remaining * read that guys face matching / clustering / nearest neighbour examples, for a whole new AI capability https://www.pyimagesearch.com/2018/07/09/face-clustering-with-python/ * fix up logging in general * support animated gifs in html5 canvas * think about security - in job_mgr anywhere I can os.replace/remove NEED to protect, etc ## DB * Dir can have date in the DB, so we can do Oldest/Newest dirs in Folder view ### BACKEND * revisit SymlinkName() and make it simpler (see comment in shared.py) *** Need to use thread-safe sessions per Thread, half-assed version did not work Admin -> do I want to have admin roles/users? -> purge deleted files (and associated DB data) needs a dbox or privs ### AI * faces per file (need a threshold for too many? OR * consider size of bbox of face / 'high-quality' faces -- if face is too small in image, dont match it ### UI * viewer needs to allow toggle to scan_model (and prob. right-click on file... AI (with CNN) AI (with hog) - make the form-select AI_Model actually do the change (but need more mem on mara really) For AI / rescan: way to override per file: the model used [partial - UI done, need mem on mara] the threshold used? maybe on the per file you could select an unknown face and add it as a ref img to a existing person, or make a new person and attach? file details is sort of crap - only works on import path - probably better to have a different 'view', e.g. folders/flat/detailed timelineview? (I think maybe sunburst for large amounts of files, then maybe something more timeline-series for drilling in?) (vertical timeline, date has thumbnails (small) horizontally along a page, etc.? https://www.highcharts.com/docs/chart-and-series-types/timeline-series https://www.highcharts.com/demo/sunburst https://www.highcharts.com/demo/heatmap https://www.highcharts.com/demo/packed-bubble-split ### SORTER * exif processing? * location stuff - test a new photo from my camera out -- image is in dir, need to look at exifread output ### FUTURE: * can emby use nfo for images (for AI/tags?) -NO sadly