2
0
mirror of https://github.com/thumbsup/thumbsup synced 2024-11-17 15:25:50 +00:00
Commit Graph

330 Commits

Author SHA1 Message Date
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
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
bd86ab6535 test(themes): add integration tests using a mock file system
This replaces the basic unit tests that used private methods
and didn’t have a very clear intent
2018-06-12 00:54:53 +02:00
Romain
deee049650 refactor(themes): extract the {{relative}} helper to be standalone + add some tests 2018-06-12 00:37:44 +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
383f77e0d4 fix(core): Use correct base for calculating the relative path
Fixes #109
2018-06-10 21:34:38 +02:00
Felix Eckhofer
124d1857b1 test(index): Add test for invalid filename behavior 2018-06-09 23:51:18 +02:00
Felix Eckhofer
7dc914f924 fix(index): skip non-existing files
This can happen when files have invalid names or they are being deleted
while thumbsup is running.

Fixes #106
2018-06-09 23:51:18 +02:00
Romain
899a89e516 test(mapper): fix unit test that relied on a folder called “tmp” to already exist 2018-06-09 23:46:21 +02:00
Romain
fc4432ba34 docs(readme): add documentation URL at the top of the README 2018-06-09 00:28:27 +02:00
Romain
e9beb830a2 feat(core): skip files that can’t be processed + show a summary at the end
Thumbsup used to stop at the first problem processing a file.
This was a problem on large galleries where you’d need to run it again and again, fixing files as you went.
This change:
- skips problematic files and shows a summary at the end
- logs all warnings/errors to <thumbsup.log> when running the default output

Also refactor and cleanup of the logging logic.
2018-06-09 00:20:29 +02:00
Romain
7208642d95 test(all): increase unit test coverage 2018-06-08 23:39:09 +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
253a0b5fff fix(core): typo in the startup dependency check (gifsicle2) 2018-06-08 22:34:57 +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
e1517d2fbd feat(core): when building thumbnails, fallback to JPG if the source is not a browser-friendly format
If the source is browser-friendly (jpg, jpeg, png) then keep the exact original extension.
2018-06-08 00:27:44 +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
24790c075c chore(cleanup): remove old code and console.log() 2018-06-08 00:12:17 +02:00
Romain
468a55d434 fix(themes): Fix reference to caption / animation metadata in thumbnail.hbs
Fixes 102
2018-06-03 14:49:42 +02:00
Romain
9612ca0048 feat(core): load an external theme from a given path using --theme-path 2018-06-03 09:18:10 +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
b761353691
docs(readme): reference --log in the troubleshooting section 2018-05-15 08:29:07 +02:00
Romain
1ce19d4024
docs(readme): add Docker build badge + reorganise 2018-05-15 08:25:43 +02:00
Romain
55b059d077 chore(dependencies): update package-lock.json for Node version 8 2018-05-14 22:57:14 +02:00
Romain
9cef1dd532 2.3.1 2018-05-14 22:48:04 +02:00
Romain
11e81d5756 chore(build): use Travis CI to auto-publish npm package on tagged commits 2018-05-14 22:42:43 +02:00
Romain
cd079a6ccc docs(readme): update current CLI options 2018-05-14 22:10:56 +02:00
Romain
3c946621ec feat(core): new --gm-args flag to pass additional options to GraphicsMagick
Example: thumbsup --gm-args ‘modulate 120’ --gm-args ‘equalize’
Closes #89.
2018-05-14 22:05:33 +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
2f37c82026 docs(readme): add social sharing buttons 2018-05-14 21:14:02 +02:00
Romain
f7d7b827e5 feat(cli): --concurrency also controls the number of batch exiftool processes 2018-05-09 20:16:31 +02:00
Romain
a5740fb94e feat(cli): Expose --photo-quality to control the quality of the converted images 2018-05-09 20:16:21 +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
klemens
424d2c8b8b spelling fixes 2018-04-26 11:08:45 +02:00
Brandon Lopez
205ec2f3cb Add concurrency argument (#92)
Add concurrency option
2018-04-12 18:53:15 +10:00
Romain
03c3b38e82 fix(model): ignore the EXIF date if it’s not valid e.g. 0000:00:00
Closes #94
2018-03-29 20:21:58 +11:00
Felix Yan
0ff1699c5c Correct a typo in step-index.js 2018-03-23 21:17:34 +11:00
Romain
cd3d699b34 feat(cli): new --dry-run option to skip resizing the files / creating the website
The index is still updated, and the media folder is still scanned to log how many tasks are required.
This is useful to know what thumbsup is about to do, without actually running the expensive tasks.
2017-12-23 21:33:43 +11:00
Romain
e5f6df3d28 refactor(cli): deprecated options logic now handled in <options> module 2017-12-23 21:33:43 +11:00
Romain
286dc8d15f feat(albums): --albums-from can be a list of patterns with special keywords
- %path expands to the path of the photo/video
- %keywords expands to the IPTC keywords of the photo
- {format} expands to the photo's EXIF date, e.g. {YYYY MM}
2017-12-23 20:32:10 +11:00
Romain
23f19566d0 test(cli): add unit tests for options parsing, especially custom logic on top of yargs 2017-12-22 22:28:37 +11: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
fce8d8d8af refactor(model): album mappers can also return '/' to mean the root album 2017-12-16 20:38:56 +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
74c981fb4c feat(analytics): rename --no-usage-report to --no-usage-stats to be more explicit
This is not a breaking change since the version hadn’t been published since introduced
2017-12-11 22:55:27 +11:00