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
Romain
bfdebe2c0f
Smarter fuzzy comparison for the “snapshot” integration test
2017-11-24 21:56:45 +11:00
Romain
19a28a08c0
Basic production Dockerfile (doesn’t run the tests yet)
2017-11-24 21:55:26 +11:00
Romain
29654444cd
Move screenshots and banners to subfolder
2017-11-24 21:52:10 +11:00
Romain
30f203af4b
Render progress using Listr + split the main process into "steps" which are easier to test
2017-11-06 00:02:42 +11:00
Romain
179cc57644
Update “debug” package to fix insecure vulnerability warning
2017-10-12 20:18:11 +11:00
Romain
56235266bb
Stop supporting Node v4 to enable newer ES6 syntax
2017-10-12 20:13:27 +11:00
Romain
97a6e348cc
Update all dependencies
2017-10-12 20:12:50 +11:00
Romain
6e2f7e2ffb
README - clarify Docker usage
2017-09-12 12:36:27 +10:00
Romain
35f9ee96b6
Update many dependencies to latest
2017-08-15 19:08:53 +10:00
Romain
011902c528
Fix integration test data for #71 : set movie metadata to expected date
2017-08-15 19:08:40 +10:00
Romain
b92724472e
Fix #71 : read both Quicktime CreationDate and CreateDate
2017-08-13 21:28:00 +10:00
Romain
0b27d37881
Read metadata from Picasa.ini if present
2017-08-07 22:53:04 +10:00
Romain
3e64d2ab38
Create a Metadata model attached to input files
...
- for easier unit testing
- to enable input filtering (e.g. only include photos with this keyword)
2017-08-07 22:52:26 +10:00
Romain
5074fb267f
2.1.0
2017-07-23 21:40:23 +10:00
Romain
3a6b2c9da3
Ignore files from the final npm package
2017-07-23 21:40:14 +10:00
Romain
d24c5110cc
Fix #70 : files in the root of the source folder get added to the root gallery (index.html)
...
Before, they were added to an album called “.” which didn’t look good,
and the corresponding “.html” file (no base name) caused issues on web servers
2017-07-22 21:25:43 +10:00
Romain
ac67a08da9
Use new “downsize” package that was split out (to make testing edge cases easier)
2017-07-15 20:22:46 +10:00
Romain
afd3915778
Add full integration test: compare galleries to previously generated snapshot
2017-06-14 17:44:28 +10:00
Romain
dc40fbac09
Fix inferring data from the filename: was getting confused if the folder contained digits
2017-06-14 17:43:38 +10:00
Romain
80f7a88c35
Fix #61 : new options to avoid copying original photos to the output folder
2017-06-03 21:25:41 +10:00
Romain
92706276a0
Fix Github URL in package.json
2017-05-29 17:34:33 +10:00
Romain
e8a9fc66b4
Github contribution templates
2017-05-29 17:34:19 +10:00
Romain
96cd92aa46
2.0.1
2017-05-25 21:44:27 +10:00
Romain
6fde22e9d1
Fix #62 : crash prevented the error message from showing when migrating from V1 to V2
2017-05-24 17:49:43 +10:00
Romain
1df4ee48f3
Fix #63 : run ffmpeg using <spawn> and don't buffer stdout/stderr
2017-04-03 17:33:27 +10:00
Romain
3531f1e533
Try to infer dates from the filename if there is no "date" metadata
2017-04-01 00:07:04 +11:00
Romain
8b66a16134
2.0.0
2017-03-20 20:51:21 +11:00
Romain
a7ad8dc9fc
Fix reading the original creation date of QuickTime and H264 movies
2017-03-19 00:12:21 +11:00
Romain
b35870a9e5
Fix require-lint to ignore video.js (not referenced)
2017-03-19 00:01:50 +11:00
Romain
6cdc99525c
Fix video poster aspect ratio: simply use the built-in VideoJS poster
2017-03-16 00:13:01 +11:00
Romain
9a24acc6df
Fix copying of --original-photos
2017-03-15 23:56:37 +11:00
Romain
91e55daf9b
Upgrade VideoJS to 5.17
2017-03-11 10:05:27 +11:00
Romain
9c78c1cd79
Rename album sorting function for clarity (they don't take a raw File, but a Media object)
2017-03-09 23:22:12 +11:00
Romain
fb77791c80
Fix #33 : new --cleanup option to remove unused generated thumbnails/media
2017-03-09 22:40:41 +11:00
Romain
9dcebe6280
Group CLI options into 3 categories to make them more digestible
2017-03-08 22:18:05 +11:00
Romain
ee1186c1f4
Move theme/custom CSS to be loaded last to help with #57
...
Now, you can add lightgallery / videojs styles with "--css"
and they apply on top the the defaults (instead of being overridden)
2017-03-08 22:00:57 +11:00
Romain
50f9a84eff
Remove deprecated --sort-folders option
2017-03-08 21:59:19 +11:00
Romain
23ddee4945
Rename repository to "thumbsup" as the language is irrelevant to consumers
2017-03-08 21:47:06 +11:00
Romain
39ee2adf05
Read XMP ratings
2017-03-08 21:41:37 +11:00
Romain
449ee0b180
Read the caption from all standard EXIF/IPTC/XMP tags (issue #24 )
2017-03-08 21:40:09 +11:00
Romain
4ccb10baba
Fix image "alt" tags and video poster URL (mosaic theme)
2017-03-08 20:12:41 +11:00
Romain
7e73e6a10b
Refactor album mapping code to be much simpler based on (media) => string
2017-03-08 20:12:05 +11:00
Romain
07ec7702cd
Fix #f7451db when counting available CPUs (missing array length)
2017-03-07 22:13:46 +11:00
Romain
5d82cabd1c
Run full CI build locally as part of "npm test" to avoid surprises
2017-03-07 17:44:17 +11:00
Romain
f7451db36e
Run as many photo/video tasks as CPUs
2017-03-07 17:42:42 +11:00
Romain
59b9bdbbd2
Use <standard> for code style, which removed lots of unused variables/requires
2017-03-06 23:46:46 +11:00
Romain
e71e5d4207
Replace custom "make" DSL with the output task list ( #60 )
2017-03-06 23:27:44 +11:00
Romain
e719bf15b1
Single source of truth for input/outputs + view model for display ( #58 )
2017-03-06 22:16:36 +11:00
Romain
631aee6a4d
2.0.0-alpha.4
2017-03-01 22:01:35 +11:00