75 lines
3.6 KiB
Plaintext
75 lines
3.6 KiB
Plaintext
Test out file duplication bug (AddFile same name, diff dir)
|
|
so go back to empty DB, etc.
|
|
|
|
## DB
|
|
|
|
Need to think about...
|
|
file (image) -> has X faces, Y matches
|
|
X == Y (optim: dont scan again)
|
|
say X-Y == 1, then to optimise, we need to only check the missing
|
|
face... at the moment, the DB structure is not that clever...
|
|
(file_refimg_link --> file_refimg_link needs a face_num?)
|
|
|
|
### BACKEND
|
|
-- started on some basic optimisations (commit logs every 100 logs, not each log)
|
|
- with debugs: import = 04:11, getfiledetails== 0:35:35
|
|
- without debugs: import == 04:03, getfiledetails == 0:35:36 -- not a sig diff
|
|
- with exifread & debug: import == 04:26
|
|
|
|
* try again with walk to go through loop once quickly just to add up files,
|
|
* then start the import dir counting up / progress
|
|
|
|
*** Need to use thread-safe sessions per Thread, half-assed version did not work
|
|
|
|
need a manual button to restart it in the GUI,
|
|
(based on file-level optims, just run the job as new and it will optim over already done parts and continue)
|
|
|
|
Future:
|
|
Admin
|
|
-> reset face_flag
|
|
|
|
AI
|
|
-> rescan <dir> for <person> --> 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
|
|
|
|
Admin
|
|
-> delete old jobs / auto delete jobs older than ???
|
|
|
|
### UI
|
|
sorter...
|
|
need some way to multiselect images and then get them into a new "folder"
|
|
can we do drag and drop highlighting?
|
|
maybe we could even drag a series of images to a new folder and
|
|
then eventually "execute" the change?
|
|
|
|
#### this disables right-click, and tells you if shift is clicked, can do ctrl the same way
|
|
#### need to switch this to work for left-click, not right, and show highlight / remember which so we can do shift & control
|
|
$('.thumb').contextmenu( function(e) { console.log("Shift?:" + e.shiftKey ); return false; });
|
|
|
|
Will also need a 'real storage path'
|
|
one day allow scanning this too if we want (so we can AI that and search all photos)
|
|
|
|
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
|
|
|
|
### AI
|
|
* 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
|
|
* duplicate files - this sql finds them:
|
|
select d1.path_prefix, e1.name, f1.hash, d2.path_prefix, e2.name, f2.hash from entry e1, file f1, dir d1, entry_dir_link edl1, entry e2, file f2, dir d2, entry_dir_link edl2 where e1.id = f1.eid and e2.id = f2.eid and d1.eid = edl1.dir_eid and edl1.entry_id = e1.id and edl2.dir_eid = d2.eid and edl2.entry_id = e2.id and f1.hash = f2.hash and e1.id != e2.id order by f1.hash, f2.hash;
|
|
|
|
* date stuff
|
|
* exif processing?
|
|
* location stuff - test a new photo from my camera out
|
|
-- image is in dir, need to look at exifread output
|