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

418 Commits

Author SHA1 Message Date
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
0b8eb5bbd9 2.2.0-alpha.2 2017-11-29 08:49:26 +11:00
Romain
8882b8a2e8 ignore dev-only files from npm 2017-11-29 08:49:15 +11:00
Romain
d7d01adc82 Fix #78: ignore invalid photos / videos
The current code doesn't create an output structure for them, so we don't create thumbnails.
This is good since the thumbnail generation would likely fail.

However we still try to render thumbnails in the themes.
The themes could be smart enough to skip invalid files, but it's easier to ignore them from the start.
2017-11-28 21:54:26 +11:00
Romain
d19a230a6c Cleanup unused code 2017-11-28 21:50:44 +11:00
Romain
e9e5f32970 Add test coverage + clean up build scripts 2017-11-28 07:53:55 +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
d66b28b12c 2.2.0-alpha.1 2017-11-26 09:18:00 +11:00
Romain
8d6cec3884 TravisCI: run the build inside Docker
- This is the simplest way to ensure all dependencies are there
- Also much faster than installing them on every build
- Especially since Travis runs Ubuntu Trusty, which doesn’t have ffmpeg in its repositories (must be compiled from source)
2017-11-25 22:32:07 +11:00
Romain
870b60de17 Simplify test scripts & document them in CONTRIBUTING.md 2017-11-25 22:29:21 +11:00
Romain
208f0f0212 Run full integration tests inside Docker. Travis runs unit + integration. 2017-11-25 22:01:30 +11:00
Romain
9a2da3e5ea Temporarily remove the recursive nav from the Classic theme
- The recursive call within Handlebars was causing huge memory spikes
- It seems it deep cloned (?) the entire Album objects at every recursive call
- This itself could bloat to several hundred megs of RAM for very large galleries

Replacing it with a simple breadcrumbs navigation for now.
2017-11-24 22:35:22 +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
bfdebe2c0f Smarter fuzzy comparison for the “snapshot” integration test 2017-11-24 21:56:45 +11:00
Romain
19a28a08c0 Basic production Dockerfile (doesn’t run the tests yet) 2017-11-24 21:55:26 +11:00
Romain
29654444cd Move screenshots and banners to subfolder 2017-11-24 21:52:10 +11:00
Romain
30f203af4b Render progress using Listr + split the main process into "steps" which are easier to test 2017-11-06 00:02:42 +11:00
Romain
179cc57644 Update “debug” package to fix insecure vulnerability warning 2017-10-12 20:18:11 +11:00
Romain
56235266bb Stop supporting Node v4 to enable newer ES6 syntax 2017-10-12 20:13:27 +11:00
Romain
97a6e348cc Update all dependencies 2017-10-12 20:12:50 +11:00
Romain
6e2f7e2ffb README - clarify Docker usage 2017-09-12 12:36:27 +10:00
Romain
35f9ee96b6 Update many dependencies to latest 2017-08-15 19:08:53 +10:00
Romain
011902c528 Fix integration test data for #71: set movie metadata to expected date 2017-08-15 19:08:40 +10: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
5074fb267f 2.1.0 2017-07-23 21:40:23 +10:00
Romain
3a6b2c9da3 Ignore files from the final npm package 2017-07-23 21:40:14 +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
ac67a08da9 Use new “downsize” package that was split out (to make testing edge cases easier) 2017-07-15 20:22:46 +10:00
Romain
afd3915778 Add full integration test: compare galleries to previously generated snapshot 2017-06-14 17:44:28 +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
92706276a0 Fix Github URL in package.json 2017-05-29 17:34:33 +10:00
Romain
e8a9fc66b4 Github contribution templates 2017-05-29 17:34:19 +10:00
Romain
96cd92aa46 2.0.1 2017-05-25 21:44:27 +10:00
Romain
6fde22e9d1 Fix #62: crash prevented the error message from showing when migrating from V1 to V2 2017-05-24 17:49:43 +10:00
Romain
1df4ee48f3 Fix #63: run ffmpeg using <spawn> and don't buffer stdout/stderr 2017-04-03 17:33:27 +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
8b66a16134 2.0.0 2017-03-20 20:51:21 +11:00
Romain
a7ad8dc9fc Fix reading the original creation date of QuickTime and H264 movies 2017-03-19 00:12:21 +11:00
Romain
b35870a9e5 Fix require-lint to ignore video.js (not referenced) 2017-03-19 00:01:50 +11:00
Romain
6cdc99525c Fix video poster aspect ratio: simply use the built-in VideoJS poster 2017-03-16 00:13:01 +11:00
Romain
9a24acc6df Fix copying of --original-photos 2017-03-15 23:56:37 +11:00
Romain
91e55daf9b Upgrade VideoJS to 5.17 2017-03-11 10:05:27 +11:00
Romain
9c78c1cd79 Rename album sorting function for clarity (they don't take a raw File, but a Media object) 2017-03-09 23:22:12 +11:00
Romain
fb77791c80 Fix #33: new --cleanup option to remove unused generated thumbnails/media 2017-03-09 22:40:41 +11:00