2
0
mirror of https://github.com/thumbsup/thumbsup synced 2024-11-15 18:12:46 +00:00
Commit Graph

14 Commits

Author SHA1 Message Date
Romain
34b957fb7e fix: supports nested folders for --include (fixes #332) 2023-04-03 23:02:33 +02:00
Romain
8cb7a3596b chore: upgrade to latest version of StandardJS 2023-03-21 21:39:52 +00:00
Romain
293cbf8469 test: make all tests run on Linux + Windows 2021-03-03 23:19:36 +01:00
Romain
9bda0a4835 feat(database): new include/exclude arguments to filter the input folder 2019-01-23 22:48:54 +01:00
Romain
ec6fbf9b0a test(database): more unit tests for file globbing patterns 2019-01-08 21:53:20 +01:00
Romain
f30eddb6dd feat(options): new flags to selectively include photos / videos / raw photos
fixes #128
2019-01-08 21:45:02 +01:00
Felix Eckhofer
81a85004c2 Fix behavior for non-traversable directories (#108)
fix(index): Continue on errors during find

This ensures the gallery is created even when some files are
inaccessible (for example due to invalid names or file permissions).

Requires running the test in Docker as non-root to allow file access test
2018-06-12 22:58:45 +02:00
Romain
be0ee25c64 test(index): don’t run the invalid filename test on macOS 2018-06-11 23:51:33 +02:00
Felix Eckhofer
124d1857b1 test(index): Add test for invalid filename behavior 2018-06-09 23:51:18 +02:00
Romain
81ee517062 feat(index): ignore files in a root #recycle folder (Synology recycle bin) 2017-12-10 23:34:32 +11:00
Romain
2a0a8d6631 Upgrade mock-fs to support Node 8 (includes dynamic require workaround) 2017-11-26 22:47:51 +11:00
Romain
cbf8a1f3b4 Don’t index media from Synology thumbnail folders (@eaDir) nor folders starting with “.” 2017-11-26 22:32:03 +11:00
Romain
ac520d40ad Fix case insensitive glob + add unit tests for globbing 2017-11-26 21:21:15 +11:00
Romain
24b2f9bd7c Major optimisations: SQLite index + faster disk glob + new exiftool streaming
1. Move from a JSON index to a SQLite database.
  - This allows the indexing to be interrupted & resumed
  - Updating the index consumes less RAM than loading / saving an entire JSON object
  - Loading the index consumes less RAM since it can be streamed, only exacting the properties we need every time (instead of loading all EXIF data in memory, only to discard most of it later)
  - These make a big difference when processing 10,000+ photos

2. Switch from <glob> to a manual <readdir>
  - Glob would take several hundred or GB of RAM when asked to find several thousand files
  - Manual approach with <micromatch> library does the same thing in a fraction of the time / memory usage

3. Exiftool optimisations
  - Run 1 exiftool process per CPU, still in batch mode (divide all files to be read into 1 bucket per CPU)
  - Stream the exiftool output instead of buffering it in memory
2017-11-24 22:08:59 +11:00