Commit graph

851 commits

Author SHA1 Message Date
Michael Mayer 2121dd4307 Auth: Allow short initial passwords to avoid login problems #2339 2022-05-20 19:25:19 +02:00
Michael Mayer 54700766df Index: Truncate mod time to full seconds #2257 2022-05-17 01:04:26 +02:00
Michael Mayer 16c30fffdf Backend: Run "make fmt-go" 2022-05-10 23:21:50 +02:00
theresa d27e1fa52f Tests: Add to dos to run tests on mariadb 2022-05-03 15:05:45 +02:00
theresa 0c345d4426 Tests: Update photo fixtures 2022-04-22 10:48:07 +02:00
theresa 16c2db9872 Tests: Correct portrait value for file fixtures 2022-04-22 10:20:15 +02:00
Michael Mayer b595d5df7a Library: Display RAW previews and num of actual files in Originals #2273 2022-04-21 22:17:26 +02:00
Michael Mayer ce709957d6 Search: Update files.media_id and time_index on MariaDB and SQLite #2265 2022-04-21 21:56:53 +02:00
Michael Mayer 94b4173cf9 Search: Fix files.time_index generation on SQLite #2265 2022-04-21 19:47:16 +02:00
theresa c071111d7a Tests: Add gif fixture 2022-04-20 14:47:27 +02:00
Michael Mayer e264489dfb Index: Improve log messages #2257 2022-04-16 13:50:35 +02:00
Michael Mayer fefaada1f1 Index: Improve handling of archived photos, skip when possible #2257 2022-04-16 12:39:47 +02:00
Michael Mayer c580b8b55b Index: Fix database errors when rescanning large libraries #2257 2022-04-15 15:48:36 +02:00
Michael Mayer 92e6c4fe1e Download: Add Disabled, Originals, MediaRaw & MediaSidecar Flags #2234
Extends DownloadSettings with 4 additional options:
- Name: File name pattern for downloaded files (existed)
- Disabled: Disables downloads
- Originals: Only download files stored in "originals" folder
- MediaRaw: Include RAW image files
- MediaSidecar: Include metadata sidecar files (JSON, XMP, YAML)
2022-04-15 09:42:07 +02:00
Michael Mayer 9fdd455924 WebDAV: Skip error reset if an account has not been created yet #1781 2022-04-14 14:26:45 +02:00
Michael Mayer 0096243240 Metadata: Report supported Exiftool, XMP, and Dublin Core tags #2252
Replaces the --no-wrap flag with --md in all "photoprism show ..."
subcommands, as this is easier to understand. See also #2247.
Unused code was opportunistically removed along the way.
2022-04-14 10:49:56 +02:00
Michael Mayer 82d61d1f93 File Types: Add experimental support for animated GIFs #590 #2207
Animated GIFs are transcoded to AVC because it is much smaller and
thus also suitable for long/large animations. In addition, this commit
adds support for more metadata fields such as frame rate, number of
frames, file capture timestamp (unix milliseconds), media type,
and software version. Support for SVG files can later be implemented in
a similar way.
2022-04-13 22:17:59 +02:00
Michael Mayer 7291c1d703 Search: Add landscape/square filters, and "show filters" command #2169 2022-04-13 09:48:51 +02:00
Michael Mayer 0427163295 People: Improve face matching, audit command, and logging #2182 2022-04-13 01:59:32 +02:00
Michael Mayer 915ff42133 Auth: Add --auth flag, increase min password length to 8 chars #98 #2248 2022-04-12 19:44:43 +02:00
Michael Mayer b97e0e9c3b Albums: Prevent accidental creation of duplicate albums #2233
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-10 14:38:51 +02:00
Michael Mayer 9134c79f4c Config: Add option to skip all RAW images when indexing #2227 2022-04-06 17:46:41 +02:00
Michael Mayer 7b508d6ad5 Index: Add tests and refactor database record updates #1438 2022-04-05 11:40:53 +02:00
Michael Mayer 9986986f8f People: Add info on the kind of face to improve matching #2182
This commit also fixes of other potential issues and improves logging.
2022-04-04 21:22:31 +02:00
Michael Mayer c74fcbf282 People: Show real name instead of uid in logs #1438 #2182
Since caching all subject data proved too complex in the time available,
this implementation uses a simple key/value lookup table to cache
subject names and perform backward searches by uid.
2022-04-04 14:21:43 +02:00
Michael Mayer 870ec6455e Revert "People: Add subject cache and show real name in logs #1438 #2182"
This reverts commit 686f6bc47c.
2022-04-04 08:54:03 +02:00
Michael Mayer cbcfa63f5f Labels: Fix saving categories in UpdateClassify()
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-04 00:57:13 +02:00
Michael Mayer 686f6bc47c People: Add subject cache and show real name in logs #1438 #2182 2022-04-04 00:02:08 +02:00
Michael Mayer 41b252d820 People: Add unofficial env variables to tweak face matching #1587 #2182
Adds two unofficial env variables so advanced users can experiment:

