0.3.0
Project now exceeds 8K lines of C++20 🎉
Breaking Changes
- Risk: minimal. PHash querying command is incompatible with previous versions and will randomly fail if used with them
- Risk: minimal. Thumbnail storage in the mono-collection has been redesigned and moved to
cache/thumbnail
. Existing deployments should delete and regenerate theirthumbnails
directory to reclaim otherwise wasted space - Risk: minimal. Hopper constants are now applied at a lower priority than NCGs. Allowing them to serve as fallback default values
New Features
- Added JPEG thumbnails support with configurable quality
Performance
- Added PHash index cashing, stored in
cache/phash
to reduce cold start delays for those with 100K+ collections- This cache is invalidated based on directory modification times and will be ineffective for those that has disabled it in their filesystems (if you need to ask, you haven't)
Behavioral Changes
- Thumbnails are hence regarded as ephemeral data and will be overwritten automatically when offered to stores
- This is done via delete-then-link, so there's no risk of corrupting the mono-collection. But this could still clobber files that are not linked by this service so please make sure your workflow is not affected before upgrading
- File importing will now disregard singular 0 byte files. A behavior sometimes exhibited by browsers
- Successfully imported directories will now be auto deleted
- Remove the necessity to specify a store in hoppers to create import only hoppers
Bug Fixes
- Fixed a bug where if a file is projected into two directories with differing thumbnail requirements only one will win over the other
- Fixed an error contextualization bug that caused a lot of errors to be mistranslated as "unknown"
- Fixed an IO bug that caused the thumbnailer to fail on some GIF files
- Fixed cli side segfaults from not enforcing argument count requirements
- Added workaround for ffmpeg bug #8747
Dependencies
For linux users, please install: libmagic1.5+, libffmpeg4.3+ (LGPL), libopencv4.5+