Commit graph

725 commits

Author SHA1 Message Date
Michael Mayer 5cec098524 People: Improve face matching #22 2021-08-19 23:12:51 +02:00
Michael Mayer 885024d592 People: Improve face clustering and indexing #22 2021-08-19 21:12:38 +02:00
Michael Mayer 29a65dbaab People: Fork clusters library with fixed dbscan implementation #1478 2021-08-19 14:24:30 +02:00
Michael Mayer 6911c9f78b People: Change unknown face id #22 2021-08-19 11:36:45 +02:00
Timo Volkmann da7e4fbc97 Auth: Refactor user entity functions #98 2021-08-18 20:18:39 +02:00
Michael Mayer 6a450c463e People: Add PhotoUID to Subject entity #22 2021-08-18 11:33:23 +02:00
Michael Mayer db95ceba65 People: Add threshold option for faces worker #22 2021-08-17 22:49:32 +02:00
theresa e8d07e070c Tests: Update fixtures 2021-08-17 17:26:47 +02:00
theresa b2fe042cf3 Tests: Update file fixtures 2021-08-17 17:26:47 +02:00
theresa e27d363c3e Tests: Update photo fixtures 2021-08-17 17:26:47 +02:00
Timo Volkmann 19e9c7560e Auth: Add user entity functions and tests #98 2021-08-16 20:51:55 +02:00
theresa 35869c6620 Tests: Adapt tests to fixture updates 2021-08-16 18:19:23 +02:00
theresa 2a02bf74e8 Tests: Update file fixtures 2021-08-16 18:18:55 +02:00
theresa cb427cf5d5 Tests: Update photo fixtures 2021-08-16 18:18:37 +02:00
theresa 41f0e08ba6 Tests: Adapt tests to updated fixtures 2021-08-16 17:15:06 +02:00
theresa 8895f95841 Tests: Update file fixtures 2021-08-16 17:14:37 +02:00
theresa 6c86800d97 Tests: Update photo fixtures 2021-08-16 17:14:18 +02:00
theresa b877c14ada Tests: Adapt tests to fixture updates 2021-08-16 15:19:10 +02:00
theresa 2f674c5bb7 Tests: Update places fixtures 2021-08-16 15:18:30 +02:00
theresa 49c40b9d9a Tests: Update file fixtures 2021-08-16 15:18:06 +02:00
theresa 0deba0d4c7 Tests: Update photo fixtures 2021-08-16 15:17:43 +02:00
Michael Mayer 003982afe0 People: Remove face embeddings and landmarks from JSON response #22
Improves performance by reducing response size.
2021-08-16 01:45:36 +02:00
Michael Mayer da94e9ed0f People: Refactor faces worker and related entities #22 2021-08-16 00:29:36 +02:00
Michael Mayer 39856657d5 People: Refactor faces worker and related entities #22 2021-08-15 20:57:26 +02:00
Michael Mayer b7d9557f67 People: Automatically update faces and people on user input #22 2021-08-14 21:37:57 +02:00
Michael Mayer 41cc0c596d People: Match markers with known faces and people #22 2021-08-14 20:48:38 +02:00
Michael Mayer 57c5f1f2fb People: Match known faces in one go #22
This commit also adds additional test fixtures.
2021-08-14 18:13:03 +02:00
Michael Mayer b6b38b54bb People: Move detectFaces() to index_faces.go #22 2021-08-14 16:01:44 +02:00
Michael Mayer 9057e39fb2 People: Add sample threshold to faces worker #22 2021-08-14 15:45:51 +02:00
Michael Mayer 45355c7303 People: Update entity database table names #22
Work in progress.
2021-08-13 20:31:41 +02:00
Timo Volkmann 754a48c8d5 Auth: adapt tests for recent changes 2021-08-12 20:33:14 +02:00
Timo Volkmann 7f90e3615b Auth: Add tests for finding users by uid #98 2021-08-12 20:33:14 +02:00
Michael Mayer e78c4df22e People: Create person based on existing marker labels #22
Work in progress.
2021-08-12 17:49:48 +02:00
Michael Mayer d767e50b37 People: Improve face clustering #22
Work in progress.
2021-08-12 12:05:10 +02:00
Michael Mayer 1fc4ef123b People: Add face clustering worker #22
Work in progress. No performance optimizations yet.
2021-08-12 04:54:20 +02:00
Michael Mayer 733b84a03b People: Add person entity and people count #22 2021-08-11 21:42:31 +02:00
Michael Mayer 2b0e266b16 People: Multiple embeddings per face crop #22 2021-08-11 13:21:22 +02:00
Timo Volkmann e5b1b7b5f6 Auth: Add user and password fixtures #98 2021-08-10 12:30:04 +02:00
theresa 9263895408 Tests: Adapt tests to fixture changes 2021-08-05 12:33:52 +02:00
theresa c13af0408d Tests: Update photo fixtures 2021-08-05 12:33:02 +02:00
theresa a0cb73bd12 Tests: Update photo fixtures 2021-08-05 10:30:08 +02:00
theresa c0cd45afe8 Tests: Update photo fixtures 2021-08-04 18:43:39 +02:00
theresa a5152bad4d Tests: Adapt tests for internal/entity to fixture updates 2021-08-04 17:09:36 +02:00
theresa c241faf248 Tests: Update file fixtures 2021-08-04 17:08:26 +02:00
Michael Mayer 0c42ded320 Tests: Reformat link_fixtures.go
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2021-07-25 23:48:34 +02:00
theresa 09c51c8db6 Tests: Update test fixtures 2021-07-23 13:25:28 +02:00
theresa ca390351d8 Tests: Update fixtures 2021-07-22 18:31:56 +02:00
theresa de1eee18bf Tests: Update fixtures 2021-07-22 15:05:23 +02:00
theresa dcebf32c2c Tests: Adapt tests to fixture changes 2021-07-22 13:53:28 +02:00
theresa 830fba9d0b Tests: Update test fixtures 2021-07-22 13:53:28 +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 2d9918e72b People: Store detected face embeddings in markers table #22 #1406 2021-07-16 14:34:05 +02:00
Michael Mayer c87d5da2e3 Config: Add CDN URL option #425 #1351 2021-07-05 16:41:43 +02:00
Michael Mayer 1a78bc7052 Tests: Code clean-up 2021-06-28 12:45:00 +02:00
theresa 1a90f4a454 Tests: Add tests for internal/entity 2021-06-23 15:34:19 +02:00
Michael Mayer 49fd531420 People: Implement marker update API #22 2021-06-02 17:25:04 +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 11b4fbd5a0 People: Refactor face marker indexing #22 2021-05-31 15:40:52 +02:00
Michael Mayer 64d45c6dab People: Save face markers #22 2021-05-26 14:41:59 +02:00
Michael Mayer 5ecba4926a People: Show number of faces in edit dialog #22 2021-05-26 09:51:00 +02:00
Michael Mayer a6bf89d104 People: Detect number of faces (experimental) #22 2021-05-25 18:01:21 +02:00
Michael Mayer 27b14087e2 People: Add "people" search filter #22 2021-05-25 11:55:44 +02:00
Michael Mayer 07d1a74be8 People: Add PhotoPeople property to Photo struct #22 2021-05-25 11:39:22 +02:00
Michael Mayer c2a8098b6c People: Add Marker entity #22 2021-05-25 11:38:04 +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 630de81c9f Metadata: Don't remove stopwords from existing keywords #1153 2021-05-01 11:06:51 +02:00
Michael Mayer 7de3713024 Backup: Improve command flags and usage docs #1190 #1193 2021-04-19 13:48:46 +02:00
theresa c0d5da40e1 Tests: Add tests for internal/api 2021-03-10 15:52:38 +01:00
theresa b2eee0d34d Tests: Add test fixtures 2021-03-10 11:30:09 +01:00
theresa 3f68c2f6e4 Tests: Add tests for internal/query 2021-03-03 11:49:32 +01:00
theresa 539562368e Tests: Add tests for internal/entity 2021-02-25 15:42:20 +01:00
theresa bd8b5d9954 Tests: Add tests for internal/entity 2021-02-25 15:17:47 +01:00
theresa c7a9c437ad Tests: Add tests for internal/entity 2021-02-24 18:10:15 +01:00
theresa 6c4c07f064 Tests: Add tests for internal/entity 2021-02-24 15:31:10 +01:00
theresa 7714ab893b Tests: Add tests for internal/entity 2021-02-24 11:38:28 +01:00
Michael Mayer d42eb4e01b Classify: Improve moments & location labels 2021-02-21 17:18:36 +01:00
Michael Mayer f986f21f47 Metadata: Remove estimate when setting a new country #1018 2021-02-11 19:48:33 +01:00
Michael Mayer 9b43e96659 Index: Improve log messages #1010 2021-02-08 08:19:30 +01:00
Michael Mayer b09edde419 Index: Improve log messages #1010 2021-02-08 08:09:23 +01:00
Michael Mayer 568685f991 Index: Improve query for photos with missing primaries #1010 2021-02-08 07:39:29 +01:00
Michael Mayer c7753b87ff Library: Show folder covers in Originals #1011 2021-02-07 19:04:17 +01:00
Michael Mayer 1bfb2e1774 Index: Improve save / update functions, remove orphans 2021-02-06 16:30:30 +01:00
Michael Mayer ee555e8f6a Upload: Add duplicates to selected album(s) as well #991 2021-02-05 21:12:40 +01:00
Michael Mayer 2a96c019f4 Metadata: Update camera model map 2021-02-05 19:48:53 +01:00
Michael Mayer 128cdf4bac Backend: Fix typo in photo entity 2021-02-05 19:18:33 +01:00
Krassimir Valev c27e809308
Additional photo location unit tests (#918) 2021-02-05 18:32:32 +01:00
Michael Mayer 63ba28426e Navigation: Update counts when saving a photo #996 2021-02-05 18:22:52 +01:00
Michael Mayer bf592bdf7c Backup: Restore archive flag from yaml files #912 2021-02-05 16:32:08 +01:00
Michael Mayer a99c6978d2 Metadata: Update camera make map 2021-02-05 09:12:13 +01:00
Michael Mayer b55c06dca1 Metadata: Rename SetTimeZone to UpdateTimeZone #930 2021-01-27 23:39:46 +01:00
Michael Mayer 480b186b3c Metadata: Ignore UTC time zone estimates #930 2021-01-27 23:31:13 +01:00
Michael Mayer 28e2e85d48 Metadata: Apply time zone estimate if date was not set manually #930 2021-01-27 22:47:37 +01:00
Michael Mayer 993e7466fa Download all related files using their existing name by default #449
Related issues:
- Configure download name for files and albums #848
- When downloading live photos, zip all the associated files #437
2021-01-27 21:30:10 +01:00
Michael Mayer 40ccb29313 Metadata: Improve date extraction for mod time and file names #930 2021-01-27 15:21:54 +01:00
Michael Mayer e175251783 Metadata: Remove time zone if taken date is from file name #930 2021-01-27 12:36:23 +01:00
Michael Mayer 2d0ba9c60e Backend: Add "OLYMPUS CORPORATION" to camera.go 2021-01-27 12:00:02 +01:00
Michael Mayer 52532c4579 Metadata: Improve handling of time zones and estimates #930 2021-01-26 19:18:37 +01:00
Michael Mayer 05b417acfa Metadata: Apply existing time zone when changing TakenAt 2021-01-26 13:00:54 +01:00
Michael Mayer ef2f231d5b Indexer: Improve taken date fallback when other metadata is missing #930 2021-01-25 21:41:57 +01:00
Michael Mayer 378dd0812e Metadata: Simplify keyword indexing #920 2021-01-25 20:30:52 +01:00
Michael Mayer 274c9347f5 Purge: Hide missing files in UI and set new primary if needed #917 2021-01-24 20:40:40 +01:00
Michael Mayer 6ee2613e90 Metadata: Improve time zone estimates #914 2021-01-19 13:47:41 +01:00
Michael Mayer 019a649c61 Metadata: Set time zone based on pictures taken at a similar time #914 2021-01-19 11:41:25 +01:00
Michael Mayer 9dad595c3e Photo: Allow overwriting estimated locations #918 2021-01-19 11:38:35 +01:00
Krassimir Valev a90ee62cd6
Search albums by country (#905) 2021-01-16 12:48:43 +01:00
Michael Mayer ed0aa11ee8 UX: Document min password length and reduce to 4 chars 2021-01-02 14:06:34 +01:00
Michael Mayer 8e22fbf8f6 Metadata: Store and compare data source for details #755 2020-12-31 13:51:31 +01:00
Michael Mayer bbd0af3dd3 Shares: Allow reuse of the same share slugs & tokens #776 2020-12-31 12:02:26 +01:00
Michael Mayer 29a57fd846 Settings: Add estimate feature flag #622 2020-12-30 11:11:58 +01:00
Michael Mayer 91acaaa573 Index shorter keywords in languages like Chinese #746
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-27 16:37:28 +01:00
Michael Mayer 13bd176f0f Albums: Handle missing entries and pure emoji titles
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-27 13:11:08 +01:00
Michael Mayer 4ac0ef3556 Indexer: Improve merging and performance
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-27 07:43:39 +01:00
Michael Mayer fd53d30caa Indexer: Reset photo quality after merging
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-26 23:08:08 +01:00
Michael Mayer 45c0e2f60d Folders: Fix title capitalization #737
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-25 14:31:06 +01:00
Michael Mayer 1ad8eb343d Photo: Omit Stack property in YAML files if 0 2020-12-21 18:43:31 +01:00
Michael Mayer 12cb89eca5 Stacks: Use "Stackable" int8 instead of "Unstacked" bool #616 #667 2020-12-19 19:15:32 +01:00
Michael Mayer a067fe46ec UX: Add global server config options tab to Settings UI 2020-12-18 20:42:12 +01:00
Michael Mayer 7940786ce9 UX: Refactor config options to be more intuitive
Make sure to update your local config files when upgrading as
the name of some config values has changed. The default
config path has changed from "settings" to "config".
2020-12-18 09:11:42 +01:00
Michael Mayer 449fb7a2c1 Backup and restore albums from YAML files #567 2020-12-17 18:24:55 +01:00
Michael Mayer 859e4f7d8c Indexer: Set a default color for photos with multiple files #715 2020-12-17 12:32:53 +01:00
Michael Mayer 1f386533cf Indexer: Use lookup table to prioritize metadata sources 2020-12-17 10:23:17 +01:00
Michael Mayer 717da1bd34 Downloads: Configure file name schema #675
There is no UI for this setting yet.
2020-12-16 11:59:16 +01:00
Michael Mayer 28880e682d Database: Improve config and SQL queries 2020-12-15 20:14:06 +01:00
Michael Mayer 387452858e Indexer: Use mutex when saving photos to avoid concurrency issues 2020-12-14 20:56:33 +01:00
Michael Mayer c2e5663da0 Indexer: Add folder albums while indexing 2020-12-14 20:37:54 +01:00
Michael Mayer 430d16bf95 Indexer: Find existing camera via slug, return unknown camera by default 2020-12-14 19:24:08 +01:00
Michael Mayer 5383553cd1 Moments: Update folder search filter when path changes 2020-12-14 14:11:14 +01:00
Michael Mayer 35659f25cf Indexer: Improve logging and locking 2020-12-14 13:31:18 +01:00
Michael Mayer 43e324700b Indexer: Avoid adding the same entity simultaneously 2020-12-13 15:43:01 +01:00
Michael Mayer ce471de921 Indexer: Refactor photo merge #616 2020-12-12 22:02:14 +01:00
Michael Mayer 473566f404 Videos: Enforce transcoding to MPEG-4 AVC #603 2020-12-12 17:20:31 +01:00
Michael Mayer 73a00efae8 Workaround for bad image rotation in Exif headers #637 2020-12-12 13:05:58 +01:00
Michael Mayer 6b9d0ce584 Indexer: Don't merge edited photos 2020-12-12 08:14:44 +01:00
Michael Mayer 9fe9ca747f Indexer: Improve unstacking of single files 2020-12-11 23:09:06 +01:00
Michael Mayer 9f4066edb6 Indexer: Improve stacking and indexing of moved files 2020-12-11 22:09:11 +01:00
Michael Mayer 04c17fb77b Indexer: Improve stacking settings and merging 2020-12-11 17:21:13 +01:00
Michael Mayer d82a0ab525 Indexer: Don't optimize merged photos
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-09 22:15:10 +01:00
Michael Mayer c0fb3deb06 Indexer: Stack photos while optimizing 2020-12-09 21:44:04 +01:00
Michael Mayer 004400b118 Albums: Improve folder indexing 2020-12-09 13:10:21 +01:00
Michael Mayer 5645cb1d0e Albums: Update folder album slug when path changes
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-09 00:44:33 +01:00
Michael Mayer ee49073cf2 Albums: Improve UX and indexing 2020-12-08 22:40:13 +01:00
Michael Mayer 466a1bc3dd Albums: Hide empty folder albums after re-indexing #684 2020-12-08 19:47:27 +01:00
Michael Mayer a43f8be231 Stacks: Repair merge query #681 #667 #593 2020-12-07 17:51:35 +01:00
Michael Mayer ae0af699c6 Stacks: Add advanced indexing options #681 #667 #593 2020-12-07 16:19:03 +01:00
Michael Mayer 56851f4892 WebDAV: Add timeout for fetching directories #664 2020-12-05 01:24:33 +01:00
Michael Mayer d0f8c577b3 Indexer: Add optimize command & automatically fix location data #546 2020-12-05 00:13:44 +01:00
Michael Mayer 6d791f8a59 Indexer: Improve logging #546 2020-12-04 23:16:22 +01:00
Michael Mayer e77fefd78f Indexer: Improve stacking SQL #576 2020-12-04 20:33:17 +01:00
Michael Mayer 902aacece9 Indexer: Merge identical photos (stack files) #576 2020-12-04 19:51:51 +01:00
Michael Mayer dfd9cb53ac Update link entity test #621
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-11-22 03:22:21 +01:00
Michael Mayer 49a299b3b0 Fix links with expiration #621
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-11-22 03:12:31 +01:00
Michael Mayer 59a806c685 Indexer: Fix purge and restore of RAW files #568 #614
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-11-21 23:28:03 +01:00
Michael Mayer 590350a6dd Backend: Fix logging in File.Rename() #568 2020-11-21 18:33:19 +01:00
Michael Mayer 5daa689975 Backend: Format go imports 2020-11-21 18:08:41 +01:00
Michael Mayer ef316c98b7 Implement batch approve #489 2020-11-21 17:36:41 +01:00
Michael Mayer 1ad2d53e16 Indexer: Recover all missing files #568 2020-11-21 15:43:13 +01:00
Michael Mayer 7d87062436 Indexer: Fix handling of renamed and previously missing files #568 2020-11-20 17:25:46 +01:00
Michael Mayer 28f59947df Indexer: Update index when files were renamed #568 2020-11-15 15:15:56 +01:00
Michael Mayer e22e6c6d37 Indexer: Improve duplicate detection #568
Only non-sidecar files in the originals folder will be added to the
duplicates table to avoid side effects.
In addition, the duplicates table is cleaned before and after indexing.
2020-11-15 10:31:46 +01:00
Theresa Gresch c72ddbedcb Backend: Add unit tests 2020-10-20 10:07:27 +02:00
Theresa Gresch 7b9f21207e Backend: Add tests for entity 2020-10-20 09:25:19 +02:00
Theresa Gresch b19e01396a Backend: Add tests for entity 2020-10-19 17:06:09 +02:00
Michael Mayer 4fc693fb0b Permanently delete non-primary files #435
This is a fix for unstacking issues in certain situations. More general
photo delete functionality will be added later, see #167.

Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-04 14:21:40 +02:00
Michael Mayer 46b9239026 Backend: Refactor user entity and add pro package
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-10-03 13:50:30 +02:00
Phil Davis c90f19ec21
Fix minor typos 2020-10-01 16:00:43 +05:45
Michael Mayer 226f218f80 Backend: Count login attempts and localize error messages
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-21 09:40:35 +02:00
Michael Mayer 6d58b76394 Backend: Remove GlobalUID from Address entity
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-21 08:55:33 +02:00
Michael Mayer dc8640ca2b Person: Revert previous commit
EulaSigned might cause confusion as it's commonly used for proprietary software.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-17 19:20:12 +02:00
Michael Mayer 48ec25bcba Person: Add EulaSigned date field
Users might need to accept terms & conditions when using external services / APIs.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-16 18:14:09 +02:00
Michael Mayer 9950bc9975 Person: Rename UserActive to IsActive #98 #144
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-16 16:44:20 +02:00
Michael Mayer a44351f332 Person: Refactor / rename entity fields #98 #144
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-16 16:24:03 +02:00
Michael Mayer d18414e468 Person: Rename optional UserUUID to GlobalUID #98 #144
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-16 15:35:35 +02:00
Michael Mayer 3af6e9b83e Frontend: Update user model #98 #144
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-13 18:10:31 +02:00
Michael Mayer 84b17194af Backend: Refactor person entity #98 #144
Database column types are now UPPERCASE so that developers can easily recognize them. After upgrading to GORM 2.0, we can use generic types instead.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-13 17:51:43 +02:00
Michael Mayer a071642629 Backend: Refactor person entity fields #144
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-07 17:10:43 +02:00
Michael Mayer 01c4b483dd Backend: Refactor person entity for smaller db row size #144
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-07 12:18:12 +02:00
Michael Mayer 33888fd231 Backend: Add credentials and extend person entity #98 #144
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-06 14:18:40 +02:00
Theresa Gresch 7e7b53590a Backend: Add validation for valid dates in setTakenAt() 2020-08-18 10:42:09 +02:00
Michael Mayer 6e2849fba2 Index: Don't stack files based on XMP InstanceID
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-18 00:45:53 +02:00
Michael Mayer d43d3a22e0 Backend: Improve country estimate from folder name
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-14 15:36:48 +02:00
Michael Mayer 28595497b1 Backend: Limit place estimates to 36h time difference
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-24 14:06:26 +02:00
Michael Mayer 7d00e68d92 Index: Refactor mime type detection #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-21 14:43:45 +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 ab6228fb9a Index: Skip empty files #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-21 10:44:41 +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 0da72687e6 Backend: Add Huawei P10 models to camera model lookup table
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-20 13:03:14 +02:00
Michael Mayer cd7cd064b6 Backend: Add Huawei Mate models to camera model lookup table
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-20 12:43:57 +02:00
Michael Mayer 24cfa1aea2 Backend: Refactor file indexing / skipping
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-18 20:58:35 +02:00
Michael Mayer 812e550d76 Backend: Remove unused duplicate field from file entity
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-18 12:39:04 +02:00
Michael Mayer cc946b8ea8 Use int64 for file modification timestamps #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-17 16:09:55 +02:00
Michael Mayer 13fe9af2fc Backend: Fix panorama detection #352
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-17 10:10:01 +02:00
Michael Mayer 6847b8b5f9
Complete file browser with symlink support and full folder / file names (#412)
* Backend: Code clean-up

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* File Browser: Show complete, original file and folder names #408

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* File Browser: Follow symlinks #201 #403 #407

Warning: Following symlinks can make folder lists non-deterministic
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-16 15:43:23 +02:00
Michael Mayer 6c13b75562 Backend: Improve places logging #399
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-16 14:00:22 +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 db5edb8e4d Add flag for 360° panoramas #352
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-15 20:59:33 +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 d6b848c0e9 Backend: Use common log prefix for places and their cells
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-15 08:31:36 +02:00
Michael Mayer b62af742ae Backend: Improve log messages
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-14 18:00:32 +02:00
Theresa Gresch e6cc639040 Backend: Add unit tests for internal/api 2020-07-14 14:46:27 +02:00
Michael Mayer be94ff624c Edit photo type and sort by recently edited #394
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-14 12:42:31 +02:00
Michael Mayer 7a7c5aa190 UX: Reduce some levels to keep logs clean
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-14 12:39:56 +02:00
Theresa Gresch a5987a0b33 Backend: Add unit tests for internal/api 2020-07-14 11:24:00 +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 a507f21740 Backend: Remove unused notes field from file entity
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-13 18:09:44 +02:00
Theresa Gresch dac846ba01 Backend: Add unit tests for internal/workers 2020-07-13 16:44:17 +02:00
Michael Mayer 4a9f992056 Thumbs: Use fit_4096 in favor of fit_3840 and add convert limit #362 #388
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-13 15:23:54 +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
Theresa Gresch 0144458664 Backend: Add unit tests for internal/query 2020-07-13 12:29:11 +02:00
Theresa Gresch b21433479e Backend: Add unit tests for internal/query 2020-07-13 11:11:52 +02:00
Michael Mayer 4fb263f8a4 Add location field to album metadata
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-12 16:36:39 +02:00
Theresa Gresch edb9bba671 Backend: Add unit tests for internal/photoprism 2020-07-12 14:36:36 +02:00
Michael Mayer 5648c9616e Backend: Refactor location data tables and entities
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-12 08:27:05 +02:00
Michael Mayer 8c53049b4a Backend: Remove deprecated columns from geo and places
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-12 06:54:07 +02:00
Michael Mayer 2bef7e7e9d Backend: Reduce location estimate time difference to 3 days
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-12 05:20:16 +02:00
Michael Mayer 8bf6a7b678 Backend: Fix location estimate query
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-12 05:10:00 +02:00
Michael Mayer 00e334657a Photo: Set defaults for PlaceID, GeoID, CameraID and LensID
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-12 04:48:17 +02:00
Michael Mayer e1c45c4d5f Rename "location" to "geo" to have a short, common prefix for geo data
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-11 23:43:29 +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 2c6552ff73 Backend: Remove log in Photo.Create()
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-11 09:41:35 +02:00
Theresa Gresch d4935c2d13 Backend: Add unit tests for internal/entity 2020-07-10 17:35:22 +02:00
Theresa Gresch dcc43ed45d Backend: Add unit tests for internal/entity 2020-07-10 17:27:06 +02:00
Michael Mayer 174e6d53c9 Backend: Use FirstOrCreate() instead of Create() when adding new photos
Not perfect as metadata should rather be merged. Ideally some kind of mutex avoids database conflicts / locks / errors in the future. Right now, we're (intentionally) using the database as "mutex" so that the application code needs less complexity. This is especially problematic on powerful servers with many CPUs and index workers. See also issue #392.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-10 17:09:39 +02:00
Theresa Gresch dad0ba9d27 Backend: Add unit tests for internal/entity 2020-07-10 15:15:56 +02:00
Theresa Gresch d6c910c16b Backend: Add unit tests for internal/entity 2020-07-10 15:06:37 +02:00
Theresa Gresch 4196420dc7 Backend: Add unit tests for internal/entity 2020-07-10 13:57:51 +02:00
Theresa Gresch 560849ec52 Backend: Add unit tests for internal/entity 2020-07-10 11:44:51 +02:00
Theresa Gresch 1f9528562f Backend: Add unit tests for internal/entity 2020-07-10 10:58:06 +02:00
Theresa Gresch b480bbefcc Backend: Add unit tests for internal/entity 2020-07-10 10:29:56 +02:00
Michael Mayer 3f9454876d Concurrency fix for photo details #357
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-09 17:45:56 +02:00
Theresa Gresch f857198178 Backend: Add unit tests for internal/entity 2020-07-09 16:46:13 +02:00
Theresa Gresch 6212c8d63d Backend: Add unit tests for internal/entity 2020-07-09 15:37:30 +02:00
Theresa Gresch dd7b5b3a1b Backend: Add unit tests for internal/entity 2020-07-09 12:24:44 +02:00
Theresa Gresch 131e822a58 Backend: Add unit tests for internal/entity 2020-07-09 11:50:58 +02:00
Theresa Gresch 15d66fc304 Backend: Add unit tests for internal/entity 2020-07-09 11:27:44 +02:00
Theresa Gresch 006e833249 Backend: Fix unit test 2020-07-08 18:36:37 +02:00
Theresa Gresch 226eafec7b Backend: Add unit tests for internal/entity 2020-07-08 18:09:18 +02:00
Theresa Gresch e1487238e6 Backend: Add unit tests for internal/entity 2020-07-08 17:36:06 +02:00
Theresa Gresch 3e6c21a566 Backend: Add unit tests for internal/entity 2020-07-08 17:06:23 +02:00
Theresa Gresch 380aa0ba4b Backend: Add unit tests for internal/entity 2020-07-08 15:25:33 +02:00
Michael Mayer e2845981c1 Concurrency fixes for cameras, lenss, folders, keywords, and labels #357
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 20:44:33 +02:00
Michael Mayer 4b7551fb99 Try fetching country again if create fails #357
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 16:56:02 +02:00
Michael Mayer 14420b02a9 Try fetching places and location again if create fails #357
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 16:40:29 +02:00
Michael Mayer 3bfbd3070e Fix time difference threshold in Photo.EstimatePlace()
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 13:18:34 +02:00
Michael Mayer 6273e77867 Try saving photo a second time after deadlocks #357
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 12:59:47 +02:00
Michael Mayer 3fec93ee4e Load existing photo if uid was found in YAML sidecar file #357
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 12:20:38 +02:00
Michael Mayer d1db3d04f7 Logs: Improve event log and messages in i18n package
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-07 10:51:55 +02:00
Michael Mayer 8f74fdb8a0 Backend: Fix Photo.GetDetails()
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-06 20:20:03 +02:00
Michael Mayer eeef16f07e Backend: Refactor photo details entity #379 #357
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-06 19:15:57 +02:00
Michael Mayer 4ddf241a6c UX: Rename "analog" to "scan"
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-06 14:35:25 +02:00
Michael Mayer 1284091b77 Backend: Improve FileTitle() function
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-06 11:31:03 +02:00