1. PHOTOPRISM_FACE_KIDS_DIST=0.6950 (range: 0.1-1.5, -1 to disable)
2. PHOTOPRISM_FACE_IGNORE_DIST=0.86 (range: 0.1-1.5, -1 to disable)
2022-04-03 17:25:37 +02:00
Michael Mayer cb0f37c4af Index: Improve logging and files table update statements #1438 #2216 2022-04-03 12:43:21 +02:00
Michael Mayer 31e48d2139 UX: Add button to clear error log history in Library > Errors #1683
Note this is disabled in public mode (without authentication).
2022-04-03 12:37:43 +02:00
Theresa Gresch 1da106d4b7 Tests: Add fixtures 2022-04-02 20:13:56 +02:00
Michael Mayer 82f583d5e2 Purge: Regenerate file search index #1438 #2216 2022-04-02 19:26:28 +02:00
Theresa Gresch 968062d2fc Tests: Add fixtures 2022-04-02 16:52:38 +02:00
Theresa Gresch d7f4c46a9b Tests: Add unit tests 2022-04-02 13:31:04 +02:00
theresa 5d16c5b530 Tests: Add fixtures 2022-04-01 16:24:45 +02:00
Michael Mayer 9eda12ac20 Performance: Refactor database schema and UI components #995 #1438 #1811 2022-03-30 20:36:25 +02:00
theresa 32c9186112 Tests: Add fixtures 2022-03-30 18:21:14 +02:00
theresa f53e2bcdd6 Tests: Add fixtures 2022-03-30 11:43:30 +02:00
theresa 4d7584a486 Tests: Add fixtures 2022-03-29 11:21:45 +02:00
Michael Mayer 686a8ab9b4 Search: Refactor photo search, fix test data and unit tests #1994 2022-03-29 00:21:50 +02:00
Michael Mayer 58d7a535c6 Search: Update photos_filter_albums_test.go and file fixtures #1994 2022-03-28 18:43:35 +02:00
theresa e693fad8dc Tests: Add unit tests for camera and lens filter #2079 2022-03-28 16:25:40 +02:00
theresa 2912122747 Tests: Add album fixtures 2022-03-28 14:25:03 +02:00
Theresa Gresch 3ff00c65c5 Tests: Add album fixtures 2022-03-28 11:21:24 +02:00
Michael Mayer 736b03f87f WebDAV: Improve update and reset of remote connection errors #1781 2022-03-27 21:37:11 +02:00
Michael Mayer aaaef5712e WebDAV: Prevent two-way file sync, default to download #1785 2022-03-27 12:49:23 +02:00
Michael Mayer e77a029f13 Search: Improve input sanitation and filter queries #1994 #2079 #2181 2022-03-25 18:01:34 +01:00
Michael Mayer 680686185f Metadata: Improve parsing of (incomplete) timestamp strings #625 #2133 2022-03-25 16:31:09 +01:00
Michael Mayer 0e7fec1cec Albums: Shorten title and slug to avoid "data too long" error #2181
Related GitHub Discussions:
 - https://github.com/photoprism/photoprism/discussions/2151
 - https://github.com/photoprism/photoprism/discussions/2179
