120 lines
6.3 KiB
Plaintext
120 lines
6.3 KiB
Plaintext
## GENERAL
|
|
* for below.. make Options( request )
|
|
- remove all "Options()" that are not set by a user-choice in the F/E and just make sure new "Options" sets all defaults as needed
|
|
-- viewlist can work out new view_eids server side, and pass them back as json data
|
|
- can consider an optim-- new_view page makes calls to viewlist to ADD json data only, so only trigger a new "viewlist" if we dont have data for that part of the eids
|
|
|
|
* 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...
|
|
* need to catch "option changes" as POSTs to make them GETs somehow...
|
|
(search, files_ip POST change trigger issue)
|
|
|
|
[DONE] files.py:@app.route("/view/<id>", 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
|
|
job.py:@app.route("/jobs", methods=["GET", "POST"])
|
|
job.py:@app.route("/job/<id>", methods=["GET","POST"])
|
|
-- these need to store 'job prefs' somewhere...
|
|
files.py:@app.route("/fix_dups", methods=["POST"])
|
|
|
|
* 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
|
|
|