Commit graph

204 commits

Author SHA1 Message Date
WithoutPants
aadbcaeec2
Organised flag (#988)
* Add organized boolean to scene model (#729)
* Add organized button to scene page
* Add flag to galleries and images
* Import/export changes
* Make organized flag not null
* Ignore organized scenes for autotag

Co-authored-by: com1234 <com1234@notarealemail.com>
2020-12-18 08:06:49 +11:00
aGlkZGVu
fad64ba126
Implement user customizable menu items (#974) 2020-12-09 11:59:09 +11:00
WithoutPants
86747acc78
Use changesets correctly when updating objects (#976) 2020-12-04 12:42:56 +11:00
WithoutPants
54c9f167ba
Show studio as text in scene cards where studio image isn't set (#965) 2020-11-27 08:01:56 +11:00
JoeSmithStarkers
e3eb550a7d
Parallel scanning/generation, and combined scanning/preview/sprite (#820)
* Implement parallel scanning and generation, and combined scanning/preview/sprite generation.
* Added UI component for preview/sprite generation during scan, and configurable number of parallel tasks.
* Add v050 changelog entry
2020-11-25 12:45:10 +11:00
WithoutPants
0a098b1d63
Selective scan (#940) 2020-11-16 09:20:04 +11:00
InfiniteTF
ba8b3b29a4
Update findGalleries to only fetch imageCount instead of all images (#941) 2020-11-15 14:40:47 +11:00
WithoutPants
c75b5c204d
Don't set default studio image (#887) 2020-10-27 09:35:50 +11:00
InfiniteTF
3346f8dcca
Stash-box tagger integration (#454) 2020-10-24 14:31:39 +11:00
JoeSmithStarkers
71c814c116
Added streaming quality options (#790) 2020-10-22 15:02:27 +11:00
WithoutPants
228a5c5537
Use temp redirects for setup (#875) 2020-10-22 08:17:15 +11:00
com1234475
3832c8505a
Make performer name mandatory in graphQL (#273) (#841) 2020-10-21 11:27:16 +11:00
SpedNSFW
147d0067f5
Add gallery scraping (#862) 2020-10-21 09:24:32 +11:00
WithoutPants
8eda72ad89
Image improvements (#847)
* Fix image performer filtering
* Add performer images tab
* Add studio images tab
* Rename interface
* Add tag images tab
* Add path filtering for images
* Show image stats on stats page
* Fix incorrect scan counts after timeout
* Add gallery filters
* Relax scene gallery selector
2020-10-20 10:11:15 +11:00
InfiniteTF
73eb5c7a1f
Add image-count sorting, and image deletion on gallery deletion (#853) 2020-10-16 10:35:50 +11:00
WithoutPants
aca2c7c5f4
Images section (#813)
* Add new configuration options
* Refactor scan/clean
* Schema changes
* Add details to galleries
* Remove redundant code
* Refine thumbnail generation
* Gallery overhaul
* Don't allow modifying zip gallery images
* Show gallery card overlays
* Hide zoom slider when not in grid mode
2020-10-13 10:12:46 +11:00
WithoutPants
8866670e53
Add partial import functionality (#812) 2020-09-20 18:36:02 +10:00
WithoutPants
7a45943e8e
Stash box client interface (#751)
* Add gql client generation files
* Update dependencies
* Add stash-box client generation to the makefile
* Move scraped scene object matchers to models
* Add stash-box to scrape with dropdown
* Add scrape scene from fingerprint in UI
2020-09-17 19:57:18 +10:00
WithoutPants
03d4826c85
Selective export (#770) 2020-09-15 17:28:53 +10:00
InfiniteTF
03f5e1a442
Config for stash-box instances (#748) 2020-09-14 17:13:35 +10:00
InfiniteTF
5d9cc09fca
Allow updating tag name capitalization (#781) 2020-09-02 10:30:37 +10:00
WithoutPants
1fd3fcc6a8
Show and allow creation of unknown performers/tags/studios/movies from scraper dialog (#741)
* Fix toast container z-index
* Make scrape operations network only
* Add CollapseButton component
2020-08-22 18:12:39 +10:00
WithoutPants
e16118f551
Clear image (#722)
* Allow clearing of tag images
* Allow clearing of studio images
* Allow clearing of performer images
* Allow clearing of movie images
* Add filtering for missing images
2020-08-12 09:19:27 +10:00
woodgen
4045ddf3e9
Implement scraping movies by URL (#709)
* api/urlbuilders/movie: Auto format.

* graphql+pkg+ui: Implement scraping movies by URL.

This patch implements the missing required boilerplate for scraping
movies by URL, using performers and scenes as a reference.

Although this patch contains a big chunck of ground work for enabling
scraping movies by fragment, the feature would require additional
changes to be completely implemented and was not tested.

* graphql+pkg+ui: Scrape movie studio.

Extends and corrects the movie model for the ability to store and
dereference studio IDs with received studio string from the scraper.
This was done with Scenes as a reference. For simplicity the duplication
of having `ScrapedMovieStudio` and `ScrapedSceneStudio` was kept, which
should probably be refactored to be the same type in the model in the
future.

* ui/movies: Add movie scrape dialog.

Adds possibility to update existing movie entries with the URL scraper.

For this the MovieScrapeDialog.tsx was implemented with Performers and
Scenes as a reference. In addition DurationUtils needs to be called one
time for converting seconds from the model to the string that is
displayed in the component. This seemed the least intrusive to me as it
kept a ScrapeResult<string> type compatible with ScrapedInputGroupRow.
2020-08-10 15:34:15 +10:00
WithoutPants
470a2b5833
Fix sprite vtt panic (#718) 2020-08-10 09:20:04 +10:00
WithoutPants
0ffefa6e16
Add plugin tasks (#651) 2020-08-08 12:05:35 +10:00
WithoutPants
5992ff8706
Add oshash support (#667) 2020-08-06 11:21:14 +10:00
bnkai
4373f9bf01
Add cdp support for xpath scrapers (#625)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2020-08-04 10:42:40 +10:00
WithoutPants
a2341f0819
Allow customisation of preview generation (#673)
* Add generate-specific options
* Include no-cache in preview response
2020-07-23 12:51:35 +10:00
WithoutPants
37be146a9d
Transcode stream refactor (#609)
* Remove forceMkv and forceHEVC
* Add HLS support and refactor
* Add new streaming endpoints
2020-07-23 11:56:08 +10:00
WithoutPants
2b9215702e
Refactor xpath scraper code. Add fixed and map (#616)
* Refactor xpath scraper code
* Make post-process a list
* Add map post-process action
* Add fixed xpath values
* Refactor scrapers into cache
* Refactor into mapped config
* Trim test html
2020-07-21 14:06:25 +10:00
WithoutPants
c104c6d075
Generate content for specific scenes (#672)
* Add UI dialog for scene(s)
* Move preview preset to config
2020-07-19 11:59:18 +10:00
WithoutPants
244ae54f3f
Add grid view, image to tag (#641)
* Add grid view for tags
* Add tag page
* Import/export tags
* Add tag name uniqueness checks
* Fix styling on missing marker previews
* Add trace loglevel
* Add SQL trace
* Add filter options for tags
* Add tag sort by options
* Add tag page keyboard shortcuts
2020-07-07 10:35:43 +10:00
WithoutPants
455e16ece9
Support deleting multiple scenes (#630)
* Improve layout and add buttons
* Move functionality into ListFilter
* Make modal style dark
* Convert scene options into edit scenes dialog
* Add delete scenes dialog
* Clear selected ids on delete
* Refetch after update/delete
* Use DeleteScenesDialog in Scene page
* Show scene check boxes in small screens
* Change default multi-set mode to set
2020-06-23 10:40:11 +10:00
WithoutPants
7a74658a73
Move image blobs into separate tables (#618)
* Scene cover fallback to database
* Fix panic if studio not found
* Fix movie studio not being imported/exported
2020-06-23 09:19:19 +10:00
WithoutPants
77a5b1d814
Add custom served folders (#620) 2020-06-21 22:25:13 +10:00
WithoutPants
d3ababf0a1
Gallery list improvement (#622)
* Add grid view to galleries
* Show scene in gallery card
* Add is missing scene gallery filter
* Don't store galleries with no images
2020-06-21 21:43:57 +10:00
WithoutPants
96e6e16507
Parent studios (#595)
* Refactor getMultiCriterionClause
Co-authored-by: Anon247 <61889302+Anon247@users.noreply.github.com>
2020-06-15 21:34:39 +10:00
WithoutPants
d8ce137086
Reload scrapers button (#592)
* Add reload scraper option to performer details
* Add scraper reload to scene edit page
* Show scene scraper menu when no queryable scrapers
* Add 0.3 changelog
2020-06-10 13:43:17 +10:00
InfiniteTF
4ec6d62e01
Selectable wall preview type (#510)
* Add optional image preview generation
* Add setting for video preview encoding preset
2020-05-27 09:33:49 +10:00
WithoutPants
46746e6848
Fix redirect loops in login, migrate and setup pages (#549)
* Fix redirect loop when setup and migrate required
* Fix redirect loop between setup and login
2020-05-18 08:55:01 +10:00
WithoutPants
7fd9428cbb
Fix stash directory with spaces (#541) 2020-05-15 09:12:17 +10:00
bnkai
bd45daacf3
Add a cache for gallery thumbnails (#496) 2020-05-11 17:20:08 +10:00
InfiniteTF
328db57d6c
Overhaul look and feel of folder select (#527) 2020-05-09 13:08:00 +10:00
InfiniteTF
2c85aeedf4
Set movies studioId on create mutation (#511) 2020-05-03 08:54:02 +10:00
WithoutPants
3d22d5a742
Refactor build (#493)
* Add lint/format checks to build
* Make travis get full repo to get tags
* Run packr2 once in cross-compile
* Fix quotes in package.json
* Fix linting issues
* Formatting
* Fix vet issue
* Fix go lint issues
* Show start of each platform compilation
* Add validate target
* Set gitattributes for go fmt and mod vendor
* Fix tag name
* Add fmt-ui target
2020-04-29 12:13:08 +10:00
bnkai
5e84c0922d
Add random male performer image (#491)
* Add random male performer image during performer creation if gender is male
2020-04-25 09:54:42 +10:00
WithoutPants
eee7adfb85
Add Studio to movie and fix movie schema (#458)
* Add movie migration
* Update server and UI code for type changes
* Add studio to movies
* Movie blobs to end
* Document movie duration
* Add filtering on movie studio
2020-04-22 11:22:14 +10:00
WithoutPants
359e80f364
Don't error in IsStreamable resolver (#482) 2020-04-20 12:42:56 +10:00
InfiniteTF
2a3c9742cc
Add slim endpoints for entities to speed up filters (#460)
* Move performers image column to end of table
* Remove redundant index
2020-04-19 12:03:51 +10:00
WithoutPants
aef31c8b50
Don't redirect login to migrate page (#453) 2020-04-10 08:41:09 +10:00
WithoutPants
91d842ed47
Delete marker preview on marker change or delete (#446) 2020-04-10 08:39:41 +10:00
bnkai
d5617307f1
Add detection of container/video_codec/audio_codec compatibility for live file streaming or transcoding (#384)
* add forceMKV, forceHEVC config options
* drop audio stream instead of trying to transcode for ffmpeg unsupported/unknown audio codecs
2020-04-10 08:38:34 +10:00
WithoutPants
15e7756d33
Replace basic auth with cookie authentication (#440)
* Add logout functionality and button
* Make session age configurable
2020-04-08 12:51:12 +10:00
bnkai
e58c311ddd
Add library size to main stats page (#427) 2020-04-03 13:44:17 +11:00
InfiniteTF
0f622c84f4
Add SVG studio image support, and studio image caching (#418)
* Support SVGs for studio images and add ETAGs
* Add SVG to studio image input
* Update content sniffing
2020-04-03 09:11:48 +11:00
InfiniteTF
aee9df966b
Cut over to v2.5 UI (#433)
* Cut over to v2.5 UI
* Use node 12 in travis
* Remove unnecessary `nvm use`
* Update docker file
2020-04-03 08:46:23 +11:00
hiddenpants255
494b794228
Add gender support for performer (#371)
Co-authored-by: HiddenPants255 <>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2020-04-01 09:36:38 +11:00
WithoutPants
d886012d74
Add modes for performer/tag for bulk scene editing (#412) 2020-03-23 08:16:11 +11:00
bnkai
acb7260824
Backup database if a migration is needed (#415)
* Confirm before migrating database

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2020-03-23 08:07:15 +11:00
WithoutPants
abf2b49803
Configurable scraper user agent string (#409)
* Add debug scrape option.

Co-authored-by: HiddenPants255 <>
2020-03-21 08:55:15 +11:00
WithoutPants
ff495361d9
Port Movies UI to v2.5 (#397)
* Ignore generated-graphql.tsx in 2.5
* Make movie name mandatory
* Port #395 fix to v2.5
* Differentiate front/back image browse buttons
* Move URL, Synopsis to separate rows
* Fix unknown query params crashing UI
2020-03-21 08:21:49 +11:00
WithoutPants
3de6955a9e
Generate cover image (#376)
* Make mutating metadata ops mutation
* Implement scene generate screenshot
* Remove fetch policy on metadata mutations
* Port UI changes to v2.5
* Set generated image in database
2020-03-12 08:34:04 +11:00
caustico
5fb8bbf768
Movies Section (#338)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2020-03-10 14:28:15 +11:00
InfiniteTF
b3fab3cfef
Make mobile menu behavior more consistent, and stats styles responsive (#391) 2020-03-08 12:55:42 +11:00
Infinite
6d71663f99 Fix whitespace 2020-03-01 21:04:37 +01:00
Infinite
195158db8b Fix performer scrape menu layout 2020-03-01 21:04:37 +01:00
Infinite
3a0420b79e Change i18n to just use single language setting 2020-03-01 21:04:37 +01:00
Infinite
0fdde7726b i18n 2020-03-01 21:04:37 +01:00
bnkai
6578cfb843
Fix version check for v0.1.0+ (#382)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2020-02-25 11:59:08 +11:00
WithoutPants
bf49a23df8
Fix panic when version check times out (#374) 2020-02-19 07:56:24 +11:00
twotobinary
776727140f
fix(middleware): set baseURL to external host if provided (#369) 2020-02-17 14:01:02 +11:00
bnkai
df890dca79
Fix database locked on image cover too big bug (#359) (#360) 2020-02-13 11:57:17 +11:00
WithoutPants
3c1eeb3d47
Prepare for 0.1.0 release (#345)
* Tag develop builds as latest. Version in makefile
* Rename latest to latest_develop
* Update GetLatestVersion
* Separate master and develop releases
* Add release date back into development version
* Remove unused code
* Two minute limit per file to upload to transfer.sh
2020-02-07 06:39:08 +11:00
WithoutPants
f87117b0d6
Add O-counter (#334)
* Add backend support for o-counter

* Add o-counter buttons everywhere

* Put o-counter button right-aligned on tabs

* Add o-counter filter
2020-02-02 19:17:28 -05:00
InfiniteTF
cd9c6e998e
Add cache headers to static files and etags to performer images (#337) 2020-01-31 17:20:14 -05:00
InfiniteTF
6a6e8d8875
Change thumbnail default size and resize algorithm (#336)
* Change thumbnail resize algorithm and add size parameter

* Height -> Width

* Change default size from 100px to 200px

* Height -> width
2020-01-31 17:19:15 -05:00
bnkai
87f0b667b5 Add check version functionality (#296)
* Add check version functionality
 * add backend support
 * add ui support
 * minor fixes
 * cosmetic fixes
 * workaround query refetch not working after network error
 * revert changes to Makefile after testing is complete
 * switch to Releases Github API endpoint, add latest Release URL to UI
 * latest version is only shown in UI when version is available and data is ready
 * resolve conflict , squash rebase
2020-01-07 17:21:23 -05:00
Stash Dev
d35f3a9b10 Tweaked launch console messages 2019-12-31 14:42:06 -08:00
Stash Dev
653406efd1 Added support for import / export of scene cover images 2019-12-31 14:38:49 -08:00
all-hail-canada
9766071815 Display both server address and listening address in log (#300)
* Show localhost in console output instead of 0.0.0.0

* Updated message to reflect both navigation and listening address

Co-authored-by: InfiniteTF <infinitekittens@protonmail.com>
2019-12-31 09:22:34 -08:00
FleetingOrchard
b31af52d41 Fix usage of Box.Bytes causing depreciation message (#295)
* Add release make target

* Use Box.Find now that Box.Bytes is depreciated

Pretty much directly mocked off of the post-depreciation implementation
of Box.Bytes in packr. In theory we should totally be checking the
returned error but I'm lazy.
2019-12-28 09:53:16 -08:00
WithoutPants
f52db4f58b Add stash scraper type (#269)
* Add stash scraper type

* Add graphql client to vendor

* Embed stash credentials in URL

* Fill URL from scraped scene

* Nil IDs returned from remote stash

* Nil check
2019-12-20 19:13:23 -05:00
WithoutPants
043745a84f Add cache breaker for screenshot using modtime (#271) 2019-12-17 12:28:44 -05:00
bnkai
0714cbfa34 Add exclude file from scan feature (#253)
* Added exclude file from scan feature

* Abort exclusion instead of panicking when pattern isn't valid

* Added UI configuration for exclude patterns

*   * cosmetic fixes
  * changed behavior of exclude function to continue and ignore invalide regex patterns
  * added some more tests (windows networks and continue after regex error)
2019-12-17 09:26:16 -05:00
WithoutPants
92837fe1f7 Add scene metadata scraping functionality (#236)
* Add scene scraping functionality

* Adapt to changed scraper config
2019-12-15 20:35:34 -05:00
WithoutPants
f8a760d729 Fix vtt for chapter display in scene players (#263) 2019-12-13 15:41:46 -05:00
WithoutPants
da3e91193c Allow uploading of custom scene covers (#262)
* Refactor common code

* Further refactoring

* Add UI support for changing scene cover image

* Add backend support for changing scene screenshot
2019-12-13 15:40:58 -05:00
WithoutPants
c05496a724 Make scene metadata from file metadata optional (#259) 2019-12-13 01:18:02 -05:00
WithoutPants
50784025f2 Change scraper config to yaml (#256) 2019-12-12 14:27:44 -05:00
WithoutPants
12c7faab4e Scene ui improvements (#232)
* Move duration and resolution to overlay

* Improve display of portrait videos

* Condense filter controls

* Add performer images to scene tags

* Add studio overlay to scene cards

* Fade out scene overlays on hover

* CSS grid tweaks

* Align overlay to bottom of video preview

* Fix opacity value

* Fix performer thumbnails

* Show studio overlay on mouseover

* Correct display colour for display mode buttons

* Add scene zoom slider

* Add show studio as text option

* Move select all/none to more button
2019-12-05 12:24:22 -05:00
WithoutPants
1704d3771f Add scene auto-tagging from filename (#204)
* Add auto tagging for performers, studios and tags

* Fix scene title logging

* Fix golang 1.11 compile error

* Improve regex pattern. Only log when added

* Remove paging from parse query

* Add integration test

* Fix prefix detection on paths
2019-12-01 11:18:44 -05:00
WithoutPants
8493c013e7 Loop and autostart flags. Save interface options (#230) 2019-11-28 20:41:17 -05:00
WithoutPants
17247060b6 Generic performer scrapers (#203)
* Generalise scraper API

* Add script performer scraper

* Fixes from testing

* Add context to scrapers and generalise

* Add scraping performer from URL

* Add error handling

* Move log to debug

* Add supported scrape types
2019-11-18 21:49:05 -05:00
WithoutPants
23657408de Refresh config when paths change (#217) 2019-11-17 16:42:24 -05:00
WithoutPants
5963844191 Add develop branch releases and display version tag (#216)
* Add releases for develop branch. Show version tag

* Pass version tag to cross-compile
2019-11-17 16:41:08 -05:00
WithoutPants
84bee2eb60 Performers, Tags and Studio from scene filename (#174)
* Make regex matching case-insensitive

* Port filename parser code to backend

* Add performers to scene filename parser UI

* Finish porting parser to backend

* Add performer, studio and tag parsing

* Hide fields not being parsed

* Don't query for empty performer/studio/tag

* Use exact matches

* Fix panic

* Fix arrays changed false positive. Fix layout
2019-11-07 07:49:08 -05:00
WithoutPants
c0911f1626 Stop tasks and show task progress (#181)
* Add job status to tasks page

* Add support for stopping task

* Show progress of some tasks
2019-11-06 23:35:04 -05:00
WithoutPants
d1ea2fffa5 Add configurable transcode sizes (#178) 2019-11-04 16:38:33 -05:00
WithoutPants
7cb9cd8a38 Scene filename to metadata parser (#164)
* Initial UI prototype

* Add backend support to update multiple scenes

* Fix title editing issues

* Add query regex support. UI improvements

* Rewrite parser. Add fields button and page size

* Add helper text for escaping {} characters

* Validate date

* Only set values if different from original

* Only update scenes that have something changed

* Add built in parser input recipes

* Make pattern matching case-insensistive
2019-10-30 09:37:21 -04:00