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

49 Commits

Author SHA1 Message Date
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
klemens
424d2c8b8b spelling fixes 2018-04-26 11:08:45 +02: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
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
fce8d8d8af refactor(model): album mappers can also return '/' to mean the root album 2017-12-16 20:38:56 +11:00
Romain
81ee517062 feat(index): ignore files in a root #recycle folder (Synology recycle bin) 2017-12-10 23:34:32 +11:00
Romain
91528ad076 test(index): cleanup thumbsup.db between test runs, otherwise the test does nothing 2017-12-10 10:40:12 +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
3152361e65 Fix #83: handle IPTC keywords returned as string or array 2017-12-02 22:54:37 +11:00
Romain
f66208e052 New options for the {{date}} helper: custom date format + how long ago 2017-11-29 21:11:12 +11:00
Romain
515ce3e8c1 Fix bug in #compare and #times Handlebars templates introduced in 3e0982e
When declared with () => instead of function (), the context is missing from child blocks.
2017-11-29 20:58:13 +11:00
Romain
3e098e2328 Extract Handlebars helpers to prepare for theme structure + add unit tests 2017-11-28 07:53:51 +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
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
b92724472e Fix #71: read both Quicktime CreationDate and CreateDate 2017-08-13 21:28:00 +10:00
Romain
0b27d37881 Read metadata from Picasa.ini if present 2017-08-07 22:53:04 +10:00
Romain
3e64d2ab38 Create a Metadata model attached to input files
- for easier unit testing
- to enable input filtering (e.g. only include photos with this keyword)
2017-08-07 22:52:26 +10:00
Romain
d24c5110cc Fix #70: files in the root of the source folder get added to the root gallery (index.html)
Before, they were added to an album called “.” which didn’t look good,
and the corresponding “.html” file (no base name) caused issues on web servers
2017-07-22 21:25:43 +10:00
Romain
dc40fbac09 Fix inferring data from the filename: was getting confused if the folder contained digits 2017-06-14 17:43:38 +10:00
Romain
80f7a88c35 Fix #61: new options to avoid copying original photos to the output folder 2017-06-03 21:25:41 +10:00
Romain
3531f1e533 Try to infer dates from the filename if there is no "date" metadata 2017-04-01 00:07:04 +11:00
Romain
a7ad8dc9fc Fix reading the original creation date of QuickTime and H264 movies 2017-03-19 00:12:21 +11:00
Romain
39ee2adf05 Read XMP ratings 2017-03-08 21:41:37 +11:00
Romain
449ee0b180 Read the caption from all standard EXIF/IPTC/XMP tags (issue #24) 2017-03-08 21:40:09 +11:00
Romain
7e73e6a10b Refactor album mapping code to be much simpler based on (media) => string 2017-03-08 20:12:05 +11:00
Romain
59b9bdbbd2 Use <standard> for code style, which removed lots of unused variables/requires 2017-03-06 23:46:46 +11:00
Romain
e71e5d4207 Replace custom "make" DSL with the output task list (#60) 2017-03-06 23:27:44 +11:00
Romain
e719bf15b1 Single source of truth for input/outputs + view model for display (#58) 2017-03-06 22:16:36 +11:00
Romain
d3781b8fcf Fix parsing of MIME Type into Media type (image/video)
This fixes download links, and being able to right-click on a video and save-as
2017-02-28 21:40:51 +11:00
Romain
3a01c678eb Support for IPTC captions 2017-02-28 20:35:09 +11:00
Romain
8dccb88f25 Use [exiftool-json-db] to maintain the JSON database of media files 2017-02-28 00:13:45 +11:00
Romain
e36464a76a New --albums-output-folder option to write all albums to a subfolder (cleaner output)
The main changes are
- this introduces relative paths, since some HTML files have to go ".." to get to public/media
- it also introduces the difference between album.path (OS dependent) and album.url (forward slashes)
2017-02-07 23:37:52 +11:00
Romain
e930af7f49 Add GIF support, fixes #22.
One major change here is that thumbnails will always be generated as ".jpg".
This is potentially a breaking change, in the sense that all "png" or "jpeg" thumbnails
would be to re-calculated and re-uploaded.
2017-02-06 21:37:36 +11:00
Romain
4209466c14 More unit tests for the Album model (tests split into 2 files for legibility) 2017-02-05 18:38:44 +11:00
Romain
6772e9c9d9 Fix final options for nested albums, not being passed recursively 2017-02-05 15:39:52 +11:00
Romain
f235675f86 Don't concatenate the root album name to be 100% compatible with existing version for flat albums 2016-11-17 22:07:04 +11:00
Romain
0208babae1 Pick 10 previews per album, to make the mosaic theme work 2016-11-17 12:34:58 +11:00
Romain
b10e7ca6c9 Unit tests for album constructor + sorting 2016-11-15 13:28:37 +11:00
Romain
93ffff1e90 Move album.previews() test one level up 2016-11-13 13:22:43 +11:00
Romain
fd9bf181fd Extract model from website generation 2016-11-02 11:35:27 +11:00
Romain Prieto
72fd69bb79 by-date generator supports nested albums + custom album title format 2016-10-17 18:34:45 +11:00
Romain Prieto
f69d2e3d48 Add support for nested folders 2016-10-16 22:24:07 +11:00
Romain Prieto
9c0071c00d Work in progress: support multiple themes 2016-10-15 23:22:22 +11:00
Romain Prieto
c2f290bbd6 thumbsup v2: rewrite the website around 'albums' 2016-10-13 18:49:15 +11:00