well
4be60310c3
In performer scrapers, forward non-http single performer images ( #4947 )
...
* Forward non-http single performer images
* Don't set if Images already set
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-06-11 13:41:43 +10:00
WithoutPants
2d483f2d11
Bulk edit tags ( #4925 )
...
* Refactor tag relationships and add bulk edit
* Add bulk edit tags dialog
2024-06-11 13:41:20 +10:00
Maista
e18c050fb1
Add log and utils modules to the Javascript VM used in scrapers ( #4937 )
2024-06-11 13:21:39 +10:00
WithoutPants
ed057c971f
Correct Stash box endpoint inputs ( #4924 )
...
* Use stashbox endpoint instead of index
* Update UI to not use deprecated fields
2024-06-11 13:14:12 +10:00
WithoutPants
94a978d063
Scraper inputs ( #4922 )
...
* Pass more details in scene/gallery scrape
2024-06-11 13:12:45 +10:00
WithoutPants
62bdff351d
Movie URLs ( #4900 )
...
* Fix exclude behaviour for stringListCriterionHandlerBuilder
2024-06-11 13:08:49 +10:00
WithoutPants
e843c890fb
Add related object filter criteria to various filter types in graphql schema ( #4861 )
...
* Move filter criterion handlers into separate file
* Add related filters for image filter
* Add related filters for scene filter
* Add related filters to gallery filter
* Add related filters to movie filter
* Add related filters to performer filter
* Add related filters to studio filter
* Add related filters to tag filter
* Add scene filter to scene marker filter
2024-06-11 11:34:38 +10:00
WithoutPants
60446af145
Add console javascript object for backwards compatibility ( #4944 )
2024-06-07 14:53:51 +10:00
NodudeWasTaken
124ea609fe
Fix hw transcoding not detecting filtering errors ( #4934 )
2024-06-06 11:58:19 +10:00
WithoutPants
3b146588c6
Fix ffmpeg resolution when in current directory ( #4899 )
...
* Use absolute path to resolve ffmpeg in config directory
* Pass absolute config path to plugins
2024-05-30 15:50:27 +10:00
WithoutPants
2ca53714a6
Fix SQL error when querying performers with missing aliases ( #4894 )
2024-05-29 07:48:35 +10:00
WithoutPants
eb67f7f4d6
Fix corrupted frontPageContent keys during migration ( #4870 )
...
* Add NestedMap.Delete
* Migrate corrupt frontPageContent keys
2024-05-23 13:59:39 +10:00
WithoutPants
98d210f7f9
Fix inconsistent field names in javascript plugin hooks ( #4869 )
2024-05-23 11:28:15 +10:00
WithoutPants
4794a1d453
Fix setting pointers corrupting config in memory ( #4868 )
2024-05-23 10:56:18 +10:00
puc9
77ef16570b
Add JS plugin name to the log line ( #4867 )
2024-05-23 08:05:12 +10:00
WithoutPants
89553864f5
Enforce whitelist for sort values ( #4865 )
2024-05-22 14:59:08 +10:00
WithoutPants
865208844c
Fix python not being resolved correctly if not in path ( #4864 )
...
* Don't replace plugin exec path if python command. Don't clobber exec
* Fix logging of python resolve errors
2024-05-22 14:57:36 +10:00
WithoutPants
bfc60bb23f
Replace viper with koanf ( #4845 )
...
* Migrate to koanf
* Use temp logger for crashes before config is initialised
* Remove snake case hacks
* Add migration for config file keys
* Add migration note for new migration
* Renamed viper functions
* Remove front-end viper workaround
* Correctly default scan options
2024-05-21 11:24:47 +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
dogwithakeyboard
e32593023e
Add additional fields and restyle Movie select and Gallery select ( #4851 )
...
* Add new fields and restyle gallery selector
* Add new fields and style movie selector
2024-05-20 13:10:36 +10:00
bob123491234
3e3e8b95e2
Add scenes filter to galleries ( #4840 )
2024-05-20 13:04:45 +10:00
WithoutPants
769540be55
Warn if ffmpeg lacks codecs ( #4852 )
...
Prefer ffmpeg with codec support if path not explicitly set.
2024-05-20 12:54:44 +10:00
NotForMyCV
c8aeb7966a
Add last_played_at filter ( #4829 )
2024-05-14 14:40:46 +10:00
WithoutPants
77ee620877
Fix ffmpeg version detection
...
Fixes issue where ffmpeg version could not be detected if the version number had no patch number.
2024-05-10 16:36:08 +10:00
NodudeWasTaken
c5fef3977e
Full hardware transcoding ( #4765 )
2024-05-10 15:55:31 +10:00
Dankonite
29859fa4ad
Tag Favoriting ( #4728 )
...
* Add missing key unbind
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-05-09 12:04:58 +10:00
HookedBehemoth
9cc26f7b75
skip reencoding compatible video streams ( #4783 )
...
* skip reencoding compatible video streams
* don't attempt copy on transcode with resize
2024-05-08 13:24:13 +10:00
WithoutPants
c5abe28375
Fix alias issue when tagging performer from stash-box ( #4820 )
2024-05-08 12:47:18 +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
WithoutPants
7086109d78
Change ffmpeg handling ( #4688 )
...
* Make ffmpeg/ffprobe settable and remove auto download
* Detect when ffmpeg not present in setup
* Add download ffmpeg task
* Add download ffmpeg button in system settings
* Download ffmpeg during setup
2024-03-21 12:43:40 +11:00
NodudeWasTaken
a369613d42
bitrate filter ( #4713 )
2024-03-21 12:36:08 +11:00
WithoutPants
8c454582c7
Add support for favorite Studios ( #4675 )
...
* Backend changes
* Add favorite icon to studio cards
* Add favorite button to studio page
* Add studio favorite filtering
2024-03-14 11:17:44 +11:00
WithoutPants
e5929389b4
Make migration an asynchronous task ( #4666 )
...
* Add failed state and error to Job
* Move migration code
* Add websocket monitor
* Make migrate a job managed task
2024-03-14 11:06:23 +11:00
WithoutPants
9ceea952b6
Replace javascript module otto with goja ( #4631 )
...
* Move plugin javascript to own package with goja
* Use javascript package in scraper
Remove otto
2024-03-14 11:03:40 +11:00
randemgame
3d0a8f653a
Added Sort Performers by Last O At / Last Played At / Play Count and Added Filter Performers by Play Count. Changes to display O Count rather than O-Counter for better consistency. Grammar fixes for 'Interactive Speed' and 'pHash'. ( #4649 )
...
* Sort Performers by Last O / View
Added 2 New Sorts 'Last O At' and 'Last Played At' for Performers
* Filter Performers by Play Count
Was not sure whether to label this 'views' as the code does, or 'plays' but chose the latter as it gives parity across the scenes and performers filters.
* Sort Performers by Play Count
Reutilised the prior selectPerformerLastOAtSQL code that was used to filter by play count to additionally provide useful sorting options.
* Replaced O-Counter with O Count
To better match other sort and filter options like Gallery Count, Image Count, Play Count, Scene Count, Tag Count, File Count, Performer Count and Play Count, we should really use O Count rather than O-Counter for increased legibility and coherence.
* Title Case on 'Interactive speed' and correct capitalization for 'phash'
Every other filter/sort option is using Title Case other than 'Interactive speed' which stands out as incorrect. Also, fixing the correct mid-word capitalization on phash to pHash.
* Formatting
Formatted source code and Ran all tests
2024-03-14 10:32:08 +11:00
bob123491234
ae6d1a8109
Add galleries filter to scenes ( #4632 )
2024-03-14 10:17:57 +11:00
WithoutPants
7ac7963972
Save task options ( #4620 )
...
* Support setting nested UI values
* Accept partial for configureUI
* Send partial UI
* Save scan, generate and auto-tag options on change
* Send partials in saveUI
* Save library task options on change
2024-03-14 08:25:16 +11:00
WithoutPants
4614471ad9
Fix ffmpeg error when trying to scale and copy video ( #4660 )
2024-03-07 09:02:45 +11: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
Flashy78
2ca9e0f43a
Adding disambiguation to performer draft ( #4122 )
2024-02-29 12:47:20 +11:00
WithoutPants
b4823bec8a
Use proxy in utils.ReadImageFromURL ( #4637 )
2024-02-29 11:28:30 +11:00
WithoutPants
945188a0ba
Fix images with , character not rendering ( #4636 )
2024-02-29 11:28:11 +11:00
WithoutPants
fcf249e5f6
Improve plugin hook cyclic detection ( #4625 )
...
* Move and rename HookTriggerEnum into separate package
* Move visited plugin hook handler code
* Allow up to ten plugin hook loops
2024-02-28 08:29:25 +11:00
WithoutPants
48c287ed76
Add last o sort option ( #4626 )
2024-02-28 08:28:11 +11:00
NodudeWasTaken
9c6fbfc16f
Add filename to image serve ( #4616 )
2024-02-27 16:11:40 +11:00
Raghavan
6a9175c954
Implement UI event dispatcher/listener ( #4492 )
...
* page change event
* expose event to plugin api
* Update UIPluginApi.md
* Add to example plugin
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-02-27 09:27:28 +11:00
WithoutPants
56896d7c7d
Fix panic
2024-02-26 15:08:45 +11:00
WithoutPants
ba1ebba6c0
Add Clean generated files task ( #4607 )
...
* Add clean generate task
* Add to library tasks
* Save and read defaults
* Stop handling and logging
* Make filename parsing more robust
2024-02-23 15:56:00 +11:00
WithoutPants
a303446bb7
Scene play and o-counter history view and editing ( #4532 )
...
Co-authored-by: randemgame <61895715+randemgame@users.noreply.github.com>
2024-02-22 11:28:18 +11:00
WithoutPants
0c2a2190e5
Plugin API improvements ( #4603 )
...
* Accept plain map for runPluginTask
* Support running plugin task without task name
* Add interface to run plugin operations
* Update RunPluginTask client mutation
2024-02-22 11:20:21 +11:00
WithoutPants
a8c909e0c9
Add option to generate image thumbnails during generate ( #4602 )
...
* Add option to generate image thumbnails
* Limit number of concurrent image thumbnail generation ops
2024-02-22 11:19:23 +11:00
dogwithakeyboard
c4a91d15a6
include primary tag name in search and sort ( #4606 )
2024-02-22 11:18:29 +11:00
dogwithakeyboard
37acd6b79b
restore image performer age filter ( #4601 )
2024-02-21 11:22:04 +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
dogwithakeyboard
8b1d4ccc97
Movie scene sorting ( #4588 )
2024-02-20 14:01:27 +11:00
WithoutPants
7bb38ae6dc
Don't error out if a single url not fetched ( #4591 )
2024-02-19 14:45:11 +11:00
WithoutPants
7d56f1a093
Fix panic
2024-02-19 14:10:41 +11:00
WithoutPants
afd7f02644
Error if duplicate plugin id is loaded ( #4571 )
...
* Error if duplicate plugin id is loaded
* Use case insensitive comparison
2024-02-19 13:55:52 +11:00
WithoutPants
e7f610ce18
Fix invalid share causing error during cleaning ( #4570 )
2024-02-19 10:24:10 +11:00
WithoutPants
440c261f5b
Developer option: extra blob paths ( #4566 )
...
* Allow additional read-only blob paths
* Add developer option to add more blob sources
* Add makefile targets to start and remove build container
* Documentation
2024-02-16 12:39:45 +11:00
WithoutPants
8fc997dfe9
Fix merge not deleting deleted scene generated files ( #4567 )
2024-02-16 12:38:34 +11:00
dogwithakeyboard
9ac6505241
Studio child filter and sort ( #4479 )
2024-02-06 13:24:00 +11:00
flubber1234
29677696fd
Add support for disabling mobile media-viewer's fullscreen auto-rotate ( #4416 )
2024-01-16 15:00:58 +11:00
WithoutPants
403f7c54ef
Move zip files while moving folders ( #4374 )
2024-01-16 14:48:28 +11:00
OFP
75099b38a8
Update Performer gender filter ( #4419 )
...
* Update Performer gender filter
Updated the Performer gender filter to allow selection of multiple genders (`IS`) or performers with no gender specified (`IS NULL`).
* Add default modifier for circumcised
* Handle existing saved filters
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-01-16 14:47:33 +11:00
keenbed
14bde44597
added support for image orientation filter ( #4404 )
...
* added support for image orientation filter
* Add orientation filtering to scenes
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-01-16 13:50:17 +11:00
WithoutPants
5cf28cf8af
Fix studio name uniqueness validation ( #4454 )
2024-01-14 12:52:16 +11:00
DingDongSoLong4
0b131f76df
Fix scene marker merging ( #4446 )
2024-01-10 10:25:05 +11:00
WithoutPants
6271f18979
Fix error when creating/updating performer with alias == name ( #4443 )
...
* Filter out performer aliases that match the name
* Validate when creating/updating performer in stash-box task
2024-01-09 14:57:49 +11:00
WithoutPants
743ab9a52c
Sort plugin settings ( #4435 )
2024-01-09 09:32:26 +11:00
DingDongSoLong4
910c7025dc
Fix scraped performer alias matching ( #4432 )
2024-01-08 11:50:31 +11:00
bayured
ea503833c5
Add join to intCriterionHandler ( #4414 )
...
* Add join to intCriterionHandler
* Add join to floatCriterionHandler
2024-01-08 11:48:16 +11:00
cc1234475
6848dec5f4
Add CSP to plugin from the yaml file ( #4424 )
2024-01-08 11:45:55 +11:00
DingDongSoLong4
0cdea209bb
Fix stats page SUM error ( #4390 )
2023-12-22 12:40:05 +02:00
WithoutPants
afda6decf2
Support setting file fingerprints ( #4376 )
...
* Support setting file fingerprints
* Disallow modifying managed hashes
2023-12-22 14:07:10 +11:00
DingDongSoLong4
d0d0d1e11f
Include image total O-Count on stats page ( #4386 )
2023-12-21 16:19:41 +11:00
Maista
e8af3c8e98
Set PYTHONPATH environment variable for Python script scrapers ( #4372 )
...
* Set PYTHONPATH environment variable for Python script scrapers
* Convert PYTHONPATH to absolute
* Generalise and apply to plugins
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-12-20 13:32:19 +11:00
DingDongSoLong4
26c3873122
Use int64 for sample-related FFProbeStream fields ( #4361 )
2023-12-14 13:31:58 +11:00
DingDongSoLong4
d4ef182871
Remove railsTimeLayout from ParseDateStringAsTime ( #4333 )
2023-12-01 22:28:38 +02:00
bob123491234
413311711f
Add Details, Studio Code, and Photographer to Images ( #4217 )
...
* Add Details, Code, and Photographer to Images
* Add date and details to image card
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-11-28 15:45:07 +11:00
bob123491234
d1018b4c5d
Add Studio Code and Photographer to Galleries. ( #4195 )
...
* Added Studio Code and Photographer to Galleries
* Fix gallery display on mobile
* Fixed potential panic when scraping with a bad configuration
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-11-28 15:05:33 +11:00
DingDongSoLong4
b78771dbcd
Manager refactor, part 1 ( #4298 )
...
* Move BackupDatabase and AnonymiseDatabase to internal/manager
* Rename config.Instance to config.Config
* Rename FFMPEG
* Rework manager and initialization process
* Fix Makefile
* Tweak phasher
* Fix config races
* Fix setup error not clearing
2023-11-28 13:56:46 +11:00
WithoutPants
b915428f06
UI Plugin API ( #4256 )
...
* Add page registration
* Add example plugin
* First version of proper react plugins
* Make reference react plugin
* Add patching functions
* Add tools link poc
* NavItem poc
* Add loading hook for lazily loaded components
* Add documentation
2023-11-28 13:06:44 +11:00
WithoutPants
11be56cc42
UI plugin dependencies ( #4307 )
...
* Add requires field to UI plugin config
* Use defer instead of async for useScript
* Load plugins based on dependency
* Document new field
2023-11-27 13:41:04 +11:00
WithoutPants
910ff27730
Convert legacy parsed date to UTC
2023-11-27 13:05:29 +11:00
WithoutPants
11a1e49292
Remove timezone from package date format ( #4313 )
...
* Use UTC date for manifest
* Use intl to format package dates
2023-11-27 12:13:01 +11:00
WithoutPants
a8140c11ec
Cache package list in memory instead of filesystem ( #4309 )
2023-11-23 14:16:13 +11:00
Maista
0dcd58763f
Log more when resolving Python ( #4185 )
...
* Log more when resolving Python
Users often have problems configuring their Python installations
* Convert if-else ladder to switch statement
* Consolidate Python resolution
Adds additional logging to plugin tasks to
align with the logging that scrapers output.
2023-11-22 10:04:15 +11:00
WithoutPants
987fa80786
Scraper and plugin manager ( #4242 )
...
* Add package manager
* Add SettingModal validate
* Reverse modal button order
* Add plugin package management
* Refactor ClearableInput
2023-11-22 10:01:11 +11:00
DingDongSoLong4
049a1b15c3
Add fingerprint resolver ( #4287 )
...
* Refactor into internal/api/models.go
* Add file fingerprint resolver
2023-11-20 13:09:12 +11:00
WithoutPants
222475df82
Plugin assets, external scripts and CSP overrides ( #4260 )
...
* Add assets for plugins
* Move plugin javascript and css into separate endpoints
* Allow loading external scripts
* Add csp overrides
* Only include enabled plugins
* Move URLMap to utils
* Use URLMap for assets
* Add documentation
2023-11-19 10:41:16 +11:00
DingDongSoLong4
4dd4c3c658
Improved/fixed macOS support ( #4153 )
...
* Fix macOS notifications
* Change CFBundleIdentifier to match domain
* Distribute Stash.app
* Also build universal phasher binary
* Fix binary name in check_version.go
* Expose GOOS, working dir and home dir in systemStatus endpoint
* Disable setup in working directory when running Stash.app
* More Makefile improvements, remove unused scripts
* Improve READMEs and documentation
2023-11-19 10:36:13 +11:00
DingDongSoLong4
72779e618d
Fix batch performer tag panic ( #4281 )
2023-11-12 03:50:09 +02:00
DingDongSoLong4
4715c5ebb2
Fix performer validation ( #4248 )
...
* Fix performer validation
* Add tests
* Rename QueryCount argument
* Minor refactoring
* Add duplicate alias validation
* Make UI alias validation also case-insensitive
2023-11-02 16:23:54 +11:00
DingDongSoLong4
d96558704a
Improve random sorting algorithm ( #4246 )
2023-11-02 16:13:56 +11:00
DingDongSoLong4
9621213424
Genericise sliceutil functions ( #4253 )
...
* Genericise sliceutil.SliceSame
* Genericise intslice functions
* Genericise stringutil functions
2023-11-02 08:58:32 +11:00
its-josh4
2b8c2534dd
Update a number of dependencies (incl. CVE fixes) ( #4107 )
...
* Update a number of dependencies (incl. CVE fixes)
Includes some dependencies that were upgraded in #4106 as well as a few more dependencies.
Some deps that have been upgraded had CVEs.
Notably, upgrades deprecated dependencies such as:
- `github.com/go-chi/chi` (replaced with `/v5`)
- `github.com/gofrs/uuid` (replaced with `/v5`)
- `github.com/hashicorp/golang-lru` (replaced with `/v2` which uses generics)
* Upgraded a few more deps
* lint
* reverted yaml library to v2
* remove unnecessary mod replace
* Update chromedp
Fixes #3733
2023-10-26 16:24:32 +11:00
its-josh4
b99d16b712
Some cosmetic fixes from #4106 ( #4236 )
2023-10-23 08:20:41 +11:00
WithoutPants
2b8718100b
Plugin settings ( #4143 )
...
* Add backend support for plugin settings
* Add plugin settings config
* Add UI support for plugin settings
2023-10-18 14:09:13 +11:00
WithoutPants
b6714fafba
Remove deprecated graphql fields ( #4064 )
...
* Remove deprecated list*Scrapers queries
* Remove other deprecated query resolvers
* Remove deprecated config fields
* Remove deprecated gallery fields
* Remove deprecated image fields
* Remove deprecated movie fields
* Remove deprecated performer fields
* Document scrape function issue
* Remove deprecated studio fields
* Remove deprecated scan input fields
* Remove deprecated scene fields
* Remove deprecated fields from filters
* Remove scene.file_mod_time
2023-10-17 11:59:35 +11:00
Flashy78
789de2d5f6
Errors for performer/studio non-unique names ( #4178 )
...
* Errors for performer/studio non-unique names
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-10-16 17:26:43 +11:00
WithoutPants
2fd7141f0f
Javascript scraper postprocess ( #4200 )
...
* Add javascript post-process action
* Add documentation
2023-10-16 17:17:36 +11:00
bob123491234
bdf705fe7c
Fix images total megapixels and filesize queries ( #4203 )
2023-10-16 17:16:40 +11:00
dogwithakeyboard
7605eec6da
scene framerate filter ( #4161 )
2023-10-16 16:28:28 +11:00
WithoutPants
b6808dc714
Add support for disabling plugins ( #4141 )
...
* Move timestamp to own file
* Backend changes
* UI changes
2023-10-16 16:15:12 +11:00
Flashy78
e5af37efbc
Tagger match performer by alias ( #4182 )
2023-10-16 14:39:41 +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
Emilo2
40bcb4baa5
Fix url's from gallery scrapers ( #4206 )
...
* Fill in urls array when gallery scraper provides only single url
2023-10-16 13:27:42 +11:00
WithoutPants
623dc8392e
Rename stash_id in 49 postmigrate
2023-10-10 10:23:54 +11:00
WithoutPants
7894d0fc1f
Fix unique folder migration error ( #4170 )
2023-10-04 10:21:31 +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
bc5df7cfaf
Fix gallery scraper url loading ( #4157 )
2023-09-30 10:43:57 +10:00
WithoutPants
9577600804
Gallery URLs ( #4114 )
...
* Initial backend changes
* Fix unit tests
* UI changes
* Fix missing URL filters
2023-09-25 12:27:20 +10:00
WithoutPants
22350d38bc
Filter migration fix ( #4151 )
...
* Exclude value for is null/not null
Also includes changes to the error message in the migration to include the filter string.
* Ignore null when setting from encoded criterion
2023-09-25 11:53:47 +10:00
elkorol
636b0a3167
Add Icons to tags if they have parent/child tags ( #3931 )
...
* Add Icons to tags if they have parent/child tags
* Refactor TagLink
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-09-20 14:08:00 +10:00
DingDongSoLong4
36e9ed7a6c
Fix bulk tagger again ( #4133 )
...
* Add ForEndpoint method
* Fix typo in schema 48 migration
2023-09-20 11:15:48 +10:00
WithoutPants
a25286bdcb
Multiple image URLs ( #4000 )
...
* Backend changes - ported from scene impl
* Front end changes
* Refactor URL mutation code
2023-09-12 13:31:53 +10:00
its-josh4
b36aa745d8
Fixed: CopyFile not working ( #4104 )
2023-09-11 14:43:42 +10:00
its-josh4
798db1a8ea
Improve error reporting when moving a transcoded file fails ( #4101 )
2023-09-11 12:48:39 +10:00
its-josh4
06d76307c3
Do not log ECONNRESET errors when serving transcoded video files ( #4099 )
2023-09-11 12:46:21 +10:00
DingDongSoLong4
24e4719abc
Model refactor, part 2 ( #4092 )
...
* Move conversions into changesetTranslator
* Improve mutation error messages
* Use models.New and models.NewPartial everywhere
* Replace getStashIDsFor functions
* Remove ImageCreateInput
* Remove unused parameters
* Refactor matching functions
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-09-11 12:24:15 +10:00
yoshnopa
c38e05cfa0
Allow empty values for because of isnull and isnotnull ( #4078 )
...
* Allow empty values for because of isnull and isnotnull
* Add float64 to the values just passed through
2023-09-02 08:57:40 +10: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
yoshnopa
20520a58b4
Saved filter refactor ( #4054 )
...
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-09-01 10:04:56 +10:00
DingDongSoLong4
1591180070
Fix bulk performer tagger ( #4024 )
...
* Fix tagger modal checkboxes
* Fix UNIQUE constraint detection
* Performer tagger cache invalidation
* Fix batch performer tagger
* Use ToPerformer in identify
* Add missing excluded fields
* Internationalize excluded fields
* Replace deprecated substr()
* Check RemoteSiteID nil
2023-08-17 10:21:24 +10:00
DingDongSoLong4
8be2c4b6d2
Fix performer tag sort ( #4018 )
...
* Fix performer tag sort
* Fix entirely unrelated test
2023-08-11 10:31:56 +10:00
Flashy78
8ac3353103
Added scene and image file deletion logging ( #4004 )
2023-08-08 09:34:05 +10:00
WithoutPants
107d1113e5
Rename marker folders when hash changes ( #3988 )
2023-08-02 16:15:37 +10:00
therandomguy42
ab4f56213f
Fix non-animated avif files getting classified as video files ( #3913 )
2023-08-01 14:17:34 +10:00
Flashy78
a665a56ef0
Studio Tagger ( #3510 )
...
* Studio image and parent studio support in scene tagger
* Refactor studio backend and add studio tagger
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-07-31 09:50:24 +10:00
DingDongSoLong4
4961c967ee
Add database optimise task ( #3929 )
...
* Add database optimise task
* Wrap errors
* US internationalisation
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-07-28 11:23:18 +10:00
DingDongSoLong4
95a78de3aa
Fix scene marker issues ( #3955 )
...
* Fix scene marker NOT NULL constraint error
* similar changes to gallery chapters
* Fix NULL conversion error if names are NULL in DB
* Fix scene marker form resetting
2023-07-28 11:22:43 +10:00
WithoutPants
a1da626c9f
Return scrape results if only relationships are returned ( #3954 )
...
* Handle scene scrape results where basic fields unset
* Apply fix to other types
* Show scrape dialog if only new items scraped
2023-07-27 19:50:25 +10:00
DingDongSoLong4
2ae30028ac
Fix scene marker/gallery chapter update overwriting created at date ( #3945 )
...
* Add UpdatePartial to gallery chapter
* Add UpdatePartial to gallery marker
* Fix UI, use yup and useFormik
2023-07-27 09:44:06 +10:00
DingDongSoLong4
424aad8307
Add SQL graphql mutations ( #3920 )
2023-07-26 13:54:33 +10:00
WithoutPants
4b07c5b60b
Include old URL in script input ( #3940 )
...
* Include old URL in script input
* Include URL in update input
2023-07-26 12:59:16 +10:00
DingDongSoLong4
ec14ad7564
Minor refactor ( #3924 )
...
* Move SceneFilenameParser to scene package
* Move Timestamp marshalling to internal/api, use gqlgen Int64 parser
2023-07-26 09:15:55 +10:00
DingDongSoLong4
5580525c2d
SQLite model refactoring, part 2 ( #3839 )
...
* Treat empty image input as null
* Add validation to models.Date
* Allow zero dates in database
* Make scene_markers.scene_id non-nullable
* Drop scraped_items table
* Remove movie/studio checksum
* Add migration notes
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-07-13 12:15:02 +10:00
WithoutPants
67d4f9729a
Multiple scene URLs ( #3852 )
...
* Add URLs scene relationship
* Update unit tests
* Update scene edit and details pages
* Update scrapers to use urls
* Post-process scenes during query scrape
* Update UI for URLs
* Change urls label
2023-07-12 11:51:52 +10:00
Flashy78
cbdd4d3cbf
Identify: Options to skip multiple results and single name performers ( #3707 )
...
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-07-11 14:37:00 +10:00
hontheinternet
ff22577ce0
Add additional stats to the Stats page ( #3812 )
...
* Add o_counter, play_duration, play_count, unique_play_count stats
2023-07-11 14:32:42 +10:00
plato178
f0d901a697
Add codec filters ( #3843 )
...
* Add video_codec and audio_codec filter criteria
* Add Audio Codec and Video Codec UI filters
2023-07-11 12:45:20 +10:00
WithoutPants
93b41fb650
Add folder rename detection ( #3817 )
2023-07-11 11:53:49 +10:00
WithoutPants
b4879ef758
Fix marker tag filtering ( #3846 )
2023-06-23 11:04:54 +10:00
WithoutPants
cfc3912dcd
Handle missing studio ids in getHierarchicalValues ( #3845 )
2023-06-23 11:04:12 +10:00
WithoutPants
0087bc941c
Sort special characters before numbers ( #3829 )
...
* Sort special characters before numbers (via local dep change)
2023-06-22 09:51:21 +10:00
DingDongSoLong4
f65e87773c
Include subsidiary studios/tags in tab badge counters ( #3816 )
...
* Add '_all' counts
* Use '_all' counts in UI
* Make other counts non-nullable
* Hide tab counts if zero
* Add resolver parameter
2023-06-16 10:46:14 +10:00
vt-idiot
47c3e855c8
Make displayed resolution information coherent for 2:1/VR files ( #3798 )
...
* Update text.ts
Displayed resolutions in Stash were confusing as hell when it came to VR files - which are typically 2:1. Now I understand why, it's assuming 16:9 files/looking at height only.
2023-06-16 10:19:46 +10:00
DingDongSoLong4
4f11a2820f
Ignore video clips in zip files ( #3826 )
2023-06-15 13:34:49 +10:00
DingDongSoLong4
1c13c9e1b1
SQLite model refactoring ( #3791 )
...
* Remove ID from PerformerPartial
* Separate studio model from sqlite model
* Separate movie model from sqlite model
* Separate tag model from sqlite model
* Separate saved filter model from sqlite model
* Separate scene marker model from sqlite model
* Separate gallery chapter model from sqlite model
* Move ErrNoRows checks into sqlite, improve empty result error messages
* Move SQLiteDate and SQLiteTimestamp to sqlite
* Use changesetTranslator everywhere, refactor for consistency
* Make PerformerStore.DestroyImage private
* Fix rating on movie create
2023-06-15 12:46:09 +10:00
WithoutPants
0c999080c2
Update gallery when adding image via scan ( #3802 )
2023-06-06 13:25:11 +10:00
WithoutPants
256e0a11ea
Fix joined hierarchical filtering ( #3775 )
...
* Fix joined hierarchical filtering
* Fix scene performer tag filter
* Generalise performer tag handler
* Add unit tests
* Add equals handling
* Make performer tags equals/not equals unsupported
* Make tags not equals unsupported
* Make not equals unsupported for performers criterion
* Support equals/not equals for studio criterion
* Fix marker scene tags equals filter
* Fix scene performer tag filter
* Make equals/not equals unsupported for hierarchical criterion
* Use existing studio handler in movie
* Hide unsupported tag modifier options
* Use existing performer tags logic where possible
* Restore old parent/child filter logic
* Disable sub-tags in equals modifier for tags criterion
2023-06-06 13:01:50 +10:00
WithoutPants
74cef93d19
Update gallery UpdatedAt timestamp on contents change ( #3771 )
...
* Update gallery updatedAt on content change
* Update gallery in UI on image change
2023-05-31 11:06:01 +10:00
dogwithakeyboard
241aae9100
check for '0001-01-01' in death_date ( #3784 )
2023-05-29 15:34:35 -04:00
DingDongSoLong4
cc9ded05a3
Error logging improvements ( #3768 )
...
* Improve auto-tag error messages
* Ignore another context canceled error
* Ignore more graphql context canceled errors
2023-05-26 09:49:00 +10:00
WithoutPants
62b6457f4e
Improve studio/tag/performer filtering ( #3619 )
...
* Support excludes field
* Refactor studio filter
* Refactor tags filter
* Support excludes in tags
---------
Co-authored-by: Kermie <kermie@isinthe.house>
2023-05-25 12:03:49 +10:00
yoshnopa
2a85d512f4
Clip Preview Generation Fix ( #3764 )
2023-05-25 11:42:02 +10:00
yoshnopa
ed7640b7b1
Update Metadata Bugfix ( #3757 )
2023-05-25 09:29:05 +10:00
departure18
776c7e6c35
Add penis length and circumcision stats to performers. ( #3627 )
...
* Add penis length stat to performers.
* Modified the UI to display and edit the stat.
* Added the ability to filter floats to allow filtering by penis length.
* Add circumcision stat to performer.
* Refactor enum filtering
* Change boolean filter to radio buttons
* Return null for empty enum values
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-05-24 13:19:35 +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
yoshnopa
0069c48e7e
Folder Gallery creation on a per folder basis ( #3715 )
...
* GalleryInExClusion // Create Gallery from folder based on file, short description in setting
* GalleryInExClusion // No Folderiteration, expansion of docs
* GalleryInExClusion // Only accept lowercase files
* GalleryInExClusion // Correct text in settings
2023-05-10 11:37:01 +10:00
puc9
61c0098ae6
Close input file so SafeMove can delete it ( #3714 )
...
* Close input file so SafeMove can delete it
This is happening on Windows and over the network but at the end of SafeMove it fails the move with an error that it can't remove the input because it is in use.
It turns out it is in use by the SafeMove itself :)
* Copy the src file mod time
2023-05-10 11:16:49 +10:00
puc9
899d1b9395
Limit duplicate matching to files that have ~ same duration ( #3663 )
...
* Limit duplicate matching to files that have ~ same duration
* Add UI for duration diff
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-05-03 15:01:59 +10:00
Flashy78
1606f1b17e
Sort scrapers by name ( #3691 )
2023-05-03 13:34:57 +10:00
dogwithakeyboard
3bc5caa6de
Add performer pairings/appears with tab to performers ( #3563 )
...
* database query
* Appears With panel
* Typos
* Validation fix
* naming consistency, remove extraneous component.
---------
Co-authored-by: kermieisinthehouse <kermie@isinthe.house>
2023-04-24 17:38:49 -04:00
jpnsfw
64b7934af2
Add O-Counter for Performers and Sort/Filter Performers by O-Counter ( #3588 )
...
* initial commit of sort performer by o-count
* work on o_counter filter
* filter working
* sorting, filtering using combined scene+image count
* linting
* fix performer list view
---------
Co-authored-by: jpnsfw <none@none.com>
2023-04-24 17:01:41 -04: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
WithoutPants
dcc73c4873
Phash distance filter ( #3596 )
...
* Add phash_distance filter criterion
* Add distance to phash filter in UI
2023-04-17 15:36:51 +10:00
halorrr
62a1bc22c9
add conditionals to avoid url base duplication on stashbox submit ( #3579 )
2023-04-17 15:30:00 +10:00
WithoutPants
aebb8b07df
Embed default icons ( #3577 )
...
* Move tag svg to embed
* Update doc
* Embed default studio image
2023-04-17 15:28:32 +10:00
WithoutPants
32cefea524
Log errors returned from graphql ( #3562 )
...
* Add func methods to logger
* Log errors returned from the graphql interface
* Log authentication
* Log when credentials changed
2023-04-17 15:27:25 +10:00
Flashy78
75f22042b7
Sort case insensitive, date by newest first ( #3560 )
...
* Case insensitive search
* Fix not adding extra sort when no sort specified.
* Using newer version of fvbommel/sortorder package
2023-04-17 15:21:13 +10:00
WithoutPants
0cd0151251
Don't regenerate covers if present during scan ( #3646 )
...
* Don't regenerate covers if present during scan
* Fix performer unit test (unrelated)
2023-04-07 11:57:10 +10:00
DingDongSoLong4
a8f9310c0f
Fix moveFiles for zip files ( #3608 )
2023-03-29 09:28:11 +11:00
WithoutPants
046fd1c0be
Blob fixes ( #3599 )
...
* Fix error if movie back image blob was not found
* Don't error out if scene cover get fails
* Don't error out on image get fails
* Add debug logging for fs blobs
* Remove old blob data when no longer referenced
2023-03-26 10:56:32 +11:00
DingDongSoLong4
2bcab7b0be
Add busy timeout to database connection ( #3593 )
2023-03-25 12:37:17 +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
496c36493b
Fix scan cover defaults ( #3564 )
...
* Set generate covers to true during migration
* Default generate cover to true
2023-03-20 12:20:51 +11:00
WithoutPants
44c58d6e3c
Fix missing studio image filter
2023-03-20 11:22:13 +11:00
WithoutPants
5a41001246
Fix batch performer tagging with multiple endpoints ( #3548 )
...
* Set stash ids correctly during performer batch add
* Refactor performer tagger dialogs
2023-03-17 15:07:53 +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
yoshnopa
7e8f941155
Add Chapters for Galleries ( #3289 )
...
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-03-16 15:04:54 +11:00
WithoutPants
58852f86fe
Handle large and all entity queries ( #3544 )
...
* Remove upper page size limit
* Batch GetMany function
* Remove upper query limit from UI
2023-03-16 09:08:21 +11:00
WithoutPants
ac67d640db
Anonymise marker titles ( #3542 )
2023-03-16 09:07:33 +11:00
DingDongSoLong4
99b6d316c3
Automatic database optimization and performance tweaks ( #3527 )
...
* Automatic database optimize
* Tweak connection pooling
2023-03-13 13:45:13 +11:00
DingDongSoLong4
1c8aa46da5
Add DASH to docs and log messages ( #3521 )
2023-03-10 12:19:36 +11:00
NodudeWasTaken
0c1b02380e
Simple hardware encoding ( #3419 )
...
* HW Accel
* CUDA Docker build and adjust the NVENC encoder
* Removed NVENC preset
Using legacy presets is removed in SDK 12 and deprecated since SDK 10.
This commit removed the preset to allow ffmpeg to select the default one.
---------
Co-authored-by: Nodude <>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-03-10 11:25:55 +11:00
DingDongSoLong4
2d4384169a
Add DASH streams for VP9 transcoding ( #3275 )
2023-03-07 12:57:27 +11:00
DingDongSoLong4
445e0a7311
Fix custom transcode arguments ( #3491 )
2023-02-28 08:15:52 +11:00
WithoutPants
967a25f64a
Include database cover in draft submission if filesystem version not present ( #3465 )
...
* Fix styling of stash-box dropdown
* Use cover blob in draft submission if present
2023-02-27 10:28:00 +11:00
DingDongSoLong4
05669f5503
Overhaul HLS streaming ( #3274 )
...
* Overhaul HLS streaming
* Fix streaming transcode ffmpeg zombie processes
* Add changelog and release notes
* Documentation
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2023-02-24 14:55:46 +11:00
JoeSmithStarkers
f767635080
Added the ability to do Sequential Scans ( #3378 )
...
* Added the ability to do Seqential Scans
* Modify pkg/txn to run hooks with the outer context, instead of the context that was in a transaction
* update in application manual
2023-02-23 14:38:02 +11:00
Ksrx01
2d528733ff
Improved gallery cover lookup ( #3391 )
...
* Gallery cover lookup by regex in config.yml
* Added regex validation and an in-app manual entry
* Improved settings description + some translations
* Add changelog entry
2023-02-22 18:50:12 +11:00
DingDongSoLong4
51469cfc7f
Optimize allData queries ( #3452 )
...
* Add specific fields to allData queries
* Add additional allData endpoints
2023-02-20 09:24:47 +11:00
JoeSmithStarkers
390f72207c
added vfr detection, to improve preview generation performance ( #3376 )
2023-02-17 13:59:36 +11:00
alexandra-3
8ab095f675
Sort duplicate scenes by path ( #3157 )
2023-02-16 10:20:14 +11:00