Commit graph

1105 commits

Author SHA1 Message Date
WithoutPants
d1c207e40b
Rename movies to groups in menu items in 65 post-migration (#5247)
* Only backup config file if needed in 58 migration
* Change movies to groups in menu items in 65 post-migration
2024-09-11 13:39:46 +10:00
WithoutPants
5407596e0d
Anonymise missing fields (#5244)
* Anonymise missing fields:
- galleries.photographer
- performers.disambiguation
- gallery_urls

* Anonymise captions and saved filters
2024-09-11 11:50:27 +10:00
WithoutPants
ca970b9706
Use gallery updated at for cover mod time (#5225) 2024-09-05 16:45:15 +10:00
WithoutPants
8c2a25b833
Fix gallery scrubber image order (#5222) 2024-09-05 12:59:20 +10:00
WithoutPants
ad17e7defe
Fix handling of files to delete during delete Gallery operation (#5213)
* Only remove file in zip from image if deleting from zip file
* Only remove file in folder from image if deleting from folder
2024-09-05 11:27:31 +10:00
WithoutPants
7c09f24f34
Don't try to migrate non-existent vtt files (#5216) 2024-09-05 11:25:56 +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
WithoutPants
a3c34a51aa
Gallery cover url (#5182)
* Add default gallery image
* Add gallery cover URL path
* Use new cover URL in UI
* Hide gallery preview scrubber when gallery has no images
* Don't try to show lightbox for gallery without images
* Ignore unrelated lint issue
2024-09-03 16:31:55 +10:00
WithoutPants
bcf0fda7ac
Containing Group/Sub-Group relationships (#5105)
* Add UI support for setting containing groups
* Show containing groups in group details panel
* Move tag hierarchical filter code into separate type
* Add depth to scene_count and add sub_group_count
* Add sub-groups tab to groups page
* Add containing groups to edit groups dialog
* Show containing group description in sub-group view
* Show group scene number in group scenes view
* Add ability to drag move grid cards
* Add sub group order option
* Add reorder sub-groups interface
* Separate page size selector component
* Add interfaces to add and remove sub-groups to a group
* Separate MultiSet components
* Allow setting description while setting containing groups
2024-08-30 11:43:44 +10:00
Ian McKenzie
96fdd94a01
Create a section in the history panel to reset scene activity (#5168)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-08-29 13:34:22 +10:00
sezzim
68738bd227
Support for assigning any image from a gallery as the cover (#5053)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-08-29 11:24:52 +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
c74456c07e
Bump linux ffmpeg URL for latest version (#5172) 2024-08-28 09:07:49 +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
WithoutPants
10341fba58
Update builtin freeones scraper (#5171) 2024-08-28 09:00:14 +10:00
WithoutPants
996dfb1c2f
Gallery scrubber (#5133) 2024-08-28 08:59:41 +10:00
NodudeWasTaken
ce47efc415
Add video codec profiles (#5154) 2024-08-27 18:03:48 +10:00
dogwithakeyboard
3089e1ad69
Markers scene filter (#5097)
* Add scene filter to markers
* Fix labels for scenes
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-08-27 17:23:34 +10:00
Ian McKenzie
62ff6f3c7f
Use existing consts for table names in anonymise.go where available (#5167) 2024-08-27 13:01:12 +10:00
Ian McKenzie
e49beb139c
Truncate scenes_o_dates and scenes_view_dates as part of anonymize (#5166) 2024-08-27 09:03:22 +10:00
Gykes
7788a6fd07
PatchComponentRedo (#5136)
* PatchComponent update specifically for SettingsInterfacePanel
* Fix unrelated lint issues
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-08-20 14:25:06 +10:00
WithoutPants
49060e6686
UI nested instead (#5125)
* Support multiple calls to PluginApi.patch.instead for a component.

Allow calling the original/chained function from the hook function.

* Add example of new usage of instead
* Update documentation
2024-08-20 12:36:45 +10:00
WithoutPants
a94bf29b34
Add missing performer sort options to whitelist (#5129)
Adds career length, measurements and weight.
2024-08-13 16:13:15 +10:00
WithoutPants
fb77e18182
Fix view history imported from o-history json (#5127)
* Fix view history imported from o-history json
* Add scene import unit tests
2024-08-13 09:07:36 +10:00
WithoutPants
d96850c008
Rename movie tables to groups in database schema (#5082)
* Rename movie tables to groups
* Correct index name
* Rename synopsis to description in schema
2024-07-30 14:14:16 +10:00
thundxrr
48c6373afa
Added detection for n-prefixed ffmpeg version string (#5102) 2024-07-29 21:54:04 +10:00
Lenny3D
f79677ba96
Copy apikey query parameter to DASH & HLS manifest (#5061)
* Copy apikey query parameter to DASH & HLS manifest

When an API key is provided to the DASH and HLS manifest endpoints, this
it will now be copied to the URLs inside the manifest. This allows for
clients that are only able to pass an URL to an (external) video player
to function in case authentication is set up on stash.
2024-07-16 13:17:18 +10:00
WithoutPants
720b233be6
Rename movie group backend (#5044)
* Rename movie go files
* Rename movie package to group
2024-07-04 11:36:05 +10:00
WithoutPants
15a7b8a859
Movie group renames (#5039)
* Rename Movie and MoviePartial to Group/GroupPartial
* Rename Movie interfaces
* Update movie url builders to use group
* Rename movieRoutes to groupRoutes
* Update dataloader
* Update names in sqlite package
* Rename in resolvers
* Add GroupByURL to scraper config
* Scraper backward compatibility hacks
2024-07-04 09:10:26 +10:00
WithoutPants
2739696813
Add group graphql interfaces (#5017)
* Deprecate movie and add group interfaces
* UI changes
2024-07-03 13:59:40 +10:00
WithoutPants
4cca3b298d
Add Opus as supported audio for mp4 (#5030) 2024-07-01 11:19:38 +10:00
dogwithakeyboard
b7f938531b
Check for null disambiguation on validate (#5019) 2024-06-27 10:12:39 +10:00
WithoutPants
3156191b83
Fix scene marker query (#5014) 2024-06-24 16:02:46 +10:00
WithoutPants
593207866f Adjust 64 post-migrate where logic
I think not including the scene_id meant that a date could be corrected earlier, meaning the rows affected would be 0. Adding scene_id means that each row should be migrated one by one.
2024-06-24 16:02:18 +10:00
NodudeWasTaken
a4e25f32ea
Add apple encoder and fix extra_hw_frames bug (#4986)
* Fixes format in full hw encoding to nv12 for cuda, vaapi and qsv now
* Remove extra_hw_frames
* Add apple transcoder support
* Up the duration to discover decoding errors
* yuv420p is not supported on intel
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-06-24 13:33:27 +10:00
WithoutPants
6775a28ec7
Add schema migration to fix view_date format (#4992)
Also adds index on scene_id and adds a not null constraint to scene_id
2024-06-24 13:15:54 +10:00
WithoutPants
a1fc14f8c4
Fix join function for studio scenes_filter handler (#4994) 2024-06-19 20:00:30 +10:00
WithoutPants
9c13b39f99
Fix identify clearing parent studio when merging (#4993)
* Refactor ScrapedStudio.ToPartial signature
* Add unit test
* Don't clear parent studio during ToPartial
2024-06-19 19:52:33 +10:00
bob123491234
b3d35dfae4
Add tags to studios (#4858)
* Fix makeTagFilter mode

* Remove studio_tags filter criterion

This is handled by studios_filter. The support for this still needs to be added in the UI, so I have removed the criterion options in the short-term.
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2024-06-18 15:55:20 +10:00
WithoutPants
f26766033e
Performer urls (#4958)
* Populate URLs from legacy fields
* Return nil properly in xpath/json scrapers
* Improve migration logging
2024-06-18 13:41:05 +10:00
WithoutPants
fda4776d30
Movie/Group tags (#4969)
* Combine common tag control code into hook
* Combine common scraped tag row code into hook
2024-06-18 11:24:15 +10:00
WithoutPants
f9a624b803
Default view filters (#4962)
* Merge/adapt from yoshnopa:defaultDetails
* Deprecate and remove default filter calls
* Fix weird behaviour when clicking set as default
* Update deprecated get/set default filter resolvers
* Add config migration
---------
Co-authored-by: yoshnopa <usingusenet@protonmail.com>
2024-06-18 10:51:52 +10:00
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