Commit Graph

115 Commits (297e13eda83c09b712d60883bda800b773c1be97)

Author SHA1 Message Date
Romain 008bb4c54f fix: support files and albums with special characters
Fixes #240
3 years ago
Romain fd1a0069a5 chore: move all testable code to <src> 3 years ago
Christian Paul d5ebd160e5
Support albums and images with # or ? (#235)
* Use encodeURIComponent for file URLs
* Use encodeURIComponent on album basename for the url
* Add unit tests for encoding # and ? characters
3 years ago
Romain 61dc0c588d chore: cleanup Mocha test output 3 years ago
Romain 3238cd9232 chore: fix deprecation warning on ReadableMock 3 years ago
Romain 3666748f04 chore: switch code coverage from Istanbul to Nyc
Istanbul is no longer maintained
3 years ago
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