1
Fork 0
Commit Graph

557 Commits

Author SHA1 Message Date
Googol Lee a1263feac4
Update gqlgen and fix the code. (#1055) 2024-09-17 17:00:03 +02:00
Googol Lee 340c181442
Use self-building dependencies and update the code with imagemagick. (#1053) 2024-09-17 15:02:23 +02:00
Kostiantyn e8914e0890
new deps (#1048)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-09-12 22:17:01 +02:00
Googol Lee a6cbfc76f3
Back to `bookworm`. (#1040) 2024-09-06 13:32:22 +02:00
Googol Lee 6e1e1d12ce
Update to magick 7 in alpine. (#1035) 2024-09-02 22:12:00 +02:00
Googol Lee ad13172a32
Switch to Debian testing and `imagemagick`. (#1021) 2024-08-29 10:30:06 +02:00
Jorilx bef9e7c666
Add support for GIF images (#1024) 2024-08-20 22:41:30 +02:00
Kostiantyn 5438fbb3f4
Update `crypto` and `image` versions (#1015)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-08-11 20:02:24 +02:00
Googol Lee cf1a66975d
API server listens with the address of `PHOTOVIEW_LISTEN_IP`, #1010. (#1014)
Fix the listened host reference in the `main()` function
2024-08-09 17:32:07 +03:00
Kostiantyn 4d9ce30583
Bump 'crypto' and 'gorm' versions based on Dependabot PRs (#1008)
Co-authored-by: Konstantin Koval
2024-08-03 19:36:18 +03:00
Googol Lee bdae9a67ce
Add `Set up Docker development environment` in README.md (#997) 2024-07-23 21:56:30 +02:00
Googol Lee 0345bc1481
Update `Set up development environment` in README.md. (#995) 2024-07-16 23:10:38 +02:00
Googol Lee eab10af4a3
Remove loading env from tests. (#988)
* Remove loading env from tests.

* Rollback the test workflow.
2024-07-03 21:28:36 +03:00
Lajos Koszti 10e9e354b5
order root albums by path on settings page (#983)
Once you have more than a few paths assigned to a user, it becomes
quite hard to oversee the list.

Personally, I would add my albums to Photoview one by one, so I can
manage the processing better. For example, I can review and fix the face
recognition for one new album at a time, and I don't need to deal with
too much data.
Since I started to add the albums in a random order, it's relatively
hard to find which album is added and which is not.

An easy fix is to order the photo paths by their name.

- Extended the query of the rootAlbums to order them by path
2024-07-01 20:04:50 +02:00
Kostiantyn df9af39a16
Validate incoming GPS data (#951)
* Validate incoming GPS data and throw an error if it is incorrect, storing Null values

* Extracted GPS data processing to function in external parser; optimized IF in internal parser; removed unnecessary comments; set exact values for positive test

* Add the migration for removing existing invalid GPS data and its test; added better errors to asserts in the GPS validation test

* Install FFmpeg and ExifTool on the API unit-test environment

* Fix 'stripped.jpg', 'IncorrectGPS.jpg', and 'CorrectGPS.jpg' tests for the external parser

* Optimized data validation in the external parser, returned error by the internal parser for invalid data, updated test to expect errors and handle them

* Switched from error to log entry in case of incorrect GPS data, as error handling is not so transparent in the internal parser

---------

Co-authored-by: Konstantin Koval
2024-06-29 10:32:48 +03:00
Kostiantyn 55d6097cc1
Update GO version in the `go.mod` and read it by the job to setup the testing environment for unit tests (#980)
Co-authored-by: Konstantin Koval
2024-06-28 14:59:31 +02:00
Googol Lee e36b09753a
Bump go version and modules. (#976)
* Bump go version to 1.22. Bump all go module to the newest version, except pinning libheif@v1.15.1 to match the c lib version in Debian bookworm.

* Update go_wrapper.sh to fit golang image.

* Update the way to set go envs.

* Test against go 1.22

* Set default shell for all building stage in Dockerfile.
2024-06-28 10:10:18 +03:00
Googol Lee 1cd34109b6
Optimize user's album filter. #705 (#962) 2024-06-27 21:21:09 +02:00
Googol Lee ddacba85db
Fix timeline order with sqlite3. It should be ordered as MySQL and PGSQL like (year, month, day). (#954) 2024-05-31 09:35:41 +01:00
Kostiantyn d47bca280e
configure SQLite to work in multi-connection mode, so it is not locked when scanner runs a job (#955)
Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-05-31 09:32:47 +01:00
Jordan Hellier 4133694bc2
fix: remove logging of database url in place for just dialect (#940) 2024-04-27 13:18:56 +01:00
Alex Kabakaev d6f34211a1
fix false trigger of DB migration on sqlite (#936) 2024-04-26 05:46:32 +01:00
Jordan Hellier f900d55300
Fix audit issues in production (#933)
* chore: upgrade api dependencies to latest compatible version

* chore: update ui dependencies first pass

* chore: migrate ui dependency to latests

Migrates i18next-parser from 6.x -> 8.x per documentation

* chore: add missing tools file

* chore: regenerate files

* chore: fix docker build from incorrect depedency

bookworms latest stable version of libheif-dev is 1.15.1
2024-04-11 22:21:08 +01:00
Simon Ser d0d0bf21bc
Make face detection optional at build-time (#881)
Add a "no_face_detection" build tag to disable face detection
when building. This is useful when installing the face detection
dependencies is undesirable and cuts down build times (e.g. on a
Raspberry Pi).
2024-04-11 22:20:09 +01:00
Konstantin b2d591bd1b
Don't stop scanning album on media fail (#892)
* Don't stop scanning album on media fail

* Update api/scanner/scanner_album.go

accepting suggestion from Jordan

Co-authored-by: Jordan Hellier <13520761+jordy2254@users.noreply.github.com>

---------

Co-authored-by: Konstantin Koval <kkb@ukr.net>
Co-authored-by: Jordan Hellier <13520761+jordy2254@users.noreply.github.com>
2024-03-30 11:04:03 +02:00
Alex Kabakaev 153f37e5fb
move mp4 moov atom to the beginning (#883)
Video playback starts faster in browsers.
2024-03-30 09:01:16 +00:00
Yo Sev 9c85663522
Fix invalid UTC offset during datetime parsing (#823) 2024-03-30 07:57:21 +01:00
Andreas 68cc2a0eee
reordered cli arguments for ffmpeg to improve speed to generate thumbnails from videos (#917) 2024-03-29 19:35:50 +00:00
Konstantin a90f30391c
Add Ukrainian translation (#875) 2024-03-24 22:42:44 +01:00
john dev a28e9ba8b7
Prepend missing key CreationDate to createDateKeys 2023-03-21 14:26:03 +01:00
Jakub Tymejczyk 030c9262c6 Fix encoding video thumbnails 2023-03-03 08:51:44 +01:00
Jakub Tymejczyk a2170bc02b Fixes issue 804 2023-02-28 15:33:02 +01:00
john dev 15e3cc3b8c
Add support to parse DateTImes with UTC offset 2023-02-15 08:29:41 +01:00
WindLi001 6bebed4693 use Clean() but not Abs() to prevent directory traversal 2023-02-10 21:05:17 +08:00
WindLi001 0ac38e6605 Limit thumbnail size of small original photo 2023-02-10 12:53:25 +08:00
Lajos Koszti 1f8664d7f8
fix transaction already commited error
I encountered with the following error:

> 2023/02/05 07:33:00 /app/scanner/face_detection/face_detector.go:92 sql: transaction has already been committed or rolled back
> [0.042ms] [rows:0] SELECT * FROM `media` WHERE `media`.`id` = 823 ORDER BY `media`.`id` LIMIT 1
> 2023/02/05 07:33:00 ERROR: Error detecting faces in image (/photos/Borzsony2017/DSC_0028.NEF): sql: transaction has already been committed or rolled back

It turned out it comes from the api/routes/photos.go

I found a very similar code in album_scanner.go.
The difference I saw was that while in the single photo request the
transaction passed to the `scanner_tasks.Tasks.BeforeProcessMedia` call,
in the album_scann.go the transaction created after this call and
created from the context which returned by `BeforeProcessMedia`.

Another difference was that in the `ProcessSingleMedia` call the
`AfterProcessMedia` call was called with the same - db transaction -
context, in the album_scanner it was called outside of the transaction.

I changed the logic by merging the two behavior:
Create the transaction from the context of `BeforeProcessMedia` and also
use the transaction context in the `AfterProcessMedia`.
After the change the error disappeared.

So to have it in a common place I extracted that logic into a function
and use for both the single photo request and in the album scanner.

I did not go more deeper to find out what's going on with the context
under the hood.
2023-02-05 09:05:05 +01:00
queeup a797170881 Add Turkish language 2022-12-02 15:32:49 +03:00
PJ-Watson 5c1bbf9065
Fixed ScanAlbum failing silently.
2.3.12 -> 2.3.13 restructured ScanAlbum so that errors were returned rather than raising a ScannerError directly - this ensures that the errors are logged correctly.
2022-08-12 02:18:59 +01:00
PJ-Watson 7715865309 Add support for .CR3 photos. 2022-08-10 07:43:39 +01:00
PJ-Watson ca889d02bd Fixed site_info_test - missing model import. 2022-08-09 06:43:25 +01:00
PJ-Watson 3e780dbe48 Changed downsampling method to custom type. 2022-08-09 06:09:55 +01:00
PJ-Watson 1c784fa5e9 Simple api test 2022-08-05 19:40:26 +01:00
PJ-Watson 5c4eeef870 Introduce thumbnail filtering options. 2022-08-05 19:37:55 +01:00
viktorstrate 831e24f654
Fix API tests 2022-07-08 17:44:03 +02:00
viktorstrate a5d152f0c0
Make scanner tasks share ctx 2022-07-07 22:00:05 +02:00
viktorstrate f512db6c32
Merge branch 'master' into rework-scanner-internals 2022-07-07 19:58:30 +02:00
viktorstrate 248d858592
Add Basque language
Thank you to Xabi for the translation
2022-07-05 15:11:49 +02:00
viktorstrate 447f05185f
Fix scanner queue tests 2022-03-28 18:43:00 +02:00
James Cross 501c50e259 Adding image description to sidebar 2022-03-28 16:08:30 +01:00
Phlogi f093827bde
Fix slow query in getting media of a face by using another join
The subquery returns all potential media id's. Typically, we have a couple of faces and thousands of media files. 
A join is much faster. 

With about 50k images and a face that was present in 2'000 images the query was unusable slow, it took about 60s. 
This is a very important performance fix, as I think many users will run into it. 
Maybe there are other areas where the same improvement is possible, I didn't check.
2022-03-05 17:44:15 +01:00