* Fix log formatting for logger.error(..., error)
Rewrite it to avoid printing error msg in [context]
* Fix log formatting for logger.warn(..., error?.stack)
Rewrite it to avoid printing stack in [context]
* Fix log formatting for logger.debug(..., error.message);
Rewrite it to avoid printing error msg in [context]
* Print error msg instead of literal "Error"
fix video thumbnail generation for short videos
ffmpeg gives conversion failed with error 234 for short mp4 files (less
than 10s) that where converted from m2ts. Longer videos work fine.
It looks like ffmpeg has no frames left to use for generating a
thumbnail.
This change fixes this issue and seems to not change the behaviour for
other mp4 files (same thumbnail before and after change)
This might also fix all mts file thumbnail generation.
* - updated dtos
- added inAlbums to search builder
- only check isNotInAlbum if albumIds is blank/empty
* - consider inAlbums as OR
* - make open-api-dart
* - lint & format
* - remove inAlbums groupBy clause
* - merge main open-api
* - make open-api
* - inAlbums filter AND instead of OR
* Add a user setting for default album sort order.
Add a user setting under "Features" to control the initial sort order
when creating an album. Default to the existing behavior of
"newest first".
* chore: patch openapi
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* add setting switch
this isnt bound to anything yet
* make google casting opt-in
* doc updates
* lint docs
* remove unneeded translation items
* update mobile openai defs
* fix failing test
we need to mock user prefs since CastButton uses it
* more robust person thumbnail generation
* clamp bounding boxes
* update sql
* no need to process invalid images after decoding
* cursed knowledge
* new line
* feat: private view
* pr feedback
* sql generation
* feat: visibility column
* fix: set visibility value as the same as the still part after unlinked live photos
* fix: test
* pr feedback
* chore(server): don't insert embeddings if the model has changed
We're moving away from the heuristic of waiting for queues to complete. The job
which inserts embeddings can simply check if the model has changed before
inserting, rather than attempting to lock the queue.
* more robust dim size update
* use check constraint
* index command cleanup
* add create statement
* update medium test, create appropriate extension
* new line
* set dimension size when running on all assets
* why does it want braces smh
* take 2
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
* fix: ensure oauth state param matches before finishing oauth flow
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* chore: upgrade openid-client to v6
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* feat: use PKCE for oauth2 on supported clients
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* feat: use state and PKCE in mobile app
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* fix: remove obsolete oauth repository init
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* fix: rewrite callback url if mobile redirect url is enabled
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* fix: propagate oidc client error cause when oauth callback fails
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* fix: adapt auth service tests to required state and PKCE params
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* fix: update sdk types
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* fix: adapt oauth e2e test to work with PKCE
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
* fix: allow insecure (http) oauth clients
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
---------
Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* remove face, person and face search entities
update tests and mappers
check if face relation exists
update sql
unused imports
* pr feedback
generate sql, remove unused imports
* feat: sync pictureFile with oidc if it isn't set already
fix: move picture writer to get userId
fix: move await promise to the top of the setPicure function before checking its value and automatically create the user folder
chore: code cleanup
* fix: extension double dot
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* feat(server): extract full-size previews from RAW images
* feat(web): load fullsize preview for RAW images when zoomed in
* refactor: tweaks for code review
* refactor: rename "converted" preview/assets to "fullsize"
* feat(web/server): fullsize preview for non-web-friendly images
* feat: tweaks for code review
* feat(server): require ASSET_DOWNLOAD premission for fullsize previews
* test: fix types and interfaces
* chore: gen open-api
* feat(server): keep only essential exif in fullsize preview
* chore: regen openapi
* test: revert unnecessary timeout
* feat: move full-size preview config to standalone entry
* feat(i18n): update en texts
* fix: don't return fullsizePath when disabled
* test: full-size previews
* test(web): full-size previews
* chore: make open-api
* feat(server): redirect to preview/original URL when fullsize thumbnail not available
* fix(server): delete fullsize preview image on thumbnail regen after fullsize preview turned off
* refactor(server): AssetRepository.deleteFiles with Kysely
* fix(server): type of MediaRepository.writeExif
* minor simplification
* minor styling changes and condensed wording
* simplify
* chore: reuild open-api
* test(server): fix media.service tests
* test(web): fix photo-viewer test
* fix(server): use fullsize image when requested
* fix file path extension
* formatting
* use fullsize when zooming back out or when "display original photos" is enabled
* simplify condition
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>