1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-27 10:58:13 +02:00
Commit Graph

1149 Commits

Author SHA1 Message Date
Alex The Bot
6f53e83d49 Version v1.97.0 2024-02-28 22:34:00 +00:00
Michel Heusschen
93f0a866a3
fix(web): settings accordion open state (#7504) 2024-02-28 15:40:08 -06:00
martin
84fe41df31
fix(web): re-render albums (#7403)
* fix: re-render albums

* fix: album description

* fix: reactivity

* fix album reactivity + components for title and description

* only update AssetGrid when albumId changes

* remove title and description bindings

* remove console.log

* chore: fix merge

* pr feedback

* pr feedback

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2024-02-28 15:39:53 -06:00
Jonathan Jogenfors
e4f32a045d
chore: remove watcher polling option (#7480)
* remove watcher polling

* fix lint

* add db migration
2024-02-28 21:20:10 +01:00
Michel Heusschen
c88184673a
fix(web): keep notifications in view when scrolling (#7493) 2024-02-28 07:25:08 -05:00
Alex The Bot
6d91c23f65 Version v1.96.0 2024-02-27 20:14:58 +00:00
Ben McCann
79409438a7
chore(web): upgrade dependencies (#7471) 2024-02-27 14:01:11 -05:00
Alex
908104299d
chore(web): remove album's action notification (#7467) 2024-02-27 12:16:52 -06:00
renovate[bot]
c94874296c
chore(deps): update web (#7448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 12:19:21 -05:00
Ben McCann
907a95a746
chore(web): cleanup promise handling (#7382)
* no-misused-promises

* no-floating-promises

* format

* revert for now

* remove load function

* require-await

* revert a few no-floating-promises changes that would cause no-misused-promises failures

* format

* fix a few more

* fix most remaining errors

* executor-queue

* executor-queue.spec

* remove duplicate comments by grouping rules

* upgrade sveltekit and enforce rules

* oops. move await

* try this

* just ignore for now since it's only a test

* run in parallel

* Update web/src/routes/admin/jobs-status/+page.svelte

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* remove Promise.resolve call

* rename function

* remove unnecessary warning silencing

* make handleError sync

* fix new errors from recently merged PR to main

* extract method

* use handlePromiseError

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-27 10:37:37 -06:00
Alex
57f25855d3
fix(web/server): revert renovate hash update (#7464)
* Revert "chore(deps): update node.js to f3299f1 (#7444)"

This reverts commit cfb49c8be0.

* Revert "chore(deps): update node.js to f3299f1 (#7443)"

This reverts commit 2f121af9ec.
2024-02-27 10:28:00 -06:00
renovate[bot]
cfb49c8be0
chore(deps): update node.js to f3299f1 (#7444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 09:29:25 -06:00
Michel Heusschen
21feb69083
fix(web): don't ask password for invalid shared link (#7456)
* fix(web): don't ask password for invalid shared link

* use apiUtils for e2e test
2024-02-27 09:25:57 -06:00
Michel Heusschen
9fa2424652
fix(web): shared links page broken by enhanced:img (#7453) 2024-02-27 07:44:32 -05:00
Michel Heusschen
4272b496ff
fix(web): prevent resetting date input when entering 0 (#7415)
* fix(web): prevent resetting date input when entering 0

* resolve conflict

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-26 21:07:49 -06:00
Michel Heusschen
99a002b947
fix(web): alignment of people in search box (#7430)
* refactor search suggestion handling

* chore: open api

* revert server changes

* chore: open api

* update location filters

* location filter cleanup

* refactor people filter

* refactor camera filter

* refactor display filter

* cleanup

* fix(web): alignment of people in search box

* fix bad merge

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-26 21:07:23 -06:00
Michel Heusschen
c8bdeb8fec
fix(web): fetch error reporting (#7391) 2024-02-26 20:48:47 -06:00
martin
8a05ff51e9
fix(web): count hidden people (#7417)
fix: count hidden people
2024-02-26 15:58:52 -06:00
Daniel Dietzler
3e8af16270
refactor(web): search box (#7397)
* refactor search suggestion handling

* chore: open api

* revert server changes

* chore: open api

* update location filters

* location filter cleanup

* refactor people filter

* refactor camera filter

* refactor display filter

* cleanup

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2024-02-26 15:45:08 -06:00
Jan108
038e69fd02
feat(web): Added password field visibility toggle (#7368)
* Added password field visibility toggle

* improvements to password input field

* fix e2e and change tabindex

* add missing name=password

* remove unnecessary type prop

---------

Co-authored-by: Jan108 <dasJan108@gmail.com>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2024-02-24 14:28:56 -06:00
Michel Heusschen
9d3ed719e0
fix(web): prevent scroll reset on search page (#7385) 2024-02-24 14:24:24 -06:00
Michel Heusschen
6ec4c5874b
fix(web): timezone handling in search filter (#7384) 2024-02-24 14:23:30 -06:00
Michel Heusschen
878932f87e
feat(web): improve search filter design (#7367)
* feat(web): improve search filter design

* restore position of people toggle button

* consistent colors for media type inputs
2024-02-23 21:32:56 -06:00
martin
a2934b8830
feat(server, web): search location (#7139)
* feat: search location

* fix: tests

* feat: outclick

* location search index

* update query

* fixed query

* updated sql

* update query

* Update search.dto.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* coalesce

* fix: tests

* feat: add alternate names

* fix: generate sql files

* single table, add alternate names to query, cleanup

* merge main

* update sql

* pr feedback

* pr feedback

* chore: fix merge

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-02-23 19:42:37 -05:00
AndyPro720
719dbcc4d0
Web: Revamp message for Storage Template Engine in admin pannel (#7359)
* Web: Revamp message for Storage Template Engine in admin pannel

* Web: Revamp message for Storage Template Engine in admin pannel: removed unnessary code
2024-02-23 17:18:19 +00:00
Sebastian Mahr
78ece4ced9
fix(web): dark mode uploading font color (#7372)
* fix: dark mode uploading font color

* chore: remove dark text by default
2024-02-23 17:05:09 +00:00
martin
b3b6426695
feat(web): configure slideshow (#7219)
* feat: configure slideshow delay

* feat: show/hide progressbar

* fix: slider

* refactor: use grid instead of flex

* fix: default delay

* refactor: progress bar props

* refactor: slideshow settings

* fix: enforce min/max value

* chore: linting

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-22 23:01:19 -06:00
Michel Heusschen
6bb30291de
fix(web): consistent combobox style + improve color contrast (#7353) 2024-02-22 13:08:55 -05:00
Ben McCann
2c9dd18f1b
fix: upgrade SvelteKit to 2.5.1 (#7351) 2024-02-22 12:58:48 -05:00
Jason Rasmussen
b3131dfe14
refactor(web): sidebar settings (#7344) 2024-02-22 10:14:11 -05:00
Ravid Yael
b4e924b0c0
web: improve storage template onboarding message (#7339)
* Style: modifing onboard message for using storage template engine

* Style: modifying onboard message for using storage template engine

* style: Fix Prettier formatting issues

* chore: cleanup message

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-22 15:14:02 +00:00
martin
01d6707b59
feat(web): add an option to change the date formats (#7174)
* feat: add an option to change the date formats

* pr feedback

* fix: change title

* fix: show list supported by the browser

* fix: tests

* fix: dates

* fix: check only if locale is set

* fix: better fallback value

* fix: fallback

* fix: fallback

* feat: add default locale option

* refactor: shared components

* refactor: shared components

* prepare for svelte 5

* don't use relative paths

* refactor: fallback value

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* fix: parsing store

* fix: lint

* refactor: locales

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-22 14:36:14 +00:00
martin
75947ab6c2
feat(web): search albums (#7322)
* feat: search albums

* pr feedback

* fix: comparison

* pr feedback

* simplify

* chore: more compact album padding

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-22 09:04:43 -05:00
Michel Heusschen
46f85618db
feat(web): rework combobox and add clear button (#7317)
* feat(web): rework combobox

* simplify statement and use transition-all
2024-02-22 08:12:33 -05:00
martin
5c0c98473d
fix(server, web): people page (#7319)
* fix: people page

* fix: use locale

* fix: e2e

* fix: remove useless w-full

* fix: don't count people without thumbnail

* fix: es6 template string

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-21 17:03:45 -05:00
Michel Heusschen
d3e14fd662
feat(web): search improvements and refactor (#7291) 2024-02-21 09:50:50 -06:00
Marcel Eeken
06c134950a
Localize the output of the library count to make it more readable (#7305) 2024-02-21 14:35:24 +01:00
martin
8f57bfb496
fix(web): small issues everywhere (#7207)
* multiple fix

* fix: album re-render

* fix: revert re-render album

* fix: linter

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-21 08:29:22 -05:00
Michel Heusschen
855aa8e30a
fix(web): back button for gallery viewer (#7250) 2024-02-21 08:28:16 -05:00
renovate[bot]
ee3b3ca115
chore(deps): update dependency vite to v5.1.3 (#7247)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-21 08:24:50 -05:00
Michel Heusschen
e7995014f9
fix(web): search filter form events (#7285) 2024-02-21 08:21:43 -05:00
Mert
397570ad1a
chore(server): change transcode default to accept all supported audio codecs (#7283)
* change transcode defaults

* don't untick accepted audio codecs

* no need to change the transcode policy

* fix tests

* remove log
2024-02-21 00:25:30 -05:00
Alex The Bot
7c34d0595e Version v1.95.1 2024-02-21 04:02:43 +00:00
Alex
73825918c0
fix(web): presenting modal removes the browser's scroll ability (#7257)
* fix(web): presenting modal removes the browser's scroll ability

* removed unsued code

* eslint
2024-02-20 14:02:01 -06:00
Alex The Bot
302d98ebe1 Version v1.95.0 2024-02-20 16:52:23 +00:00
Michel Heusschen
b896d45ee7
feat(web): improve feedback for favorite and archive actions (#7232) 2024-02-20 10:01:52 -06:00
Jonathan Jogenfors
b3c7bebbd4
feat(server,web) Semantic import path validation (#7076)
* add library validation api

* chore: open api

* show warning i UI

* add flex row

* fix e2e

* tests

* fix tests

* enforce path validation

* enforce validation on refresh

* return 400 on bad import path

* add limits to import paths

* set response code to 200

* fix e2e

* fix lint

* fix test

* restore e2e folder

* fix import

* use startsWith

* icon color

* notify user of failed validation

* add parent div to validation

* add docs to the import validation

* improve library troubleshooting docs

* fix button alignment

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-20 09:53:12 -06:00
Michel Heusschen
e7a875eadd
fix(web): websocket reconnect (#7234)
* fix(web): websocket reconnect

* reset store after navigation completes

* remove loggedOut check
2024-02-20 08:20:09 -06:00
Jason Rasmussen
7f5459f050
fix(web): download from shared album link (#7227)
* fix(web): download in album shared link

* chore: e2e test
2024-02-19 22:39:49 -06:00
renovate[bot]
f14a2ae099
chore(deps): update web (#7221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 22:33:52 -05:00
Alex
42ce8c5093
chore(web): show people list on a single line in filter form when not expanded (#7216) 2024-02-19 21:24:41 -06:00
renovate[bot]
14ca471dea
chore(deps): pin dependencies (#7217)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-19 19:35:46 -05:00
Alex
870d517ce3
fix(web): don't show motion part in search result (#7210)
fix: don't show motion part in search result
2024-02-19 20:56:02 +00:00
Michel Heusschen
529a83cc72
fix(web): broken links to places search (#7208) 2024-02-19 14:55:54 -06:00
Michel Heusschen
ea4be83ee9
fix(web): memory view broken by enhanced:img import (#7206) 2024-02-19 12:42:22 -06:00
Thomas
0795410a41
fix: only show scrollbars if needed (#7191)
The class 'overflow-y-scroll' will always show the scrollbar. Changing
this to 'overflow-y-auto' will only show the scrollbar when needed.

All instances of the 'overflow-y-scroll' class have been changed.

Fixes: #7190
2024-02-18 20:57:56 -06:00
Michel Heusschen
4b46bb49d7
fix(server): on_asset_update event sends varying data types (#7179) 2024-02-18 16:50:32 -06:00
renovate[bot]
072f61927c
chore(deps): update typescript-eslint monorepo to v7 (major) (#7171) 2024-02-18 11:26:01 -08:00
martin
36e5d298db
perf(web): optimize images and modules (#7088)
* perf: optimize images and modules

* fix: tests

* fix: missing font

* fix: delay showing the loading spinner

* simplify

* simplify

* pr feedback

* chore: merge main

* fix: enum

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-18 13:18:40 -06:00
Ben McCann
3480fe5326
chore(web): remove createEventDispatcher from LoginForm (#7177) 2024-02-18 12:47:13 -06:00
Ben Basten
9c1dd373a5
feat(web): add skip link to top navigation (#7091)
* feat(web): add skip link to top nav

* Styling skip link with tailwind
2024-02-17 21:34:27 -06:00
Alex
69983ff83a
feat: enhance search (#7127)
* feat: hybrid search

* fixing normal search

* building out the query

* okla

* filters

* date

* order by date

* Remove hybrid search endpoint

* remove search hybrid endpoint

* faces query

* search for person

* search and pagination

* with exif

* with exif

* justify gallery viewer

* memory view

* Fixed userId is null

* openapi and styling

* searchdto

* lint and format

* remove term

* generate sql

* fix test

* chips

* not showing true

* pr feedback

* pr feedback

* nit name

* linting

* pr feedback

* styling

* linting
2024-02-17 11:00:55 -06:00
Michel Heusschen
60ba37b3a7
fix(web): validation when editing asset date & time (#7160) 2024-02-17 09:28:34 -05:00
Ben McCann
3915867b1b
chore: remove svelte-preprocess (#7159) 2024-02-17 08:35:51 -05:00
Jason Rasmussen
a24f3805c9
chore: web e2e improvements (#7155) 2024-02-16 16:31:22 -05:00
Jan
67b1675850
fix(web) display wrong apikey-name on edit (#7131)
* fix display wrong apikey-name on edit

* use apiKey property with fallback value

* remove null fallback

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-16 16:01:44 -05:00
Michel Heusschen
c84c0bae6c
refactor(web): websocket events (#7152) 2024-02-16 15:43:40 -05:00
Daniel Dietzler
bbf7a54c65
chore(web): upgrade to maplibre 4 (#7132)
upgrade to maplibre 4
2024-02-16 07:55:13 -06:00
Ben McCann
dabbd63a02
fix(web): update unauthorized share link handling (#7126) 2024-02-14 22:01:01 -06:00
Alex
9b814354a4
fix(web): search params (#7123)
* fix(web): search params

* format
2024-02-14 20:43:48 -06:00
Jason Rasmussen
b823dfffdc
chore: suppress abort errors (#7120)
* chore: suppress abort errors

* chore: return if aborted

* chore: linting
2024-02-14 10:24:18 -06:00
Jason Rasmussen
747df0ae86
chore(web): auto sort imports (#7118)
chore(web): auto sort impomrts
2024-02-14 10:54:32 -05:00
Ben McCann
2906950188
fix: update error handling to match new API (#7117) 2024-02-14 07:25:15 -08:00
Torbjorn Tyridal
6adff50f0a
feat(server, web): Include partner's photos on map (#7065)
* feat(server): Include partner's photos on map - if included in timeline

* depend on query parameter withPartners

instead of partners.inTimeline

* web: map option to include partners images

* make open-api
2024-02-14 10:07:00 -05:00
Jason Rasmussen
7d59900662
chore: web shutdown signal (#7114) 2024-02-14 08:57:02 -06:00
Ben McCann
87ae0be081
chore: enum support for new API (#7110)
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-14 06:38:57 -08:00
martin
6f5648569a
fix(web): always show asset owner when viewing an asset from a shared album (#7104)
fix: always show album owner when viewing a shared album
2024-02-14 09:08:33 -05:00
Jason Rasmussen
d8631a00bb
refactor(web) open api client (#7103)
* refactor: person api

* refactor: shared link and others
2024-02-14 08:09:49 -05:00
ItsJustRuby
5fc1d43012
chore(web,mobile): Fix reoccurring typo (#7111) 2024-02-14 08:48:59 +00:00
Jason Rasmussen
8fd94211c0
refactor(web): use new open api client (#7097)
* refactor(web): use new open api client

* refactor: remove activity api

* refactor: trash, oauth, and partner apis

* refactor: job api

* refactor: face, library, system config

* refactor: user api

* refactor: album api
2024-02-13 17:07:37 -05:00
Alex
4b3f8d1946
feat: Search filtering logic (#6968)
* commit

* controller/service/repository logic

* use enum

* openapi

* suggest people

* suggest place/camera

* cursor hover

* refactor

* Add try catch

* Remove get people with name service

* Remove deadcode

* people selection

* People placement

* sort people

* Update server/src/domain/repositories/metadata.repository.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* pr feedback

* styling

* done

* open api

* fix test

* use string type

* remmove bad merge

* use correct type

* fix test

* fix lint

* remove unused code

* remove unused code

* pr feedback

* pr feedback

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-13 19:54:58 +00:00
Jason Rasmussen
0c45f51a29
fix(deps): bump oazapfts to v6 (#7093)
chore: bump to v6
2024-02-13 13:37:57 -06:00
renovate[bot]
c75adbecf3
chore(deps): update web (#7086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-13 12:43:35 -05:00
martin
dcfd1f9ea6
feat(web): navigate with keyboard on person page (#5486)
* feat: navigate with keyboard on person page

* pr feedback

* pr feedback

* pr feedback

* fix: remove unused import
2024-02-13 10:57:15 -05:00
martin
b4579e788b
feat(web): add a setting to load the original file (#6753)
* feat(web): add a setting to load the original file

* fix: export

* fix: subtitle
2024-02-13 09:42:29 -05:00
Mert
e334443919
feat(server, web): smart search filtering and pagination (#6525)
* initial pagination impl

* use limit + offset instead of take + skip

* wip web pagination

* working infinite scroll

* update api

* formatting

* fix rebase

* search refactor

* re-add runtime config for vector search

* fix rebase

* fixes

* useless omitBy

* unnecessary handling

* add sql decorator for `searchAssets`

* fixed search builder

* fixed sql

* remove mock method

* linting

* fixed pagination

* fixed unit tests

* formatting

* fix e2e tests

* re-flatten search builder

* refactor endpoints

* clean up dto

* refinements

* don't break everything just yet

* update openapi spec & sql

* update api

* linting

* update sql

* fixes

* optimize web code

* fix typing

* add page limit

* make limit based on asset count

* increase limit

* simpler import
2024-02-12 20:50:47 -05:00
martin
f1e4fdf175
refactor: authentication on public routes (#6765)
* refactor: authentication on public routes

* fix: remove public user

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* remove unused method

* fix: tests

* fix: useless methods

* fix: tests

* pr feedback

* pr feedback

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-13 01:47:26 +00:00
renovate[bot]
45ea0bb689
chore(deps): update web (#7067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-12 20:45:51 -05:00
martin
c0a09d06a2
fix(web): remove warnings during the build (#7035)
* fix: remove warnings during the build

* fix: optimize chunks size

* fix: remove split vendor chunk strategy

* remove custom chunk

* Update web/src/routes/(user)/map/+page.svelte

* revert change

---------

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2024-02-12 16:03:26 -06:00
Ben McCann
84191e352e
chore: update lockfiles (#7062) 2024-02-12 16:17:28 -05:00
Ben McCann
b43cadccee
feat(web): lazy load photo sphere viewer (#7057)
* feat: lazy load photo sphere viewer

* destructure
2024-02-12 14:31:20 -06:00
Alex
dca1bd22df
Change license to AGPLv3 (#7046)
* Change license to AGPLv3

* Readme and documentation

* Package.json

* More replacement

* Added License MIT for previous code

* NIT

* Update LICENSE

Co-authored-by: bo0tzz <git@bo0tzz.me>

* Update cli/LICENSE

Co-authored-by: bo0tzz <git@bo0tzz.me>

* remote mit

---------

Co-authored-by: bo0tzz <git@bo0tzz.me>
2024-02-12 15:31:59 +00:00
Ben McCann
28e4f8e042
chore: upgrade to Vite 5.1.1 (#7040) 2024-02-11 16:44:32 -05:00
martin
5be7b753ff
fix(web): update profile picture (#7034)
fix: update profile picture
2024-02-11 13:10:41 -05:00
Daniel Dietzler
a9e6657a37
feat(web): store accordion state in search params (#6435)
* keep admin settings accordion state in search params

* refactor: sync implementation

* fix: avoid mutating svelte's internal search params

* add query parameter to enum

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-10 18:25:02 -05:00
Dmitry Brazhenko
6e7865519a
refactor(web): removed panorama-viewer.css (#7012)
removed panorama-viewer.css
2024-02-10 10:07:15 -05:00
Ben McCann
8a47a87a14
chore: remove unneccessary async/awaits (#7009) 2024-02-10 00:12:51 +00:00
Dmitry Brazhenko
2ee9044b6a
fix (web): panorama / 360 view - partial panorama: use photo-sphere-viewer (#6992)
* panorama viewer fixes

* prettifier

* fix
2024-02-09 10:17:51 -06:00
Ben McCann
e4561f26e8
chore: cleanup layout setup (#6995) 2024-02-09 10:16:59 -06:00
Ben McCann
9d072b5f55
fix: update lodash calls (#6996) 2024-02-09 11:03:17 -05:00