Commit graph

160 commits

Author SHA1 Message Date
Michael Mayer
f33f06933f Index: Reduce log level for empty files from error to warning #2257 2022-04-18 17:21:31 +02:00
Michael Mayer
38c6cebe21 File Formats: Disable TOML file support until there is a use for it 2022-04-18 00:14:04 +02:00
Michael Mayer
73be4df8f8 CLI/Docs: Improve photoprism show ... subcommands #2247 #2252 #2169 2022-04-16 19:52:53 +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
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
e42b870c09 CLI: Update and display the list of supported file formats #2247 2022-04-12 19:14:21 +02:00
Michael Mayer
68ba289d6c CLI: Add "photoprism show config/formats" subcommands
Replaces "photoprism config", which could only display
current configuration values. Codecs and file formats
have been refactored along the way.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-12 13:28:28 +02:00
Michael Mayer
f927c68c4f UX: Skip RAW files by default when clicking Download All #2234
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2022-04-10 17:02:09 +02:00
Michael Mayer
a604e9a9c6 Index: Improve file size/resolution checks, add WebP support #1017 #1226
Renames the config flag to from "megapixel-limit" to "resolution-limit".
Adds native support for the WebP image file format.
2022-04-02 18:04:11 +02:00
Michael Mayer
c256664a1b WebDAV: Fix upload of complete albums #1376 2022-02-27 17:32:54 +01:00
Michael Mayer
c853b3cd2d Backend: Shorten source file headers and normalize email addresses 2022-02-21 15:30:18 +01:00
Michael Mayer
b29ab34e9a Config: Update fs_test.go and fs/dirs.go after upgrading dev base image 2022-02-19 17:12:39 +01:00
Michael Mayer
03457bdb75 Frontend: Refactor asset loading #1648 2022-01-18 12:26:33 +01:00
Michael Mayer
8efe473d30 Copyright: Update year in source files and footer.vue 2022-01-03 13:46:52 +01:00
Michael Mayer
10d9ec78cd Config: Search /opt/photoprism for assets and media files #1821 2021-12-17 11:30:49 +01:00
Michael Mayer
e9fabfa8e4 Docs: Update URL 2021-12-12 20:14:07 +01:00
Michael Mayer
2a119380a7 Folders: Ignore names listed in .ppignore #1609 2021-10-09 13:57:28 +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
f7153cdd21 People: Improve logging, command help, and handling of broken files #22 2021-10-05 18:42:39 +02:00
Michael Mayer
2929733f78 Index: Ignore files and folders starting with @ #1543
Synology stores hidden sidecar / thumbnail files in @eaDir.
2021-09-24 01:24:36 +02:00
Michael Mayer
8eb970ae8b RAW: Remove unwanted characters like quotes from file extensions #1362 2021-09-21 18:10:21 +02:00
Michael Mayer
b081f27e17 RAW: Add File Extension Blacklists for Darktable and RawTherapee #1362 2021-09-21 15:33:46 +02:00
Michael Mayer
71372c6f87 Videos: Add .mp to known file extensions #1501 2021-08-29 16:26:20 +02:00
Michael Mayer
97c3e0abe8 Import: Ignore dot files listed in .ppignore #1348 2021-07-16 18:27:28 +02:00
Michael Mayer
07c711a0b4 RAW: Skip Darktable when converting Canon CR3 and Fuji RAF files #1362 2021-07-16 18:12:42 +02:00
Michael Mayer
50d2ff1e69 Backend: Upgrade dependencies and fix potential issues 2021-05-04 17:30:39 +02:00
Michael Mayer
7de3713024 Backup: Improve command flags and usage docs #1190 #1193 2021-04-19 13:48:46 +02:00
theresa
ce9651df10 Tests: Add tests for /pkg 2021-03-03 15:41:32 +01:00
Michael Mayer
d78310c8f0 Videos: Add .m4v to known mp4 video file extensions #703 #1039 2021-02-15 13:02:55 +01:00
Krassimir Valev
58d6d23967
Support .mts and .mpo files (#1029) 2021-02-14 19:25:52 +01:00
Michael Mayer
899419383a Metadata: Fix indexing keywords in original file name and path #920 2021-01-25 19:30:29 +01:00
Michael Mayer
19b2f1de13 Import: Improve handling of severe errors (panics) #261 2021-01-09 13:50:14 +01:00
Michael Mayer
9ec2381307 Update copyright after year change 2021-01-01 22:37:25 +01:00
Michael Mayer
8cfabe3205 Metadata: Cache ExifTool JSON by original file hash #755 #759 2020-12-30 13:33:47 +01:00
Michael Mayer
02722ab861 Config: Detect case-insensitive file systems
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-26 18:06:54 +01:00
Michael Mayer
d430ae24ee Indexer: Fix JSON sidecar creation using Exiftool
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-12-25 20:29:06 +01:00
Michael Mayer
473566f404 Videos: Enforce transcoding to MPEG-4 AVC #603 2020-12-12 17:20:31 +01:00
Michael Mayer
73a00efae8 Workaround for bad image rotation in Exif headers #637 2020-12-12 13:05:58 +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
004400b118 Albums: Improve folder indexing 2020-12-09 13:10:21 +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
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
Theresa Gresch
b6d9d7e11f Backend: Add tests for pkg 2020-10-19 15:11:27 +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
c8ded4c7c1 Backend: Refactor .ppignore pattern matching
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-19 09:23:09 +02:00
Michael Mayer
9eef7b37ab Backend: Improve .ppignore pattern matching
Signed-off-by: Michael Mayer <michael@lastzero.net>
2020-10-18 20:03:25 +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
9e37c86b67 Backend: Fallback to file extension for mime type detection
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-09-20 15:12:45 +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
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
0938fe1fa0 Backend: Move .cr3 in file type list #445
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-08-06 10:56:33 +02:00
Michael Mayer
91a1a1ca27 Backend: Ignore image unique IDs that are not standard UUIDs
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-23 15:34:20 +02:00
Michael Mayer
7d00e68d92 Index: Refactor mime type detection #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-21 14:43:45 +02:00
Michael Mayer
138dabd0c8 Metadata: Use mime type to determine file format and exif parser #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-19 16:39:43 +02:00
Michael Mayer
0023fdb1e2 Fix indexing aborts when encountering broken symlink #414
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-19 14:45:49 +02:00
Michael Mayer
24cfa1aea2 Backend: Refactor file indexing / skipping
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-18 20:58:35 +02:00
Michael Mayer
cc946b8ea8 Use int64 for file modification timestamps #391
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-17 16:09:55 +02:00
Michael Mayer
ab7931732e File Browser: Add empty file to test directory
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-16 16:01:46 +02:00
Michael Mayer
6847b8b5f9
Complete file browser with symlink support and full folder / file names (#412)
* Backend: Code clean-up

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* File Browser: Show complete, original file and folder names #408

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* File Browser: Follow symlinks #201 #403 #407

Warning: Following symlinks can make folder lists non-deterministic
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-16 15:43:23 +02:00
Michael Mayer
5866ba307f Backend: Improve detection of generated file names
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-14 15:00:14 +02:00
Michael Mayer
8989c987a2 Unstack all types, except primary and sidecar files #394
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-14 11:00:49 +02:00
Theresa Gresch
832715f861 Backend: Improve Dsc regular expression and add test 2020-07-14 08:46:20 +02:00
Michael Mayer
99eaae0816 Backend: Import JSON metadata from Google Photos
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-11 16:46:29 +02:00
Theresa Gresch
0faf7dbb7f Backend: Add unit tests for pkg 2020-07-07 16:29:55 +02:00
Theresa Gresch
e74de4716e Backend: Add unit tests for pkg/fs 2020-07-07 15:13:42 +02:00
Michael Mayer
1284091b77 Backend: Improve FileTitle() function
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-06 11:31:03 +02:00
Michael Mayer
bfd73932e5 Improve UX and title generation from file names
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-29 11:10:24 +02:00
Michael Mayer
1a0398d01f Docs: Fix indentation
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-23 13:53:11 +02:00
Michael Mayer
4154715512 Docs: Update package information and copyright
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-23 13:44:14 +02:00
Michael Mayer
a91206a509 Universal sidecar configuration, indexing with multiple roots #268 #348
Slowly getting to the point where only very few people are able to maintain this codebase :)

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-07 10:09:35 +02:00
Michael Mayer
f8ec76d6c9 Backend: Simplify and fix path names for development
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-06-02 15:51:14 +02:00
Theresa Gresch
ad9167360d
Feature/246 (#345)
* Import: Implement "add to album" in backend #246

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Import: Implement "add to album" in frontend #246

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Add OriginalName to photo search result

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Add json tags to PhotoName and PhotoPath

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Photo: Use EstimateCountry() in UpdateLocation()

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Photo: Set OriginalName earlier while indexing

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Ignore whitespace when stripping sequence from filename #335

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Fix labels count for SQLite

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Import: Show name of new albums #246

Signed-off-by: Michael Mayer <michael@liquidbytes.net>

* Frontend: Add acceptance test files

Co-authored-by: Michael Mayer <michael@liquidbytes.net>
2020-06-01 09:45:24 +02:00
Michael Mayer
14c89022d3 Improve browsing by original file and folder name #260
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-31 14:42:41 +02:00
Michael Mayer
23df85375e Originals and import path auto-configuration #66
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-31 12:20:32 +02:00
Michael Mayer
a77b2431d3 Backend: Improve labels, keywords and caching
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-28 21:20:42 +02:00
Michael Mayer
e796d036c2 Fix indexer and add sort by file name #328
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-22 19:05:16 +02:00
Michael Mayer
e61dda495a Add PHOTOPRISM_SIDECAR_HIDDEN and PHOTOPRISM_JPEG_HIDDEN flags #311
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-19 11:00:17 +02:00
Michael Mayer
a2d5da7afd Entity: Fix query in File.AllFilesMissing()
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-18 16:36:24 +02:00
Michael Mayer
39878b3f83 Store created files in .photoprism sub directory
See #268, #311 and #313

Hidden directory name poll: https://twitter.com/browseyourlife/status/1262320988081074178

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-18 15:45:55 +02:00
Michael Mayer
2d1763edbe Add videos to main navigation #17
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-14 19:03:12 +02:00
Michael Mayer
a61f2384b3 Initial video support #17
Still need to add a player and index metadata. Work in progress.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-11 18:29:17 +02:00
Michael Mayer
1894b4440f Detect and report photos without primary file, e.g. after purging #234
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-08 12:01:28 +02:00
Michael Mayer
3ccad67622 Index and import subdirectories #258
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-06 15:53:47 +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
Michael Mayer
4e9e84ac9a Backend: Ignore comments in .ppignore files #233 #287
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-04 10:10:56 +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
Michael Mayer
05a05773d9 Backend: Fix import command and improve logging #233 #287
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-03 16:16:00 +02:00
Michael Mayer
fe28c7d284 Backend: Add support for .ppignore files #233 #287
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-03 14:40:59 +02:00
Michael Mayer
3e6df5fd5d Backend: Replace filepath.Walk with godirwalk.Walk #267
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-05-01 17:31:49 +02:00
Michael Mayer
b33983b566 Backend: Add stopwords
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-28 18:20:33 +02:00
Theresa Gresch
62a6ede86f Backend: Add tests to pkg/fs 2020-04-28 17:04:03 +02:00
Theresa Gresch
a7c32cd869 Backend: Add testfiles 2020-04-28 17:02:15 +02:00
Michael Mayer
f43154be93 Convert: Case-insensitive related file search
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-22 16:39:45 +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
96ec67f868 Group related files #283
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-04-14 14:28:47 +02:00