Commit graph

192 commits

Author SHA1 Message Date
Michael Mayer
c853b3cd2d Backend: Shorten source file headers and normalize email addresses 2022-02-21 15:30:18 +01:00
Michael Mayer
6c4fc42415 API: Add Explicit Cache Header for Existing Thumbs #822 2022-02-20 17:36:51 +01:00
Michael Mayer
070988d0f4 Edit Dialog: Improve display of metadata in the files tab #2017 2022-02-07 12:41:11 +01:00
Michael Mayer
8a0e72db66 Exif: Change EXIF to Exif in comments 2022-02-02 17:41:45 +01:00
Michael Mayer
62f5a5f5f0 Exif: Stop search if no header was found in PNG, TIFF, and HEIF 2022-02-02 17:39:16 +01:00
Michael Mayer
58cc89e7a4 Index: Find photo stack by filename & recover original names #1823 #1892 2022-01-06 09:55:41 +01:00
Michael Mayer
5462b1e69e Metadata: Reduce log level for missing Exif data from warn to info 2022-01-05 16:55:04 +01:00
Michael Mayer
dd9d7123d9 Index: Improve indexing and unstacking of related files #1823
This commit also adds initial HDR flag extraction from metadata.
2022-01-05 16:37:19 +01:00
Michael Mayer
58a5f94069 Backups: Rename album backups to exports and improve command help #1887 2022-01-05 11:40:44 +01:00
Michael Mayer
8efe473d30 Copyright: Update year in source files and footer.vue 2022-01-03 13:46:52 +01:00
Michael Mayer
0f0c0aaa0b API: Improve path and filename parameter sanitation #1814 2021-12-14 20:01:39 +01:00
Michael Mayer
9a8144c046 Log4j: Sanitize user input in logs like filenames and album titles #1814 2021-12-14 17:07:38 +01:00
Michael Mayer
35ac1e730c Docs: Update URL 2021-12-12 20:48:05 +01:00
Michael Mayer
5be456a09f JPEG: Convert Apple "Display P3" colors to standard sRGB #1474
Other color profiles and file formats are not supported yet. Should
be easy to add though. Main difficulty will be profile name comparison:
For example "Adobe RGB (1998)" vs just "Adobe RGB".
2021-12-09 07:00:39 +01:00
Michael Mayer
9df31e2592 CLI: Update command descriptions, log messages and levels 2021-11-27 18:41:10 +01:00
Eng Zer Jun
44f7700c0c
Enable module graph pruning and deprecate io/ioutil (#1600)
* Backend: Enable Go module graph pruning and lazy module loading

This commit applies the changes by running `go mod tidy -go=1.17` to
enable module graph pruning and lazy module loading supported by Go 1.17
or higher.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* Backend: Move from io/ioutil to io and os package

The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-10-06 07:10:50 +02:00
Michael Mayer
f7153cdd21 People: Improve logging, command help, and handling of broken files #22 2021-10-05 18:42:39 +02:00
Michael Mayer
2e18c2ef9c Metadata: Upgrade all go-exif image structure libs to v2 #1326 #1463 2021-08-19 13:28:12 +02:00
Michael Mayer
bc86997ba3 Backend: Replace gopkg.in/ugjka/go-tz with gopkg.in/photoprism/go-tz
Original package was archived and not maintained anymore.
2021-07-17 15:21:03 +02:00
Michael Mayer
4fcd009b8b Metadata: Fix time zone for Quicktime videos #1388
Assume UTC, same as for MP4 videos.
2021-07-13 18:08:47 +02:00
Michael Mayer
c819e9159c Metadata: Fix time zone for MP4 videos #1388
As it turned out, the exiftool -api QuickTimeUTC parameter converts
CreateDate to local time using the server's time zone. This doesn't
help as it's technically still a local time and not UTC. Had to
implement this manually in our Exiftool JSON parser for MP4 videos only.
2021-07-13 17:56:26 +02:00
Michael Mayer
513a7e9257 Exiftool: Fix CLI parameters and add tests #1388 #1401 2021-07-12 21:41:44 +02:00
Michael Mayer
e29e9977a9 UI: Add people tab to photo edit dialog #22
Work in progress. Buttons don't work yet.
2021-06-01 17:39:03 +02:00
Michael Mayer
365e582ffd Backend: Upgrade dsoprea/go-exif and revert exif test assertion
see https://github.com/dsoprea/go-exif/issues/55
2021-05-14 18:24:10 +02:00
Michael Mayer
e10118a65f Metadata: Merge keywords if priority is the same #1153
Also reduces length limit for latin words to 2 letters.
2021-05-04 15:02:54 +02:00
Michael Mayer
2d7becdbbc Metadata: Add keywords tests #1153 2021-05-01 10:52:28 +02:00
Michael Mayer
6cbf0696c4 Metadata: Don't remove stopwords from keywords #1153 2021-04-30 17:37:37 +02:00
Michael Mayer
28c5c1be7b Metadata: Upgrade dsoprea/go-exif
See https://github.com/dsoprea/go-exif/issues/55
2021-04-30 10:59:06 +02:00
Theresa Gresch
da6e948f31
Metadata: Add support for XMP sidecar CreateDate and Keywords (#1161)
* Metadata: Read title, description, date and keywords from apple xmp

* Metadata: Add testfiles and tests

* Metadata: Add support for XMP sidecar CreateDate and Keywords #1151

Co-authored-by: Michael Mayer <michael@lastzero.net>
2021-04-26 13:54:14 +02:00
Michael Mayer
180e46b95f Frontend: Add Yellowstone theme, unlock Grayscale for everyone 2021-04-26 12:37:52 +02:00
Michael Mayer
27c106863d Metadata: Merge existing keywords #1153 2021-04-25 14:17:34 +02:00
theresa
1532e6b748 Tests: Add test and testfiles for bug #1153 2021-03-25 11:45:32 +01:00
theresa
bc714059c3 Meta: Add charset=Ascii to unwanted descriptions 2021-03-24 14:24:24 +01:00
theresa
0192f976bc Tests: Add tests for internal/meta 2021-02-25 16:03:07 +01:00
Michael Mayer
f7f0b8d17a Metadata: Add unwanted descriptions 2021-02-21 17:54:26 +01:00
Michael Mayer
d42eb4e01b Classify: Improve moments & location labels 2021-02-21 17:18:36 +01:00
theresa
d6f7601246 Meta: Add default to unwanted descriptions list 2021-02-17 09:47:15 +01:00
theresa
74663f53b0 Meta: Add binary comment to unwanted descriptions #1046 2021-02-15 17:25:22 +01:00
Michael Mayer
e12eac7b23 Metadata: Re-enable gopro camera model assertion in test #990 #1046 2021-02-15 16:40:47 +01:00
Michael Mayer
a78a5f6f48 Metadata: Add workaround for exif strings containing \n or \r
See: https://github.com/dsoprea/go-exif/issues/55
2021-02-13 18:11:44 +01:00
Michael Mayer
aacb524f1e Add video transcoding support to convert command #703 2021-02-11 21:37:44 +01:00
Michael Mayer
8b361093be Metadata: Upgrade Go dependencies #990 2021-02-05 09:45:28 +01:00
Michael Mayer
67259fbca6 Metadata: Add "SAMSUNG CAMERA PICTURES" to unwanted descriptions 2021-01-27 12:13:09 +01:00
Michael Mayer
24f8c1acfa Metadata: Add strings to unwanted descriptions in sanitize.go 2021-01-27 12:00:56 +01:00
Michael Mayer
9ec2381307 Update copyright after year change 2021-01-01 22:37:25 +01:00
Michael Mayer
8e22fbf8f6 Metadata: Store and compare data source for details #755 2020-12-31 13:51:31 +01:00
Michael Mayer
8cfabe3205 Metadata: Cache ExifTool JSON by original file hash #755 #759 2020-12-30 13:33:47 +01:00
Michael Mayer
d430ae24ee Indexer: Fix JSON sidecar creation using Exiftool
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-25 20:29:06 +01:00
Michael Mayer
837fc495f9 Metadata: Ignore invalid Exif GPS coordinates #736
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-23 18:43:52 +01:00
Michael Mayer
b433c630ed Metadata: Fix negative time offsets in timestamps with zone #727 2020-12-22 09:43:19 +01:00
Michael Mayer
8859a23fd8 Metadata: Add iPhone X mov example JSON file #727
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-22 09:28:52 +01:00
Michael Mayer
2ed6880270 Metadata: Add support for CreationDate in ExifTool JSON files #727 2020-12-22 07:47:16 +01:00
Michael Mayer
bc535b6248 Metadata: Support time zones in ExifTool JSON files #727 2020-12-22 01:52:36 +01:00
Michael Mayer
473566f404 Videos: Enforce transcoding to MPEG-4 AVC #603 2020-12-12 17:20:31 +01:00
Michael Mayer
604f110277 Metadata: Add test case for bad Exif rotation #637 2020-12-05 00:46:54 +01:00
Michael Mayer
c4a94f8135 Indexer: Update changed Exif metadata #563 2020-12-04 22:06:23 +01:00
Michael Mayer
902aacece9 Indexer: Merge identical photos (stack files) #576 2020-12-04 19:51:51 +01:00
Michael Mayer
25e88bb1fc Use mutex when extracting Exif metadata #600
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-11-21 23:43:53 +01:00
Michael Mayer
5daa689975 Backend: Format go imports 2020-11-21 18:08:41 +01:00
Theresa Gresch
67287a2d57 Backend: Add testdata 2020-10-27 09:30:20 +01:00
Theresa Gresch
c72ddbedcb Backend: Add unit tests 2020-10-20 10:07:27 +02:00
Michael Mayer
5bafb17c4b Metadata: Sanitize keywords, subject & artist #490
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-19 11:50:54 +02:00
Michael Mayer
2e51e84605 Backend: Index camera make & model for video files #506 2020-10-04 12:47:53 +02:00
Phil Davis
c90f19ec21
Fix minor typos 2020-10-01 16:00:43 +05:45
Theresa Gresch
c5b657ba05
Merge pull request #503 from nvllsvm/optimize
Optimize images
2020-09-30 10:48:40 +02:00
Theresa Gresch
f8e2b5800f Backend: Add testdata for json files belonging to videos with information about camera 2020-09-23 16:36:55 +02:00
Andrew Rabert
443789a7e0 Optimize images
Used:
- `oxipng --zopfli --opt max`
- `jpegoptim --all-progressive`
2020-09-21 17:40:58 -04:00
Michael Mayer
b81b8e62cd Backend: Add "qrf" to unwanted descriptions
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-21 03:54:40 +02:00
Michael Mayer
d38c84bbfb Update trademark
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-21 02:48:22 +02:00
Michael Mayer
b39d660686 Exif: Fallback to SearchFileAndExtractExif for broken JPEG files #469
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-28 09:27:25 +02:00
Theresa Gresch
68d490c975 Backend: Add new stopword 2020-08-12 19:14:01 +02:00
Michael Mayer
3ffe74a7d6 Metadata: Revert tests after upgrading go-exif #431
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-07 10:38:40 +02:00
Michael Mayer
b232d374ad Metadata: Update Exif tests and dependencies #431
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-06 10:55:15 +02:00
Michael Mayer
91a1a1ca27 Backend: Ignore image unique IDs that are not standard UUIDs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-23 15:34:20 +02:00
Michael Mayer
d20d9c50dd Metadata: Upgrade go-exif v3
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-21 10:52:39 +02:00
Michael Mayer
4cda0fd9a8 Backend: Adjust metadata log levels
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-20 23:29:14 +02:00
Michael Mayer
a01e54070d Index: Skip duplicates and handle files with wrong extension #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-20 19:48:31 +02:00
Michael Mayer
5839bc9c79 Metadata: Add test jpeg with "slice bounds out of range" error
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-20 13:53:08 +02:00
Michael Mayer
138dabd0c8 Metadata: Use mime type to determine file format and exif parser #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-19 16:39:43 +02:00
Michael Mayer
31647943d9 Add file timestamp map for faster indexing #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-17 12:47:12 +02:00
Michael Mayer
716aa082d8 Metadata: Upgrade to go-exif v3
See https://github.com/dsoprea/go-exif/issues/43

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-17 09:41:37 +02:00
Michael Mayer
4c72df7610 Metadata: Upgrade go-exif v2
See https://github.com/dsoprea/go-exif/issues/43

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-17 09:28:31 +02:00
Michael Mayer
08d89bfb1d Metadata: Add *.heic parser and upgrade go-exif
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-16 20:32:45 +02:00
Michael Mayer
0e5fe5eb43 Index image projection and add panorama filter
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-16 13:02:48 +02:00
Michael Mayer
f484dd004c Add Huawei P20 and P20 Pro #399
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-15 09:18:58 +02:00
Michael Mayer
8989c987a2 Unstack all types, except primary and sidecar files #394
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-14 11:00:49 +02:00
Michael Mayer
c14985095b Backend: Improve description string sanitation and auto add keywords
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-13 15:16:09 +02:00
Michael Mayer
849225e1ea Backend: Tweak db connection params and add stack to panic logs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-13 15:16:09 +02:00
Michael Mayer
8fd381860a Backend: Refactor Google Photos metadata parsing
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-11 20:47:52 +02:00
Michael Mayer
99eaae0816 Backend: Import JSON metadata from Google Photos
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-11 16:46:29 +02:00
Michael Mayer
711522db68 Metadata: Add patterns to unwanted descriptions list
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-11 10:19:06 +02:00
Theresa Gresch
b3487fa3b3 Backend: Add unit tests for internal/meta 2020-07-08 10:13:11 +02:00
Michael Mayer
cbcd9e5cea Metadata: Normalize exif date strings to fix broken files
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 17:11:36 +02:00
Michael Mayer
76c545c542 Backend: Shorten exif gps log message
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-02 10:07:26 +02:00
Michael Mayer
a158736463 Backend: Improve logging
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-02 09:44:45 +02:00
Michael Mayer
636b56008b Backend: Add info to metadata logs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-02 08:26:15 +02:00
Michael Mayer
4721f9d044 Backend: Improve metadata logs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-02 08:16:27 +02:00
Michael Mayer
1c72f88e8c Backend: Improve logging #369
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-29 13:16:55 +02:00
Michael Mayer
bfd73932e5 Improve UX and title generation from file names
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-29 11:10:24 +02:00
Michael Mayer
2b2cd8ed23 Backend: Sanitize metadata titles and descriptions
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-27 14:15:25 +02:00