Commit Graph

804 Commits

Author SHA1 Message Date
Jacob D
0d487b6490 Faces: Improve performance when manual tagging (#4691)
This PR implements a strategy to improve Optimize() performance by returning the correct number of modified rows in PurgeOrphanFaces and treating the result 0 as an error condition in MergeFaces. Logging around this has been improved in faces.go and faces_optimize.go.

Related Comments:
- https://github.com/photoprism/photoprism/issues/3124#issuecomment-2566025503
- https://github.com/photoprism/photoprism/pull/4691#issuecomment-2566164179
2025-03-27 01:40:31 +01:00
Michael Mayer
b0eb7aacdd UX: Rename "Videos" to "Media" in navigation and add audio type #4694
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-26 12:53:15 +01:00
Michael Mayer
9e95c7e71c Upload: Delete invalid files, improve type checks and import logs #4895
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-25 11:58:59 +01:00
Michael Mayer
1f36d35d23 Upload: Report successful number of files in users_upload.go #4895
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-25 08:48:00 +01:00
Michael Mayer
7de72bd99a Upload: Allow to limit the types of files users can upload #4895
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-25 06:32:01 +01:00
Michael Mayer
f1d9e85a8f Sharing: Don't use the album UID twice in the redirect URL
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-19 11:52:46 +01:00
graciousgrey
f4af470894 Tests: Add unit tests 2025-03-18 15:20:51 +01:00
Michael Mayer
8c4bd1f3ed API: Add unit tests for DownloadName() and AlbumDownloadName() #4344
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-18 14:48:06 +01:00
Michael Mayer
f81a945e74 Albums: Add settings to set a default sort order for each type #405
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-17 17:53:33 +01:00
Michael Mayer
d0239ba209 UX: Improve quota calculation and checks in config and api #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-17 16:12:47 +01:00
Michael Mayer
328d51ee41 Albums: Add settings for downloading album archives #4344 #405
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-16 16:10:47 +01:00
Michael Mayer
0350e5d572 UX: Add UI settings for selecting start page and time zone #577
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-15 14:51:44 +01:00
graciousgrey
a3067a8887 Tests: Add unit tests 2025-03-12 16:34:28 +01:00
Michael Mayer
7f0717e9a0 Auth: Prevent login if additional accounts may not be created #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-12 01:08:16 +01:00
Michael Mayer
eb9371d089 WebDAV: Skip download sync if storage is full or quota is exceeded #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-11 23:45:41 +01:00
Michael Mayer
a66d3278ab API: Prevent file imports/uploads if there is no free storage #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-11 20:35:07 +01:00
Michael Mayer
7a97b38cb3 UX: Specify files quota in GB instead of MB #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-11 18:04:10 +01:00
Michael Mayer
b1d9f24fc5 Config: Disable uploads and imports when storage is full #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-04 08:28:28 +01:00
Michael Mayer
5e4357c02d Albums: Refactor permission check in internal/api/albums.go
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-22 14:49:58 +01:00
Michael Mayer
fa487ed64a Albums: Fix GET /albums/{uid} and GET /photos API permission checks
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-22 14:40:35 +01:00
Michael Mayer
501ef56c97 Videos: Support for detection and streaming of additional formats #4770
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-06 14:27:47 +01:00
Michael Mayer
b2cef94f07 Videos: Assume 10-bit codec variants in content type for HDR #4770
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-05 12:39:46 +01:00
Michael Mayer
b4f57dc992 API: Fix glitch in video.Compatible() and add tests for it #4770
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-05 04:17:03 +01:00
Michael Mayer
ef66ddbb8c API: Compare video formats by content type for better matching #4770
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-05 03:42:40 +01:00
Michael Mayer
d5ef7bf1bc Media: Refactor video content type constants #4770
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-05 01:23:22 +01:00
Michael Mayer
6a89519e63 Videos: Refactor codec, content and file type specifications #4770
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-05 00:30:45 +01:00
Michael Mayer
ae5f35259c Server: Move process handling and shutdown to separate package #4767
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-04 19:05:26 +01:00
Michael Mayer
1f4f65e988 Server: Add "force" and "mode" flags for sockets #4673 #4767 #4765 #4467
These changes allow you to force the re-creation of existing Unix domain
sockets and set the permissions of sockets after they have been created.

The flag or variable value for this must be formatted as follows:
--http-host="unix:/var/run/photoprism.sock?force=true&mode=660"

Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-04 12:03:00 +01:00
Michael Mayer
c60c0ce3a6 API: Ensure slugs are not empty before saving/creating labels #4761
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-04 03:35:01 +01:00
Michael Mayer
163db703d1 Config: Add "develop" feature flag to disable new viewer sidebar #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-03 12:29:02 +01:00
Michael Mayer
06e59d9993 API: Improve content type string generation #1307 #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-29 21:35:07 +01:00
Michael Mayer
933cc5031f API: Fix content type header for transcoded videos #1307 #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-29 20:16:27 +01:00
Michael Mayer
790de0b146 Videos: Improve MP4 AVC browser playback compatibility #1307 #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-29 14:17:52 +01:00
Michael Mayer
6b3cb0eca8 UX: Refactor video formats and codecs in front and backend #1307 #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-28 23:26:52 +01:00
Michael Mayer
420fa9946c Viewer: Set native video stream src based on mimetype #1307 #3168 #4698
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-27 13:21:05 +01:00
graciousgrey
bb4eba137b Annotations: Improve swagger annotations 2025-01-21 16:50:24 +01:00
Michael Mayer
1cd0ec7c62 Metadata: Add backward compatibility for Description field #4603
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-20 19:20:12 +01:00
Michael Mayer
beef2e0c63 API: Add "@Accept json" Swagger doc annotations where applicable
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-19 15:26:18 +01:00
Michael Mayer
73ae88cd4d API: Add Swagger annotations to /api/v1/services endpoints
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-19 13:00:50 +01:00
Michael Mayer
ebeaaf568b Metadata: Set labels based on matching keywords in the caption #4603
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-17 06:24:29 +01:00
Michael Mayer
0ada8d1095 API: Add additional fields to label and subject edit forms #383 #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-17 02:55:07 +01:00
Michael Mayer
01f15fa406 Backend: Update copyright notices
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-09 10:28:17 +01:00
Michael Mayer
9f7d2f9434 Frontend: Refactor app bootstrapping templates and CSS imports #3168 2025-01-06 15:05:39 +01:00
Michael Mayer
e0fc604c80 Metadata: Don't generate picture titles based on labels only
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-05 13:33:54 +01:00
Michael Mayer
d4243c8087 API: Embed updated icons for the /api/v1/svg endpoints #3168
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-12-20 05:16:35 +01:00
graciousgrey
076a400868 API: Add Swagger annotations #2132 2024-11-19 16:58:41 +01:00
Michael Mayer
7f02d4efdb Config: Serve "robots.txt" file to control how site is indexed #4574
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-11-07 19:09:43 +01:00
Michael Mayer
924ddcf2cd Index: Set labels based on matching keywords in title or subject #4602
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-11-01 12:15:39 +01:00
Michael Mayer
bf4321f358 Server: Add X-Robots-Tag response header to control search engines #4574
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-10-13 11:19:30 +02:00
graciousgrey
505342244e API: Add Swagger annotations #2132 2024-09-11 13:43:27 +02:00