2022-03-24 21:46:25 +01:00
Michael Mayer 9d110e8b80 Search: Improve album, albums, lens, and camera filters #1994 #2079
Camera and lens can now also be searched by name. Escaping and parsing
of albums has been improved so that albums whose names start with and/or
contain numbers will be found.
2022-03-24 18:30:59 +01:00
Michael Mayer 3d9cb51641 Darktable: Set explicit cache and config path, log exact commands #2076 2022-03-02 12:20:02 +01:00
Michael Mayer c256664a1b WebDAV: Fix upload of complete albums #1376 2022-02-27 17:32:54 +01:00
Michael Mayer 1d6ab8bd69 Logs: Reduce logs levels of cover and count updates 2022-02-19 19:59:28 +01:00
Paulo Matos 0528a6541b
Places: Fix typo in "not found" log message (#1956)
Fixing simple typo : s/no/not
2022-01-19 16:44:50 +01:00
Michael Mayer eeee5973ad MariaDB: Alter albums.album_filter to VARBINARY(767) and add index #1953
Using a migration for testing on develop so nothing breaks (yet).
2022-01-18 17:34:28 +01:00
Michael Mayer 2e0c40332c Develop: Move MySQL 8 to docker-compose.mariadb.yml 2022-01-16 14:00:37 +01:00
Michael Mayer f5b7ef834e Index: Prevent two primary files in photo stacks #1823 2022-01-06 14:33:49 +01:00
Michael Mayer d03e28d88e Backups: Rename YAML "backup" files to just YAML files #1887 2022-01-06 13:21:42 +01:00
Michael Mayer d67e325854 Config: Improve initialization, migrations, and debug logs 2022-01-05 18:15:39 +01:00
Michael Mayer dd9d7123d9 Index: Improve indexing and unstacking of related files #1823
This commit also adds initial HDR flag extraction from metadata.
2022-01-05 16:37:19 +01:00
Michael Mayer 58a5f94069 Backups: Rename album backups to exports and improve command help #1887 2022-01-05 11:40:44 +01:00
Michael Mayer 1cde378a76 Index: Improve stacking of related files #926 #1823 2022-01-03 17:29:43 +01:00
Michael Mayer 7823d7faaa Metadata: Limit file projection & color_profile to 40 ASCII chars #1830 2022-01-03 12:09:00 +01:00
Simon Rettberg 35f45f4510
MySQL/MariaDB: Turn subquery-updates into joins for better performance (#1804)
MariaDB/MySQL traditionally have performance issues for queries of
type UPDATE ... WHERE xxx IN (SELECT ...)

Instead, use JOINs which are much faster.

Signed-off-by: Simon Rettberg <simon.rettberg@rz.uni-freiburg.de>
2022-01-03 11:12:08 +01:00
Michael Mayer 2dedbb83dc Sanitize: Add name, query, state, and username filters #1814 2021-12-15 12:24:05 +01:00
Michael Mayer 0f0c0aaa0b API: Improve path and filename parameter sanitation #1814 2021-12-14 20:01:39 +01:00
Michael Mayer 9a8144c046 Log4j: Sanitize user input in logs like filenames and album titles #1814 2021-12-14 17:07:38 +01:00
Michael Mayer 3ae3fe29bc SQLite: Rename dialect constant to SQLite3 for consistency #319 #1791 2021-12-09 07:47:23 +01:00
Michael Mayer 5be456a09f JPEG: Convert Apple "Display P3" colors to standard sRGB #1474
Other color profiles and file formats are not supported yet. Should
be easy to add though. Main difficulty will be profile name comparison:
For example "Adobe RGB (1998)" vs just "Adobe RGB".
2021-12-09 07:00:39 +01:00
Michael Mayer 1b583e071e People: Add mutex so changes don't get processed concurrently 2021-12-09 02:33:41 +01:00
Michael Mayer 4e358bbfd4 Places: Improve handling of unknown S2 cell ids 2021-12-09 01:10:15 +01:00
Michael Mayer 4e8b9e79e2 Albums: Code clean-up #1777 2021-11-29 15:04:13 +01:00
Michael Mayer 7e8974fd20 MySQL 8: Improve migrate command, ignore errors when dropping indexes 2021-11-28 13:52:27 +01:00
Michael Mayer 9df31e2592 CLI: Update command descriptions, log messages and levels 2021-11-27 18:41:10 +01:00
Michael Mayer 6c51049bf7 Places: Change sort order for showing nearby photos in viewer 2021-11-26 21:24:12 +01:00
Michael Mayer 3e6c7052bb Places: Refactor GeoJSON API endpoint 2021-11-26 13:59:10 +01:00
Michael Mayer ff66b3bccc Metadata: Remove location labels when photo doesn't have a location 2021-11-25 14:52:26 +01:00
Michael Mayer 08fe7326e5 Metadata: Make sure unknown camera and lens fixtures have an ID 2021-11-25 12:48:07 +01:00
Michael Mayer 05f11b65d8 Metadata: Refactor EstimateLocation() function #1668 2021-11-25 09:38:59 +01:00
Michael Mayer 84bb58daa5 Metadata: Don't estimate position of non-photographic images #1668 2021-11-24 21:06:30 +01:00
Michael Mayer eafa00c54f Albums: Remove duplicate moments 2021-11-24 17:51:39 +01:00
Michael Mayer 87831c0a94 Metadata: More accurate location estimates #1668 2021-11-24 16:56:57 +01:00
Michael Mayer 80a9005510 Metadata: Don't change an existing location from an unknown source 2021-11-24 14:46:06 +01:00
Michael Mayer 22b0a44fa7 Stacks: Only merge photos with trusted time and location #1668 2021-11-24 14:32:40 +01:00
Michael Mayer c86d57cdaf Albums: Find moments and states by slugs and filters when updating #1740 2021-11-24 13:30:43 +01:00
Michael Mayer 83746097eb Metadata: Set altitude even if coordinates are missing #1749 2021-11-24 12:49:20 +01:00
Michael Mayer 32fb22c039 Months, Countries & States: Update album title and slug if needed #1664 2021-11-23 20:25:32 +01:00
Michael Mayer 45d1360c18 Metadata: Improve location estimates and UTC handling #1668 2021-11-23 19:23:10 +01:00
Michael Mayer de72abcfa4 Places: Create and update only one place at a time #1664 2021-11-22 18:30:46 +01:00
Michael Mayer d813171204 Metadata: Estimate latitude and longitude if possible #1668 2021-11-22 18:18:41 +01:00
theresa 21c60dd2fa Tests: Add unit test for inernal/entity 2021-11-22 13:29:19 +01:00
theresa d2fe0167e1 Tests: Add state album fixture 2021-11-22 13:26:01 +01:00
Michael Mayer 9ddd853234 Metadata: Never estimate when place was set otherwise #1668 2021-11-21 21:25:11 +01:00
Michael Mayer cdd7df8e62 Database: Add manual schema migrations #319 2021-11-21 14:05:07 +01:00
Michael Mayer 403eb0d71d Places: Remove unique label index and purge unused location infos #1664 2021-11-20 19:14:00 +01:00
Michael Mayer e40931f130 Places: Wait longer until database table has been recreated #1664 2021-11-20 17:53:20 +01:00
Michael Mayer 85fd1f0b71 Backend: Code clean-up 2021-11-20 16:37:55 +01:00
Michael Mayer 06c23b0cb3 Places: Sort States by Country Name and Title #1608 #1740 2021-11-20 16:36:34 +01:00
Michael Mayer f29e675efa Albums: Toggle states and show country as location #1608 #1664 #1725 2021-11-18 13:13:48 +01:00
Michael Mayer 04cde0f392 Metadata: Add --force flag to optimize command #1736 2021-11-18 03:47:25 +01:00
Michael Mayer 73ffa53397 Metadata: Perform less frequent estimates to reduce server load #1736 2021-11-18 02:23:25 +01:00
Michael Mayer c48310f077 Albums: Improve state geodata and sort by country #1608 #1664 2021-11-18 00:46:34 +01:00
Michael Mayer a354a17041 Auth: Normalize Username (trim space, lowercase) #1103 #1309 #1546 #1610 2021-11-12 09:10:15 +01:00
Michael Mayer c058c01770 People: Improve "photoprism places update" CLI command #1664 2021-11-12 06:32:58 +01:00
Michael Mayer bb9442e6c4 People: Add "photoprism places update" CLI command #1664 2021-11-12 05:09:17 +01:00
Michael Mayer c029b2a78c Docker: Rename and update dummy-webdav service 2021-11-09 16:55:16 +01:00
theresa 370305cbeb Tests: Add unit tests 2021-10-22 16:03:50 +02:00
Michael Mayer e142095265 People: Update unsuitable face embeddings blacklist #22 2021-10-07 09:32:17 +02:00
Michael Mayer 767e3ca492 People: Hide person from people and new faces overviews #1554 2021-10-06 15:27:17 +02:00
Michael Mayer 717ea83553 People: Improve subject and marker entity logs #22 2021-10-06 12:16:52 +02:00
Michael Mayer 07ae9b83f4 Backend: Add index update mutex to reduce database locking 2021-10-06 11:50:48 +02:00
Michael Mayer 444c94bf9e People: Improve performance & add counter to new faces page #1576 #1594 2021-10-06 11:19:07 +02:00
Eng Zer Jun 44f7700c0c
Enable module graph pruning and deprecate io/ioutil (#1600)
* Backend: Enable Go module graph pruning and lazy module loading

This commit applies the changes by running `go mod tidy -go=1.17` to
enable module graph pruning and lazy module loading supported by Go 1.17
or higher.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* Backend: Move from io/ioutil to io and os package

The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-10-06 07:10:50 +02:00
Michael Mayer a5c2794611 CLI: Improve help for purge command 2021-10-05 22:44:27 +02:00
Michael Mayer de63227767 CLI: Update help texts for commands and flags 2021-10-05 22:33:29 +02:00
Michael Mayer a141665a6d Index: Reset file error when hash changes 2021-10-05 20:51:18 +02:00
Michael Mayer f7153cdd21 People: Improve logging, command help, and handling of broken files #22 2021-10-05 18:42:39 +02:00
Michael Mayer 57aa8811fc People: Add additional face cluster config options #22 2021-10-05 10:12:48 +02:00
Michael Mayer 9a88d7fc6a Logs: Tweak messages and log levels for improved readability 2021-10-02 14:24:44 +02:00
Michael Mayer ac70e0f324 Labels: Improve photo count accuracy for MariaDB / MySQL users #584 2021-10-01 19:23:08 +02:00
Michael Mayer 74233809b9 Covers: Rename "preview images" to "cover thumbs" for consistency #383 2021-10-01 16:44:50 +02:00
Michael Mayer f6c18f7767 People: Count the number of photos for each subject #22
Also fixes issues with older versions of MariaDB, see #1544
2021-10-01 16:34:29 +02:00
Michael Mayer e50ede6368 Covers: Improve performance of update queries #383 2021-10-01 00:05:49 +02:00
Michael Mayer 0d772c4dc3 Index: Purge orphan file entries #1559 2021-09-30 15:50:10 +02:00
Michael Mayer 582a330837 People: Add embeddings blacklist to reduce false positives #22 2021-09-30 13:44:23 +02:00
Michael Mayer 24eff21aa4 Search: Default to photo names and keywords #1517 #1560
Default to photo name when search term is too short or on the stop list.
Search full text index otherwise, which now include names of people
(requires reindexing).
2021-09-29 20:09:34 +02:00
Michael Mayer 771bcb1582 MariaDB: Improve queries and logs for MDEV-25362 bug #1544 2021-09-24 22:46:03 +02:00
Michael Mayer e1d19f72f2 Index: Don't update subject face crops hashes for now 2021-09-24 13:34:37 +02:00
Michael Mayer 7c3f78284f Index: Improve logs 2021-09-24 13:18:54 +02:00
Michael Mayer f23d288380 Index: Replace changed file hashes and remove orphan markers 2021-09-24 13:13:59 +02:00
Michael Mayer eb8bc7b709 Backend: Improve resilience #1544 2021-09-23 23:46:17 +02:00
Michael Mayer cd9b9f7da2 Album: Append ; to entity gorm tags 2021-09-23 17:05:56 +02:00
Michael Mayer 7767d0c892 People: Update photo and file counts after faces have been updated #22 2021-09-23 16:06:59 +02:00
Michael Mayer 03c9e82211 Albums: Fix share expiration date in field label #621
Looks like a pure frontend issue: It tried finding a date in
"UpdatedAt" while the actual field name is "ModifiedAt".
2021-09-23 15:38:55 +02:00
Michael Mayer b6e4aa23d0 People: Add face dist to marker API JSON #22 2021-09-23 14:03:35 +02:00
Michael Mayer ee2b49ef4b People: Add config options for face detection and clustering #22 2021-09-23 13:16:05 +02:00
Michael Mayer 4dd09f4502 People: Add "photoprism faces index" command for indexing faces only #22 2021-09-22 19:33:41 +02:00
Michael Mayer 6503008cc0
People: Prepare for release #22 (#1541) 2021-09-21 12:11:51 +02:00
theresa a23cb0bf17 Tests: Add fixtures 2021-09-21 11:04:48 +02:00
Michael Mayer 8882cf0c61 People: Tweak face detection thresholds #22 2021-09-21 11:03:07 +02:00
Michael Mayer ebe22d7bb7 People: Improve marker entity logs #22 2021-09-21 09:23:17 +02:00
Michael Mayer 11f7e76ca3 People: Remove orphan face crop thumbnails #22 2021-09-21 08:56:35 +02:00
Michael Mayer 4df0e4167a People: Upgrade dev database table names #22 2021-09-20 23:37:27 +02:00
Michael Mayer 070efcbc66 Search: Improve "year", "month", and "day" filters 2021-09-20 23:32:35 +02:00
Michael Mayer 534517a3d7 People: Improve face detection #22 2021-09-20 22:19:54 +02:00
Michael Mayer 8e5a97ed4a People: Simplify thumbnail API for face crops #22 2021-09-20 16:17:10 +02:00
theresa 895d41cd61 People: Add unit tests #22 2021-09-20 14:05:44 +02:00
theresa 9e786a42f0 People: Add unit tests #22 2021-09-20 13:12:28 +02:00
Michael Mayer 6c555457a0 People: Improve face thumbnail selection #22 2021-09-19 15:59:29 +02:00