Commit Graph

239 Commits

Author SHA1 Message Date
Theresa Gresch
a0465e0e10 Backend: Add tests to internal/entity 2020-05-07 16:45:33 +02:00
Michael Mayer
1479a3ec5b Refactor indexer so that thumbs and jpegs can be created on demand #258
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-06 10:35:41 +02:00
Theresa Gresch
b16216819b Backend: Add test fixtures 2020-05-05 09:28:30 +02:00
Theresa Gresch
5388b785bf Backend: Add tests to internal/api 2020-05-04 17:54:42 +02:00
Theresa Gresch
6e2062ea4b Backend: Add tests to api/labels 2020-05-04 16:02:49 +02:00
Michael Mayer
2032b40f2b Backend: Code clean-up
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-03 18:00:50 +02:00
Theresa Gresch
d81fe794eb Backend: Add label fixtures 2020-05-03 17:26:26 +02:00
Theresa Gresch
6edb578b34 Backend: Add test fixtures 2020-05-01 14:18:51 +02:00
Theresa Gresch
9e343cef04 Backend: Add fixtures for files 2020-05-01 14:18:51 +02:00
Theresa Gresch
409cea4659 Backend: Add fixtures for photokeywords 2020-05-01 14:18:51 +02:00
Theresa Gresch
5d2c4fa5d6 Backend: Add fixtures for photolabels 2020-05-01 14:18:51 +02:00
Theresa Gresch
c0a37ca36a Backend: Add fixtures photoalbum 2020-05-01 14:18:51 +02:00
Theresa Gresch
0008f68b71 Backend: Add fixtures for links 2020-05-01 14:18:51 +02:00
Theresa Gresch
5f33848b14 Backend: Add fixtures for keywords 2020-05-01 14:18:51 +02:00
Theresa Gresch
3127eef80f Backend: Add fixtures for categories 2020-05-01 14:18:51 +02:00
Theresa Gresch
5c86f02106 Backend: Add test fixtures for albums 2020-05-01 14:18:51 +02:00
Theresa Gresch
434948d57a Backend: Add test fixtures for photos 2020-05-01 14:18:51 +02:00
Theresa Gresch
9234c5797a Backend: Add test fixtures for labels 2020-05-01 14:18:50 +02:00
Theresa Gresch
6188c7f736 Backend: Add test fixtures for countries 2020-05-01 14:18:50 +02:00
Theresa Gresch
785d433ba9 Backend: Add test fixtures for cameras 2020-05-01 14:18:50 +02:00
Michael Mayer
59f1c0d786 Backend: Code clean-up
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-01 13:54:47 +02:00
Michael Mayer
e3356aa79b Backend: Don't regenerate existing unique IDs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-01 12:57:26 +02:00
Michael Mayer
b4a04a478f Backend: Set test database using PHOTOPRISM_TEST_DSN
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-30 22:39:38 +02:00
Michael Mayer
f8de34dac7 Backend: Add account fixtures
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-30 22:25:53 +02:00
Michael Mayer
c30476f120 Backend: Refactor test db initialization
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-30 21:21:09 +02:00
Michael Mayer
260cca91fe Backend: Refactor entity package
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-30 20:07:03 +02:00
Michael Mayer
eaae910014 Backend: Refactor entity tests
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-30 14:32:48 +02:00
Michael Mayer
3da7719728 Backend: Don't use UTC as unknown time zone
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-29 02:22:59 +02:00
Michael Mayer
428d5f34b5 Backend: Remove event entity until we need it
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-28 19:44:27 +02:00
Michael Mayer
96098913ff Places: Add support for new keywords field
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-28 19:41:06 +02:00
Michael Mayer
95cc4ec43f Backend: Code clean-up
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-26 17:15:17 +02:00
Michael Mayer
3630a49df0 Backend: Improve metadata indexing
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-26 16:22:29 +02:00
Michael Mayer
882340a14c Refactor string clipping in frontend & backend
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-26 14:31:33 +02:00
Michael Mayer
3edf30ab3a Reduce location precision to float32
This is the practical limit of commercial data and should be more than enough for our use case while ideally providing better index performance.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-26 11:41:54 +02:00
Michael Mayer
e9948344c0 Backend: Use type varbinary(2) for country
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-25 16:23:16 +02:00
Michael Mayer
e29897715d Change unknown place ID to "zz"
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-25 16:17:59 +02:00
Michael Mayer
dab8052b76 make fmt
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-25 14:55:26 +02:00
Michael Mayer
e8e0639d78 Backend: Provide unknown camera & lens as default
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-25 14:22:47 +02:00
Michael Mayer
8609ab805f Automatically set private flag if detect-nsfw is enabled
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-24 20:28:16 +02:00
Michael Mayer
77cea5d719 Implement score to sort photos by quality #288
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-24 13:21:18 +02:00
Michael Mayer
122e4730a3 Select primary file for grouped photos
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-21 10:23:27 +02:00
Michael Mayer
360c87c348 Show grouped photos in search results
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-20 20:07:58 +02:00
Michael Mayer
9f188a7b93 Albums: Set default sort order to "oldest first"
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-20 12:53:58 +02:00
Michael Mayer
f70b506f77 Albums: Save sort order and description
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-20 10:38:01 +02:00
Michael Mayer
0c3a06d355 Sync: Skip existing files
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-20 07:43:49 +02:00
Michael Mayer
b31508e4f3 Refactor & improve editing of photo labels
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-19 01:13:55 +02:00
Michael Mayer
d2d3f7eb52 Fix automatic titles for photos without location
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-18 23:48:56 +02:00
Michael Mayer
f07064c2c3 Refresh titles, labels and locations
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-18 23:20:54 +02:00
Michael Mayer
af3945d2fe Label: Remove log messages
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-17 23:17:31 +02:00
Michael Mayer
20a5912210 Rename, remove and re-activate labels
Still need to fix label names when re-indexing so that custom names are used, if changed by the user.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-17 21:20:38 +02:00
Michael Mayer
9a763541ac Keywords: Improve indexing and logging
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-17 14:16:34 +02:00
Theresa Gresch
74e33e1917 Backend: Improve labels 2020-04-16 23:16:55 +02:00
Michael Mayer
e3f614bc23 Backend: Update photo title when location or labels change
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-16 20:57:00 +02:00
Michael Mayer
61ebd1ac90 Locations: Refactor indexing
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-16 18:05:22 +02:00
Michael Mayer
204ae30c90 Keywords: Don't split words with a dash
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-16 15:57:07 +02:00
Michael Mayer
6941028c4f Backend: View and edit archived photos
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-15 14:27:48 +02:00
Michael Mayer
3b27f8d3f4 Skip exact duplicates #283
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-14 15:08:39 +02:00
Michael Mayer
a06ac39639 Add "similar" sorting option as proof-of-concept
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-11 12:14:37 +02:00
Michael Mayer
a8c48ab40e Initial API and entities for link sharing
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-08 13:24:06 +02:00
Michael Mayer
b020b4e415 Sync: Ignore unsupported file types #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-07 10:42:42 +02:00
Michael Mayer
02810ffa94 Sync: Import/index after downloading #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-06 22:09:45 +02:00
Michael Mayer
aa220a06fe Backend: Refactor package structure
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-05 22:26:53 +02:00
Michael Mayer
c882b56f82 Sync: Download remote files #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-04 17:19:34 +02:00
Michael Mayer
3de78e3124 Sharing: Delete expired files #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-04 13:53:52 +02:00
Michael Mayer
2e5840f3b0 Implement share worker #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-03 18:08:49 +02:00
Michael Mayer
15d32016c6 Sharing: Refactor API and entities #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-02 18:17:07 +02:00
Michael Mayer
1adc144ac2 Backend: Insert shared file into files_share table #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-01 18:17:29 +02:00
Michael Mayer
91b1d7a198 WebDAV sharing proof-of-concept #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-01 12:00:45 +02:00
Michael Mayer
5f91d0d17b Add photo share dialog for WebDAV #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-31 17:26:25 +02:00
Michael Mayer
2cd3a3030c Backend: Code clean-up
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-30 13:34:53 +02:00
Michael Mayer
9f400a826c Frontend: Fix account management issues #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-30 09:17:46 +02:00
Michael Mayer
b592e67dfa Frontend: Improve account management #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-29 21:24:44 +02:00
Michael Mayer
a9ece37feb Backend: Enable service discovery in API #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-29 12:02:01 +02:00
Michael Mayer
ec051e5481 Backend: Improve file share and sync entities #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-29 08:34:25 +02:00
Michael Mayer
29c3880aeb Accounts: Rename "push" to "share" #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-28 19:46:09 +01:00
Michael Mayer
1d667ada79 Backend: Add account API #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-28 15:29:17 +01:00
Michael Mayer
81dc7bbb19 Backend: Add sharing entities (file sync & push) #225
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-27 18:17:07 +01:00
Michael Mayer
eedaae8f91 Backend: Move photo description to separate table
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-26 09:41:33 +01:00
Michael Mayer
ccd92a4715 Update index after editing photo metadata
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-25 14:14:00 +01:00
Michael Mayer
16e17b33bf Add photo keywords edit field and improve indexing
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-03-25 12:39:07 +01:00
François d'Yvoire
55693fab35
Some more comment improvements (#257)
* Improve comment in classify package

* improve comment in config package

* improve entity package comments

* grammar error in comments
2020-02-21 01:14:45 +01:00
Michael Mayer
c583d7e994 Backend: Index Keywords, Subject and Artist #243
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-02-07 17:02:53 +01:00
Michael Mayer
4ef19bb671 Backend: Sidecar file hashes may have duplicates
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-02-04 12:25:57 +01:00
Michael Mayer
4efa383c57 API: Proof-of-concept for form handling
We don't want to directly write to models so that only selected fields can be changed and values can be validated for security reasons.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-02-02 03:36:00 +01:00
Michael Mayer
1cbb0a6d56 Labels: Edit name in overview #212
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-02-02 02:00:47 +01:00
Michael Mayer
90dd094a21 Sharing: Add accounts table #11
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-02-02 00:31:09 +01:00
Michael Mayer
a4070cf55c Backend: Store and index original file names during import #184
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-02-01 20:52:28 +01:00
Michael Mayer
11c3ed70e3 Photo edit: Publish event to keep clients in sync
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-30 09:51:23 +01:00
Michael Mayer
d9ec032371 Photo edit: Refresh view after saving
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-30 06:17:02 +01:00
Michael Mayer
183ebd3f03 Backend: Add FileError col to files table #202
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-29 17:41:51 +01:00
Michael Mayer
bdf976abd7 Edit photo: Add and remove labels
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-29 15:28:20 +01:00
Michael Mayer
49b329d45c Edit dialog: Make additional fields savable #212 #217
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-24 10:25:08 +01:00
Michael Mayer
f569c3adb6 Require password for all pages (if not running in public mode)
See https://github.com/photoprism/photoprism/issues/167#issuecomment-574866401

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-22 13:43:07 +01:00
Michael Mayer
c978fa00f1 Backend: Proof-of-concept for indexing XMP files #68
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-13 23:14:10 +01:00
Michael Mayer
f8a45b14d9 Backend: Move reusable packages to pkg/
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-12 14:00:56 +01:00
Michael Mayer
fbea88bd74 Backend: Add PPID() to rnd package
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-12 12:32:24 +01:00
Michael Mayer
ba9b3cad72 Backend: Increase S2 cell level from 18 to 21 and remove suburb
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-11 01:59:43 +01:00
Michael Mayer
b37d4472e4 Backend: Use original file if thumb size exceeds limit #172
Plus some mutex and config refactoring along the way...

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-08 19:51:21 +01:00
Michael Mayer
21451e8263 Backend: Code refactoring and clean-up #172
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-08 09:27:39 +01:00
Michael Mayer
c147eee30f Backend: Add stub for meta package #172
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-07 17:36:49 +01:00
Theresa Gresch
4cf7cd98b1 Add test for country.go 2020-01-06 20:16:31 +01:00
Michael Mayer
3d990fc3fd Backend: Add support for PNG, TIFF, BMP and GIF #38 #156
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-06 17:50:05 +01:00
Michael Mayer
f6d4e62ea8 Backend: Split up "util" package
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-06 15:22:46 +01:00
Michael Mayer
e43983d579 Backend: Refactor thumbnail package #157
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-06 14:32:15 +01:00
Michael Mayer
5ec2d9e9a4 Backend: Add config parameters #99 #157 #180
This commit adds config parameters for thumbnail quality, max thumbnail size and geocoding api as well as a flag to to disable TensorFlow.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-06 06:59:35 +01:00
Michael Mayer
582113fed4 Backend: Add write mutex to entities and improve test fixtures #164
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-06 04:24:49 +01:00
Michael Mayer
01ca94d536 Backend: Initialize test db with fixtures #84 #129
Fixtures can be found in assets/resources/examples/fixtures.sql and must be maintained manually for now

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-06 02:14:17 +01:00
Michael Mayer
a3b3136498 Backend: Add "idx_photos_taken_uuid" for consistent sorting by time
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-05 14:09:17 +01:00
Michael Mayer
29db7abfd1 Backend: Add mutex for location updates
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-02 06:10:28 +01:00
Michael Mayer
4263061a89 Backend: Fix index events after refactoring
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-02 05:38:21 +01:00
Michael Mayer
32fdb72ac9 Backend: Code clean-up
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-01-02 04:08:33 +01:00
Michael Mayer
6da8bd098a Backend: Add support for new Places API #173
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-31 07:16:11 +01:00
Michael Mayer
cf909e2a4e Backend: Use S2 tokens for location and place ID #173
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-31 01:34:27 +01:00
Michael Mayer
ca8cfffc24 Backend: Prepare database for advanced filtering and grouping #154
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-28 20:24:20 +01:00
Michael Mayer
de6503646c Backend: Refactor location
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-28 12:28:06 +01:00
Michael Mayer
875245f1d4 Backend: Use uint64 for location IDs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-27 23:58:51 +01:00
Michael Mayer
366c70d992 Optimize performance and data structures
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-27 05:18:52 +01:00
Michael Mayer
8e15c1d6fd Code clean-up (make fmt)
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-21 17:24:29 +01:00
Michael Mayer
1e7c0c2435 Backend: Improve location hashing and categories
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-20 23:05:44 +01:00
Michael Mayer
f3cf300590 Backend: Refactor location entity and indexer
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-20 20:23:16 +01:00
Michael Mayer
d0104560de Labels: Update labels.yml and location.go
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-19 12:31:13 +01:00
Michael Mayer
fc5d327494 Photo: DATETIME instead of TIMESTAMP for TakenAt #162
Error logging and labels were also improved along the way.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-19 09:37:10 +01:00
Theresa Gresch
2658767d72 Add test for entity/share.go 2019-12-17 18:28:47 +01:00
Theresa Gresch
98ebf18ff5 Add test for entity/photo_label.go 2019-12-17 18:28:07 +01:00
Theresa Gresch
b5336eebb0 Add test for entity/photo_keyword.go 2019-12-17 18:27:48 +01:00
Theresa Gresch
cf08fd4256 Add test for entity/photo_album.go 2019-12-17 18:27:25 +01:00
Theresa Gresch
156a13358e Add test for entity/location.go 2019-12-17 18:27:08 +01:00
Theresa Gresch
8cb5041f96 Add test for entity/lens.go 2019-12-17 18:26:50 +01:00
Theresa Gresch
a9f55ed73f Add test for entity/keyword.go 2019-12-17 18:26:33 +01:00
Theresa Gresch
11f29ba5e4 Add test for entity/file.go 2019-12-17 18:26:13 +01:00
Theresa Gresch
da2aefa446 Add test for entity/event.go 2019-12-17 18:25:56 +01:00
Theresa Gresch
2d12e6aa72 Add test for entity/category.go 2019-12-17 18:25:39 +01:00
Theresa Gresch
1b78ae2513 Add test for entity/album.go 2019-12-17 18:25:13 +01:00
Michael Mayer
1cc8cefc92 Labels: Add cache, fix bugs & improve SQL queries
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-16 23:33:52 +01:00
Michael Mayer
2d490812d2 Backend: Higher default threshold for labels #160
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-16 20:22:46 +01:00
Michael Mayer
13536bb8b2 Backend: Log indexing duration for files
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-13 07:54:05 +01:00
Michael Mayer
645d02d782 Indexer: Improve titles, labels and performance
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-12 16:31:55 +01:00
Michael Mayer
845cc5a77d Backend: API stub for editing photo metadata
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-11 19:11:44 +01:00
Michael Mayer
4e06deda76 Backend: Rename "models" package to "entity"
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2019-12-11 16:55:18 +01:00