Commit Graph

109 Commits (3d7078ed13825202bc26e940bdb46a4b2113b9da)

Author SHA1 Message Date
Romain 2330540ba5 chore(core): simplify keyword/people handling
In the future metadata mappings could be configurable.
We should then look at a generic system for all metadata
for example including captions.

Until then let's keep it simple and consistent with the other fields.
4 years ago
Geoffrey Lowney cebb0327fe
Options to specify EXIF tags where keywords and "people in image" are found (#224)
* Add dynamic keyword and people-in-photo handling.
Add new options include-keywords, exclude-keyword.
Add new options include-people, exclude-people.
4 years ago
Romain 59b539e38e fix(core): gracefully handle missing Exif.Composite.ImageSize
Fixes #226
4 years ago
Romain c3ca18d97e fix(core): encode URLs to files to handle special characters
Fixes #229
4 years ago
Romain ad46c8db87 chores(deps): fix build after Boxen upgrade
Boxen has a new line-wrapping behavior that doesn't use
line breaks when the content is over 80 characters.

It's simpler to reformat the message.
4 years ago
Romain b7827941f4 feat(core): option to choose how album previews are selected
Fixes #223
4 years ago
Romain 3ced05ad1f feat(core): option to specify the log file 4 years ago
Romain 0f42dc8f85 feat(core): option to specify the database path
Fixes #216
4 years ago
Matthieu Rakotojaona b9ffb2d630 Don't duplicate photos in the same album
A file can be in multiple albums, but the same file can't be in the same album multiple times. This can happen in multiple cases, for instance:

- If one of the mapping for the album contains "/"
- If a file is stored under "sub/file.jpg", one of the mapping is "%path" and the other is "sub"

Fixes #220
4 years ago
Romain ef0ad4ee8e feat(core): support pagination with --album-page-size
Note: requires a compatible theme which renders pagination.
Fixes #209
4 years ago
Romain 31b85fc0e1 chore(core): refactor SEO into testable module 4 years ago
Romain 6886c262db chore(core): extract HTML page creation to a testable module 4 years ago
Pierre CLEMENT b5b0005369 feat(cli): option to set small size 4 years ago
Romain 7e5ccbfbaa chore(deps): update major dependencies 4 years ago
Romain 946a1d3a6d chore(test): automatically cleanup temp files generated during tests 4 years ago
Romain c407873266 feat(core): new --video-stills flag controls when the frame is taken 4 years ago
Romain 60c3902edc feat(albums): Support custom sorting per nesting levels, fix #179 4 years ago
Romain d0fc6b590b test(cli) boolean options are case sensitive 4 years ago
Romain 3671c1211c refactor(cli): simplify options parsing + include options in integration test 5 years ago
Romain f088615caa feat(cli): now option to set the home album name
Part of #176
5 years ago
Romain 066155f0fb Uses more web-friendly and robust slugs for album filenames (no quotes, no colons…)
Fixes #164
5 years ago
Romain a09ff03f2e [feat] new option to pass settings to a theme, from a JSON file
Fixes #168
5 years ago
Romain 9c581bbd0b feat(albums): optionally generate a ZIP file for each album
Fixes #125
5 years ago
Romain f10544a6a9 fix(model): remove unnecessary ./ for files in the root folder 5 years ago
Romain 5571e0e6bf Expose width and height in the file metadata
Fixes #149
5 years ago
Romain 2e875e7448 test(theme): add tests for escaping of single and double quotes 5 years ago
Romain 220b2137ec feat(media): support suffix based generated paths instead of folder groups
Fixes #32, Fixes #111
5 years ago
Romain 96bb3ad902 feat(resize): new options to control preview images (resize, copy, symlink…)
Fixes #115
5 years ago
Romain 9bda0a4835 feat(database): new include/exclude arguments to filter the input folder 6 years ago
Romain ec6fbf9b0a test(database): more unit tests for file globbing patterns 6 years ago
Romain f30eddb6dd feat(options): new flags to selectively include photos / videos / raw photos
fixes #128
6 years ago
Romain 2c2c518f4b New options --video-format, --video-quality and --video-bitrate 6 years ago
Nikolai Kim 6b7df75ea4 Use Slugify for Albun names 6 years ago
Romain 9425604dd7 chore(dependencies): upgrade Standard from v11 to v12 which introduces a style change 6 years ago
Romain b15b10fbb9 fix(metadata): support the ContentCreateDate field for videos 6 years ago
Romain 73672ce4dd refactor(test): replace var with const in tests files when appropriate 6 years ago
Romain a51904255c fix(test): fix path to theme helpers in unit tests 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 39591c70a1 feat(theme): support for themes published within a subfolder
If a theme has a build process, it will likely publish a subfolder (e.g. “dist”) to npm.
It can simply set “thumbsup.themeRoot” in its package.json so thumbsup looks in the right place.
6 years ago
Romain 00dac76983 test(exiftool): add tests for batch exiftool streaming 6 years ago
Romain 79dd36f77b test(core): add unit tests for the relationship/action mapping, e.g. “photo:large” 6 years ago
Romain 832673f322 refactor(tests): integration tests as part of the Mocha suite
Some benefits:
- no need to check-in a full website to compare against
- targeted asserts, instead of a “should be 100% the same”
- more robust against cosmetic theme changes
- allows for testing more edge cases in the future
- can’t forget to run the integration tests since they’re part of “npm test”
6 years ago
Romain 7dd714c957 refactor(tests): dynamically generate test folders to check more edge cases 6 years ago
Romain fb4c4fb89f test(all): add unit tests for Album and Problem 6 years ago
Romain 6d94b6339f chore(tests): handle rejected promises during tests 6 years ago
Romain 3fd0ee9ba3 chore(tests): capture all logs during the tests so they don’t pollute the output + can be asserted on 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
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
6 years ago
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
6 years ago