2019-03-26 15:35:06 +00:00
"""The query root for this schema"""
type Query {
2021-06-16 04:53:32 +00:00
# Filters
findSavedFilters ( mode : FilterMode ! ) : [ SavedFilter ! ] !
findDefaultFilter ( mode : FilterMode ! ) : SavedFilter
2019-03-26 15:35:06 +00:00
"""Find a scene by ID or Checksum"""
findScene ( id : ID , checksum : String ) : Scene
2020-08-06 01:21:14 +00:00
findSceneByHash ( input : SceneHashInput ! ) : Scene
2021-10-14 04:16:45 +00:00
2019-03-26 15:35:06 +00:00
"""A function which queries Scene objects"""
findScenes ( scene_filter : SceneFilterType , scene_ids : [ Int ! ] , filter : FindFilterType ) : FindScenesResultType !
2019-10-30 13:37:21 +00:00
findScenesByPathRegex ( filter : FindFilterType ) : FindScenesResultType !
2021-04-11 23:04:40 +00:00
""" Returns any groups of scenes that are perceptual duplicates within the queried distance """
findDuplicateScenes ( distance : Int ) : [ [ Scene ! ] ! ] !
2020-07-23 01:56:08 +00:00
"""Return valid stream paths"""
sceneStreams ( id : ID ) : [ SceneStreamEndpoint ! ] !
2019-11-07 12:49:08 +00:00
parseSceneFilenames ( filter : FindFilterType , config : SceneParserInput ! ) : SceneParserResultType !
2019-03-26 15:35:06 +00:00
"""A function which queries SceneMarker objects"""
findSceneMarkers ( scene_marker_filter : SceneMarkerFilterType filter : FindFilterType ) : FindSceneMarkersResultType !
2020-10-12 23:12:46 +00:00
findImage ( id : ID , checksum : String ) : Image
2021-10-14 04:16:45 +00:00
2020-10-12 23:12:46 +00:00
"""A function which queries Scene objects"""
findImages ( image_filter : ImageFilterType , image_ids : [ Int ! ] , filter : FindFilterType ) : FindImagesResultType !
2019-03-26 15:35:06 +00:00
"""Find a performer by ID"""
findPerformer ( id : ID ! ) : Performer
"""A function which queries Performer objects"""
findPerformers ( performer_filter : PerformerFilterType , filter : FindFilterType ) : FindPerformersResultType !
"""Find a studio by ID"""
findStudio ( id : ID ! ) : Studio
"""A function which queries Studio objects"""
2020-06-15 11:34:39 +00:00
findStudios ( studio_filter : StudioFilterType , filter : FindFilterType ) : FindStudiosResultType !
2019-03-26 15:35:06 +00:00
2020-03-10 03:28:15 +00:00
"""Find a movie by ID"""
findMovie ( id : ID ! ) : Movie
"""A function which queries Movie objects"""
2020-04-22 01:22:14 +00:00
findMovies ( movie_filter : MovieFilterType , filter : FindFilterType ) : FindMoviesResultType !
2020-03-10 03:28:15 +00:00
2019-03-26 15:35:06 +00:00
findGallery ( id : ID ! ) : Gallery
2020-06-21 11:43:57 +00:00
findGalleries ( gallery_filter : GalleryFilterType , filter : FindFilterType ) : FindGalleriesResultType !
2019-03-26 15:35:06 +00:00
findTag ( id : ID ! ) : Tag
2020-07-07 00:35:43 +00:00
findTags ( tag_filter : TagFilterType , filter : FindFilterType ) : FindTagsResultType !
2019-03-26 15:35:06 +00:00
"""Retrieve random scene markers for the wall"""
markerWall ( q : String ) : [ SceneMarker ! ] !
"""Retrieve random scenes for the wall"""
sceneWall ( q : String ) : [ Scene ! ] !
"""Get marker strings"""
markerStrings ( q : String , sort : String ) : [ MarkerStringsResultType ] !
"""Get stats"""
stats : StatsResultType !
"""Organize scene markers by tag for a given scene ID"""
sceneMarkerTags ( scene_id : ID ! ) : [ SceneMarkerTag ! ] !
2019-10-24 23:07:07 +00:00
logs : [ LogEntry ! ] !
2019-03-26 15:35:06 +00:00
# Scrapers
2019-11-19 02:49:05 +00:00
"""List available scrapers"""
2019-12-12 19:27:44 +00:00
listPerformerScrapers : [ Scraper ! ] !
2019-12-16 01:35:34 +00:00
listSceneScrapers : [ Scraper ! ] !
2020-10-20 22:24:32 +00:00
listGalleryScrapers : [ Scraper ! ] !
2020-08-10 05:34:15 +00:00
listMovieScrapers : [ Scraper ! ] !
2020-06-10 03:43:17 +00:00
2021-09-07 01:54:22 +00:00
"""Scrape for a single scene"""
scrapeSingleScene ( source : ScraperSourceInput ! , input : ScrapeSingleSceneInput ! ) : [ ScrapedScene ! ] !
"""Scrape for multiple scenes"""
scrapeMultiScenes ( source : ScraperSourceInput ! , input : ScrapeMultiScenesInput ! ) : [ [ ScrapedScene ! ] ! ] !
"""Scrape for a single performer"""
scrapeSinglePerformer ( source : ScraperSourceInput ! , input : ScrapeSinglePerformerInput ! ) : [ ScrapedPerformer ! ] !
"""Scrape for multiple performers"""
scrapeMultiPerformers ( source : ScraperSourceInput ! , input : ScrapeMultiPerformersInput ! ) : [ [ ScrapedPerformer ! ] ! ] !
"""Scrape for a single gallery"""
scrapeSingleGallery ( source : ScraperSourceInput ! , input : ScrapeSingleGalleryInput ! ) : [ ScrapedGallery ! ] !
"""Scrape for a single movie"""
scrapeSingleMovie ( source : ScraperSourceInput ! , input : ScrapeSingleMovieInput ! ) : [ ScrapedMovie ! ] !
2019-11-19 02:49:05 +00:00
"""Scrapes a complete performer record based on a URL"""
scrapePerformerURL ( url : String ! ) : ScrapedPerformer
2019-12-16 01:35:34 +00:00
"""Scrapes a complete performer record based on a URL"""
scrapeSceneURL ( url : String ! ) : ScrapedScene
2020-10-20 22:24:32 +00:00
"""Scrapes a complete gallery record based on a URL"""
scrapeGalleryURL ( url : String ! ) : ScrapedGallery
2020-08-10 05:34:15 +00:00
"""Scrapes a complete movie record based on a URL"""
scrapeMovieURL ( url : String ! ) : ScrapedMovie
2019-11-19 02:49:05 +00:00
2021-09-07 01:54:22 +00:00
"""Scrape a list of performers based on name"""
scrapePerformerList ( scraper_id : ID ! , query : String ! ) : [ ScrapedPerformer ! ] ! @deprecated ( reason : "use scrapeSinglePerformer" )
"""Scrapes a complete performer record based on a scrapePerformerList result"""
scrapePerformer ( scraper_id : ID ! , scraped_performer : ScrapedPerformerInput ! ) : ScrapedPerformer @deprecated ( reason : "use scrapeSinglePerformer" )
"""Scrapes a complete scene record based on an existing scene"""
scrapeScene ( scraper_id : ID ! , scene : SceneUpdateInput ! ) : ScrapedScene @deprecated ( reason : "use scrapeSingleScene" )
"""Scrapes a complete gallery record based on an existing gallery"""
scrapeGallery ( scraper_id : ID ! , gallery : GalleryUpdateInput ! ) : ScrapedGallery @deprecated ( reason : "use scrapeSingleGallery" )
2019-03-26 15:35:06 +00:00
"""Scrape a performer using Freeones"""
2021-09-07 01:54:22 +00:00
scrapeFreeones ( performer_name : String ! ) : ScrapedPerformer @deprecated ( reason : "use scrapeSinglePerformer with scraper_id = builtin_freeones" )
2019-03-26 15:35:06 +00:00
"""Scrape a list of performers from a query"""
2021-09-07 01:54:22 +00:00
scrapeFreeonesPerformerList ( query : String ! ) : [ String ! ] ! @deprecated ( reason : "use scrapeSinglePerformer with scraper_id = builtin_freeones" )
2019-03-26 15:35:06 +00:00
2020-09-17 09:57:18 +00:00
"""Query StashBox for scenes"""
2021-09-07 01:54:22 +00:00
query StashBoxScene ( input : StashBoxSceneQueryInput ! ) : [ ScrapedScene ! ] ! @deprecated ( reason : "use scrapeSingleScene or scrapeMultiScenes" )
"""Query StashBox for performers"""
query StashBoxPerformer ( input : StashBoxPerformerQueryInput ! ) : [ StashBoxPerformerQueryResult ! ] ! @deprecated ( reason : "use scrapeSinglePerformer or scrapeMultiPerformers" )
# === end deprecated methods ===
2020-09-17 09:57:18 +00:00
2020-08-08 02:05:35 +00:00
# Plugins
"""List loaded plugins"""
plugins : [ Plugin ! ]
"""List available plugin operations"""
pluginTasks : [ PluginTask ! ]
2019-03-26 15:35:06 +00:00
# Config
"""Returns the current, complete configuration"""
configuration : ConfigResult !
"""Returns an array of paths for the given path"""
2021-10-14 04:16:45 +00:00
directory (
"The directory path to list"
path : String ,
"Desired collation locale. Determines the order of the directory result. eg. 'en-US', 'pt-BR', ..."
locale : String = "en"
) : Directory !
2019-03-26 15:35:06 +00:00
2021-05-24 04:24:18 +00:00
# System status
2021-04-11 23:31:33 +00:00
systemStatus : SystemStatus !
2021-05-24 04:24:18 +00:00
# Job status
jobQueue : [ Job ! ]
findJob ( input : FindJobInput ! ) : Job
2019-11-07 04:35:04 +00:00
2021-05-20 06:58:43 +00:00
dlnaStatus : DLNAStatus !
2019-03-26 15:35:06 +00:00
# Get everything
allPerformers : [ Performer ! ] !
allStudios : [ Studio ! ] !
2020-03-10 03:28:15 +00:00
allMovies : [ Movie ! ] !
2019-03-26 15:35:06 +00:00
allTags : [ Tag ! ] !
2019-08-21 04:47:48 +00:00
2020-04-19 02:03:51 +00:00
# Get everything with minimal metadata
2019-08-21 04:47:48 +00:00
# Version
version : Version !
2021-10-14 04:16:45 +00:00
2020-01-07 22:21:23 +00:00
# LatestVersion
latestversion : ShortVersion !
2019-03-26 15:35:06 +00:00
}
type Mutation {
2021-04-11 23:31:33 +00:00
setup ( input : SetupInput ! ) : Boolean !
migrate ( input : MigrateInput ! ) : Boolean !
2019-03-26 15:35:06 +00:00
sceneUpdate ( input : SceneUpdateInput ! ) : Scene
2019-10-27 13:05:31 +00:00
bulkSceneUpdate ( input : BulkSceneUpdateInput ! ) : [ Scene ! ]
2019-08-15 07:32:57 +00:00
sceneDestroy ( input : SceneDestroyInput ! ) : Boolean !
2020-06-23 00:40:11 +00:00
scenesDestroy ( input : ScenesDestroyInput ! ) : Boolean !
2019-10-30 13:37:21 +00:00
scenesUpdate ( input : [ SceneUpdateInput ! ] ! ) : [ Scene ]
2019-03-26 15:35:06 +00:00
2020-02-03 00:17:28 +00:00
"""Increments the o-counter for a scene. Returns the new value"""
sceneIncrementO ( id : ID ! ) : Int !
"""Decrements the o-counter for a scene. Returns the new value"""
sceneDecrementO ( id : ID ! ) : Int !
"""Resets the o-counter for a scene to 0. Returns the new value"""
sceneResetO ( id : ID ! ) : Int !
2020-03-11 21:34:04 +00:00
"""Generates screenshot at specified time in seconds. Leave empty to generate default screenshot"""
sceneGenerateScreenshot ( id : ID ! , at : Float ) : String !
2019-03-26 15:35:06 +00:00
sceneMarkerCreate ( input : SceneMarkerCreateInput ! ) : SceneMarker
sceneMarkerUpdate ( input : SceneMarkerUpdateInput ! ) : SceneMarker
sceneMarkerDestroy ( id : ID ! ) : Boolean !
2020-10-12 23:12:46 +00:00
imageUpdate ( input : ImageUpdateInput ! ) : Image
bulkImageUpdate ( input : BulkImageUpdateInput ! ) : [ Image ! ]
imageDestroy ( input : ImageDestroyInput ! ) : Boolean !
imagesDestroy ( input : ImagesDestroyInput ! ) : Boolean !
imagesUpdate ( input : [ ImageUpdateInput ! ] ! ) : [ Image ]
"""Increments the o-counter for an image. Returns the new value"""
imageIncrementO ( id : ID ! ) : Int !
"""Decrements the o-counter for an image. Returns the new value"""
imageDecrementO ( id : ID ! ) : Int !
"""Resets the o-counter for a image to 0. Returns the new value"""
imageResetO ( id : ID ! ) : Int !
galleryCreate ( input : GalleryCreateInput ! ) : Gallery
galleryUpdate ( input : GalleryUpdateInput ! ) : Gallery
bulkGalleryUpdate ( input : BulkGalleryUpdateInput ! ) : [ Gallery ! ]
galleryDestroy ( input : GalleryDestroyInput ! ) : Boolean !
galleriesUpdate ( input : [ GalleryUpdateInput ! ] ! ) : [ Gallery ]
addGalleryImages ( input : GalleryAddInput ! ) : Boolean !
removeGalleryImages ( input : GalleryRemoveInput ! ) : Boolean !
2019-03-26 15:35:06 +00:00
performerCreate ( input : PerformerCreateInput ! ) : Performer
performerUpdate ( input : PerformerUpdateInput ! ) : Performer
2019-08-14 21:40:51 +00:00
performerDestroy ( input : PerformerDestroyInput ! ) : Boolean !
2021-01-13 00:57:53 +00:00
performersDestroy ( ids : [ ID ! ] ! ) : Boolean !
2021-03-10 01:25:51 +00:00
bulkPerformerUpdate ( input : BulkPerformerUpdateInput ! ) : [ Performer ! ]
2019-03-26 15:35:06 +00:00
studioCreate ( input : StudioCreateInput ! ) : Studio
studioUpdate ( input : StudioUpdateInput ! ) : Studio
2019-08-14 21:40:51 +00:00
studioDestroy ( input : StudioDestroyInput ! ) : Boolean !
2021-01-13 00:57:53 +00:00
studiosDestroy ( ids : [ ID ! ] ! ) : Boolean !
2019-03-26 15:35:06 +00:00
2020-03-10 03:28:15 +00:00
movieCreate ( input : MovieCreateInput ! ) : Movie
movieUpdate ( input : MovieUpdateInput ! ) : Movie
movieDestroy ( input : MovieDestroyInput ! ) : Boolean !
2021-01-13 00:57:53 +00:00
moviesDestroy ( ids : [ ID ! ] ! ) : Boolean !
2020-03-10 03:28:15 +00:00
2019-03-26 15:35:06 +00:00
tagCreate ( input : TagCreateInput ! ) : Tag
tagUpdate ( input : TagUpdateInput ! ) : Tag
tagDestroy ( input : TagDestroyInput ! ) : Boolean !
2021-01-13 00:57:53 +00:00
tagsDestroy ( ids : [ ID ! ] ! ) : Boolean !
2021-06-16 04:33:54 +00:00
tagsMerge ( input : TagsMergeInput ! ) : Tag
2019-03-26 15:35:06 +00:00
2021-06-16 04:53:32 +00:00
# Saved filters
saveFilter ( input : SaveFilterInput ! ) : SavedFilter !
destroySavedFilter ( input : DestroyFilterInput ! ) : Boolean !
setDefaultFilter ( input : SetDefaultFilterInput ! ) : Boolean !
2019-03-26 15:35:06 +00:00
"""Change general configuration options"""
configureGeneral ( input : ConfigGeneralInput ! ) : ConfigGeneralResult !
2019-08-22 22:24:14 +00:00
configureInterface ( input : ConfigInterfaceInput ! ) : ConfigInterfaceResult !
2021-05-20 06:58:43 +00:00
configureDLNA ( input : ConfigDLNAInput ! ) : ConfigDLNAResult !
2021-08-04 02:32:58 +00:00
configureScraping ( input : ConfigScrapingInput ! ) : ConfigScrapingResult !
2021-10-28 03:25:17 +00:00
configureDefaults ( input : ConfigDefaultSettingsInput ! ) : ConfigDefaultSettingsResult !
2020-03-11 21:34:04 +00:00
2021-03-31 05:08:52 +00:00
"""Generate and set (or clear) API key"""
generateAPIKey ( input : GenerateAPIKeyInput ! ) : String !
2020-09-15 07:28:53 +00:00
"""Returns a link to download the result"""
exportObjects ( input : ExportObjectsInput ! ) : String
2020-09-20 08:36:02 +00:00
"""Performs an incremental import. Returns the job ID"""
2021-05-24 04:24:18 +00:00
importObjects ( input : ImportObjectsInput ! ) : ID !
2020-09-20 08:36:02 +00:00
"""Start an full import. Completely wipes the database and imports from the metadata directory. Returns the job ID"""
2021-05-24 04:24:18 +00:00
metadataImport : ID !
2020-09-20 08:36:02 +00:00
"""Start a full export. Outputs to the metadata directory. Returns the job ID"""
2021-05-24 04:24:18 +00:00
metadataExport : ID !
2020-03-11 21:34:04 +00:00
"""Start a scan. Returns the job ID"""
2021-05-24 04:24:18 +00:00
metadataScan ( input : ScanMetadataInput ! ) : ID !
2020-03-11 21:34:04 +00:00
"""Start generating content. Returns the job ID"""
2021-05-24 04:24:18 +00:00
metadataGenerate ( input : GenerateMetadataInput ! ) : ID !
2020-03-11 21:34:04 +00:00
"""Start auto-tagging. Returns the job ID"""
2021-05-24 04:24:18 +00:00
metadataAutoTag ( input : AutoTagMetadataInput ! ) : ID !
2020-03-11 21:34:04 +00:00
"""Clean metadata. Returns the job ID"""
2021-05-24 04:24:18 +00:00
metadataClean ( input : CleanMetadataInput ! ) : ID !
2021-10-28 03:25:17 +00:00
"""Identifies scenes using scrapers. Returns the job ID"""
metadataIdentify ( input : IdentifyMetadataInput ! ) : ID !
2020-08-06 01:21:14 +00:00
"""Migrate generated files for the current hash naming"""
2021-05-24 04:24:18 +00:00
migrateHashNaming : ID !
2020-03-11 21:34:04 +00:00
2020-06-10 03:43:17 +00:00
"""Reload scrapers"""
reloadScrapers : Boolean !
2020-08-08 02:05:35 +00:00
"""Run plugin task. Returns the job ID"""
2021-05-24 04:24:18 +00:00
runPluginTask ( plugin_id : ID ! , task_name : String ! , args : [ PluginArgInput ! ] ) : ID !
2020-08-08 02:05:35 +00:00
reloadPlugins : Boolean !
2021-05-24 04:24:18 +00:00
stopJob ( job_id : ID ! ) : Boolean !
stopAllJobs : Boolean !
2020-10-24 03:31:39 +00:00
2021-01-21 11:02:09 +00:00
"""Submit fingerprints to stash-box instance"""
2020-10-24 03:31:39 +00:00
submitStashBoxFingerprints ( input : StashBoxFingerprintSubmissionInput ! ) : Boolean !
2021-01-21 11:02:09 +00:00
"""Backup the database. Optionally returns a link to download the database file"""
backupDatabase ( input : BackupDatabaseInput ! ) : String
2021-05-03 04:21:20 +00:00
"""Run batch performer tag task. Returns the job ID."""
stashBoxBatchPerformerTag ( input : StashBoxBatchPerformerTagInput ! ) : String !
2021-10-14 04:16:45 +00:00
2021-05-20 06:58:43 +00:00
"""Enables DLNA for an optional duration. Has no effect if DLNA is enabled by default"""
enableDLNA ( input : EnableDLNAInput ! ) : Boolean !
"""Disables DLNA for an optional duration. Has no effect if DLNA is disabled by default"""
disableDLNA ( input : DisableDLNAInput ! ) : Boolean !
"""Enables an IP address for DLNA for an optional duration"""
addTempDLNAIP ( input : AddTempDLNAIPInput ! ) : Boolean !
"""Removes an IP address from the temporary DLNA whitelist"""
removeTempDLNAIP ( input : RemoveTempDLNAIPInput ! ) : Boolean !
2019-03-26 15:35:06 +00:00
}
type Subscription {
"""Update from the metadata manager"""
2021-05-24 04:24:18 +00:00
jobsSubscribe : JobStatusUpdate !
2019-10-24 23:07:07 +00:00
loggingSubscribe : [ LogEntry ! ] !
2021-05-24 04:24:18 +00:00
scanCompleteSubscribe : Boolean !
2019-03-26 15:35:06 +00:00
}
schema {
query : Query
mutation : Mutation
subscription : Subscription
2020-01-07 22:21:23 +00:00
}