Michael Mayer
a5b9bc695e
Indexer: Update picture dates derived from file names
2020-12-16 12:50:53 +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
373578b9a9
Additional translations: Workaround for backend & date library #710
2020-12-15 20:44:18 +01:00
Michael Mayer
cd38e507f9
Additional translations: Workaround for backend & date library #710
2020-12-15 20:41:53 +01:00
Michael Mayer
28880e682d
Database: Improve config and SQL queries
2020-12-15 20:14:06 +01:00
Michael Mayer
6b38a06bf5
Logs: Reduce http recover log level to debug
2020-12-15 17:43:05 +01:00
Michael Mayer
0999eca362
Search: Use | as OR separator
2020-12-14 22:57:07 +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
c6dd1c608d
Search: Use quotes for serializing strings containing ":"
2020-12-14 10:35:37 +01:00
Michael Mayer
e3190a9f3f
Videos: Don't transcode the same file twice #703
2020-12-14 09:23:07 +01:00
Michael Mayer
1321192eff
Search: Ignore escaped ":" in query parser
2020-12-14 09:21:29 +01:00
Michael Mayer
43e324700b
Indexer: Avoid adding the same entity simultaneously
2020-12-13 15:43:01 +01:00
Michael Mayer
801dc49dd7
Settings: Add "delete" feature flag and share page title #167
2020-12-13 14:53:26 +01:00
Michael Mayer
ce471de921
Indexer: Refactor photo merge #616
2020-12-12 22:02:14 +01:00
Michael Mayer
7bae7edf50
Videos: Set explicit content type header for MPEG-4 AVC #603
2020-12-12 17:53:19 +01:00
Michael Mayer
473566f404
Videos: Enforce transcoding to MPEG-4 AVC #603
2020-12-12 17:20:31 +01:00
Michael Mayer
fe72a1ab52
Frontend: Improve sharing UX
2020-12-12 15:13:16 +01:00
Michael Mayer
73a00efae8
Workaround for bad image rotation in Exif headers #637
2020-12-12 13:05:58 +01:00
Michael Mayer
03d3dd0f02
Unstack related sidecar files #616
2020-12-12 11:08:53 +01:00
Michael Mayer
6b9d0ce584
Indexer: Don't merge edited photos
2020-12-12 08:14:44 +01:00
Michael Mayer
468e177cd3
Indexer: Ignore sequential names for single photos
2020-12-11 23:45:12 +01:00
Michael Mayer
645df39c33
Fix RenameSidecars test
2020-12-11 23:28:52 +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
8a86fbc60f
Indexer: Update index after renaming related sidecar files
2020-12-11 19:39:42 +01:00
Michael Mayer
424c0ce616
Indexer: Automatically rename related sidecar files
2020-12-11 19:17:07 +01:00
Michael Mayer
04c17fb77b
Indexer: Improve stacking settings and merging
2020-12-11 17:21:13 +01:00
Michael Mayer
8f80026b3e
Database: Add restore command
2020-12-11 13:52:34 +01:00
Michael Mayer
20feb6f0a0
Database: Add backup command and make config more compatible #460
2020-12-11 12:46:28 +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
fe9884331f
make fmt
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-09 21:49:41 +01:00
Michael Mayer
0d16e31154
Albums: Disable date update queries on SQLite #692
2020-12-09 21:44:39 +01:00
Michael Mayer
c0fb3deb06
Indexer: Stack photos while optimizing
2020-12-09 21:44:04 +01:00
Michael Mayer
382e001053
Albums: Improve update queries
2020-12-09 13:36:01 +01:00
Michael Mayer
004400b118
Albums: Improve folder indexing
2020-12-09 13:10:21 +01:00
Michael Mayer
b7cd2facb9
Indexing: Use fallback for MySQL to improve performance on MariaDB #599
2020-12-09 13:08:55 +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
5096e6201d
Indexer: Show folder names while indexing
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-09 00:07:11 +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
63a8dbf4ce
Stacks: Improve advanced indexing options #681 #667 #593
2020-12-07 17:03:06 +01:00
Michael Mayer
c466291405
SQLite: Reduce worker limit to 4 to prevent locking #680 #558 #392
2020-12-07 16:20:35 +01:00
Michael Mayer
ae0af699c6
Stacks: Add advanced indexing options #681 #667 #593
2020-12-07 16:19:03 +01:00
Michael Mayer
5acc02e248
Config: Initialize storage folder with serial
...
To detect non-permanent storage and configuration issues.
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-05 06:21:16 +01:00
Michael Mayer
846c635f22
Video: Transcoding to AVC1 #636 #513 #624 #603 #533 $440
2020-12-05 04:24:10 +01:00
Michael Mayer
0b16a67c90
WebDAV: Sync video files #504
2020-12-05 02:18:45 +01:00
Michael Mayer
56851f4892
WebDAV: Add timeout for fetching directories #664
2020-12-05 01:24:33 +01:00
Michael Mayer
604f110277
Metadata: Add test case for bad Exif rotation #637
2020-12-05 00:46:54 +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
c4a94f8135
Indexer: Update changed Exif metadata #563
2020-12-04 22:06:23 +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
390dc7f7e5
Refactor backend api package
2020-12-04 13:10:32 +01:00
Michael Mayer
b3abe6840a
Config: Create settings.yml if it doesn't exist
2020-12-04 12:15:59 +01:00
Michael Mayer
b7876711ad
Fallback to backup path if storage path is not defined or writable
2020-12-04 11:37:31 +01:00
Michael Mayer
3464bf35ed
Config: Add backup path parameter
2020-12-04 11:02:19 +01:00
Michael Mayer
8ea5a882b4
Backend: Add filename search filter
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-03 21:07:38 +01:00
Michael Mayer
3992785095
Backend: Update location test
2020-12-02 07:53:44 +01:00
Michael Mayer
7134266794
Backend: Update geolocation api url and tests
2020-12-02 00:18:56 +01:00
Simon Waldherr
f10459c447
Backend: Add comments ( #562 )
2020-11-22 10:38:45 +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
cfa369cf17
Backend: Clear folder cache after indexing #623
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-11-22 01:30:48 +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
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
8516c749b7
Fix search for folders with special characters in their name #581 #587
...
This will remove the ability to search for multiple folders.
2020-11-21 18:32:04 +01:00
Michael Mayer
5daa689975
Backend: Format go imports
2020-11-21 18:08:41 +01:00
Michael Mayer
668025c050
Fix album cover after update #575
2020-11-21 18:05:20 +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
a45aca5da9
Indexer: Improve log messages for purge #568
2020-11-20 17:41:44 +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
edb52b85a4
Backend: Use version 0.0.0 for all tests
2020-11-16 19:39:40 +01:00
Michael Mayer
df3b125f27
Import: Create thumbs for related JPEG files #602
2020-11-15 15:55:02 +01:00
Michael Mayer
28f59947df
Indexer: Update index when files were renamed #568
2020-11-15 15:15:56 +01:00
Michael Mayer
068d38820f
Indexer: Reset file lookup table if count changes #568
2020-11-15 13:40:21 +01:00
Michael Mayer
2bad5b3cdd
Backend: Wrap SQL select for MySQL 8 #599
...
In MySQL, you can't modify the same table which you use in the
SELECT part (DELETE and UPDATE with subquery):
https://dev.mysql.com/doc/refman/8.0/en/update.html
We need to verify how this affects large photo libraries
as it probably "breaks" the query optimizer. So might lead to
bad performance as well as high CPU and/or memory usage.
2020-11-15 12:15:14 +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
67287a2d57
Backend: Add testdata
2020-10-27 09:30:20 +01:00
Michael Mayer
0a5b460295
Backend: Label minivans as car
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-25 16:54:45 +01:00
Michael Mayer
c048a71716
Improve comments for MediaFile.RelatedFiles() #560
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-21 07:39:25 +02:00
Michael Mayer
28ec2df70f
Limit number of default workers when using SQLite #558
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-21 07:33:24 +02:00
Michael Mayer
458dfcefdc
Strict matching for related files when stripSequence is false #560
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-21 07:25:19 +02:00
Theresa Gresch
ce4960e2b8
Backend: Add unit tests
2020-10-20 12:06:16 +02:00
Theresa Gresch
f38434dfb0
Backend: Add unit tests
2020-10-20 11:05:02 +02: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
Theresa Gresch
1cd2dfbd22
Backend: Add tests for api
2020-10-19 16:11:42 +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
45f1a34018
Backend: Use constants for home dir and path separator
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-19 09:52:52 +02:00
Michael Mayer
c288dc37a9
Backend: Fix test logging
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-13 23:13:18 +02:00
Michael Mayer
fc9e3d1c58
Config: Improve docker-compose.yml examples
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-09 15:25:46 +02:00
Michael Mayer
3b02449903
Backend: Fix config tests
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-09 11:35:05 +02:00
Michael Mayer
bd44d9cb77
Backend: Fix typo
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-08 09:02:38 +02:00
Michael Mayer
5fa47652ee
Backend: Refactor config initialization
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-08 08:52:03 +02:00
Michael Mayer
95e51a9754
Config: Refresh expired sessions on startup
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-07 12:47:12 +02:00
Michael Mayer
13383ac701
Config: Don't error if settings path does not exist #535
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-07 12:22:45 +02:00
Michael Mayer
4e172c450a
Improve feedback form
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-05 07:40:11 +02:00
Michael Mayer
b87e860444
Add feedback form
...
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-04 22:22:53 +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
2e51e84605
Backend: Index camera make & model for video files #506
2020-10-04 12:47:53 +02:00
Michael Mayer
9826e57149
Docker: Refactor images to be more compatible with prod environments #411 #468
...
You should now be able to provide UMASK, UID and GID as environment variables
when using our production images. Work in progress.
2020-10-04 11:23:01 +02:00
Michael Mayer
78f2470421
Backend: Refresh api keys and send to frontend
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-10-04 04:47:54 +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
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
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
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
02c3cdc8b9
Backend: Code clean-up in album download API
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-20 19:14:50 +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
Andreas Rammhold
2a827739e0
Backend: stream album ZIP files ( #492 )
...
ZIP files generated for albums will no longer be written to disk prior
serving them to users. The zip file will be written directly into the
HTTP response.
2020-09-06 14:58:08 +02:00
Michael Mayer
641ffd397d
Backend: Add signature to PhotoPrism Places API requests
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-06 14:48:09 +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
Michael Mayer
53c48cd570
Config: Remove deprecated "sidecar-hidden" flag #488
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-06 12:42:38 +02:00
Michael Mayer
6577d99363
Postgres: Add docker-compose.postgres.yml, see #47
...
Postgres support additionally requires a GORM upgrade to 2.0 (v1.20) as the current version doesn't support generic column types like "bytes" (VARBINARY in MySQL, different in Postgres and other SQL dialects).
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-06 12:38:23 +02:00
Michael Mayer
7d95a2cd5d
Improve sidecar config hints #488
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-06 12:26:25 +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
Michael Mayer
b476916936
Restore initial admin password when running photoprism reset
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-19 15:36:31 +02:00
Michael Mayer
b3bb2883fc
Frontend: Disable route when PHOTOPRISM_SETTINGS_HIDDEN is true #474
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-19 12:45:26 +02:00
Michael Mayer
1c0d6cba2c
Add photoprism reset
command
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-19 11:35:38 +02:00
Michael Mayer
db4749a6f8
Config: Show helpful error message when a path is missing #418
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-18 19:09:46 +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
757cfc4bfb
RAW: Index CR3 metadata and use custom RawTherapee profile #445
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-12 20:12:04 +02:00
Theresa Gresch
68d490c975
Backend: Add new stopword
2020-08-12 19:14:01 +02:00
Michael Mayer
ebe5143fc6
RAW: Render CR3 files using Rawtherapee 5.8 #445
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-12 13:16:25 +02:00
Michael Mayer
336ad3e751
Backend: Rename test files #442
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-12 04:39:05 +02:00
Michael Mayer
e0eaa72843
Backend: Fix nil pointer panic in RelatedFiles() #454
...
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-12 03:36:49 +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