Commit graph

236 commits

Author SHA1 Message Date
Michael Mayer
ebed7fa5b4 Go: Replace strings.Split() with strings.SplitSeq() #5337
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-25 14:26:29 +01:00
Michael Mayer
1631aecea6 Pkg: Add fs/README.md to document performance & security improvements
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-25 13:09:48 +01:00
Michael Mayer
149f5e5731 CI: Apply Go linter recommendations to remaining "pkg/..." code #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-22 16:14:43 +01:00
Michael Mayer
90ab65a9b0 Zip: Harden fs.Unzip() implementation in pkg/fs #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-22 14:32:23 +01:00
promalert
5d0aa1068c refactor: use b.Loop() to simplify the code and improve performance
Signed-off-by: promalert <promalert@outlook.com>
2025-11-13 08:54:42 +01:00
Michael Mayer
3874bc5422 Config: Enhance tests for configuration and database file names #5304
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-02 11:49:00 +01:00
Michael Mayer
d6f0e808eb Config: Support YAML filenames with alternative extensions #5304
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-02 11:33:40 +01:00
Michael Mayer
b91a7380ea Media: Associate ".mp.jpg" and ".mp.jpeg" files with ImageJpeg #5289
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-23 18:23:24 +02:00
Michael Mayer
f23069dd2c Security: Improve credential handling across the cluster tooling #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-20 00:06:17 +02:00
Michael Mayer
a921f82a17 Pkg: Move /service/http/... to /http/... and add package /http/dns
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 21:08:48 +02:00
Michael Mayer
50abe4ddaf Config: Automatically download, install and activate cluster theme #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 16:09:26 +02:00
Michael Mayer
1b85f84943 Cluster: Add AppName, AppVersion and Theme request/response fields #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-19 12:44:21 +02:00
Michael Mayer
627acaf64e PWA: Add fs constants for "assets.json" and "manifest.json" #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-18 09:23:53 +02:00
Michael Mayer
bf6d7e4f94 Config: Add StaticBuildFile() and StaticImgFile() functions #5274
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-18 09:09:56 +02:00
Michael Mayer
b00dd133db Test: Use PascalCase names for all Go subtests in /pkg
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-02 15:03:47 +02:00
Michael Mayer
61ced7119c Auth: Refactor cluster configuration and provisioning API endpoints #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-24 08:28:38 +02:00
Michael Mayer
9ea5f0596c Backend: Add security-focused tests, harden WebDAV and use safe.Download
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-22 10:42:53 +02:00
Michael Mayer
91804b9652 Backend: Improve Copy()/Move() and increase pkg/internal test coverage
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-22 03:07:51 +02:00
Michael Mayer
458a320bb8 Pkg: Add fs.Exists() function to check for any existing file/dir/link
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-21 23:09:33 +02:00
Michael Mayer
023fbe3a1d Pkg: Add service/cluster package & rename media/http → service/http #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-13 12:58:28 +02:00
Michael Mayer
c36e66c847 Config: Add fs.ExtYml file extension const for transitioning to ".yaml"
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-13 02:09:22 +02:00
Michael Mayer
0d572032a9 API: Add GET /cluster/theme endpoint and refactor config package #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-11 06:47:45 +02:00
Michael Mayer
0bce60c046 Index: Improve logging when PDF documents cannot be indexed #5166
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-19 12:24:29 +02:00
Michael Mayer
ab0bd1c732 Config: Change default vision model assets path to assets/models/ #127
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-08 19:06:56 +02:00
Michael Mayer
a6d840056c Media: Log underlying error when MIME type detection fails #5149
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-08-06 09:59:38 +02:00
Michael Mayer
f80ac62e6b Live Photos: Only flag actual Live and Motion Photos as "Live" #5089
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-07-06 11:07:25 +02:00
Michael Mayer
86fe4404ef M2TS: Extract embedded metadata with ExifTool #4982 #4892 #5040
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-11 19:22:20 +02:00
Michael Mayer
2e2ebab433 Videos: Improve downloading, remuxing, and transcoding #4982 #4892 #5040
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-09 15:31:23 +02:00
hardlydearly
060924c19a
Backend: Use slices.Contains to simplify code (#4975)
Signed-off-by: hardlydearly <799511800@qq.com>
2025-04-30 15:25:05 +02:00
Michael Mayer
35bfe0694b API: Disable gzip compression for /api/v1/dl endpoint #127 #1090
Required for compatibility with the Python HTTP client. In addition,
this commit refactors function names and adds tests.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-11 14:13:25 +02:00
Michael Mayer
35e9294d87 AI: Add vision package and vision API endpoints #127 #1090
These changes allow to configure the computer vision models through an
optional vision.yml configuration file. Note that the API endpoints
are not yet functional and require further work.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-06 23:39:37 +02:00
Michael Mayer
b6ca5a1717 Config: Add upload-limit flag to limit total upload size #4929 #4895
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-05 15:44:13 +02:00
Michael Mayer
fe424d8966 Upload: Reject files that exceed the originals limit #4929 #4895 #2049
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-05 12:43:51 +02:00
Michael Mayer
b0e42bebf1 Upload: Add support for uploading zip archives #4929 #4895
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-05 12:02:33 +02: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
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
NinaLua
b3ad0e5b92 refactor: using slices.Contains to simplify the code
Signed-off-by: NinaLua <iturf@sina.cn>
2025-03-14 10:06:09 +01:00
Michael Mayer
f747211017 Library: Add support for indexing PDF documents #4600
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-12 04:26:04 +01:00
graciousgrey
006ed32838 Tests: Add unit tests #4848 2025-03-10 19:03:59 +01:00
graciousgrey
ad3b00f009 Tests: Add unit tests #4266 2025-03-10 17:33:00 +01:00
Michael Mayer
df09c78ee1 Videos: Add "codec" search filter and auto-enable nvidia encoder #4848
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-10 14:30:25 +01:00
Michael Mayer
ace90d95a4 Config: Refactor filesystem usage detection and add tests #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-03 21:05:08 +01:00
Michael Mayer
c2cc50b670 Config: Add option to show filesystem usage in sidebar navigation #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-03 20:05:56 +01:00
Michael Mayer
e1a9a68b29 FS: Add /pkg/fs/duf to determine mount points and disk usage #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-03 11:24:30 +01:00
Michael Mayer
258642b9ac Videos: Assume that .m4v files are compatible with MP4 #4820
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-02-27 09:37:57 +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
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
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
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