Commit graph

72 commits

Author SHA1 Message Date
WithoutPants
e213fde0cc
Return error when scanning avif in zip (#6356) 2025-12-02 14:27:29 +11:00
Otter Bot Society
5f16547e58
Add fallback for 0-dimension images (webp animations) (#6342) 2025-12-02 14:14:42 +11:00
WithoutPants
4017c42fe2
Handle modified files where the case of the filename changed on case-insensitive filesystems (#6327)
* Find existing files with case insensitivity if filesystem is case insensitive
* Handle case change in folders
* Optimise to only test file system case sensitivity if the first query found nothing

This limits the overhead to new paths, and adds an extra query for new paths to windows installs
2025-12-02 12:53:37 +11:00
Gykes
90d1b2df2d
Feature: AVIF support (#6288) 2025-11-28 07:19:32 +11:00
Gykes
d10995302d
Feature: Add trash support (#6237) 2025-11-26 13:38:19 +11:00
Colin Alexander Duffy
20fa5d3146
Add JXL (#6184) 2025-11-06 18:09:40 +11:00
gregpetersonanon
914bbfc164
Prevent scanner from failing when reading file info (#6123) 2025-10-20 10:54:26 +11:00
Otter Bot Society
12c4e1f61c
Treat images with no exif metadata as well-oriented (#6006) 2025-09-09 16:48:16 +10:00
gregpetersonanon
fd36c0fac7
Allow scan to continue when encountering an error (#6073) 2025-09-09 15:10:13 +10:00
WithoutPants
602f95dd29
Fix video files with identical phashes being merged during scan (#5461)
* Change Fingerprints.Remove to return new instead of mutate current
* Match only by oshash and md5 when merging scenes during scan
2024-11-07 14:29:26 +11:00
WithoutPants
a17199ba21
Handle symlink zip files (#5249) 2024-09-11 13:58:02 +10:00
WithoutPants
c21ded028a
Scan video orientation (#5189)
* Adjust video dimensions for side data rotation
* Warn user when ffprobe version < 5. Only get rotation data on version >= 5
2024-09-03 16:33:15 +10:00
WithoutPants
899ee713ab
Adjust image dimensions for exif orientation (#5188) 2024-09-03 16:32:29 +10:00
Andi
ae1841efb0
chore: use errors.New to replace fmt.Errorf with no parameters will much better (#4778) 2024-08-28 14:45:57 +10:00
WithoutPants
b7799df2a6
Add package docs and project vision/goals (#5169)
* Add goals/design vision to contributing doc
* Add barebones package documentation
2024-08-28 09:01:39 +10:00
CJ
0fa71be697
Add scan option to force gallery zip rescan (#4113)
* Add scan option to force rescan
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-05-20 13:52:36 +10:00
WithoutPants
141f60f8fb
Fix interactive speed being lost when file is moved (#4799) 2024-05-03 13:10:05 +10:00
hidewrong
4c0d9d0a07
chore: fix struct names (#4766)
Signed-off-by: hidewrong <hidewrong@outlook.com>
2024-05-02 12:04:54 +10:00
dogwithakeyboard
f1f6e84aa0
Add bmp to image codec list (#4653) 2024-03-06 09:56:17 +11:00
WithoutPants
22986097c4 Fix code from #4570 2024-03-06 09:52:06 +11:00
WithoutPants
76e5598876
Improve handling of moved and added video files (#4598)
* If old file path is not in library, treat as move
* Use existing phash if file with same oshash exists
2024-02-20 14:04:31 +11:00
WithoutPants
e7f610ce18
Fix invalid share causing error during cleaning (#4570) 2024-02-19 10:24:10 +11:00
WithoutPants
403f7c54ef
Move zip files while moving folders (#4374) 2024-01-16 14:48:28 +11:00
DingDongSoLong4
33f2ebf2a3
Model refactor, part 3 (#4152)
* Remove manager.Repository
* Refactor other repositories
* Fix tests and add database mock
* Add AssertExpectations method
* Refactor routes
* Move default movie image to internal/static and add convenience methods
* Refactor default performer image boxes
2023-10-16 14:26:34 +11:00
WithoutPants
0dbe3e6ea8
Fix data corruption when moving folders (#4169)
* Add data correction migration
* Correct folder hierarchy after folder move
2023-10-03 17:05:08 +11:00
DingDongSoLong4
c364346a59
Model refactor (#3915)
* Add mockery config file
* Move basic file/folder structs to models
* Fix hack due to import loop
* Move file interfaces to models
* Move folder interfaces to models
* Move scene interfaces to models
* Move scene marker interfaces to models
* Move image interfaces to models
* Move gallery interfaces to models
* Move gallery chapter interfaces to models
* Move studio interfaces to models
* Move movie interfaces to models
* Move performer interfaces to models
* Move tag interfaces to models
* Move autotag interfaces to models
* Regenerate mocks
2023-09-01 10:39:29 +10:00
therandomguy42
ab4f56213f
Fix non-animated avif files getting classified as video files (#3913) 2023-08-01 14:17:34 +10:00
WithoutPants
93b41fb650
Add folder rename detection (#3817) 2023-07-11 11:53:49 +10:00
DingDongSoLong4
4f11a2820f
Ignore video clips in zip files (#3826) 2023-06-15 13:34:49 +10:00
yoshnopa
ed7640b7b1
Update Metadata Bugfix (#3757) 2023-05-25 09:29:05 +10:00
yoshnopa
a2e477e1a7
Support image clips/gifs (#3583)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-05-17 09:30:51 +10:00
DingDongSoLong4
90683bd263
Fix zip gallery moving (#3610)
* Fix folder ZipFileID synchronization
* Fix zip gallery moving
2023-04-19 13:06:53 +10:00
DingDongSoLong4
b4b7cf02b6
Improve caching, HTTP headers and URL handling (#3594)
* Fix relative URLs
* Improve login base URL and redirects
* Prevent duplicate customlocales requests
* Improve UI base URL handling
* Improve UI embedding
* Improve CSP header
* Add Cache-Control headers to all responses
* Improve CORS responses
* Improve authentication handler
* Add back media timestamp suffixes
* Fix default image handling
* Add default param to other image URLs
2023-04-19 13:01:32 +10:00
DingDongSoLong4
a8f9310c0f
Fix moveFiles for zip files (#3608) 2023-03-29 09:28:11 +11:00
WithoutPants
1f578db2d6
Warn on charset decoding issues (#3568) 2023-03-24 09:04:48 +11:00
WithoutPants
09c724b8d5
Add move files external interface (#3557)
* Add moveFiles graphql mutation
* Move library resolution code into config
* Implement file moving
* Log if old file not removed in SafeMove
* Ensure extensions are consistent
* Don't allow overwriting existing files
2023-03-22 07:57:26 +11:00
WithoutPants
7cff71c35f
Add filesystem based blob storage (#3187)
* Refactor transaction hooks. Add preCommit
* Add BlobStore
* Use blobStore for tag images
* Use blobStore for studio images
* Use blobStore for performer images
* Use blobStore for scene covers
* Don't generate screenshots in legacy directory
* Run post-hooks outside original transaction
* Use blobStore for movie images
* Remove unnecessary DestroyImage methods
* Add missing filter for scene cover
* Add covers to generate options
* Add generate cover option to UI
* Add screenshot migration
* Delete thumb files as part of screenshot migration
2023-03-17 10:52:49 +11:00
xWTF
6a5a2060bf
Fix gallery zip scan context (#3433)
* fix zip scan context
* move ValueOnlyContext to utils, use it for zipCtx
2023-02-16 10:07:52 +11:00
xWTF
d00966c335
Support non-utf8 encoding for zip files (#3389)
* detect & decode zip file names in newZipFS
2023-02-16 10:06:12 +11:00
WithoutPants
3cf97f6e27
Handle folder symlinks correctly during clean (#3415) 2023-02-11 09:21:18 +11:00
puc9
cf0ce6cb08
Fix and improve captions detection (#3276) 2023-01-27 11:52:56 +11:00
WithoutPants
dc875ed5d7
Clean missing captions during scan (#3240) 2022-12-06 12:04:40 +11:00
alexandra-3
87cea80e7b
Fix a bunch of scanning / tagging bugs (#3154)
* Fix possible infinite loop/stack overflow with weird/broken zip files
* Fix path length calculation using bytes instead of characters (runes)
* Fix bug where oshash gets buffers with size not actually multiple of 8
* Add oshash tests

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2022-12-01 16:48:04 +11:00
alexandra-3
abc9ec648a
Fix a few cases where ffmpeg produces no output (#3161)
* Treat no output from ffmpeg as an error condition
* Distinguish file vs. video duration, and use later where appropriate
* Check for empty file in generateFile

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2022-11-21 17:21:27 +11:00
WithoutPants
f39fa416a9
Fix database locked errors (#3153)
* Make read-only operations use WithReadTxn
* Allow one database write thread
* Add unit test for concurrent transactions
* Perform some actions after commit to release txn
* Suppress some errors from cancelled context
2022-11-21 06:49:10 +11:00
WithoutPants
4a054ab081
Support file-less scenes. Add scene split, merge and reassign file (#3006)
* Reassign scene file functionality
* Implement scene create
* Add scene create UI
* Add sceneMerge backend support
* Add merge scene to UI
* Populate split create with scene details
* Add merge button to duplicate checker
* Handle file-less scenes in marker preview generate
* Make unique file name for file-less scene exports
* Add o-counter to scene update input
* Hide rescan for file-less scenes
* Generate heatmap if no speed set on file
* Fix count in scene/image queries
2022-11-14 16:35:09 +11:00
WithoutPants
479ebfc88d
Reimplement case-insensitivity move bug fix (#3047)
* Use eq for FindByPath for case sensitivity
* Handle case sensitive moves
2022-10-25 11:37:54 +11:00
WithoutPants
1c92336798
Fix symlink size calculation (#3046) 2022-10-25 10:57:37 +11:00
DingDongSoLong4
4db0e48f73
Fix zip gallery renaming (#3036) 2022-10-24 09:38:02 +11:00
WithoutPants
7104bb67ca
Handle null video durations in migration (#3021) 2022-10-20 10:58:42 +11:00