Commit Graph

26 Commits

Author SHA1 Message Date
Kostiantyn
2b1240b88b Refactor API video route (#1202)
* Refactored code; temp disable workflows on push

* remove printf leftovers

* A better sanitizing code

* extend auth routes tests

* more tests, fix 2 bugs in token processing

* more refactoring and fixes

* optimize video mediaURLs DB query and make testCachePath in utils thread-safe

* fix always passing test

* and more refactoring; 1 more test, but cleanup still has to be fixed

* more debug code in the test

* fix the test

* Final commit

* Adding a defer function just in case of panic

* Address some of review comments

* Protect the shared var by mutex; implement correct context-aware scanning

* Better error; better initial func wrap/capture; better log messages in `photos.go`;

* Addressing a few more review comments

* Order the query results; a better error type catch; setting the MP4 content type header explicitly

* try to fix the cancelation detection condition

* Extract a function and call it by name

---------

Co-authored-by: Konstantin Koval
2025-06-18 20:38:19 +03:00
Kostiantyn
27a0b082d1 Handle photo not found case in API routes (#1201)
* Handle media not found issue

* temporary run workflows for master pushes only; tests

* revert temp workflow changes

---------

Co-authored-by: Konstantin Koval
2025-05-10 17:45:32 +03:00
Kostiantyn
d1193c5ca4 Refactoring part 1: Fix some annoying linter warnings in API code (#1064)
* names, constants of reusable strings, removed unneeded `if`, replaced deprecated imports

* more deprecated imports replaced

* What is this?))

* Fix a path and quote a var in Dockerfile

* Addressing review comments

---------

Co-authored-by: Konstantin Koval <kkb@ukr.net>
2024-09-30 14:45:02 +02: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
viktorstrate
b09d32019e Make it compile again 2022-03-02 17:26:06 +01:00
viktorstrate
6e2a64bc77 WIP: split up scanner into separate tasks 2022-02-15 17:22:41 +01:00
viktorstrate
e509124510 Disable 'media already scanned' logs 2021-11-21 11:41:52 +01:00
viktorstrate
b022a13e55 Batch exiftool runs + scanner package restructuring 2021-05-06 22:01:48 +02:00
viktorstrate
46ae5115bb Refactor EXIF parsing 2021-01-19 16:39:57 +01:00
viktorstrate
fcdb5b4e7b Work on sqlite support 2021-01-17 12:45:23 +01:00
viktorstrate
907894dda3 Merge branch 'master' into v2.0.0 2020-12-17 23:18:00 +01:00
viktorstrate
4cd822f068 Update gomod to reflect repo transfer 2020-12-17 22:51:43 +01:00
viktorstrate
4f370deab9 Merge remote-tracking branch 'origin/master' into v2.0.0 2020-12-10 12:30:10 +01:00
Vladimir Ivanov
6adc79001c Photo duplication detection (#148)
* Fixes viktorstrate/photoview#8
- Added new property CounterpartPath to Media struct to hold the path to the counterpart JPEG file (if any)
- Added new MediaType method isBasicSupportedisBasicTypeSupported()
- Added new function isFileExists() to minimize the code duplication

* Fixes viktorstrate/photoview#8
- Chaned CounterpartPath definition from string to *string
- Added new helper method FileExtensions()
- Simplified the logic inside scanForRawCounterpartFile() and scanForCompressedCounterpartFile() functions, reducing the code duplication

* Fixes viktorstrate/photoview#8
- Added debug to fileExists() function

* Cleanup fileExists logging

Co-authored-by: viktorstrate <viktorstrate@gmail.com>
2020-12-09 11:40:37 +01:00
viktorstrate
98f13d76e6 Replace database, work on scanning 2020-11-30 21:29:49 +01:00
viktorstrate
e42ac2436b Replace database, resolve all build-time errors 2020-11-28 21:29:31 +01:00
viktorstrate
2b966aa672 Replace database, mostly media and video 2020-11-26 20:48:04 +01:00
viktorstrate
177ae91500 Replace database, mostly video 2020-11-25 23:06:47 +01:00
viktorstrate
2e9aa29258 Replace database, mostly media related 2020-11-23 20:43:00 +01:00
viktorstrate
3c23f82330 Replace database, mostly album related 2020-11-23 19:59:01 +01:00
sean borg
11d67c9ae9 Add sidecar path & hash to DB 2020-11-21 11:54:01 +00:00
viktorstrate
e0ab77b158 Use file modTime instead of changeTime...
to determine the date_shot value of pictures.
This value is cross-platform,and probably a
better representation for the date_shot
2020-08-14 12:20:14 +02:00
viktorstrate
78b415871d Add date information to media
This closes #61
2020-08-12 13:04:41 +02:00
viktorstrate
0e9d37ca77 Add video metadata 2020-07-12 14:17:49 +02:00
viktorstrate
990a592fcc Expose media_type to graphql
- Make video thumbnail accessible from graphql
2020-07-11 14:21:10 +02:00
viktorstrate
9e5480188b add media_type column to media table in database 2020-07-11 14:05:06 +02:00