Commit Graph

107 Commits (ba7201512439c5712ab448036b85dc1bcde75069)

Author SHA1 Message Date
Romain ba72015124 chore(build): use a whitelist for the content of npm publish 6 years ago
Romain 83831274ff refactor(themes): remove themes from core + use the new extracted modules 6 years ago
Romain bf60ae4677 refactor(components): bring ListrWorkQueue into this repo to simplify the build process
- This component was not published to the rpm registry anyway
- We depended on the repo’s master branch which can break things for everyone
- Its repo was not getting much attention which meant
  * no tests, no coverage report
  * no linting
  * no package linting (e.g. had 2 dependencies that weren’t actually used)

It will be simpler to manage this way
6 years ago
Romain 00dac76983 test(exiftool): add tests for batch exiftool streaming 6 years ago
Romain cc7abdf0ac 2.4.0 6 years ago
Romain 3fa8867757 test(all): add unit tests for theme + cleanup logic 6 years ago
Romain 72a23807f1 chore(build): require all source files in the tests so the coverage report shows untested files 6 years ago
Romain 8bbe1186c5 fix(core): custom album mappers using file:// can use a relative path 6 years ago
Romain 0adef54dc8 feat(core): add support for static and animated GIFs
GraphicsMagick can’t process animated GIFs well unless all frames are coalesced, which creates very large files.
This means there is a new dependency on Gifsicle which is very good at working with animated GIFs.

- Thumbnails are still processed through GraphicsMagick (more options, e.g. centre-crop)
- Large previews of animated GIFs go through Gifsicle

The startup checks are updated to check for the Gifsicle binary.

Fixes #96.
6 years ago
Romain 7edf3bbf15 refactor(cli): use package to render boxes in the console output
This avoids having to figure out the length of each line manually.
6 years ago
Romain 03a9c9a319 refactor: themes are now standalone folders, to prepare for external loading
Every theme is made of { Handlebars + Less + Partials + Helpers + Public }
6 years ago
Romain 36d935a787 feat(core): new option to add watermarks to the gallery
Watermarks only apply to large images, not thumbnails.
6 years ago
Romain 9cef1dd532 2.3.1 6 years ago
Romain dd282f92d4 chore(dependencies): update all dependencies to the latest version 6 years ago
Romain b54cfd3cad 2.3.0 6 years ago
Romain 8f76013539 fix(dependencies) Upgrade downsize for the width/height mixup
The end behaviour stays the same since `--large-size`
always referred to the image height in the docs.
6 years ago
Romain a5a75b81ad fix(cli): show an error on startup if one of the binary dependencies is missing
Closes #95
6 years ago
Romain 2c2d9ce43f 2.2.1 7 years ago
Romain 2f8a15c058 fix(resize): upgrade `downsize` to fix Infinity% when reporting video progress 7 years ago
Romain 78ae865b75 2.2.0 7 years ago
Romain 7a9c5f4b08 fix(dependencies): upgrade chalk to latest major version v1 -> v2 7 years ago
Romain 0686ce3b37 fix(dependencies): upgrade dependencies to latest 7 years ago
Romain d0bbf94b1c fix(index): don’t crash when trying to parse exiftool output for a badly encoded file 7 years ago
Romain a2042f3128 Fix logging option for non-TTY + highlight URL in welcome / error messages 7 years ago
Romain 06ecd2edad Add usage reporting with Google Analytics + greeting/error messages
This will help understand usage patterns to know what to focus on, e.g.
- are many people using thumbsup on Windows?
- are there many galleries with > 10,000 photos?
7 years ago
Romain 067238c8e4 2.2.0-alpha.3 7 years ago
Romain 0b8eb5bbd9 2.2.0-alpha.2 7 years ago
Romain d19a230a6c Cleanup unused code 7 years ago
Romain e9e5f32970 Add test coverage + clean up build scripts 7 years ago
Romain 2a0a8d6631 Upgrade mock-fs to support Node 8 (includes dynamic require workaround) 7 years ago
Romain cbf8a1f3b4 Don’t index media from Synology thumbnail folders (@eaDir) nor folders starting with “.” 7 years ago
Romain ac520d40ad Fix case insensitive glob + add unit tests for globbing 7 years ago
Romain d66b28b12c 2.2.0-alpha.1 7 years ago
Romain 870b60de17 Simplify test scripts & document them in CONTRIBUTING.md 7 years ago
Romain 208f0f0212 Run full integration tests inside Docker. Travis runs unit + integration. 7 years ago
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
7 years ago
Romain 30f203af4b Render progress using Listr + split the main process into "steps" which are easier to test 7 years ago
Romain 179cc57644 Update “debug” package to fix insecure vulnerability warning 7 years ago
Romain 97a6e348cc Update all dependencies 7 years ago
Romain 35f9ee96b6 Update many dependencies to latest 7 years ago
Romain 0b27d37881 Read metadata from Picasa.ini if present 7 years ago
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)
7 years ago
Romain 5074fb267f 2.1.0 7 years ago
Romain ac67a08da9 Use new “downsize” package that was split out (to make testing edge cases easier) 7 years ago
Romain 80f7a88c35 Fix #61: new options to avoid copying original photos to the output folder 7 years ago
Romain 92706276a0 Fix Github URL in package.json 7 years ago
Romain 96cd92aa46 2.0.1 7 years ago
Romain 8b66a16134 2.0.0 7 years ago
Romain 91e55daf9b Upgrade VideoJS to 5.17 7 years ago
Romain fb77791c80 Fix #33: new --cleanup option to remove unused generated thumbnails/media 7 years ago