Commit graph

837 commits

Author SHA1 Message Date
Michael Mayer
527a3ff015 People: Refresh photo metadata after faces got identified #22 2021-09-06 01:16:36 +02:00
Michael Mayer
0ebff285e5 People: Refresh photo metadata when subjects change #22 2021-09-06 00:52:10 +02:00
Michael Mayer
bd8f8b1ddb People: Remove review flag from markers with recognized faces #22 2021-09-05 21:34:51 +02:00
Michael Mayer
6d1179dc03 People: Refactor face cropping #22 2021-09-05 17:10:52 +02:00
Michael Mayer
6f5e839e2f People: Move crop package to internal #22 2021-09-05 11:05:33 +02:00
Michael Mayer
2bde7e5696 Panoramas: Increase projection type string limit to 32 characters #1508 2021-09-03 19:02:26 +02:00
Michael Mayer
34c8f9d7b1 People: Implement crop thumbnail API #22 2021-09-03 17:42:37 +02:00
Michael Mayer
57b79f983a People: Upgrade temp dev table names #22 2021-09-03 16:26:01 +02:00
Michael Mayer
c520cb4ee4 People: Add autocomplete for selecting a person #22 2021-09-03 16:14:09 +02:00
Michael Mayer
02932c3758 People: Change field order in marker_json.go #22 2021-09-02 23:50:39 +02:00
Michael Mayer
c179a790b8 People: Improve face crop caching #22 2021-09-02 23:47:37 +02:00
theresa
c61a0f7d0e Tests: Add unit tests 2021-09-02 17:44:27 +02:00
theresa
157823e65d Tests: Update fixtures 2021-09-02 17:43:46 +02:00
Michael Mayer
97af133763 People: Add subjects API #22 2021-09-02 16:12:31 +02:00
Michael Mayer
5f07b8bb10 Config: Refactor client data types 2021-09-02 14:45:26 +02:00
Michael Mayer
9acd4a25b9 People: Generate photo titles from subject names #22 2021-09-02 14:23:40 +02:00
Michael Mayer
1be409d654 People: Add SubjectNames() to file entity #22 2021-09-02 11:12:42 +02:00
Michael Mayer
e923391427 People: Improve collision handling and subject renaming #22 2021-09-01 21:16:08 +02:00
Michael Mayer
69014e8216 People: Switch to UIDs for marker API and entity #22 2021-09-01 20:46:15 +02:00
theresa
995b87373c Tests: Refactor tests to prevent nil pointer 2021-09-01 14:05:15 +02:00
Michael Mayer
fd785faf68 People: Automatically resolve face cluster collisions #22 2021-09-01 12:48:17 +02:00
Michael Mayer
a2ff0477c9 People: Fix face cluster optimization #22 2021-08-31 20:08:53 +02:00
Michael Mayer
86f8bf58a7 People: Improve MergeFaces() resilience and logging #22 2021-08-31 15:33:42 +02:00
theresa
6b10ae5511 People: Add unit tests #22 2021-08-31 14:59:53 +02:00
Michael Mayer
bc3036599b People: Refactor album, subject, and label previews #22 2021-08-30 18:58:27 +02:00
theresa
052ff011ac People: Add unit tests #22 2021-08-30 17:20:39 +02:00
theresa
1e33ce9e17 People: Add unit tests #22 2021-08-30 15:34:41 +02:00
theresa
5e88c386b6 People: Add unit tests #22 2021-08-30 14:58:37 +02:00
theresa
fb5cf1b9c0 People: Add unit tests #22 2021-08-30 13:40:14 +02:00
theresa
6187525f07 People: Add fixtures #22 2021-08-30 13:39:53 +02:00
Michael Mayer
11d1034752 People: Add keywords, subjects, and albums search filters #22 #882 2021-08-29 16:16:49 +02:00
Michael Mayer
a0f49f2d56 People: Sync subject name with markers table #22 2021-08-29 13:42:34 +02:00
Michael Mayer
d198a056a7 People: Improve face matching performance and accuracy #22
By default, matching is now limited to unmatched faces and markers.
2021-08-29 13:26:05 +02:00
Michael Mayer
0503011f87 People: Add "faces audit" command #22 2021-08-28 15:26:26 +02:00
Michael Mayer
327cd20a50 Run "make fmt" 2021-08-28 13:55:37 +02:00
theresa
630a599955 People: Add unit tests #22 2021-08-27 16:21:10 +02:00
theresa
64ad674f5f Tests: Add user fixtures and unit test 2021-08-27 15:33:33 +02:00
theresa
3bdabdedef People: Add fixtures unit tests #22 2021-08-27 15:33:06 +02:00
theresa
49ad7bb64a People: Add unit tests #22 2021-08-27 09:53:47 +02:00
theresa
af83a51496 Tests: Add unit tests 2021-08-26 18:02:53 +02:00
theresa
d0d62f470a Tests: Add unit tests 2021-08-26 17:26:48 +02:00
theresa
cfa105d3d6 Tests: Add file fixture 2021-08-26 17:24:48 +02:00
theresa
a2671b3428 People: Add unit tests #22 2021-08-26 16:31:05 +02:00
theresa
29be2cca27 People: Throw correct error in ReportCollision when embedding is empty #22 2021-08-26 16:00:11 +02:00
theresa
1761e139de People: Add unit tests #22 2021-08-26 15:51:21 +02:00
theresa
3a601f3953 People: Add unit tests #22 2021-08-26 11:58:52 +02:00
theresa
01742c13ea People: Add face + subject fixtures #22 2021-08-26 11:58:28 +02:00
theresa
c51452a90a People: Add unit tests #22 2021-08-25 17:54:06 +02:00
theresa
c99059567a People: Skip midpoint calculation if dimensions don't match #22 2021-08-25 17:53:45 +02:00
theresa
7a90c0209e Tests: Add tests for internal/entity 2021-08-25 15:29:00 +02:00
Michael Mayer
06835a3c5c People: Optimize face clustering and matching #22 2021-08-24 20:15:36 +02:00
Timo Volkmann
e71c398b1e Auth: Set role admin on user creation #98 2021-08-24 18:17:03 +02:00
Michael Mayer
3fc7b1b523 People: Match faces less often by default #22 2021-08-24 15:20:05 +02:00
Michael Mayer
03cdc8bb7d People: Improve edit UI and stability #22 2021-08-24 14:27:34 +02:00
theresa
9238d569e4 Tests: Update fixtures 2021-08-23 17:20:03 +02:00
Michael Mayer
fefe70f9a4 People: Improve face clustering and matching #22 2021-08-23 16:22:01 +02:00
Timo Volkmann
5442c04c75 Auth: Add user delete Tests #98 2021-08-23 11:52:37 +02:00
Michael Mayer
981c51f977 People: Optimize manually clustered faces #22 2021-08-22 21:06:44 +02:00
Michael Mayer
2e85b3cccd People: Split facial recognition into smaller functions #22
Clustering and matching have been improved along the way. This opens
the door for further optimizations while keeping the code readable.
2021-08-22 16:14:34 +02:00
Michael Mayer
acde5c2dae People: Reset related fields when clearing marker subject #22 2021-08-21 17:11:02 +02:00
Michael Mayer
d88d9b3781 People: Add API endpoint for removing marker subject associations #22 2021-08-21 16:36:00 +02:00
Michael Mayer
fa8e02b430 Auth: Refactor user management commands #98 2021-08-20 00:10:26 +02:00
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