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

118 Commits

Author SHA1 Message Date
Romain
a1ebe53d70 2.6.0 2019-01-07 21:54:54 +01:00
Romain
2c2c518f4b New options --video-format, --video-quality and --video-bitrate 2019-01-07 21:48:44 +01:00
Nikolai Kim
6b7df75ea4 Use Slugify for Albun names 2019-01-06 23:52:21 +03:00
Romain
1f28b3594e 2.5.0 2018-12-11 23:11:21 +01:00
Romain
9425604dd7 chore(dependencies): upgrade Standard from v11 to v12 which introduces a style change 2018-12-11 23:11:03 +01:00
Romain
2427ace270 fix(tests): add missing glob dependency required by integration tests
The build was passing because it’s transitively added by another dependency.
2018-12-11 23:01:04 +01:00
Romain
e219fcb676 chore(dependencies): update to latest versions 2018-12-11 22:58:36 +01:00
Romain
c29a16ed83 2.4.2 2018-08-29 21:16:57 +02:00
Almir Kadric
e8a6d179f1 bumped fs-extra version to fix issue 2018-08-13 18:40:18 +02:00
Romain
59e9f61014 2.4.1 2018-07-25 22:44:03 +02:00
Romain
37ea6c6ba3 fix(themes): resolve built-in theme paths instead of hardcoding node_modules path
The previous method only worked locally inside the repo, but not once the package is published to npm.
Once published, built-in themes are flattened instead of nested.
2018-07-23 22:33:40 +02:00
Romain
ba72015124 chore(build): use a whitelist for the content of npm publish 2018-07-23 22:29:01 +02:00
Romain
83831274ff refactor(themes): remove themes from core + use the new extracted modules 2018-07-14 00:56:12 +02:00
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
2018-07-13 21:29:52 +02:00
Romain
00dac76983 test(exiftool): add tests for batch exiftool streaming 2018-06-18 23:31:11 +02:00
Romain
cc7abdf0ac 2.4.0 2018-06-14 23:44:35 +02:00
Romain
3fa8867757 test(all): add unit tests for theme + cleanup logic 2018-06-13 23:30:14 +02:00
Romain
72a23807f1 chore(build): require all source files in the tests so the coverage report shows untested files 2018-06-13 23:27:40 +02:00
Romain
8bbe1186c5 fix(core): custom album mappers using file:// can use a relative path 2018-06-08 23:28:11 +02:00
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.
2018-06-08 00:49:03 +02:00
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.
2018-06-08 00:20:29 +02:00
Romain
03a9c9a319 refactor: themes are now standalone folders, to prepare for external loading
Every theme is made of { Handlebars + Less + Partials + Helpers + Public }
2018-06-01 23:49:53 +02:00
Romain
36d935a787 feat(core): new option to add watermarks to the gallery
Watermarks only apply to large images, not thumbnails.
2018-05-15 20:28:57 +02:00
Romain
9cef1dd532 2.3.1 2018-05-14 22:48:04 +02:00
Romain
dd282f92d4 chore(dependencies): update all dependencies to the latest version 2018-05-14 21:22:57 +02:00
Romain
b54cfd3cad 2.3.0 2018-05-14 21:14:06 +02:00
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.
2018-05-08 21:51:09 +02:00
Romain
a5a75b81ad fix(cli): show an error on startup if one of the binary dependencies is missing
Closes #95
2018-05-07 23:36:11 +02:00
Romain
2c2d9ce43f 2.2.1 2017-12-16 22:00:59 +11:00
Romain
2f8a15c058 fix(resize): upgrade downsize to fix Infinity% when reporting video progress 2017-12-16 20:40:34 +11:00
Romain
78ae865b75 2.2.0 2017-12-11 23:18:29 +11:00
Romain
7a9c5f4b08 fix(dependencies): upgrade chalk to latest major version v1 -> v2 2017-12-11 22:55:31 +11:00
Romain
0686ce3b37 fix(dependencies): upgrade dependencies to latest 2017-12-10 23:33:47 +11:00
Romain
d0bbf94b1c fix(index): don’t crash when trying to parse exiftool output for a badly encoded file 2017-12-09 23:22:20 +11:00
Romain
a2042f3128 Fix logging option for non-TTY + highlight URL in welcome / error messages 2017-12-08 21:28:04 +11:00
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?
2017-12-08 00:04:16 +11:00
Romain
067238c8e4 2.2.0-alpha.3 2017-11-29 21:06:42 +11:00
Romain
0b8eb5bbd9 2.2.0-alpha.2 2017-11-29 08:49:26 +11:00
Romain
d19a230a6c Cleanup unused code 2017-11-28 21:50:44 +11:00
Romain
e9e5f32970 Add test coverage + clean up build scripts 2017-11-28 07:53:55 +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
d66b28b12c 2.2.0-alpha.1 2017-11-26 09:18:00 +11:00
Romain
870b60de17 Simplify test scripts & document them in CONTRIBUTING.md 2017-11-25 22:29:21 +11:00
Romain
208f0f0212 Run full integration tests inside Docker. Travis runs unit + integration. 2017-11-25 22:01:30 +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
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
97a6e348cc Update all dependencies 2017-10-12 20:12:50 +11:00