stash-graphql-client 0.0.0-stage → 0.31.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +247 -2
- package/dist/client.d.ts +15 -0
- package/dist/client.js +29 -0
- package/dist/generated/roots.d.ts +6 -0
- package/dist/generated/roots.js +281 -0
- package/dist/generated/schema.d.ts +4491 -0
- package/dist/generated/schema.js +0 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +3 -0
- package/dist/request.d.ts +23 -0
- package/dist/request.js +131 -0
- package/dist/transport.d.ts +40 -0
- package/dist/transport.js +140 -0
- package/dist/types.d.ts +120 -0
- package/dist/types.js +0 -0
- package/package.json +54 -4
|
@@ -0,0 +1,4491 @@
|
|
|
1
|
+
import type { F, L, N, R } from "../types.ts";
|
|
2
|
+
/** The Stash release this client was generated from. */
|
|
3
|
+
export type StashVersion = "v0.31.1";
|
|
4
|
+
export interface SetupInput {
|
|
5
|
+
/** Empty to indicate $HOME/.stash/config.yml default */
|
|
6
|
+
configLocation: string;
|
|
7
|
+
stashes: Array<StashConfigInput>;
|
|
8
|
+
/** True if SFW content mode is enabled */
|
|
9
|
+
sfwContentMode?: boolean | null | undefined;
|
|
10
|
+
/** Empty to indicate default */
|
|
11
|
+
databaseFile: string;
|
|
12
|
+
/** Empty to indicate default */
|
|
13
|
+
generatedLocation: string;
|
|
14
|
+
/** Empty to indicate default */
|
|
15
|
+
cacheLocation: string;
|
|
16
|
+
storeBlobsInDatabase: boolean;
|
|
17
|
+
/** Empty to indicate default - only applicable if storeBlobsInDatabase is false */
|
|
18
|
+
blobsLocation: string;
|
|
19
|
+
}
|
|
20
|
+
export type StreamingResolutionEnum = "LOW" | "STANDARD" | "STANDARD_HD" | "FULL_HD" | "FOUR_K" | "ORIGINAL";
|
|
21
|
+
export type PreviewPreset = "ultrafast" | "veryfast" | "fast" | "medium" | "slow" | "slower" | "veryslow";
|
|
22
|
+
export type HashAlgorithm = "MD5" | "OSHASH";
|
|
23
|
+
export type BlobsStorageType = "DATABASE" | "FILESYSTEM";
|
|
24
|
+
export interface ConfigGeneralInput {
|
|
25
|
+
/** Array of file paths to content */
|
|
26
|
+
stashes?: Array<StashConfigInput> | null | undefined;
|
|
27
|
+
/** Path to the SQLite database */
|
|
28
|
+
databasePath?: string | null | undefined;
|
|
29
|
+
/** Path to backup directory */
|
|
30
|
+
backupDirectoryPath?: string | null | undefined;
|
|
31
|
+
/** Path to trash directory - if set, deleted files will be moved here instead of being permanently deleted */
|
|
32
|
+
deleteTrashPath?: string | null | undefined;
|
|
33
|
+
/** Path to generated files */
|
|
34
|
+
generatedPath?: string | null | undefined;
|
|
35
|
+
/** Path to import/export files */
|
|
36
|
+
metadataPath?: string | null | undefined;
|
|
37
|
+
/** Path to scrapers */
|
|
38
|
+
scrapersPath?: string | null | undefined;
|
|
39
|
+
/** Path to plugins */
|
|
40
|
+
pluginsPath?: string | null | undefined;
|
|
41
|
+
/** Path to cache */
|
|
42
|
+
cachePath?: string | null | undefined;
|
|
43
|
+
/** Path to blobs - required for filesystem blob storage */
|
|
44
|
+
blobsPath?: string | null | undefined;
|
|
45
|
+
/** Where to store blobs */
|
|
46
|
+
blobsStorage?: BlobsStorageType | null | undefined;
|
|
47
|
+
/** Path to the ffmpeg binary. If empty, stash will attempt to find it in the path or config directory */
|
|
48
|
+
ffmpegPath?: string | null | undefined;
|
|
49
|
+
/** Path to the ffprobe binary. If empty, stash will attempt to find it in the path or config directory */
|
|
50
|
+
ffprobePath?: string | null | undefined;
|
|
51
|
+
/** Whether to calculate MD5 checksums for scene video files */
|
|
52
|
+
calculateMD5?: boolean | null | undefined;
|
|
53
|
+
/** Hash algorithm to use for generated file naming */
|
|
54
|
+
videoFileNamingAlgorithm?: HashAlgorithm | null | undefined;
|
|
55
|
+
/** Number of parallel tasks to start during scan/generate */
|
|
56
|
+
parallelTasks?: number | null | undefined;
|
|
57
|
+
/** Include audio stream in previews */
|
|
58
|
+
previewAudio?: boolean | null | undefined;
|
|
59
|
+
/** Number of segments in a preview file */
|
|
60
|
+
previewSegments?: number | null | undefined;
|
|
61
|
+
/** Preview segment duration, in seconds */
|
|
62
|
+
previewSegmentDuration?: number | null | undefined;
|
|
63
|
+
/** Duration of start of video to exclude when generating previews */
|
|
64
|
+
previewExcludeStart?: string | null | undefined;
|
|
65
|
+
/** Duration of end of video to exclude when generating previews */
|
|
66
|
+
previewExcludeEnd?: string | null | undefined;
|
|
67
|
+
/** Preset when generating preview */
|
|
68
|
+
previewPreset?: PreviewPreset | null | undefined;
|
|
69
|
+
/** Transcode Hardware Acceleration */
|
|
70
|
+
transcodeHardwareAcceleration?: boolean | null | undefined;
|
|
71
|
+
/** Max generated transcode size */
|
|
72
|
+
maxTranscodeSize?: StreamingResolutionEnum | null | undefined;
|
|
73
|
+
/** Max streaming transcode size */
|
|
74
|
+
maxStreamingTranscodeSize?: StreamingResolutionEnum | null | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* ffmpeg transcode input args - injected before input file
|
|
77
|
+
* These are applied to generated transcodes (previews and transcodes)
|
|
78
|
+
*/
|
|
79
|
+
transcodeInputArgs?: Array<string> | null | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* ffmpeg transcode output args - injected before output file
|
|
82
|
+
* These are applied to generated transcodes (previews and transcodes)
|
|
83
|
+
*/
|
|
84
|
+
transcodeOutputArgs?: Array<string> | null | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* ffmpeg stream input args - injected before input file
|
|
87
|
+
* These are applied when live transcoding
|
|
88
|
+
*/
|
|
89
|
+
liveTranscodeInputArgs?: Array<string> | null | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* ffmpeg stream output args - injected before output file
|
|
92
|
+
* These are applied when live transcoding
|
|
93
|
+
*/
|
|
94
|
+
liveTranscodeOutputArgs?: Array<string> | null | undefined;
|
|
95
|
+
/** whether to include range in generated funscript heatmaps */
|
|
96
|
+
drawFunscriptHeatmapRange?: boolean | null | undefined;
|
|
97
|
+
/** Write image thumbnails to disk when generating on the fly */
|
|
98
|
+
writeImageThumbnails?: boolean | null | undefined;
|
|
99
|
+
/** Create Image Clips from Video extensions when Videos are disabled in Library */
|
|
100
|
+
createImageClipsFromVideos?: boolean | null | undefined;
|
|
101
|
+
/** Username */
|
|
102
|
+
username?: string | null | undefined;
|
|
103
|
+
/** Password */
|
|
104
|
+
password?: string | null | undefined;
|
|
105
|
+
/** Maximum session cookie age */
|
|
106
|
+
maxSessionAge?: number | null | undefined;
|
|
107
|
+
/** Name of the log file */
|
|
108
|
+
logFile?: string | null | undefined;
|
|
109
|
+
/** Whether to also output to stderr */
|
|
110
|
+
logOut?: boolean | null | undefined;
|
|
111
|
+
/** Minimum log level */
|
|
112
|
+
logLevel?: string | null | undefined;
|
|
113
|
+
/** Whether to log http access */
|
|
114
|
+
logAccess?: boolean | null | undefined;
|
|
115
|
+
/** Maximum log size */
|
|
116
|
+
logFileMaxSize?: number | null | undefined;
|
|
117
|
+
/** True if galleries should be created from folders with images */
|
|
118
|
+
createGalleriesFromFolders?: boolean | null | undefined;
|
|
119
|
+
/** Regex used to identify images as gallery covers */
|
|
120
|
+
galleryCoverRegex?: string | null | undefined;
|
|
121
|
+
/** Array of video file extensions */
|
|
122
|
+
videoExtensions?: Array<string> | null | undefined;
|
|
123
|
+
/** Array of image file extensions */
|
|
124
|
+
imageExtensions?: Array<string> | null | undefined;
|
|
125
|
+
/** Array of gallery zip file extensions */
|
|
126
|
+
galleryExtensions?: Array<string> | null | undefined;
|
|
127
|
+
/** Array of file regexp to exclude from Video Scans */
|
|
128
|
+
excludes?: Array<string> | null | undefined;
|
|
129
|
+
/** Array of file regexp to exclude from Image Scans */
|
|
130
|
+
imageExcludes?: Array<string> | null | undefined;
|
|
131
|
+
/** Custom Performer Image Location */
|
|
132
|
+
customPerformerImageLocation?: string | null | undefined;
|
|
133
|
+
/** Stash-box instances used for tagging */
|
|
134
|
+
stashBoxes?: Array<StashBoxInput> | null | undefined;
|
|
135
|
+
/** Python path - resolved using path if unset */
|
|
136
|
+
pythonPath?: string | null | undefined;
|
|
137
|
+
/** Source of scraper packages */
|
|
138
|
+
scraperPackageSources?: Array<PackageSourceInput> | null | undefined;
|
|
139
|
+
/** Source of plugin packages */
|
|
140
|
+
pluginPackageSources?: Array<PackageSourceInput> | null | undefined;
|
|
141
|
+
/** Size of the longest dimension for each sprite in pixels */
|
|
142
|
+
spriteScreenshotSize?: number | null | undefined;
|
|
143
|
+
/** True if sprite generation should use the sprite interval and min/max sprites settings instead of the default */
|
|
144
|
+
useCustomSpriteInterval?: boolean | null | undefined;
|
|
145
|
+
/** Time between two different scrubber sprites in seconds - only used if useCustomSpriteInterval is true */
|
|
146
|
+
spriteInterval?: number | null | undefined;
|
|
147
|
+
/** Minimum number of sprites to be generated - only used if useCustomSpriteInterval is true */
|
|
148
|
+
minimumSprites?: number | null | undefined;
|
|
149
|
+
/** Minimum number of sprites to be generated - only used if useCustomSpriteInterval is true */
|
|
150
|
+
maximumSprites?: number | null | undefined;
|
|
151
|
+
}
|
|
152
|
+
export interface ConfigDisableDropdownCreateInput {
|
|
153
|
+
performer?: boolean | null | undefined;
|
|
154
|
+
tag?: boolean | null | undefined;
|
|
155
|
+
studio?: boolean | null | undefined;
|
|
156
|
+
movie?: boolean | null | undefined;
|
|
157
|
+
gallery?: boolean | null | undefined;
|
|
158
|
+
}
|
|
159
|
+
export type ImageLightboxDisplayMode = "ORIGINAL" | "FIT_XY" | "FIT_X";
|
|
160
|
+
export type ImageLightboxScrollMode = "ZOOM" | "PAN_Y";
|
|
161
|
+
export interface ConfigImageLightboxInput {
|
|
162
|
+
slideshowDelay?: number | null | undefined;
|
|
163
|
+
displayMode?: ImageLightboxDisplayMode | null | undefined;
|
|
164
|
+
scaleUp?: boolean | null | undefined;
|
|
165
|
+
resetZoomOnNav?: boolean | null | undefined;
|
|
166
|
+
scrollMode?: ImageLightboxScrollMode | null | undefined;
|
|
167
|
+
scrollAttemptsBeforeChange?: number | null | undefined;
|
|
168
|
+
disableAnimation?: boolean | null | undefined;
|
|
169
|
+
}
|
|
170
|
+
export interface ConfigInterfaceInput {
|
|
171
|
+
/** True if SFW content mode is enabled */
|
|
172
|
+
sfwContentMode?: boolean | null | undefined;
|
|
173
|
+
/** Ordered list of items that should be shown in the menu */
|
|
174
|
+
menuItems?: Array<string> | null | undefined;
|
|
175
|
+
/** Enable sound on mouseover previews */
|
|
176
|
+
soundOnPreview?: boolean | null | undefined;
|
|
177
|
+
/** Show title and tags in wall view */
|
|
178
|
+
wallShowTitle?: boolean | null | undefined;
|
|
179
|
+
/** Wall playback type */
|
|
180
|
+
wallPlayback?: string | null | undefined;
|
|
181
|
+
/** Show scene scrubber by default */
|
|
182
|
+
showScrubber?: boolean | null | undefined;
|
|
183
|
+
/** Maximum duration (in seconds) in which a scene video will loop in the scene player */
|
|
184
|
+
maximumLoopDuration?: number | null | undefined;
|
|
185
|
+
/** If true, video will autostart on load in the scene player */
|
|
186
|
+
autostartVideo?: boolean | null | undefined;
|
|
187
|
+
/** If true, video will autostart when loading from play random or play selected */
|
|
188
|
+
autostartVideoOnPlaySelected?: boolean | null | undefined;
|
|
189
|
+
/** If true, next scene in playlist will be played at video end by default */
|
|
190
|
+
continuePlaylistDefault?: boolean | null | undefined;
|
|
191
|
+
/** If true, studio overlays will be shown as text instead of logo images */
|
|
192
|
+
showStudioAsText?: boolean | null | undefined;
|
|
193
|
+
/** Custom CSS */
|
|
194
|
+
css?: string | null | undefined;
|
|
195
|
+
cssEnabled?: boolean | null | undefined;
|
|
196
|
+
/** Custom Javascript */
|
|
197
|
+
javascript?: string | null | undefined;
|
|
198
|
+
javascriptEnabled?: boolean | null | undefined;
|
|
199
|
+
/** Custom Locales */
|
|
200
|
+
customLocales?: string | null | undefined;
|
|
201
|
+
customLocalesEnabled?: boolean | null | undefined;
|
|
202
|
+
/** When true, disables all customizations (plugins, CSS, JavaScript, locales) for troubleshooting */
|
|
203
|
+
disableCustomizations?: boolean | null | undefined;
|
|
204
|
+
/** Interface language */
|
|
205
|
+
language?: string | null | undefined;
|
|
206
|
+
imageLightbox?: ConfigImageLightboxInput | null | undefined;
|
|
207
|
+
/** Set to true to disable creating new objects via the dropdown menus */
|
|
208
|
+
disableDropdownCreate?: ConfigDisableDropdownCreateInput | null | undefined;
|
|
209
|
+
/** Handy Connection Key */
|
|
210
|
+
handyKey?: string | null | undefined;
|
|
211
|
+
/** Funscript Time Offset */
|
|
212
|
+
funscriptOffset?: number | null | undefined;
|
|
213
|
+
/** Whether to use Stash Hosted Funscript */
|
|
214
|
+
useStashHostedFunscript?: boolean | null | undefined;
|
|
215
|
+
/** True if we should not auto-open a browser window on startup */
|
|
216
|
+
noBrowser?: boolean | null | undefined;
|
|
217
|
+
/** True if we should send notifications to the desktop */
|
|
218
|
+
notificationsEnabled?: boolean | null | undefined;
|
|
219
|
+
}
|
|
220
|
+
export interface ConfigDLNAInput {
|
|
221
|
+
serverName?: string | null | undefined;
|
|
222
|
+
/** True if DLNA service should be enabled by default */
|
|
223
|
+
enabled?: boolean | null | undefined;
|
|
224
|
+
/** Defaults to 1338 */
|
|
225
|
+
port?: number | null | undefined;
|
|
226
|
+
/** List of IPs whitelisted for DLNA service */
|
|
227
|
+
whitelistedIPs?: Array<string> | null | undefined;
|
|
228
|
+
/** List of interfaces to run DLNA on. Empty for all */
|
|
229
|
+
interfaces?: Array<string> | null | undefined;
|
|
230
|
+
/** Order to sort videos */
|
|
231
|
+
videoSortOrder?: string | null | undefined;
|
|
232
|
+
}
|
|
233
|
+
export interface ConfigScrapingInput {
|
|
234
|
+
/** Scraper user agent string */
|
|
235
|
+
scraperUserAgent?: string | null | undefined;
|
|
236
|
+
/** Scraper CDP path. Path to chrome executable or remote address */
|
|
237
|
+
scraperCDPPath?: string | null | undefined;
|
|
238
|
+
/** Whether the scraper should check for invalid certificates */
|
|
239
|
+
scraperCertCheck?: boolean | null | undefined;
|
|
240
|
+
/** Tags blacklist during scraping */
|
|
241
|
+
excludeTagPatterns?: Array<string> | null | undefined;
|
|
242
|
+
}
|
|
243
|
+
export interface ConfigDefaultSettingsInput {
|
|
244
|
+
scan?: ScanMetadataInput | null | undefined;
|
|
245
|
+
identify?: IdentifyMetadataInput | null | undefined;
|
|
246
|
+
autoTag?: AutoTagMetadataInput | null | undefined;
|
|
247
|
+
generate?: GenerateMetadataInput | null | undefined;
|
|
248
|
+
/** If true, delete file checkbox will be checked by default */
|
|
249
|
+
deleteFile?: boolean | null | undefined;
|
|
250
|
+
/** If true, delete generated files checkbox will be checked by default */
|
|
251
|
+
deleteGenerated?: boolean | null | undefined;
|
|
252
|
+
}
|
|
253
|
+
/** Stash configuration details */
|
|
254
|
+
export interface StashConfigInput {
|
|
255
|
+
path: string;
|
|
256
|
+
excludeVideo: boolean;
|
|
257
|
+
excludeImage: boolean;
|
|
258
|
+
}
|
|
259
|
+
export interface GenerateAPIKeyInput {
|
|
260
|
+
clear?: boolean | null | undefined;
|
|
261
|
+
}
|
|
262
|
+
export interface EnableDLNAInput {
|
|
263
|
+
/** Duration to enable, in minutes. 0 or null for indefinite. */
|
|
264
|
+
duration?: number | null | undefined;
|
|
265
|
+
}
|
|
266
|
+
export interface DisableDLNAInput {
|
|
267
|
+
/** Duration to enable, in minutes. 0 or null for indefinite. */
|
|
268
|
+
duration?: number | null | undefined;
|
|
269
|
+
}
|
|
270
|
+
export interface AddTempDLNAIPInput {
|
|
271
|
+
address: string;
|
|
272
|
+
/** Duration to enable, in minutes. 0 or null for indefinite. */
|
|
273
|
+
duration?: number | null | undefined;
|
|
274
|
+
}
|
|
275
|
+
export interface RemoveTempDLNAIPInput {
|
|
276
|
+
address: string;
|
|
277
|
+
}
|
|
278
|
+
export interface MoveFilesInput {
|
|
279
|
+
ids: Array<string>;
|
|
280
|
+
/** valid for single or multiple file ids */
|
|
281
|
+
destination_folder?: string | null | undefined;
|
|
282
|
+
/** valid for single or multiple file ids */
|
|
283
|
+
destination_folder_id?: string | null | undefined;
|
|
284
|
+
/** valid only for single file id. If empty, existing basename is used */
|
|
285
|
+
destination_basename?: string | null | undefined;
|
|
286
|
+
}
|
|
287
|
+
export interface SetFingerprintsInput {
|
|
288
|
+
type: string;
|
|
289
|
+
/** a null value will remove the fingerprint */
|
|
290
|
+
value?: string | null | undefined;
|
|
291
|
+
}
|
|
292
|
+
export interface FileSetFingerprintsInput {
|
|
293
|
+
id: string;
|
|
294
|
+
/** only supplied fingerprint types will be modified */
|
|
295
|
+
fingerprints: Array<SetFingerprintsInput>;
|
|
296
|
+
}
|
|
297
|
+
export type SortDirectionEnum = "ASC" | "DESC";
|
|
298
|
+
export interface FindFilterType {
|
|
299
|
+
q?: string | null | undefined;
|
|
300
|
+
page?: number | null | undefined;
|
|
301
|
+
/** use per_page = -1 to indicate all results. Defaults to 25. */
|
|
302
|
+
per_page?: number | null | undefined;
|
|
303
|
+
sort?: string | null | undefined;
|
|
304
|
+
direction?: SortDirectionEnum | null | undefined;
|
|
305
|
+
}
|
|
306
|
+
export type ResolutionEnum = "VERY_LOW" | "LOW" | "R360P" | "STANDARD" | "WEB_HD" | "STANDARD_HD" | "FULL_HD" | "QUAD_HD" | "VR_HD" | "FOUR_K" | "FIVE_K" | "SIX_K" | "SEVEN_K" | "EIGHT_K" | "HUGE";
|
|
307
|
+
export interface ResolutionCriterionInput {
|
|
308
|
+
value: ResolutionEnum;
|
|
309
|
+
modifier: CriterionModifier;
|
|
310
|
+
}
|
|
311
|
+
export type OrientationEnum = "LANDSCAPE" | "PORTRAIT" | "SQUARE";
|
|
312
|
+
export interface OrientationCriterionInput {
|
|
313
|
+
value: Array<OrientationEnum>;
|
|
314
|
+
}
|
|
315
|
+
export interface DuplicationCriterionInput {
|
|
316
|
+
/** @deprecated Use phash field instead */
|
|
317
|
+
duplicated?: boolean | null | undefined;
|
|
318
|
+
/** Currently unimplemented. Intended for phash distance matching. */
|
|
319
|
+
distance?: number | null | undefined;
|
|
320
|
+
/** Filter by phash duplication */
|
|
321
|
+
phash?: boolean | null | undefined;
|
|
322
|
+
/** Filter by URL duplication */
|
|
323
|
+
url?: boolean | null | undefined;
|
|
324
|
+
/** Filter by Stash ID duplication */
|
|
325
|
+
stash_id?: boolean | null | undefined;
|
|
326
|
+
/** Filter by title duplication */
|
|
327
|
+
title?: boolean | null | undefined;
|
|
328
|
+
}
|
|
329
|
+
export interface FileDuplicationCriterionInput {
|
|
330
|
+
/** @deprecated Use phash field instead */
|
|
331
|
+
duplicated?: boolean | null | undefined;
|
|
332
|
+
/** Currently unimplemented. Intended for phash distance matching. */
|
|
333
|
+
distance?: number | null | undefined;
|
|
334
|
+
/** Filter by phash duplication */
|
|
335
|
+
phash?: boolean | null | undefined;
|
|
336
|
+
}
|
|
337
|
+
export interface StashIDCriterionInput {
|
|
338
|
+
/**
|
|
339
|
+
* If present, this value is treated as a predicate.
|
|
340
|
+
* That is, it will filter based on stash_id with the matching endpoint
|
|
341
|
+
*/
|
|
342
|
+
endpoint?: string | null | undefined;
|
|
343
|
+
stash_id?: string | null | undefined;
|
|
344
|
+
modifier: CriterionModifier;
|
|
345
|
+
}
|
|
346
|
+
export interface StashIDsCriterionInput {
|
|
347
|
+
/**
|
|
348
|
+
* If present, this value is treated as a predicate.
|
|
349
|
+
* That is, it will filter based on stash_ids with the matching endpoint
|
|
350
|
+
*/
|
|
351
|
+
endpoint?: string | null | undefined;
|
|
352
|
+
stash_ids?: Array<string | null> | null | undefined;
|
|
353
|
+
modifier: CriterionModifier;
|
|
354
|
+
}
|
|
355
|
+
export interface CustomFieldCriterionInput {
|
|
356
|
+
field: string;
|
|
357
|
+
value?: Array<unknown> | null | undefined;
|
|
358
|
+
modifier: CriterionModifier;
|
|
359
|
+
}
|
|
360
|
+
export interface PerformerFilterType {
|
|
361
|
+
AND?: PerformerFilterType | null | undefined;
|
|
362
|
+
OR?: PerformerFilterType | null | undefined;
|
|
363
|
+
NOT?: PerformerFilterType | null | undefined;
|
|
364
|
+
name?: StringCriterionInput | null | undefined;
|
|
365
|
+
disambiguation?: StringCriterionInput | null | undefined;
|
|
366
|
+
details?: StringCriterionInput | null | undefined;
|
|
367
|
+
/** Filter by favorite */
|
|
368
|
+
filter_favorites?: boolean | null | undefined;
|
|
369
|
+
/** Filter by birth year */
|
|
370
|
+
birth_year?: IntCriterionInput | null | undefined;
|
|
371
|
+
/** Filter by age */
|
|
372
|
+
age?: IntCriterionInput | null | undefined;
|
|
373
|
+
/** Filter by ethnicity */
|
|
374
|
+
ethnicity?: StringCriterionInput | null | undefined;
|
|
375
|
+
/** Filter by country */
|
|
376
|
+
country?: StringCriterionInput | null | undefined;
|
|
377
|
+
/** Filter by eye color */
|
|
378
|
+
eye_color?: StringCriterionInput | null | undefined;
|
|
379
|
+
/** Filter by height in cm */
|
|
380
|
+
height_cm?: IntCriterionInput | null | undefined;
|
|
381
|
+
/** Filter by measurements */
|
|
382
|
+
measurements?: StringCriterionInput | null | undefined;
|
|
383
|
+
/** Filter by fake tits value */
|
|
384
|
+
fake_tits?: StringCriterionInput | null | undefined;
|
|
385
|
+
/** Filter by penis length value */
|
|
386
|
+
penis_length?: FloatCriterionInput | null | undefined;
|
|
387
|
+
/** Filter by circumcision */
|
|
388
|
+
circumcised?: CircumcisionCriterionInput | null | undefined;
|
|
389
|
+
/**
|
|
390
|
+
* Deprecated: use career_start and career_end. This filter is non-functional.
|
|
391
|
+
* @deprecated Use career_start and career_end
|
|
392
|
+
*/
|
|
393
|
+
career_length?: StringCriterionInput | null | undefined;
|
|
394
|
+
/** Filter by career start */
|
|
395
|
+
career_start?: DateCriterionInput | null | undefined;
|
|
396
|
+
/** Filter by career end */
|
|
397
|
+
career_end?: DateCriterionInput | null | undefined;
|
|
398
|
+
/** Filter by tattoos */
|
|
399
|
+
tattoos?: StringCriterionInput | null | undefined;
|
|
400
|
+
/** Filter by piercings */
|
|
401
|
+
piercings?: StringCriterionInput | null | undefined;
|
|
402
|
+
/** Filter by aliases */
|
|
403
|
+
aliases?: StringCriterionInput | null | undefined;
|
|
404
|
+
/** Filter by gender */
|
|
405
|
+
gender?: GenderCriterionInput | null | undefined;
|
|
406
|
+
/** Filter to only include performers missing this property */
|
|
407
|
+
is_missing?: string | null | undefined;
|
|
408
|
+
/** Filter to only include performers with these tags */
|
|
409
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
410
|
+
/** Filter by tag count */
|
|
411
|
+
tag_count?: IntCriterionInput | null | undefined;
|
|
412
|
+
/** Filter by scene count */
|
|
413
|
+
scene_count?: IntCriterionInput | null | undefined;
|
|
414
|
+
/** Filter by marker count (via scene) */
|
|
415
|
+
marker_count?: IntCriterionInput | null | undefined;
|
|
416
|
+
/** Filter by image count */
|
|
417
|
+
image_count?: IntCriterionInput | null | undefined;
|
|
418
|
+
/** Filter by gallery count */
|
|
419
|
+
gallery_count?: IntCriterionInput | null | undefined;
|
|
420
|
+
/** Filter by play count */
|
|
421
|
+
play_count?: IntCriterionInput | null | undefined;
|
|
422
|
+
/** Filter by o count */
|
|
423
|
+
o_counter?: IntCriterionInput | null | undefined;
|
|
424
|
+
/**
|
|
425
|
+
* Filter by StashID
|
|
426
|
+
* @deprecated use stash_ids_endpoint instead
|
|
427
|
+
*/
|
|
428
|
+
stash_id_endpoint?: StashIDCriterionInput | null | undefined;
|
|
429
|
+
/** Filter by StashIDs */
|
|
430
|
+
stash_ids_endpoint?: StashIDsCriterionInput | null | undefined;
|
|
431
|
+
rating100?: IntCriterionInput | null | undefined;
|
|
432
|
+
/** Filter by url */
|
|
433
|
+
url?: StringCriterionInput | null | undefined;
|
|
434
|
+
/** Filter by hair color */
|
|
435
|
+
hair_color?: StringCriterionInput | null | undefined;
|
|
436
|
+
/** Filter by weight */
|
|
437
|
+
weight?: IntCriterionInput | null | undefined;
|
|
438
|
+
/** Filter by death year */
|
|
439
|
+
death_year?: IntCriterionInput | null | undefined;
|
|
440
|
+
/** Filter by studios where performer appears in scene/image/gallery */
|
|
441
|
+
studios?: HierarchicalMultiCriterionInput | null | undefined;
|
|
442
|
+
/** Filter by groups where performer appears in scene */
|
|
443
|
+
groups?: HierarchicalMultiCriterionInput | null | undefined;
|
|
444
|
+
/** Filter by performers where performer appears with another performer in scene/image/gallery */
|
|
445
|
+
performers?: MultiCriterionInput | null | undefined;
|
|
446
|
+
/** Filter by autotag ignore value */
|
|
447
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
448
|
+
/** Filter by birthdate */
|
|
449
|
+
birthdate?: DateCriterionInput | null | undefined;
|
|
450
|
+
/** Filter by death date */
|
|
451
|
+
death_date?: DateCriterionInput | null | undefined;
|
|
452
|
+
/** Filter by related scenes that meet this criteria */
|
|
453
|
+
scenes_filter?: SceneFilterType | null | undefined;
|
|
454
|
+
/** Filter by related images that meet this criteria */
|
|
455
|
+
images_filter?: ImageFilterType | null | undefined;
|
|
456
|
+
/** Filter by related galleries that meet this criteria */
|
|
457
|
+
galleries_filter?: GalleryFilterType | null | undefined;
|
|
458
|
+
/** Filter by related tags that meet this criteria */
|
|
459
|
+
tags_filter?: TagFilterType | null | undefined;
|
|
460
|
+
/** Filter by related scene markers (via scene) that meet this criteria */
|
|
461
|
+
markers_filter?: SceneMarkerFilterType | null | undefined;
|
|
462
|
+
/** Filter by creation time */
|
|
463
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
464
|
+
/** Filter by last update time */
|
|
465
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
466
|
+
custom_fields?: Array<CustomFieldCriterionInput> | null | undefined;
|
|
467
|
+
}
|
|
468
|
+
export interface SceneMarkerFilterType {
|
|
469
|
+
/** Filter to only include scene markers with these tags */
|
|
470
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
471
|
+
/** Filter to only include scene markers attached to a scene with these tags */
|
|
472
|
+
scene_tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
473
|
+
/** Filter to only include scene markers with these performers */
|
|
474
|
+
performers?: MultiCriterionInput | null | undefined;
|
|
475
|
+
/** Filter to only include scene markers from these scenes */
|
|
476
|
+
scenes?: MultiCriterionInput | null | undefined;
|
|
477
|
+
/** Filter by duration (in seconds) */
|
|
478
|
+
duration?: FloatCriterionInput | null | undefined;
|
|
479
|
+
/** Filter by creation time */
|
|
480
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
481
|
+
/** Filter by last update time */
|
|
482
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
483
|
+
/** Filter by scene date */
|
|
484
|
+
scene_date?: DateCriterionInput | null | undefined;
|
|
485
|
+
/** Filter by scene creation time */
|
|
486
|
+
scene_created_at?: TimestampCriterionInput | null | undefined;
|
|
487
|
+
/** Filter by scene last update time */
|
|
488
|
+
scene_updated_at?: TimestampCriterionInput | null | undefined;
|
|
489
|
+
/** Filter by related scenes that meet this criteria */
|
|
490
|
+
scene_filter?: SceneFilterType | null | undefined;
|
|
491
|
+
}
|
|
492
|
+
export interface SceneFilterType {
|
|
493
|
+
AND?: SceneFilterType | null | undefined;
|
|
494
|
+
OR?: SceneFilterType | null | undefined;
|
|
495
|
+
NOT?: SceneFilterType | null | undefined;
|
|
496
|
+
id?: IntCriterionInput | null | undefined;
|
|
497
|
+
title?: StringCriterionInput | null | undefined;
|
|
498
|
+
code?: StringCriterionInput | null | undefined;
|
|
499
|
+
details?: StringCriterionInput | null | undefined;
|
|
500
|
+
director?: StringCriterionInput | null | undefined;
|
|
501
|
+
/** Filter by file oshash */
|
|
502
|
+
oshash?: StringCriterionInput | null | undefined;
|
|
503
|
+
/** Filter by file checksum */
|
|
504
|
+
checksum?: StringCriterionInput | null | undefined;
|
|
505
|
+
/**
|
|
506
|
+
* Filter by file phash
|
|
507
|
+
* @deprecated Use phash_distance instead
|
|
508
|
+
*/
|
|
509
|
+
phash?: StringCriterionInput | null | undefined;
|
|
510
|
+
/** Filter by file phash distance */
|
|
511
|
+
phash_distance?: PhashDistanceCriterionInput | null | undefined;
|
|
512
|
+
/** Filter by path */
|
|
513
|
+
path?: StringCriterionInput | null | undefined;
|
|
514
|
+
/** Filter by file count */
|
|
515
|
+
file_count?: IntCriterionInput | null | undefined;
|
|
516
|
+
rating100?: IntCriterionInput | null | undefined;
|
|
517
|
+
/** Filter by organized */
|
|
518
|
+
organized?: boolean | null | undefined;
|
|
519
|
+
/** Filter by o-counter */
|
|
520
|
+
o_counter?: IntCriterionInput | null | undefined;
|
|
521
|
+
/** Filter Scenes by duplication criteria */
|
|
522
|
+
duplicated?: DuplicationCriterionInput | null | undefined;
|
|
523
|
+
/** Filter by resolution */
|
|
524
|
+
resolution?: ResolutionCriterionInput | null | undefined;
|
|
525
|
+
/** Filter by orientation */
|
|
526
|
+
orientation?: OrientationCriterionInput | null | undefined;
|
|
527
|
+
/** Filter by frame rate */
|
|
528
|
+
framerate?: IntCriterionInput | null | undefined;
|
|
529
|
+
/** Filter by bit rate */
|
|
530
|
+
bitrate?: IntCriterionInput | null | undefined;
|
|
531
|
+
/** Filter by video codec */
|
|
532
|
+
video_codec?: StringCriterionInput | null | undefined;
|
|
533
|
+
/** Filter by audio codec */
|
|
534
|
+
audio_codec?: StringCriterionInput | null | undefined;
|
|
535
|
+
/** Filter by duration (in seconds) */
|
|
536
|
+
duration?: IntCriterionInput | null | undefined;
|
|
537
|
+
/** Filter to only include scenes which have markers. `true` or `false` */
|
|
538
|
+
has_markers?: string | null | undefined;
|
|
539
|
+
/** Filter to only include scenes missing this property */
|
|
540
|
+
is_missing?: string | null | undefined;
|
|
541
|
+
/** Filter to only include scenes with this studio */
|
|
542
|
+
studios?: HierarchicalMultiCriterionInput | null | undefined;
|
|
543
|
+
/**
|
|
544
|
+
* Filter to only include scenes with this movie
|
|
545
|
+
* @deprecated use groups instead
|
|
546
|
+
*/
|
|
547
|
+
movies?: MultiCriterionInput | null | undefined;
|
|
548
|
+
/** Filter to only include scenes with this group */
|
|
549
|
+
groups?: HierarchicalMultiCriterionInput | null | undefined;
|
|
550
|
+
/** Filter to only include scenes with this gallery */
|
|
551
|
+
galleries?: MultiCriterionInput | null | undefined;
|
|
552
|
+
/** Filter to only include scenes with these tags */
|
|
553
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
554
|
+
/** Filter by tag count */
|
|
555
|
+
tag_count?: IntCriterionInput | null | undefined;
|
|
556
|
+
/** Filter to only include scenes with performers with these tags */
|
|
557
|
+
performer_tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
558
|
+
/** Filter scenes that have performers that have been favorited */
|
|
559
|
+
performer_favorite?: boolean | null | undefined;
|
|
560
|
+
/** Filter scenes by performer age at time of scene */
|
|
561
|
+
performer_age?: IntCriterionInput | null | undefined;
|
|
562
|
+
/** Filter to only include scenes with these performers */
|
|
563
|
+
performers?: MultiCriterionInput | null | undefined;
|
|
564
|
+
/** Filter by performer count */
|
|
565
|
+
performer_count?: IntCriterionInput | null | undefined;
|
|
566
|
+
/**
|
|
567
|
+
* Filter by StashID
|
|
568
|
+
* @deprecated use stash_ids_endpoint instead
|
|
569
|
+
*/
|
|
570
|
+
stash_id_endpoint?: StashIDCriterionInput | null | undefined;
|
|
571
|
+
/** Filter by StashIDs */
|
|
572
|
+
stash_ids_endpoint?: StashIDsCriterionInput | null | undefined;
|
|
573
|
+
/** Filter by StashID count */
|
|
574
|
+
stash_id_count?: IntCriterionInput | null | undefined;
|
|
575
|
+
/** Filter by url */
|
|
576
|
+
url?: StringCriterionInput | null | undefined;
|
|
577
|
+
/** Filter by interactive */
|
|
578
|
+
interactive?: boolean | null | undefined;
|
|
579
|
+
/** Filter by InteractiveSpeed */
|
|
580
|
+
interactive_speed?: IntCriterionInput | null | undefined;
|
|
581
|
+
/** Filter by captions */
|
|
582
|
+
captions?: StringCriterionInput | null | undefined;
|
|
583
|
+
/** Filter by resume time */
|
|
584
|
+
resume_time?: IntCriterionInput | null | undefined;
|
|
585
|
+
/** Filter by play count */
|
|
586
|
+
play_count?: IntCriterionInput | null | undefined;
|
|
587
|
+
/** Filter by play duration (in seconds) */
|
|
588
|
+
play_duration?: IntCriterionInput | null | undefined;
|
|
589
|
+
/** Filter by scene last played time */
|
|
590
|
+
last_played_at?: TimestampCriterionInput | null | undefined;
|
|
591
|
+
/** Filter by date */
|
|
592
|
+
date?: DateCriterionInput | null | undefined;
|
|
593
|
+
/** Filter by creation time */
|
|
594
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
595
|
+
/** Filter by last update time */
|
|
596
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
597
|
+
/** Filter by related galleries that meet this criteria */
|
|
598
|
+
galleries_filter?: GalleryFilterType | null | undefined;
|
|
599
|
+
/** Filter by related performers that meet this criteria */
|
|
600
|
+
performers_filter?: PerformerFilterType | null | undefined;
|
|
601
|
+
/** Filter by related studios that meet this criteria */
|
|
602
|
+
studios_filter?: StudioFilterType | null | undefined;
|
|
603
|
+
/** Filter by related tags that meet this criteria */
|
|
604
|
+
tags_filter?: TagFilterType | null | undefined;
|
|
605
|
+
/**
|
|
606
|
+
* Filter by related movies that meet this criteria
|
|
607
|
+
* @deprecated use groups_filter instead
|
|
608
|
+
*/
|
|
609
|
+
movies_filter?: MovieFilterType | null | undefined;
|
|
610
|
+
/** Filter by related groups that meet this criteria */
|
|
611
|
+
groups_filter?: GroupFilterType | null | undefined;
|
|
612
|
+
/** Filter by related markers that meet this criteria */
|
|
613
|
+
markers_filter?: SceneMarkerFilterType | null | undefined;
|
|
614
|
+
/** Filter by related files that meet this criteria */
|
|
615
|
+
files_filter?: FileFilterType | null | undefined;
|
|
616
|
+
custom_fields?: Array<CustomFieldCriterionInput> | null | undefined;
|
|
617
|
+
}
|
|
618
|
+
export interface MovieFilterType {
|
|
619
|
+
AND?: MovieFilterType | null | undefined;
|
|
620
|
+
OR?: MovieFilterType | null | undefined;
|
|
621
|
+
NOT?: MovieFilterType | null | undefined;
|
|
622
|
+
name?: StringCriterionInput | null | undefined;
|
|
623
|
+
director?: StringCriterionInput | null | undefined;
|
|
624
|
+
synopsis?: StringCriterionInput | null | undefined;
|
|
625
|
+
/** Filter by duration (in seconds) */
|
|
626
|
+
duration?: IntCriterionInput | null | undefined;
|
|
627
|
+
rating100?: IntCriterionInput | null | undefined;
|
|
628
|
+
/** Filter to only include movies with this studio */
|
|
629
|
+
studios?: HierarchicalMultiCriterionInput | null | undefined;
|
|
630
|
+
/** Filter to only include movies missing this property */
|
|
631
|
+
is_missing?: string | null | undefined;
|
|
632
|
+
/** Filter by url */
|
|
633
|
+
url?: StringCriterionInput | null | undefined;
|
|
634
|
+
/** Filter to only include movies where performer appears in a scene */
|
|
635
|
+
performers?: MultiCriterionInput | null | undefined;
|
|
636
|
+
/** Filter to only include movies with these tags */
|
|
637
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
638
|
+
/** Filter by tag count */
|
|
639
|
+
tag_count?: IntCriterionInput | null | undefined;
|
|
640
|
+
/** Filter by date */
|
|
641
|
+
date?: DateCriterionInput | null | undefined;
|
|
642
|
+
/** Filter by creation time */
|
|
643
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
644
|
+
/** Filter by last update time */
|
|
645
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
646
|
+
/** Filter by related scenes that meet this criteria */
|
|
647
|
+
scenes_filter?: SceneFilterType | null | undefined;
|
|
648
|
+
/** Filter by related studios that meet this criteria */
|
|
649
|
+
studios_filter?: StudioFilterType | null | undefined;
|
|
650
|
+
}
|
|
651
|
+
export interface GroupFilterType {
|
|
652
|
+
AND?: GroupFilterType | null | undefined;
|
|
653
|
+
OR?: GroupFilterType | null | undefined;
|
|
654
|
+
NOT?: GroupFilterType | null | undefined;
|
|
655
|
+
name?: StringCriterionInput | null | undefined;
|
|
656
|
+
director?: StringCriterionInput | null | undefined;
|
|
657
|
+
synopsis?: StringCriterionInput | null | undefined;
|
|
658
|
+
/** Filter by duration (in seconds) */
|
|
659
|
+
duration?: IntCriterionInput | null | undefined;
|
|
660
|
+
rating100?: IntCriterionInput | null | undefined;
|
|
661
|
+
/** Filter to only include groups with this studio */
|
|
662
|
+
studios?: HierarchicalMultiCriterionInput | null | undefined;
|
|
663
|
+
/** Filter to only include groups missing this property */
|
|
664
|
+
is_missing?: string | null | undefined;
|
|
665
|
+
/** Filter by url */
|
|
666
|
+
url?: StringCriterionInput | null | undefined;
|
|
667
|
+
/** Filter to only include groups where performer appears in a scene */
|
|
668
|
+
performers?: MultiCriterionInput | null | undefined;
|
|
669
|
+
/** Filter to only include groups with these tags */
|
|
670
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
671
|
+
/** Filter by tag count */
|
|
672
|
+
tag_count?: IntCriterionInput | null | undefined;
|
|
673
|
+
/** Filter by date */
|
|
674
|
+
date?: DateCriterionInput | null | undefined;
|
|
675
|
+
/** Filter by creation time */
|
|
676
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
677
|
+
/** Filter by last update time */
|
|
678
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
679
|
+
/** Filter by o-counter */
|
|
680
|
+
o_counter?: IntCriterionInput | null | undefined;
|
|
681
|
+
/** Filter by containing groups */
|
|
682
|
+
containing_groups?: HierarchicalMultiCriterionInput | null | undefined;
|
|
683
|
+
/** Filter by sub groups */
|
|
684
|
+
sub_groups?: HierarchicalMultiCriterionInput | null | undefined;
|
|
685
|
+
/** Filter by number of containing groups the group has */
|
|
686
|
+
containing_group_count?: IntCriterionInput | null | undefined;
|
|
687
|
+
/** Filter by number of sub-groups the group has */
|
|
688
|
+
sub_group_count?: IntCriterionInput | null | undefined;
|
|
689
|
+
/** Filter by number of scenes the group has */
|
|
690
|
+
scene_count?: IntCriterionInput | null | undefined;
|
|
691
|
+
/** Filter by related scenes that meet this criteria */
|
|
692
|
+
scenes_filter?: SceneFilterType | null | undefined;
|
|
693
|
+
/** Filter by related studios that meet this criteria */
|
|
694
|
+
studios_filter?: StudioFilterType | null | undefined;
|
|
695
|
+
/** Filter by custom fields */
|
|
696
|
+
custom_fields?: Array<CustomFieldCriterionInput> | null | undefined;
|
|
697
|
+
}
|
|
698
|
+
export interface StudioFilterType {
|
|
699
|
+
AND?: StudioFilterType | null | undefined;
|
|
700
|
+
OR?: StudioFilterType | null | undefined;
|
|
701
|
+
NOT?: StudioFilterType | null | undefined;
|
|
702
|
+
name?: StringCriterionInput | null | undefined;
|
|
703
|
+
details?: StringCriterionInput | null | undefined;
|
|
704
|
+
/** Filter to only include studios with this parent studio */
|
|
705
|
+
parents?: MultiCriterionInput | null | undefined;
|
|
706
|
+
/**
|
|
707
|
+
* Filter by StashID
|
|
708
|
+
* @deprecated use stash_ids_endpoint instead
|
|
709
|
+
*/
|
|
710
|
+
stash_id_endpoint?: StashIDCriterionInput | null | undefined;
|
|
711
|
+
/** Filter by StashIDs */
|
|
712
|
+
stash_ids_endpoint?: StashIDsCriterionInput | null | undefined;
|
|
713
|
+
/** Filter to only include studios with these tags */
|
|
714
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
715
|
+
/** Filter to only include studios missing this property */
|
|
716
|
+
is_missing?: string | null | undefined;
|
|
717
|
+
rating100?: IntCriterionInput | null | undefined;
|
|
718
|
+
/** Filter by favorite */
|
|
719
|
+
favorite?: boolean | null | undefined;
|
|
720
|
+
/** Filter by scene count */
|
|
721
|
+
scene_count?: IntCriterionInput | null | undefined;
|
|
722
|
+
/** Filter by image count */
|
|
723
|
+
image_count?: IntCriterionInput | null | undefined;
|
|
724
|
+
/** Filter by gallery count */
|
|
725
|
+
gallery_count?: IntCriterionInput | null | undefined;
|
|
726
|
+
/** Filter by group count */
|
|
727
|
+
group_count?: IntCriterionInput | null | undefined;
|
|
728
|
+
/** Filter by tag count */
|
|
729
|
+
tag_count?: IntCriterionInput | null | undefined;
|
|
730
|
+
/** Filter by url */
|
|
731
|
+
url?: StringCriterionInput | null | undefined;
|
|
732
|
+
/** Filter by studio aliases */
|
|
733
|
+
aliases?: StringCriterionInput | null | undefined;
|
|
734
|
+
/** Filter by subsidiary studio count */
|
|
735
|
+
child_count?: IntCriterionInput | null | undefined;
|
|
736
|
+
/** Filter by autotag ignore value */
|
|
737
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
738
|
+
/** Filter by organized */
|
|
739
|
+
organized?: boolean | null | undefined;
|
|
740
|
+
/** Filter by related scenes that meet this criteria */
|
|
741
|
+
scenes_filter?: SceneFilterType | null | undefined;
|
|
742
|
+
/** Filter by related images that meet this criteria */
|
|
743
|
+
images_filter?: ImageFilterType | null | undefined;
|
|
744
|
+
/** Filter by related galleries that meet this criteria */
|
|
745
|
+
galleries_filter?: GalleryFilterType | null | undefined;
|
|
746
|
+
/** Filter by related groups that meet this criteria */
|
|
747
|
+
groups_filter?: GroupFilterType | null | undefined;
|
|
748
|
+
/** Filter by creation time */
|
|
749
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
750
|
+
/** Filter by last update time */
|
|
751
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
752
|
+
custom_fields?: Array<CustomFieldCriterionInput> | null | undefined;
|
|
753
|
+
}
|
|
754
|
+
export interface GalleryFilterType {
|
|
755
|
+
AND?: GalleryFilterType | null | undefined;
|
|
756
|
+
OR?: GalleryFilterType | null | undefined;
|
|
757
|
+
NOT?: GalleryFilterType | null | undefined;
|
|
758
|
+
id?: IntCriterionInput | null | undefined;
|
|
759
|
+
title?: StringCriterionInput | null | undefined;
|
|
760
|
+
details?: StringCriterionInput | null | undefined;
|
|
761
|
+
/** Filter by file checksum */
|
|
762
|
+
checksum?: StringCriterionInput | null | undefined;
|
|
763
|
+
/** Filter by path */
|
|
764
|
+
path?: StringCriterionInput | null | undefined;
|
|
765
|
+
/** Filter by zip-file count */
|
|
766
|
+
file_count?: IntCriterionInput | null | undefined;
|
|
767
|
+
/** Filter to only include galleries missing this property */
|
|
768
|
+
is_missing?: string | null | undefined;
|
|
769
|
+
/** Filter to include/exclude galleries that were created from zip */
|
|
770
|
+
is_zip?: boolean | null | undefined;
|
|
771
|
+
rating100?: IntCriterionInput | null | undefined;
|
|
772
|
+
/** Filter by organized */
|
|
773
|
+
organized?: boolean | null | undefined;
|
|
774
|
+
/** Filter by average image resolution */
|
|
775
|
+
average_resolution?: ResolutionCriterionInput | null | undefined;
|
|
776
|
+
/** Filter to only include galleries that have chapters. `true` or `false` */
|
|
777
|
+
has_chapters?: string | null | undefined;
|
|
778
|
+
/** Filter to only include galleries with these scenes */
|
|
779
|
+
scenes?: MultiCriterionInput | null | undefined;
|
|
780
|
+
/** Filter to only include galleries with this studio */
|
|
781
|
+
studios?: HierarchicalMultiCriterionInput | null | undefined;
|
|
782
|
+
/** Filter to only include galleries with these tags */
|
|
783
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
784
|
+
/** Filter by tag count */
|
|
785
|
+
tag_count?: IntCriterionInput | null | undefined;
|
|
786
|
+
/** Filter to only include galleries with performers with these tags */
|
|
787
|
+
performer_tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
788
|
+
/** Filter to only include galleries with these performers */
|
|
789
|
+
performers?: MultiCriterionInput | null | undefined;
|
|
790
|
+
/** Filter by performer count */
|
|
791
|
+
performer_count?: IntCriterionInput | null | undefined;
|
|
792
|
+
/** Filter galleries that have performers that have been favorited */
|
|
793
|
+
performer_favorite?: boolean | null | undefined;
|
|
794
|
+
/** Filter galleries by performer age at time of gallery */
|
|
795
|
+
performer_age?: IntCriterionInput | null | undefined;
|
|
796
|
+
/** Filter by number of images in this gallery */
|
|
797
|
+
image_count?: IntCriterionInput | null | undefined;
|
|
798
|
+
/** Filter by url */
|
|
799
|
+
url?: StringCriterionInput | null | undefined;
|
|
800
|
+
/** Filter by date */
|
|
801
|
+
date?: DateCriterionInput | null | undefined;
|
|
802
|
+
/** Filter by creation time */
|
|
803
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
804
|
+
/** Filter by last update time */
|
|
805
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
806
|
+
/** Filter by studio code */
|
|
807
|
+
code?: StringCriterionInput | null | undefined;
|
|
808
|
+
/** Filter by photographer */
|
|
809
|
+
photographer?: StringCriterionInput | null | undefined;
|
|
810
|
+
/** Filter by related scenes that meet this criteria */
|
|
811
|
+
scenes_filter?: SceneFilterType | null | undefined;
|
|
812
|
+
/** Filter by related images that meet this criteria */
|
|
813
|
+
images_filter?: ImageFilterType | null | undefined;
|
|
814
|
+
/** Filter by related performers that meet this criteria */
|
|
815
|
+
performers_filter?: PerformerFilterType | null | undefined;
|
|
816
|
+
/** Filter by related studios that meet this criteria */
|
|
817
|
+
studios_filter?: StudioFilterType | null | undefined;
|
|
818
|
+
/** Filter by related tags that meet this criteria */
|
|
819
|
+
tags_filter?: TagFilterType | null | undefined;
|
|
820
|
+
/** Filter by related files that meet this criteria */
|
|
821
|
+
files_filter?: FileFilterType | null | undefined;
|
|
822
|
+
/** Filter by related folders that meet this criteria */
|
|
823
|
+
folders_filter?: FolderFilterType | null | undefined;
|
|
824
|
+
/** Filter by parent folder of the zip or folder the gallery is in */
|
|
825
|
+
parent_folder?: HierarchicalMultiCriterionInput | null | undefined;
|
|
826
|
+
custom_fields?: Array<CustomFieldCriterionInput> | null | undefined;
|
|
827
|
+
}
|
|
828
|
+
export interface TagFilterType {
|
|
829
|
+
AND?: TagFilterType | null | undefined;
|
|
830
|
+
OR?: TagFilterType | null | undefined;
|
|
831
|
+
NOT?: TagFilterType | null | undefined;
|
|
832
|
+
/** Filter by tag name */
|
|
833
|
+
name?: StringCriterionInput | null | undefined;
|
|
834
|
+
/** Filter by tag sort_name */
|
|
835
|
+
sort_name?: StringCriterionInput | null | undefined;
|
|
836
|
+
/** Filter by tag aliases */
|
|
837
|
+
aliases?: StringCriterionInput | null | undefined;
|
|
838
|
+
/** Filter by favorite */
|
|
839
|
+
favorite?: boolean | null | undefined;
|
|
840
|
+
/** Filter by tag description */
|
|
841
|
+
description?: StringCriterionInput | null | undefined;
|
|
842
|
+
/** Filter to only include tags missing this property */
|
|
843
|
+
is_missing?: string | null | undefined;
|
|
844
|
+
/** Filter by number of scenes with this tag */
|
|
845
|
+
scene_count?: IntCriterionInput | null | undefined;
|
|
846
|
+
/** Filter by number of images with this tag */
|
|
847
|
+
image_count?: IntCriterionInput | null | undefined;
|
|
848
|
+
/** Filter by number of galleries with this tag */
|
|
849
|
+
gallery_count?: IntCriterionInput | null | undefined;
|
|
850
|
+
/** Filter by number of performers with this tag */
|
|
851
|
+
performer_count?: IntCriterionInput | null | undefined;
|
|
852
|
+
/** Filter by number of studios with this tag */
|
|
853
|
+
studio_count?: IntCriterionInput | null | undefined;
|
|
854
|
+
/** Filter by number of movies with this tag */
|
|
855
|
+
movie_count?: IntCriterionInput | null | undefined;
|
|
856
|
+
/** Filter by number of group with this tag */
|
|
857
|
+
group_count?: IntCriterionInput | null | undefined;
|
|
858
|
+
/** Filter by number of markers with this tag */
|
|
859
|
+
marker_count?: IntCriterionInput | null | undefined;
|
|
860
|
+
/** Filter by parent tags */
|
|
861
|
+
parents?: HierarchicalMultiCriterionInput | null | undefined;
|
|
862
|
+
/** Filter by child tags */
|
|
863
|
+
children?: HierarchicalMultiCriterionInput | null | undefined;
|
|
864
|
+
/** Filter by number of parent tags the tag has */
|
|
865
|
+
parent_count?: IntCriterionInput | null | undefined;
|
|
866
|
+
/** Filter by number of child tags the tag has */
|
|
867
|
+
child_count?: IntCriterionInput | null | undefined;
|
|
868
|
+
/** Filter by autotag ignore value */
|
|
869
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
870
|
+
/**
|
|
871
|
+
* Filter by StashID
|
|
872
|
+
* @deprecated use stash_ids_endpoint instead
|
|
873
|
+
*/
|
|
874
|
+
stash_id_endpoint?: StashIDCriterionInput | null | undefined;
|
|
875
|
+
/** Filter by StashID */
|
|
876
|
+
stash_ids_endpoint?: StashIDsCriterionInput | null | undefined;
|
|
877
|
+
/** Filter by related scenes that meet this criteria */
|
|
878
|
+
scenes_filter?: SceneFilterType | null | undefined;
|
|
879
|
+
/** Filter by related images that meet this criteria */
|
|
880
|
+
images_filter?: ImageFilterType | null | undefined;
|
|
881
|
+
/** Filter by related galleries that meet this criteria */
|
|
882
|
+
galleries_filter?: GalleryFilterType | null | undefined;
|
|
883
|
+
/** Filter by related groups that meet this criteria */
|
|
884
|
+
groups_filter?: GroupFilterType | null | undefined;
|
|
885
|
+
/** Filter by related performers that meet this criteria */
|
|
886
|
+
performers_filter?: PerformerFilterType | null | undefined;
|
|
887
|
+
/** Filter by related studios that meet this criteria */
|
|
888
|
+
studios_filter?: StudioFilterType | null | undefined;
|
|
889
|
+
/** Filter by related scene markers that meet this criteria */
|
|
890
|
+
markers_filter?: SceneMarkerFilterType | null | undefined;
|
|
891
|
+
/** Filter by creation time */
|
|
892
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
893
|
+
/** Filter by last update time */
|
|
894
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
895
|
+
custom_fields?: Array<CustomFieldCriterionInput> | null | undefined;
|
|
896
|
+
}
|
|
897
|
+
export interface ImageFilterType {
|
|
898
|
+
AND?: ImageFilterType | null | undefined;
|
|
899
|
+
OR?: ImageFilterType | null | undefined;
|
|
900
|
+
NOT?: ImageFilterType | null | undefined;
|
|
901
|
+
title?: StringCriterionInput | null | undefined;
|
|
902
|
+
details?: StringCriterionInput | null | undefined;
|
|
903
|
+
/** Filter by image id */
|
|
904
|
+
id?: IntCriterionInput | null | undefined;
|
|
905
|
+
/** Filter by file checksum */
|
|
906
|
+
checksum?: StringCriterionInput | null | undefined;
|
|
907
|
+
/** Filter by file phash distance */
|
|
908
|
+
phash_distance?: PhashDistanceCriterionInput | null | undefined;
|
|
909
|
+
/** Filter by path */
|
|
910
|
+
path?: StringCriterionInput | null | undefined;
|
|
911
|
+
/** Filter by file count */
|
|
912
|
+
file_count?: IntCriterionInput | null | undefined;
|
|
913
|
+
rating100?: IntCriterionInput | null | undefined;
|
|
914
|
+
/** Filter by date */
|
|
915
|
+
date?: DateCriterionInput | null | undefined;
|
|
916
|
+
/** Filter by url */
|
|
917
|
+
url?: StringCriterionInput | null | undefined;
|
|
918
|
+
/** Filter by organized */
|
|
919
|
+
organized?: boolean | null | undefined;
|
|
920
|
+
/** Filter by o-counter */
|
|
921
|
+
o_counter?: IntCriterionInput | null | undefined;
|
|
922
|
+
/** Filter by resolution */
|
|
923
|
+
resolution?: ResolutionCriterionInput | null | undefined;
|
|
924
|
+
/** Filter by orientation */
|
|
925
|
+
orientation?: OrientationCriterionInput | null | undefined;
|
|
926
|
+
/** Filter to only include images missing this property */
|
|
927
|
+
is_missing?: string | null | undefined;
|
|
928
|
+
/** Filter to only include images with this studio */
|
|
929
|
+
studios?: HierarchicalMultiCriterionInput | null | undefined;
|
|
930
|
+
/** Filter to only include images with these tags */
|
|
931
|
+
tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
932
|
+
/** Filter by tag count */
|
|
933
|
+
tag_count?: IntCriterionInput | null | undefined;
|
|
934
|
+
/** Filter to only include images with performers with these tags */
|
|
935
|
+
performer_tags?: HierarchicalMultiCriterionInput | null | undefined;
|
|
936
|
+
/** Filter to only include images with these performers */
|
|
937
|
+
performers?: MultiCriterionInput | null | undefined;
|
|
938
|
+
/** Filter by performer count */
|
|
939
|
+
performer_count?: IntCriterionInput | null | undefined;
|
|
940
|
+
/** Filter images that have performers that have been favorited */
|
|
941
|
+
performer_favorite?: boolean | null | undefined;
|
|
942
|
+
/** Filter images by performer age at time of image */
|
|
943
|
+
performer_age?: IntCriterionInput | null | undefined;
|
|
944
|
+
/** Filter to only include images with these galleries */
|
|
945
|
+
galleries?: MultiCriterionInput | null | undefined;
|
|
946
|
+
/** Filter by creation time */
|
|
947
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
948
|
+
/** Filter by last update time */
|
|
949
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
950
|
+
/** Filter by studio code */
|
|
951
|
+
code?: StringCriterionInput | null | undefined;
|
|
952
|
+
/** Filter by photographer */
|
|
953
|
+
photographer?: StringCriterionInput | null | undefined;
|
|
954
|
+
/** Filter by related galleries that meet this criteria */
|
|
955
|
+
galleries_filter?: GalleryFilterType | null | undefined;
|
|
956
|
+
/** Filter by related performers that meet this criteria */
|
|
957
|
+
performers_filter?: PerformerFilterType | null | undefined;
|
|
958
|
+
/** Filter by related studios that meet this criteria */
|
|
959
|
+
studios_filter?: StudioFilterType | null | undefined;
|
|
960
|
+
/** Filter by related tags that meet this criteria */
|
|
961
|
+
tags_filter?: TagFilterType | null | undefined;
|
|
962
|
+
/** Filter by related files that meet this criteria */
|
|
963
|
+
files_filter?: FileFilterType | null | undefined;
|
|
964
|
+
/** Filter by custom fields */
|
|
965
|
+
custom_fields?: Array<CustomFieldCriterionInput> | null | undefined;
|
|
966
|
+
}
|
|
967
|
+
export interface FileFilterType {
|
|
968
|
+
AND?: FileFilterType | null | undefined;
|
|
969
|
+
OR?: FileFilterType | null | undefined;
|
|
970
|
+
NOT?: FileFilterType | null | undefined;
|
|
971
|
+
path?: StringCriterionInput | null | undefined;
|
|
972
|
+
basename?: StringCriterionInput | null | undefined;
|
|
973
|
+
dir?: StringCriterionInput | null | undefined;
|
|
974
|
+
parent_folder?: HierarchicalMultiCriterionInput | null | undefined;
|
|
975
|
+
zip_file?: MultiCriterionInput | null | undefined;
|
|
976
|
+
/** Filter by modification time */
|
|
977
|
+
mod_time?: TimestampCriterionInput | null | undefined;
|
|
978
|
+
/** Filter files by duplication criteria (only phash applies to files) */
|
|
979
|
+
duplicated?: FileDuplicationCriterionInput | null | undefined;
|
|
980
|
+
/** find files based on hash */
|
|
981
|
+
hashes?: Array<FingerprintFilterInput> | null | undefined;
|
|
982
|
+
video_file_filter?: VideoFileFilterInput | null | undefined;
|
|
983
|
+
image_file_filter?: ImageFileFilterInput | null | undefined;
|
|
984
|
+
scene_count?: IntCriterionInput | null | undefined;
|
|
985
|
+
image_count?: IntCriterionInput | null | undefined;
|
|
986
|
+
gallery_count?: IntCriterionInput | null | undefined;
|
|
987
|
+
/** Filter by related scenes that meet this criteria */
|
|
988
|
+
scenes_filter?: SceneFilterType | null | undefined;
|
|
989
|
+
/** Filter by related images that meet this criteria */
|
|
990
|
+
images_filter?: ImageFilterType | null | undefined;
|
|
991
|
+
/** Filter by related galleries that meet this criteria */
|
|
992
|
+
galleries_filter?: GalleryFilterType | null | undefined;
|
|
993
|
+
/** Filter by creation time */
|
|
994
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
995
|
+
/** Filter by last update time */
|
|
996
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
997
|
+
}
|
|
998
|
+
export interface FolderFilterType {
|
|
999
|
+
AND?: FolderFilterType | null | undefined;
|
|
1000
|
+
OR?: FolderFilterType | null | undefined;
|
|
1001
|
+
NOT?: FolderFilterType | null | undefined;
|
|
1002
|
+
path?: StringCriterionInput | null | undefined;
|
|
1003
|
+
basename?: StringCriterionInput | null | undefined;
|
|
1004
|
+
parent_folder?: HierarchicalMultiCriterionInput | null | undefined;
|
|
1005
|
+
zip_file?: MultiCriterionInput | null | undefined;
|
|
1006
|
+
/** Filter by modification time */
|
|
1007
|
+
mod_time?: TimestampCriterionInput | null | undefined;
|
|
1008
|
+
gallery_count?: IntCriterionInput | null | undefined;
|
|
1009
|
+
/** Filter by files that meet this criteria */
|
|
1010
|
+
files_filter?: FileFilterType | null | undefined;
|
|
1011
|
+
/** Filter by related galleries that meet this criteria */
|
|
1012
|
+
galleries_filter?: GalleryFilterType | null | undefined;
|
|
1013
|
+
/** Filter by creation time */
|
|
1014
|
+
created_at?: TimestampCriterionInput | null | undefined;
|
|
1015
|
+
/** Filter by last update time */
|
|
1016
|
+
updated_at?: TimestampCriterionInput | null | undefined;
|
|
1017
|
+
}
|
|
1018
|
+
export interface VideoFileFilterInput {
|
|
1019
|
+
resolution?: ResolutionCriterionInput | null | undefined;
|
|
1020
|
+
orientation?: OrientationCriterionInput | null | undefined;
|
|
1021
|
+
framerate?: IntCriterionInput | null | undefined;
|
|
1022
|
+
bitrate?: IntCriterionInput | null | undefined;
|
|
1023
|
+
format?: StringCriterionInput | null | undefined;
|
|
1024
|
+
video_codec?: StringCriterionInput | null | undefined;
|
|
1025
|
+
audio_codec?: StringCriterionInput | null | undefined;
|
|
1026
|
+
/** in seconds */
|
|
1027
|
+
duration?: IntCriterionInput | null | undefined;
|
|
1028
|
+
captions?: StringCriterionInput | null | undefined;
|
|
1029
|
+
interactive?: boolean | null | undefined;
|
|
1030
|
+
interactive_speed?: IntCriterionInput | null | undefined;
|
|
1031
|
+
}
|
|
1032
|
+
export interface ImageFileFilterInput {
|
|
1033
|
+
format?: StringCriterionInput | null | undefined;
|
|
1034
|
+
resolution?: ResolutionCriterionInput | null | undefined;
|
|
1035
|
+
orientation?: OrientationCriterionInput | null | undefined;
|
|
1036
|
+
}
|
|
1037
|
+
export interface FingerprintFilterInput {
|
|
1038
|
+
type: string;
|
|
1039
|
+
value: string;
|
|
1040
|
+
/** Hamming distance - defaults to 0 */
|
|
1041
|
+
distance?: number | null | undefined;
|
|
1042
|
+
}
|
|
1043
|
+
export type CriterionModifier = "EQUALS" | "NOT_EQUALS" | "GREATER_THAN" | "LESS_THAN" | "IS_NULL" | "NOT_NULL" | "INCLUDES_ALL" | "INCLUDES" | "EXCLUDES" | "MATCHES_REGEX" | "NOT_MATCHES_REGEX" | "BETWEEN" | "NOT_BETWEEN";
|
|
1044
|
+
export interface StringCriterionInput {
|
|
1045
|
+
value: string;
|
|
1046
|
+
modifier: CriterionModifier;
|
|
1047
|
+
}
|
|
1048
|
+
export interface IntCriterionInput {
|
|
1049
|
+
value: number;
|
|
1050
|
+
value2?: number | null | undefined;
|
|
1051
|
+
modifier: CriterionModifier;
|
|
1052
|
+
}
|
|
1053
|
+
export interface FloatCriterionInput {
|
|
1054
|
+
value: number;
|
|
1055
|
+
value2?: number | null | undefined;
|
|
1056
|
+
modifier: CriterionModifier;
|
|
1057
|
+
}
|
|
1058
|
+
export interface MultiCriterionInput {
|
|
1059
|
+
value?: Array<string> | null | undefined;
|
|
1060
|
+
modifier: CriterionModifier;
|
|
1061
|
+
excludes?: Array<string> | null | undefined;
|
|
1062
|
+
}
|
|
1063
|
+
export interface GenderCriterionInput {
|
|
1064
|
+
value?: GenderEnum | null | undefined;
|
|
1065
|
+
value_list?: Array<GenderEnum> | null | undefined;
|
|
1066
|
+
modifier: CriterionModifier;
|
|
1067
|
+
}
|
|
1068
|
+
export interface CircumcisionCriterionInput {
|
|
1069
|
+
value?: Array<CircumcisedEnum> | null | undefined;
|
|
1070
|
+
modifier: CriterionModifier;
|
|
1071
|
+
}
|
|
1072
|
+
export interface HierarchicalMultiCriterionInput {
|
|
1073
|
+
value?: Array<string> | null | undefined;
|
|
1074
|
+
modifier: CriterionModifier;
|
|
1075
|
+
depth?: number | null | undefined;
|
|
1076
|
+
excludes?: Array<string> | null | undefined;
|
|
1077
|
+
}
|
|
1078
|
+
export interface DateCriterionInput {
|
|
1079
|
+
value: string;
|
|
1080
|
+
value2?: string | null | undefined;
|
|
1081
|
+
modifier: CriterionModifier;
|
|
1082
|
+
}
|
|
1083
|
+
export interface TimestampCriterionInput {
|
|
1084
|
+
value: string;
|
|
1085
|
+
value2?: string | null | undefined;
|
|
1086
|
+
modifier: CriterionModifier;
|
|
1087
|
+
}
|
|
1088
|
+
export interface PhashDistanceCriterionInput {
|
|
1089
|
+
value: string;
|
|
1090
|
+
modifier: CriterionModifier;
|
|
1091
|
+
distance?: number | null | undefined;
|
|
1092
|
+
}
|
|
1093
|
+
export type FilterMode = "SCENES" | "PERFORMERS" | "STUDIOS" | "GALLERIES" | "SCENE_MARKERS" | "MOVIES" | "GROUPS" | "TAGS" | "IMAGES";
|
|
1094
|
+
export interface SaveFilterInput {
|
|
1095
|
+
/** provide ID to overwrite existing filter */
|
|
1096
|
+
id?: string | null | undefined;
|
|
1097
|
+
mode: FilterMode;
|
|
1098
|
+
name: string;
|
|
1099
|
+
find_filter?: FindFilterType | null | undefined;
|
|
1100
|
+
object_filter?: Record<string, unknown> | null | undefined;
|
|
1101
|
+
ui_options?: Record<string, unknown> | null | undefined;
|
|
1102
|
+
}
|
|
1103
|
+
export interface DestroyFilterInput {
|
|
1104
|
+
id: string;
|
|
1105
|
+
}
|
|
1106
|
+
export interface SetDefaultFilterInput {
|
|
1107
|
+
mode: FilterMode;
|
|
1108
|
+
/** null to clear */
|
|
1109
|
+
find_filter?: FindFilterType | null | undefined;
|
|
1110
|
+
object_filter?: Record<string, unknown> | null | undefined;
|
|
1111
|
+
ui_options?: Record<string, unknown> | null | undefined;
|
|
1112
|
+
}
|
|
1113
|
+
export interface GalleryChapterCreateInput {
|
|
1114
|
+
gallery_id: string;
|
|
1115
|
+
title: string;
|
|
1116
|
+
image_index: number;
|
|
1117
|
+
}
|
|
1118
|
+
export interface GalleryChapterUpdateInput {
|
|
1119
|
+
id: string;
|
|
1120
|
+
gallery_id?: string | null | undefined;
|
|
1121
|
+
title?: string | null | undefined;
|
|
1122
|
+
image_index?: number | null | undefined;
|
|
1123
|
+
}
|
|
1124
|
+
export interface GalleryCreateInput {
|
|
1125
|
+
title: string;
|
|
1126
|
+
code?: string | null | undefined;
|
|
1127
|
+
/** @deprecated Use urls */
|
|
1128
|
+
url?: string | null | undefined;
|
|
1129
|
+
urls?: Array<string> | null | undefined;
|
|
1130
|
+
date?: string | null | undefined;
|
|
1131
|
+
details?: string | null | undefined;
|
|
1132
|
+
photographer?: string | null | undefined;
|
|
1133
|
+
rating100?: number | null | undefined;
|
|
1134
|
+
organized?: boolean | null | undefined;
|
|
1135
|
+
scene_ids?: Array<string> | null | undefined;
|
|
1136
|
+
studio_id?: string | null | undefined;
|
|
1137
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1138
|
+
performer_ids?: Array<string> | null | undefined;
|
|
1139
|
+
custom_fields?: Record<string, unknown> | null | undefined;
|
|
1140
|
+
}
|
|
1141
|
+
export interface GalleryUpdateInput {
|
|
1142
|
+
clientMutationId?: string | null | undefined;
|
|
1143
|
+
id: string;
|
|
1144
|
+
title?: string | null | undefined;
|
|
1145
|
+
code?: string | null | undefined;
|
|
1146
|
+
/** @deprecated Use urls */
|
|
1147
|
+
url?: string | null | undefined;
|
|
1148
|
+
urls?: Array<string> | null | undefined;
|
|
1149
|
+
date?: string | null | undefined;
|
|
1150
|
+
details?: string | null | undefined;
|
|
1151
|
+
photographer?: string | null | undefined;
|
|
1152
|
+
rating100?: number | null | undefined;
|
|
1153
|
+
organized?: boolean | null | undefined;
|
|
1154
|
+
scene_ids?: Array<string> | null | undefined;
|
|
1155
|
+
studio_id?: string | null | undefined;
|
|
1156
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1157
|
+
performer_ids?: Array<string> | null | undefined;
|
|
1158
|
+
primary_file_id?: string | null | undefined;
|
|
1159
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1160
|
+
}
|
|
1161
|
+
export interface BulkGalleryUpdateInput {
|
|
1162
|
+
clientMutationId?: string | null | undefined;
|
|
1163
|
+
ids?: Array<string> | null | undefined;
|
|
1164
|
+
code?: string | null | undefined;
|
|
1165
|
+
/** @deprecated Use urls */
|
|
1166
|
+
url?: string | null | undefined;
|
|
1167
|
+
urls?: BulkUpdateStrings | null | undefined;
|
|
1168
|
+
date?: string | null | undefined;
|
|
1169
|
+
details?: string | null | undefined;
|
|
1170
|
+
photographer?: string | null | undefined;
|
|
1171
|
+
rating100?: number | null | undefined;
|
|
1172
|
+
organized?: boolean | null | undefined;
|
|
1173
|
+
scene_ids?: BulkUpdateIds | null | undefined;
|
|
1174
|
+
studio_id?: string | null | undefined;
|
|
1175
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
1176
|
+
performer_ids?: BulkUpdateIds | null | undefined;
|
|
1177
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1178
|
+
}
|
|
1179
|
+
export interface GalleryDestroyInput {
|
|
1180
|
+
ids: Array<string>;
|
|
1181
|
+
/**
|
|
1182
|
+
* If true, then the zip file will be deleted if the gallery is zip-file-based.
|
|
1183
|
+
* If gallery is folder-based, then any files not associated with other
|
|
1184
|
+
* galleries will be deleted, along with the folder, if it is not empty.
|
|
1185
|
+
*/
|
|
1186
|
+
delete_file?: boolean | null | undefined;
|
|
1187
|
+
delete_generated?: boolean | null | undefined;
|
|
1188
|
+
/** If true, delete the file entry from the database if the file is not assigned to any other objects */
|
|
1189
|
+
destroy_file_entry?: boolean | null | undefined;
|
|
1190
|
+
}
|
|
1191
|
+
export interface GalleryAddInput {
|
|
1192
|
+
gallery_id: string;
|
|
1193
|
+
image_ids: Array<string>;
|
|
1194
|
+
}
|
|
1195
|
+
export interface GalleryRemoveInput {
|
|
1196
|
+
gallery_id: string;
|
|
1197
|
+
image_ids: Array<string>;
|
|
1198
|
+
}
|
|
1199
|
+
export interface GallerySetCoverInput {
|
|
1200
|
+
gallery_id: string;
|
|
1201
|
+
cover_image_id: string;
|
|
1202
|
+
}
|
|
1203
|
+
export interface GalleryResetCoverInput {
|
|
1204
|
+
gallery_id: string;
|
|
1205
|
+
}
|
|
1206
|
+
export interface GroupDescriptionInput {
|
|
1207
|
+
group_id: string;
|
|
1208
|
+
description?: string | null | undefined;
|
|
1209
|
+
}
|
|
1210
|
+
export interface GroupCreateInput {
|
|
1211
|
+
name: string;
|
|
1212
|
+
aliases?: string | null | undefined;
|
|
1213
|
+
/** Duration in seconds */
|
|
1214
|
+
duration?: number | null | undefined;
|
|
1215
|
+
date?: string | null | undefined;
|
|
1216
|
+
rating100?: number | null | undefined;
|
|
1217
|
+
studio_id?: string | null | undefined;
|
|
1218
|
+
director?: string | null | undefined;
|
|
1219
|
+
synopsis?: string | null | undefined;
|
|
1220
|
+
urls?: Array<string> | null | undefined;
|
|
1221
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1222
|
+
containing_groups?: Array<GroupDescriptionInput> | null | undefined;
|
|
1223
|
+
sub_groups?: Array<GroupDescriptionInput> | null | undefined;
|
|
1224
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1225
|
+
front_image?: string | null | undefined;
|
|
1226
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1227
|
+
back_image?: string | null | undefined;
|
|
1228
|
+
custom_fields?: Record<string, unknown> | null | undefined;
|
|
1229
|
+
}
|
|
1230
|
+
export interface GroupUpdateInput {
|
|
1231
|
+
id: string;
|
|
1232
|
+
name?: string | null | undefined;
|
|
1233
|
+
aliases?: string | null | undefined;
|
|
1234
|
+
duration?: number | null | undefined;
|
|
1235
|
+
date?: string | null | undefined;
|
|
1236
|
+
rating100?: number | null | undefined;
|
|
1237
|
+
studio_id?: string | null | undefined;
|
|
1238
|
+
director?: string | null | undefined;
|
|
1239
|
+
synopsis?: string | null | undefined;
|
|
1240
|
+
urls?: Array<string> | null | undefined;
|
|
1241
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1242
|
+
containing_groups?: Array<GroupDescriptionInput> | null | undefined;
|
|
1243
|
+
sub_groups?: Array<GroupDescriptionInput> | null | undefined;
|
|
1244
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1245
|
+
front_image?: string | null | undefined;
|
|
1246
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1247
|
+
back_image?: string | null | undefined;
|
|
1248
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1249
|
+
}
|
|
1250
|
+
export interface BulkUpdateGroupDescriptionsInput {
|
|
1251
|
+
groups: Array<GroupDescriptionInput>;
|
|
1252
|
+
mode: BulkUpdateIdMode;
|
|
1253
|
+
}
|
|
1254
|
+
export interface BulkGroupUpdateInput {
|
|
1255
|
+
clientMutationId?: string | null | undefined;
|
|
1256
|
+
ids?: Array<string> | null | undefined;
|
|
1257
|
+
rating100?: number | null | undefined;
|
|
1258
|
+
date?: string | null | undefined;
|
|
1259
|
+
synopsis?: string | null | undefined;
|
|
1260
|
+
studio_id?: string | null | undefined;
|
|
1261
|
+
director?: string | null | undefined;
|
|
1262
|
+
urls?: BulkUpdateStrings | null | undefined;
|
|
1263
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
1264
|
+
containing_groups?: BulkUpdateGroupDescriptionsInput | null | undefined;
|
|
1265
|
+
sub_groups?: BulkUpdateGroupDescriptionsInput | null | undefined;
|
|
1266
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1267
|
+
}
|
|
1268
|
+
export interface GroupDestroyInput {
|
|
1269
|
+
id: string;
|
|
1270
|
+
}
|
|
1271
|
+
export interface ReorderSubGroupsInput {
|
|
1272
|
+
/** ID of the group to reorder sub groups for */
|
|
1273
|
+
group_id: string;
|
|
1274
|
+
/**
|
|
1275
|
+
* IDs of the sub groups to reorder. These must be a subset of the current sub groups.
|
|
1276
|
+
* Sub groups will be inserted in this order at the insert_index
|
|
1277
|
+
*/
|
|
1278
|
+
sub_group_ids: Array<string>;
|
|
1279
|
+
/** The sub-group ID at which to insert the sub groups */
|
|
1280
|
+
insert_at_id: string;
|
|
1281
|
+
/** If true, the sub groups will be inserted after the insert_index, otherwise they will be inserted before */
|
|
1282
|
+
insert_after?: boolean | null | undefined;
|
|
1283
|
+
}
|
|
1284
|
+
export interface GroupSubGroupAddInput {
|
|
1285
|
+
containing_group_id: string;
|
|
1286
|
+
sub_groups: Array<GroupDescriptionInput>;
|
|
1287
|
+
/** The index at which to insert the sub groups. If not provided, the sub groups will be appended to the end */
|
|
1288
|
+
insert_index?: number | null | undefined;
|
|
1289
|
+
}
|
|
1290
|
+
export interface GroupSubGroupRemoveInput {
|
|
1291
|
+
containing_group_id: string;
|
|
1292
|
+
sub_group_ids: Array<string>;
|
|
1293
|
+
}
|
|
1294
|
+
export interface ImageUpdateInput {
|
|
1295
|
+
clientMutationId?: string | null | undefined;
|
|
1296
|
+
id: string;
|
|
1297
|
+
title?: string | null | undefined;
|
|
1298
|
+
code?: string | null | undefined;
|
|
1299
|
+
rating100?: number | null | undefined;
|
|
1300
|
+
organized?: boolean | null | undefined;
|
|
1301
|
+
/** @deprecated Use urls */
|
|
1302
|
+
url?: string | null | undefined;
|
|
1303
|
+
urls?: Array<string> | null | undefined;
|
|
1304
|
+
date?: string | null | undefined;
|
|
1305
|
+
details?: string | null | undefined;
|
|
1306
|
+
photographer?: string | null | undefined;
|
|
1307
|
+
studio_id?: string | null | undefined;
|
|
1308
|
+
performer_ids?: Array<string> | null | undefined;
|
|
1309
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1310
|
+
gallery_ids?: Array<string> | null | undefined;
|
|
1311
|
+
primary_file_id?: string | null | undefined;
|
|
1312
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1313
|
+
}
|
|
1314
|
+
export interface BulkImageUpdateInput {
|
|
1315
|
+
clientMutationId?: string | null | undefined;
|
|
1316
|
+
ids?: Array<string> | null | undefined;
|
|
1317
|
+
title?: string | null | undefined;
|
|
1318
|
+
code?: string | null | undefined;
|
|
1319
|
+
rating100?: number | null | undefined;
|
|
1320
|
+
organized?: boolean | null | undefined;
|
|
1321
|
+
/** @deprecated Use urls */
|
|
1322
|
+
url?: string | null | undefined;
|
|
1323
|
+
urls?: BulkUpdateStrings | null | undefined;
|
|
1324
|
+
date?: string | null | undefined;
|
|
1325
|
+
details?: string | null | undefined;
|
|
1326
|
+
photographer?: string | null | undefined;
|
|
1327
|
+
studio_id?: string | null | undefined;
|
|
1328
|
+
performer_ids?: BulkUpdateIds | null | undefined;
|
|
1329
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
1330
|
+
gallery_ids?: BulkUpdateIds | null | undefined;
|
|
1331
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1332
|
+
}
|
|
1333
|
+
export interface ImageDestroyInput {
|
|
1334
|
+
id: string;
|
|
1335
|
+
delete_file?: boolean | null | undefined;
|
|
1336
|
+
delete_generated?: boolean | null | undefined;
|
|
1337
|
+
/** If true, delete the file entry from the database if the file is not assigned to any other objects */
|
|
1338
|
+
destroy_file_entry?: boolean | null | undefined;
|
|
1339
|
+
}
|
|
1340
|
+
export interface ImagesDestroyInput {
|
|
1341
|
+
ids: Array<string>;
|
|
1342
|
+
delete_file?: boolean | null | undefined;
|
|
1343
|
+
delete_generated?: boolean | null | undefined;
|
|
1344
|
+
/** If true, delete the file entry from the database if the file is not assigned to any other objects */
|
|
1345
|
+
destroy_file_entry?: boolean | null | undefined;
|
|
1346
|
+
}
|
|
1347
|
+
export type JobStatus = "READY" | "RUNNING" | "FINISHED" | "STOPPING" | "CANCELLED" | "FAILED";
|
|
1348
|
+
export interface FindJobInput {
|
|
1349
|
+
id: string;
|
|
1350
|
+
}
|
|
1351
|
+
export type JobStatusUpdateType = "ADD" | "REMOVE" | "UPDATE";
|
|
1352
|
+
export type LogLevel = "Trace" | "Debug" | "Info" | "Progress" | "Warning" | "Error";
|
|
1353
|
+
export interface GenerateMetadataInput {
|
|
1354
|
+
covers?: boolean | null | undefined;
|
|
1355
|
+
sprites?: boolean | null | undefined;
|
|
1356
|
+
previews?: boolean | null | undefined;
|
|
1357
|
+
imagePreviews?: boolean | null | undefined;
|
|
1358
|
+
previewOptions?: GeneratePreviewOptionsInput | null | undefined;
|
|
1359
|
+
markers?: boolean | null | undefined;
|
|
1360
|
+
markerImagePreviews?: boolean | null | undefined;
|
|
1361
|
+
markerScreenshots?: boolean | null | undefined;
|
|
1362
|
+
transcodes?: boolean | null | undefined;
|
|
1363
|
+
/** Generate transcodes even if not required */
|
|
1364
|
+
forceTranscodes?: boolean | null | undefined;
|
|
1365
|
+
/** Generate video phashes during scan */
|
|
1366
|
+
phashes?: boolean | null | undefined;
|
|
1367
|
+
interactiveHeatmapsSpeeds?: boolean | null | undefined;
|
|
1368
|
+
/** Generate image phashes during scan */
|
|
1369
|
+
imagePhashes?: boolean | null | undefined;
|
|
1370
|
+
imageThumbnails?: boolean | null | undefined;
|
|
1371
|
+
clipPreviews?: boolean | null | undefined;
|
|
1372
|
+
/** scene ids to generate for */
|
|
1373
|
+
sceneIDs?: Array<string> | null | undefined;
|
|
1374
|
+
/** marker ids to generate for */
|
|
1375
|
+
markerIDs?: Array<string> | null | undefined;
|
|
1376
|
+
/** image ids to generate for */
|
|
1377
|
+
imageIDs?: Array<string> | null | undefined;
|
|
1378
|
+
/** gallery ids to generate for */
|
|
1379
|
+
galleryIDs?: Array<string> | null | undefined;
|
|
1380
|
+
/** paths to run generate on, in addition to the other ID lists */
|
|
1381
|
+
paths?: Array<string> | null | undefined;
|
|
1382
|
+
/** overwrite existing media */
|
|
1383
|
+
overwrite?: boolean | null | undefined;
|
|
1384
|
+
}
|
|
1385
|
+
export interface GeneratePreviewOptionsInput {
|
|
1386
|
+
/** Number of segments in a preview file */
|
|
1387
|
+
previewSegments?: number | null | undefined;
|
|
1388
|
+
/** Preview segment duration, in seconds */
|
|
1389
|
+
previewSegmentDuration?: number | null | undefined;
|
|
1390
|
+
/** Duration of start of video to exclude when generating previews */
|
|
1391
|
+
previewExcludeStart?: string | null | undefined;
|
|
1392
|
+
/** Duration of end of video to exclude when generating previews */
|
|
1393
|
+
previewExcludeEnd?: string | null | undefined;
|
|
1394
|
+
/** Preset when generating preview */
|
|
1395
|
+
previewPreset?: PreviewPreset | null | undefined;
|
|
1396
|
+
}
|
|
1397
|
+
/** Filter options for meta data scannning */
|
|
1398
|
+
export interface ScanMetaDataFilterInput {
|
|
1399
|
+
/** If set, files with a modification time before this time point are ignored by the scan */
|
|
1400
|
+
minModTime?: string | null | undefined;
|
|
1401
|
+
}
|
|
1402
|
+
export interface ScanMetadataInput {
|
|
1403
|
+
paths?: Array<string> | null | undefined;
|
|
1404
|
+
/** Forces a rescan on files even if modification time is unchanged */
|
|
1405
|
+
rescan?: boolean | null | undefined;
|
|
1406
|
+
/** Generate covers during scan */
|
|
1407
|
+
scanGenerateCovers?: boolean | null | undefined;
|
|
1408
|
+
/** Generate previews during scan */
|
|
1409
|
+
scanGeneratePreviews?: boolean | null | undefined;
|
|
1410
|
+
/** Generate image previews during scan */
|
|
1411
|
+
scanGenerateImagePreviews?: boolean | null | undefined;
|
|
1412
|
+
/** Generate sprites during scan */
|
|
1413
|
+
scanGenerateSprites?: boolean | null | undefined;
|
|
1414
|
+
/** Generate video phashes during scan */
|
|
1415
|
+
scanGeneratePhashes?: boolean | null | undefined;
|
|
1416
|
+
/** Generate image phashes during scan */
|
|
1417
|
+
scanGenerateImagePhashes?: boolean | null | undefined;
|
|
1418
|
+
/** Generate image thumbnails during scan */
|
|
1419
|
+
scanGenerateThumbnails?: boolean | null | undefined;
|
|
1420
|
+
/** Generate image clip previews during scan */
|
|
1421
|
+
scanGenerateClipPreviews?: boolean | null | undefined;
|
|
1422
|
+
/** Filter options for the scan */
|
|
1423
|
+
filter?: ScanMetaDataFilterInput | null | undefined;
|
|
1424
|
+
}
|
|
1425
|
+
export interface CleanMetadataInput {
|
|
1426
|
+
paths?: Array<string> | null | undefined;
|
|
1427
|
+
/**
|
|
1428
|
+
* Don't check zip file contents when determining whether to clean a file.
|
|
1429
|
+
* This can significantly speed up the clean process, but will potentially miss removed files within zip files.
|
|
1430
|
+
* Where users do not modify zip files contents directly, this should be safe to use.
|
|
1431
|
+
* Defaults to false.
|
|
1432
|
+
*/
|
|
1433
|
+
ignoreZipFileContents?: boolean | null | undefined;
|
|
1434
|
+
/** Do a dry run. Don't delete any files */
|
|
1435
|
+
dryRun: boolean;
|
|
1436
|
+
}
|
|
1437
|
+
export interface CleanGeneratedInput {
|
|
1438
|
+
/** Clean blob files without blob entries */
|
|
1439
|
+
blobFiles?: boolean | null | undefined;
|
|
1440
|
+
/** Clean sprite and vtt files without scene entries */
|
|
1441
|
+
sprites?: boolean | null | undefined;
|
|
1442
|
+
/** Clean preview files without scene entries */
|
|
1443
|
+
screenshots?: boolean | null | undefined;
|
|
1444
|
+
/** Clean scene transcodes without scene entries */
|
|
1445
|
+
transcodes?: boolean | null | undefined;
|
|
1446
|
+
/** Clean marker files without marker entries */
|
|
1447
|
+
markers?: boolean | null | undefined;
|
|
1448
|
+
/** Clean image thumbnails/clips without image entries */
|
|
1449
|
+
imageThumbnails?: boolean | null | undefined;
|
|
1450
|
+
/** Do a dry run. Don't delete any files */
|
|
1451
|
+
dryRun?: boolean | null | undefined;
|
|
1452
|
+
}
|
|
1453
|
+
export interface AutoTagMetadataInput {
|
|
1454
|
+
/** Paths to tag, null for all files */
|
|
1455
|
+
paths?: Array<string> | null | undefined;
|
|
1456
|
+
/** IDs of performers to tag files with, or "*" for all */
|
|
1457
|
+
performers?: Array<string> | null | undefined;
|
|
1458
|
+
/** IDs of studios to tag files with, or "*" for all */
|
|
1459
|
+
studios?: Array<string> | null | undefined;
|
|
1460
|
+
/** IDs of tags to tag files with, or "*" for all */
|
|
1461
|
+
tags?: Array<string> | null | undefined;
|
|
1462
|
+
}
|
|
1463
|
+
export type IdentifyFieldStrategy = "IGNORE" | "MERGE" | "OVERWRITE";
|
|
1464
|
+
export interface IdentifyFieldOptionsInput {
|
|
1465
|
+
field: string;
|
|
1466
|
+
strategy: IdentifyFieldStrategy;
|
|
1467
|
+
/** creates missing objects if needed - only applicable for performers, tags and studios */
|
|
1468
|
+
createMissing?: boolean | null | undefined;
|
|
1469
|
+
}
|
|
1470
|
+
export interface IdentifyMetadataOptionsInput {
|
|
1471
|
+
/** any fields missing from here are defaulted to MERGE and createMissing false */
|
|
1472
|
+
fieldOptions?: Array<IdentifyFieldOptionsInput> | null | undefined;
|
|
1473
|
+
/** defaults to true if not provided */
|
|
1474
|
+
setCoverImage?: boolean | null | undefined;
|
|
1475
|
+
setOrganized?: boolean | null | undefined;
|
|
1476
|
+
/**
|
|
1477
|
+
* defaults to true if not provided
|
|
1478
|
+
* @deprecated Use performerGenders
|
|
1479
|
+
*/
|
|
1480
|
+
includeMalePerformers?: boolean | null | undefined;
|
|
1481
|
+
/** Filter to only include performers with these genders. If not provided, all genders are included. */
|
|
1482
|
+
performerGenders?: Array<GenderEnum> | null | undefined;
|
|
1483
|
+
/** defaults to true if not provided */
|
|
1484
|
+
skipMultipleMatches?: boolean | null | undefined;
|
|
1485
|
+
/** tag to tag skipped multiple matches with */
|
|
1486
|
+
skipMultipleMatchTag?: string | null | undefined;
|
|
1487
|
+
/** defaults to true if not provided */
|
|
1488
|
+
skipSingleNamePerformers?: boolean | null | undefined;
|
|
1489
|
+
/** tag to tag skipped single name performers with */
|
|
1490
|
+
skipSingleNamePerformerTag?: string | null | undefined;
|
|
1491
|
+
}
|
|
1492
|
+
export interface IdentifySourceInput {
|
|
1493
|
+
source: ScraperSourceInput;
|
|
1494
|
+
/** Options defined for a source override the defaults */
|
|
1495
|
+
options?: IdentifyMetadataOptionsInput | null | undefined;
|
|
1496
|
+
}
|
|
1497
|
+
export interface IdentifyMetadataInput {
|
|
1498
|
+
/** An ordered list of sources to identify items with. Only the first source that finds a match is used. */
|
|
1499
|
+
sources: Array<IdentifySourceInput>;
|
|
1500
|
+
/** Options defined here override the configured defaults */
|
|
1501
|
+
options?: IdentifyMetadataOptionsInput | null | undefined;
|
|
1502
|
+
/** scene ids to identify */
|
|
1503
|
+
sceneIDs?: Array<string> | null | undefined;
|
|
1504
|
+
/** paths of scenes to identify - ignored if scene ids are set */
|
|
1505
|
+
paths?: Array<string> | null | undefined;
|
|
1506
|
+
}
|
|
1507
|
+
export interface ExportObjectTypeInput {
|
|
1508
|
+
ids?: Array<string> | null | undefined;
|
|
1509
|
+
all?: boolean | null | undefined;
|
|
1510
|
+
}
|
|
1511
|
+
export interface ExportObjectsInput {
|
|
1512
|
+
scenes?: ExportObjectTypeInput | null | undefined;
|
|
1513
|
+
images?: ExportObjectTypeInput | null | undefined;
|
|
1514
|
+
studios?: ExportObjectTypeInput | null | undefined;
|
|
1515
|
+
performers?: ExportObjectTypeInput | null | undefined;
|
|
1516
|
+
tags?: ExportObjectTypeInput | null | undefined;
|
|
1517
|
+
groups?: ExportObjectTypeInput | null | undefined;
|
|
1518
|
+
/** @deprecated Use groups instead */
|
|
1519
|
+
movies?: ExportObjectTypeInput | null | undefined;
|
|
1520
|
+
galleries?: ExportObjectTypeInput | null | undefined;
|
|
1521
|
+
includeDependencies?: boolean | null | undefined;
|
|
1522
|
+
}
|
|
1523
|
+
export type ImportDuplicateEnum = "IGNORE" | "OVERWRITE" | "FAIL";
|
|
1524
|
+
export type ImportMissingRefEnum = "IGNORE" | "FAIL" | "CREATE";
|
|
1525
|
+
export interface ImportObjectsInput {
|
|
1526
|
+
file: Blob;
|
|
1527
|
+
duplicateBehaviour: ImportDuplicateEnum;
|
|
1528
|
+
missingRefBehaviour: ImportMissingRefEnum;
|
|
1529
|
+
}
|
|
1530
|
+
export interface BackupDatabaseInput {
|
|
1531
|
+
download?: boolean | null | undefined;
|
|
1532
|
+
/** If true, blob files will be included in the backup. This can significantly increase the size of the backup and the time it takes to create it, but allows for a complete backup of the system that can be restored without needing access to the original media files. */
|
|
1533
|
+
includeBlobs?: boolean | null | undefined;
|
|
1534
|
+
}
|
|
1535
|
+
export interface AnonymiseDatabaseInput {
|
|
1536
|
+
download?: boolean | null | undefined;
|
|
1537
|
+
}
|
|
1538
|
+
export type SystemStatusEnum = "SETUP" | "NEEDS_MIGRATION" | "OK";
|
|
1539
|
+
export interface MigrateInput {
|
|
1540
|
+
backupPath: string;
|
|
1541
|
+
}
|
|
1542
|
+
export interface CustomFieldsInput {
|
|
1543
|
+
/** If populated, the entire custom fields map will be replaced with this value */
|
|
1544
|
+
full?: Record<string, unknown> | null | undefined;
|
|
1545
|
+
/** If populated, only the keys in this map will be updated */
|
|
1546
|
+
partial?: Record<string, unknown> | null | undefined;
|
|
1547
|
+
/** Remove any keys in this list */
|
|
1548
|
+
remove?: Array<string> | null | undefined;
|
|
1549
|
+
}
|
|
1550
|
+
export interface MigrateSceneScreenshotsInput {
|
|
1551
|
+
deleteFiles?: boolean | null | undefined;
|
|
1552
|
+
overwriteExisting?: boolean | null | undefined;
|
|
1553
|
+
}
|
|
1554
|
+
export interface MigrateBlobsInput {
|
|
1555
|
+
deleteOld?: boolean | null | undefined;
|
|
1556
|
+
}
|
|
1557
|
+
export interface MovieCreateInput {
|
|
1558
|
+
name: string;
|
|
1559
|
+
aliases?: string | null | undefined;
|
|
1560
|
+
/** Duration in seconds */
|
|
1561
|
+
duration?: number | null | undefined;
|
|
1562
|
+
date?: string | null | undefined;
|
|
1563
|
+
rating100?: number | null | undefined;
|
|
1564
|
+
studio_id?: string | null | undefined;
|
|
1565
|
+
director?: string | null | undefined;
|
|
1566
|
+
synopsis?: string | null | undefined;
|
|
1567
|
+
/** @deprecated Use urls */
|
|
1568
|
+
url?: string | null | undefined;
|
|
1569
|
+
urls?: Array<string> | null | undefined;
|
|
1570
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1571
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1572
|
+
front_image?: string | null | undefined;
|
|
1573
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1574
|
+
back_image?: string | null | undefined;
|
|
1575
|
+
}
|
|
1576
|
+
export interface MovieUpdateInput {
|
|
1577
|
+
id: string;
|
|
1578
|
+
name?: string | null | undefined;
|
|
1579
|
+
aliases?: string | null | undefined;
|
|
1580
|
+
duration?: number | null | undefined;
|
|
1581
|
+
date?: string | null | undefined;
|
|
1582
|
+
rating100?: number | null | undefined;
|
|
1583
|
+
studio_id?: string | null | undefined;
|
|
1584
|
+
director?: string | null | undefined;
|
|
1585
|
+
synopsis?: string | null | undefined;
|
|
1586
|
+
/** @deprecated Use urls */
|
|
1587
|
+
url?: string | null | undefined;
|
|
1588
|
+
urls?: Array<string> | null | undefined;
|
|
1589
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1590
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1591
|
+
front_image?: string | null | undefined;
|
|
1592
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1593
|
+
back_image?: string | null | undefined;
|
|
1594
|
+
}
|
|
1595
|
+
export interface BulkMovieUpdateInput {
|
|
1596
|
+
clientMutationId?: string | null | undefined;
|
|
1597
|
+
ids?: Array<string> | null | undefined;
|
|
1598
|
+
rating100?: number | null | undefined;
|
|
1599
|
+
studio_id?: string | null | undefined;
|
|
1600
|
+
director?: string | null | undefined;
|
|
1601
|
+
urls?: BulkUpdateStrings | null | undefined;
|
|
1602
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
1603
|
+
}
|
|
1604
|
+
export interface MovieDestroyInput {
|
|
1605
|
+
id: string;
|
|
1606
|
+
}
|
|
1607
|
+
export type PackageType = "Scraper" | "Plugin";
|
|
1608
|
+
export interface PackageSpecInput {
|
|
1609
|
+
id: string;
|
|
1610
|
+
sourceURL: string;
|
|
1611
|
+
}
|
|
1612
|
+
export interface PackageSourceInput {
|
|
1613
|
+
name?: string | null | undefined;
|
|
1614
|
+
url: string;
|
|
1615
|
+
local_path?: string | null | undefined;
|
|
1616
|
+
}
|
|
1617
|
+
export type GenderEnum = "MALE" | "FEMALE" | "TRANSGENDER_MALE" | "TRANSGENDER_FEMALE" | "INTERSEX" | "NON_BINARY";
|
|
1618
|
+
export type CircumcisedEnum = "CUT" | "UNCUT";
|
|
1619
|
+
export interface PerformerCreateInput {
|
|
1620
|
+
name: string;
|
|
1621
|
+
disambiguation?: string | null | undefined;
|
|
1622
|
+
/** @deprecated Use urls */
|
|
1623
|
+
url?: string | null | undefined;
|
|
1624
|
+
urls?: Array<string> | null | undefined;
|
|
1625
|
+
gender?: GenderEnum | null | undefined;
|
|
1626
|
+
birthdate?: string | null | undefined;
|
|
1627
|
+
ethnicity?: string | null | undefined;
|
|
1628
|
+
country?: string | null | undefined;
|
|
1629
|
+
eye_color?: string | null | undefined;
|
|
1630
|
+
height_cm?: number | null | undefined;
|
|
1631
|
+
measurements?: string | null | undefined;
|
|
1632
|
+
fake_tits?: string | null | undefined;
|
|
1633
|
+
penis_length?: number | null | undefined;
|
|
1634
|
+
circumcised?: CircumcisedEnum | null | undefined;
|
|
1635
|
+
/** @deprecated Use career_start and career_end */
|
|
1636
|
+
career_length?: string | null | undefined;
|
|
1637
|
+
career_start?: string | null | undefined;
|
|
1638
|
+
career_end?: string | null | undefined;
|
|
1639
|
+
tattoos?: string | null | undefined;
|
|
1640
|
+
piercings?: string | null | undefined;
|
|
1641
|
+
/** Duplicate aliases and those equal to name will be ignored (case-insensitive) */
|
|
1642
|
+
alias_list?: Array<string> | null | undefined;
|
|
1643
|
+
/** @deprecated Use urls */
|
|
1644
|
+
twitter?: string | null | undefined;
|
|
1645
|
+
/** @deprecated Use urls */
|
|
1646
|
+
instagram?: string | null | undefined;
|
|
1647
|
+
favorite?: boolean | null | undefined;
|
|
1648
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1649
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1650
|
+
image?: string | null | undefined;
|
|
1651
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
1652
|
+
rating100?: number | null | undefined;
|
|
1653
|
+
details?: string | null | undefined;
|
|
1654
|
+
death_date?: string | null | undefined;
|
|
1655
|
+
hair_color?: string | null | undefined;
|
|
1656
|
+
weight?: number | null | undefined;
|
|
1657
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
1658
|
+
custom_fields?: Record<string, unknown> | null | undefined;
|
|
1659
|
+
}
|
|
1660
|
+
export interface PerformerUpdateInput {
|
|
1661
|
+
id: string;
|
|
1662
|
+
name?: string | null | undefined;
|
|
1663
|
+
disambiguation?: string | null | undefined;
|
|
1664
|
+
/** @deprecated Use urls */
|
|
1665
|
+
url?: string | null | undefined;
|
|
1666
|
+
urls?: Array<string> | null | undefined;
|
|
1667
|
+
gender?: GenderEnum | null | undefined;
|
|
1668
|
+
birthdate?: string | null | undefined;
|
|
1669
|
+
ethnicity?: string | null | undefined;
|
|
1670
|
+
country?: string | null | undefined;
|
|
1671
|
+
eye_color?: string | null | undefined;
|
|
1672
|
+
height_cm?: number | null | undefined;
|
|
1673
|
+
measurements?: string | null | undefined;
|
|
1674
|
+
fake_tits?: string | null | undefined;
|
|
1675
|
+
penis_length?: number | null | undefined;
|
|
1676
|
+
circumcised?: CircumcisedEnum | null | undefined;
|
|
1677
|
+
/** @deprecated Use career_start and career_end */
|
|
1678
|
+
career_length?: string | null | undefined;
|
|
1679
|
+
career_start?: string | null | undefined;
|
|
1680
|
+
career_end?: string | null | undefined;
|
|
1681
|
+
tattoos?: string | null | undefined;
|
|
1682
|
+
piercings?: string | null | undefined;
|
|
1683
|
+
/** Duplicate aliases and those equal to name will be ignored (case-insensitive) */
|
|
1684
|
+
alias_list?: Array<string> | null | undefined;
|
|
1685
|
+
/** @deprecated Use urls */
|
|
1686
|
+
twitter?: string | null | undefined;
|
|
1687
|
+
/** @deprecated Use urls */
|
|
1688
|
+
instagram?: string | null | undefined;
|
|
1689
|
+
favorite?: boolean | null | undefined;
|
|
1690
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1691
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1692
|
+
image?: string | null | undefined;
|
|
1693
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
1694
|
+
rating100?: number | null | undefined;
|
|
1695
|
+
details?: string | null | undefined;
|
|
1696
|
+
death_date?: string | null | undefined;
|
|
1697
|
+
hair_color?: string | null | undefined;
|
|
1698
|
+
weight?: number | null | undefined;
|
|
1699
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
1700
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1701
|
+
}
|
|
1702
|
+
export interface BulkUpdateStrings {
|
|
1703
|
+
values?: Array<string> | null | undefined;
|
|
1704
|
+
mode: BulkUpdateIdMode;
|
|
1705
|
+
}
|
|
1706
|
+
export interface BulkPerformerUpdateInput {
|
|
1707
|
+
clientMutationId?: string | null | undefined;
|
|
1708
|
+
ids?: Array<string> | null | undefined;
|
|
1709
|
+
disambiguation?: string | null | undefined;
|
|
1710
|
+
/** @deprecated Use urls */
|
|
1711
|
+
url?: string | null | undefined;
|
|
1712
|
+
urls?: BulkUpdateStrings | null | undefined;
|
|
1713
|
+
gender?: GenderEnum | null | undefined;
|
|
1714
|
+
birthdate?: string | null | undefined;
|
|
1715
|
+
ethnicity?: string | null | undefined;
|
|
1716
|
+
country?: string | null | undefined;
|
|
1717
|
+
eye_color?: string | null | undefined;
|
|
1718
|
+
height_cm?: number | null | undefined;
|
|
1719
|
+
measurements?: string | null | undefined;
|
|
1720
|
+
fake_tits?: string | null | undefined;
|
|
1721
|
+
penis_length?: number | null | undefined;
|
|
1722
|
+
circumcised?: CircumcisedEnum | null | undefined;
|
|
1723
|
+
/** @deprecated Use career_start and career_end */
|
|
1724
|
+
career_length?: string | null | undefined;
|
|
1725
|
+
career_start?: string | null | undefined;
|
|
1726
|
+
career_end?: string | null | undefined;
|
|
1727
|
+
tattoos?: string | null | undefined;
|
|
1728
|
+
piercings?: string | null | undefined;
|
|
1729
|
+
/** Duplicate aliases and those equal to name will result in an error (case-insensitive) */
|
|
1730
|
+
alias_list?: BulkUpdateStrings | null | undefined;
|
|
1731
|
+
/** @deprecated Use urls */
|
|
1732
|
+
twitter?: string | null | undefined;
|
|
1733
|
+
/** @deprecated Use urls */
|
|
1734
|
+
instagram?: string | null | undefined;
|
|
1735
|
+
favorite?: boolean | null | undefined;
|
|
1736
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
1737
|
+
rating100?: number | null | undefined;
|
|
1738
|
+
details?: string | null | undefined;
|
|
1739
|
+
death_date?: string | null | undefined;
|
|
1740
|
+
hair_color?: string | null | undefined;
|
|
1741
|
+
weight?: number | null | undefined;
|
|
1742
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
1743
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1744
|
+
}
|
|
1745
|
+
export interface PerformerDestroyInput {
|
|
1746
|
+
id: string;
|
|
1747
|
+
}
|
|
1748
|
+
export interface PerformerMergeInput {
|
|
1749
|
+
source: Array<string>;
|
|
1750
|
+
destination: string;
|
|
1751
|
+
values?: PerformerUpdateInput | null | undefined;
|
|
1752
|
+
}
|
|
1753
|
+
export interface PluginArgInput {
|
|
1754
|
+
key: string;
|
|
1755
|
+
value?: PluginValueInput | null | undefined;
|
|
1756
|
+
}
|
|
1757
|
+
export interface PluginValueInput {
|
|
1758
|
+
str?: string | null | undefined;
|
|
1759
|
+
i?: number | null | undefined;
|
|
1760
|
+
b?: boolean | null | undefined;
|
|
1761
|
+
f?: number | null | undefined;
|
|
1762
|
+
o?: Array<PluginArgInput> | null | undefined;
|
|
1763
|
+
a?: Array<PluginValueInput> | null | undefined;
|
|
1764
|
+
}
|
|
1765
|
+
export type PluginSettingTypeEnum = "STRING" | "NUMBER" | "BOOLEAN";
|
|
1766
|
+
export interface SceneMarkerCreateInput {
|
|
1767
|
+
title: string;
|
|
1768
|
+
/** The required start time of the marker (in seconds). Supports decimals. */
|
|
1769
|
+
seconds: number;
|
|
1770
|
+
/** The optional end time of the marker (in seconds). Supports decimals. */
|
|
1771
|
+
end_seconds?: number | null | undefined;
|
|
1772
|
+
scene_id: string;
|
|
1773
|
+
primary_tag_id: string;
|
|
1774
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1775
|
+
}
|
|
1776
|
+
export interface SceneMarkerUpdateInput {
|
|
1777
|
+
id: string;
|
|
1778
|
+
title?: string | null | undefined;
|
|
1779
|
+
/** The start time of the marker (in seconds). Supports decimals. */
|
|
1780
|
+
seconds?: number | null | undefined;
|
|
1781
|
+
/** The end time of the marker (in seconds). Supports decimals. */
|
|
1782
|
+
end_seconds?: number | null | undefined;
|
|
1783
|
+
scene_id?: string | null | undefined;
|
|
1784
|
+
primary_tag_id?: string | null | undefined;
|
|
1785
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1786
|
+
}
|
|
1787
|
+
export interface BulkSceneMarkerUpdateInput {
|
|
1788
|
+
ids?: Array<string> | null | undefined;
|
|
1789
|
+
title?: string | null | undefined;
|
|
1790
|
+
primary_tag_id?: string | null | undefined;
|
|
1791
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
1792
|
+
}
|
|
1793
|
+
export interface SceneMovieInput {
|
|
1794
|
+
movie_id: string;
|
|
1795
|
+
scene_index?: number | null | undefined;
|
|
1796
|
+
}
|
|
1797
|
+
export interface SceneGroupInput {
|
|
1798
|
+
group_id: string;
|
|
1799
|
+
scene_index?: number | null | undefined;
|
|
1800
|
+
}
|
|
1801
|
+
export interface SceneCreateInput {
|
|
1802
|
+
title?: string | null | undefined;
|
|
1803
|
+
code?: string | null | undefined;
|
|
1804
|
+
details?: string | null | undefined;
|
|
1805
|
+
director?: string | null | undefined;
|
|
1806
|
+
/** @deprecated Use urls */
|
|
1807
|
+
url?: string | null | undefined;
|
|
1808
|
+
urls?: Array<string> | null | undefined;
|
|
1809
|
+
date?: string | null | undefined;
|
|
1810
|
+
rating100?: number | null | undefined;
|
|
1811
|
+
organized?: boolean | null | undefined;
|
|
1812
|
+
studio_id?: string | null | undefined;
|
|
1813
|
+
gallery_ids?: Array<string> | null | undefined;
|
|
1814
|
+
performer_ids?: Array<string> | null | undefined;
|
|
1815
|
+
groups?: Array<SceneGroupInput> | null | undefined;
|
|
1816
|
+
/** @deprecated Use groups */
|
|
1817
|
+
movies?: Array<SceneMovieInput> | null | undefined;
|
|
1818
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1819
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1820
|
+
cover_image?: string | null | undefined;
|
|
1821
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
1822
|
+
/**
|
|
1823
|
+
* The first id will be assigned as primary.
|
|
1824
|
+
* Files will be reassigned from existing scenes if applicable.
|
|
1825
|
+
* Files must not already be primary for another scene.
|
|
1826
|
+
*/
|
|
1827
|
+
file_ids?: Array<string> | null | undefined;
|
|
1828
|
+
custom_fields?: Record<string, unknown> | null | undefined;
|
|
1829
|
+
}
|
|
1830
|
+
export interface SceneUpdateInput {
|
|
1831
|
+
clientMutationId?: string | null | undefined;
|
|
1832
|
+
id: string;
|
|
1833
|
+
title?: string | null | undefined;
|
|
1834
|
+
code?: string | null | undefined;
|
|
1835
|
+
details?: string | null | undefined;
|
|
1836
|
+
director?: string | null | undefined;
|
|
1837
|
+
/** @deprecated Use urls */
|
|
1838
|
+
url?: string | null | undefined;
|
|
1839
|
+
urls?: Array<string> | null | undefined;
|
|
1840
|
+
date?: string | null | undefined;
|
|
1841
|
+
rating100?: number | null | undefined;
|
|
1842
|
+
/** @deprecated Unsupported - Use sceneIncrementO/sceneDecrementO */
|
|
1843
|
+
o_counter?: number | null | undefined;
|
|
1844
|
+
organized?: boolean | null | undefined;
|
|
1845
|
+
studio_id?: string | null | undefined;
|
|
1846
|
+
gallery_ids?: Array<string> | null | undefined;
|
|
1847
|
+
performer_ids?: Array<string> | null | undefined;
|
|
1848
|
+
groups?: Array<SceneGroupInput> | null | undefined;
|
|
1849
|
+
/** @deprecated Use groups */
|
|
1850
|
+
movies?: Array<SceneMovieInput> | null | undefined;
|
|
1851
|
+
tag_ids?: Array<string> | null | undefined;
|
|
1852
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
1853
|
+
cover_image?: string | null | undefined;
|
|
1854
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
1855
|
+
/** The time index a scene was left at */
|
|
1856
|
+
resume_time?: number | null | undefined;
|
|
1857
|
+
/** The total time a scene has spent playing */
|
|
1858
|
+
play_duration?: number | null | undefined;
|
|
1859
|
+
/**
|
|
1860
|
+
* The number ot times a scene has been played
|
|
1861
|
+
* @deprecated Unsupported - Use sceneIncrementPlayCount/sceneDecrementPlayCount
|
|
1862
|
+
*/
|
|
1863
|
+
play_count?: number | null | undefined;
|
|
1864
|
+
primary_file_id?: string | null | undefined;
|
|
1865
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1866
|
+
}
|
|
1867
|
+
export type BulkUpdateIdMode = "SET" | "ADD" | "REMOVE";
|
|
1868
|
+
export interface BulkUpdateIds {
|
|
1869
|
+
ids?: Array<string> | null | undefined;
|
|
1870
|
+
mode: BulkUpdateIdMode;
|
|
1871
|
+
}
|
|
1872
|
+
export interface BulkSceneUpdateInput {
|
|
1873
|
+
clientMutationId?: string | null | undefined;
|
|
1874
|
+
ids?: Array<string> | null | undefined;
|
|
1875
|
+
title?: string | null | undefined;
|
|
1876
|
+
code?: string | null | undefined;
|
|
1877
|
+
details?: string | null | undefined;
|
|
1878
|
+
director?: string | null | undefined;
|
|
1879
|
+
/** @deprecated Use urls */
|
|
1880
|
+
url?: string | null | undefined;
|
|
1881
|
+
urls?: BulkUpdateStrings | null | undefined;
|
|
1882
|
+
date?: string | null | undefined;
|
|
1883
|
+
rating100?: number | null | undefined;
|
|
1884
|
+
organized?: boolean | null | undefined;
|
|
1885
|
+
studio_id?: string | null | undefined;
|
|
1886
|
+
gallery_ids?: BulkUpdateIds | null | undefined;
|
|
1887
|
+
performer_ids?: BulkUpdateIds | null | undefined;
|
|
1888
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
1889
|
+
group_ids?: BulkUpdateIds | null | undefined;
|
|
1890
|
+
/** @deprecated Use group_ids */
|
|
1891
|
+
movie_ids?: BulkUpdateIds | null | undefined;
|
|
1892
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
1893
|
+
}
|
|
1894
|
+
export interface SceneDestroyInput {
|
|
1895
|
+
id: string;
|
|
1896
|
+
delete_file?: boolean | null | undefined;
|
|
1897
|
+
delete_generated?: boolean | null | undefined;
|
|
1898
|
+
/** If true, delete the file entry from the database if the file is not assigned to any other objects */
|
|
1899
|
+
destroy_file_entry?: boolean | null | undefined;
|
|
1900
|
+
}
|
|
1901
|
+
export interface ScenesDestroyInput {
|
|
1902
|
+
ids: Array<string>;
|
|
1903
|
+
delete_file?: boolean | null | undefined;
|
|
1904
|
+
delete_generated?: boolean | null | undefined;
|
|
1905
|
+
/** If true, delete the file entry from the database if the file is not assigned to any other objects */
|
|
1906
|
+
destroy_file_entry?: boolean | null | undefined;
|
|
1907
|
+
}
|
|
1908
|
+
export interface SceneParserInput {
|
|
1909
|
+
ignoreWords?: Array<string> | null | undefined;
|
|
1910
|
+
whitespaceCharacters?: string | null | undefined;
|
|
1911
|
+
capitalizeTitle?: boolean | null | undefined;
|
|
1912
|
+
ignoreOrganized?: boolean | null | undefined;
|
|
1913
|
+
}
|
|
1914
|
+
export interface SceneHashInput {
|
|
1915
|
+
checksum?: string | null | undefined;
|
|
1916
|
+
oshash?: string | null | undefined;
|
|
1917
|
+
}
|
|
1918
|
+
export interface AssignSceneFileInput {
|
|
1919
|
+
scene_id: string;
|
|
1920
|
+
file_id: string;
|
|
1921
|
+
}
|
|
1922
|
+
export interface SceneMergeInput {
|
|
1923
|
+
/**
|
|
1924
|
+
* If destination scene has no files, then the primary file of the
|
|
1925
|
+
* first source scene will be assigned as primary
|
|
1926
|
+
*/
|
|
1927
|
+
source: Array<string>;
|
|
1928
|
+
destination: string;
|
|
1929
|
+
values?: SceneUpdateInput | null | undefined;
|
|
1930
|
+
play_history?: boolean | null | undefined;
|
|
1931
|
+
o_history?: boolean | null | undefined;
|
|
1932
|
+
}
|
|
1933
|
+
export interface ScrapedMovieInput {
|
|
1934
|
+
name?: string | null | undefined;
|
|
1935
|
+
aliases?: string | null | undefined;
|
|
1936
|
+
duration?: string | null | undefined;
|
|
1937
|
+
date?: string | null | undefined;
|
|
1938
|
+
rating?: string | null | undefined;
|
|
1939
|
+
director?: string | null | undefined;
|
|
1940
|
+
/** @deprecated use urls */
|
|
1941
|
+
url?: string | null | undefined;
|
|
1942
|
+
urls?: Array<string> | null | undefined;
|
|
1943
|
+
synopsis?: string | null | undefined;
|
|
1944
|
+
}
|
|
1945
|
+
export interface ScrapedGroupInput {
|
|
1946
|
+
name?: string | null | undefined;
|
|
1947
|
+
aliases?: string | null | undefined;
|
|
1948
|
+
duration?: string | null | undefined;
|
|
1949
|
+
date?: string | null | undefined;
|
|
1950
|
+
rating?: string | null | undefined;
|
|
1951
|
+
director?: string | null | undefined;
|
|
1952
|
+
urls?: Array<string> | null | undefined;
|
|
1953
|
+
synopsis?: string | null | undefined;
|
|
1954
|
+
}
|
|
1955
|
+
export interface ScrapedPerformerInput {
|
|
1956
|
+
/** Set if performer matched */
|
|
1957
|
+
stored_id?: string | null | undefined;
|
|
1958
|
+
name?: string | null | undefined;
|
|
1959
|
+
disambiguation?: string | null | undefined;
|
|
1960
|
+
gender?: string | null | undefined;
|
|
1961
|
+
/** @deprecated use urls */
|
|
1962
|
+
url?: string | null | undefined;
|
|
1963
|
+
urls?: Array<string> | null | undefined;
|
|
1964
|
+
/** @deprecated use urls */
|
|
1965
|
+
twitter?: string | null | undefined;
|
|
1966
|
+
/** @deprecated use urls */
|
|
1967
|
+
instagram?: string | null | undefined;
|
|
1968
|
+
birthdate?: string | null | undefined;
|
|
1969
|
+
ethnicity?: string | null | undefined;
|
|
1970
|
+
country?: string | null | undefined;
|
|
1971
|
+
eye_color?: string | null | undefined;
|
|
1972
|
+
height?: string | null | undefined;
|
|
1973
|
+
measurements?: string | null | undefined;
|
|
1974
|
+
fake_tits?: string | null | undefined;
|
|
1975
|
+
penis_length?: string | null | undefined;
|
|
1976
|
+
circumcised?: string | null | undefined;
|
|
1977
|
+
/** @deprecated Use career_start and career_end */
|
|
1978
|
+
career_length?: string | null | undefined;
|
|
1979
|
+
career_start?: string | null | undefined;
|
|
1980
|
+
career_end?: string | null | undefined;
|
|
1981
|
+
tattoos?: string | null | undefined;
|
|
1982
|
+
piercings?: string | null | undefined;
|
|
1983
|
+
aliases?: string | null | undefined;
|
|
1984
|
+
details?: string | null | undefined;
|
|
1985
|
+
death_date?: string | null | undefined;
|
|
1986
|
+
hair_color?: string | null | undefined;
|
|
1987
|
+
weight?: string | null | undefined;
|
|
1988
|
+
remote_site_id?: string | null | undefined;
|
|
1989
|
+
}
|
|
1990
|
+
export type ScrapeType = "NAME" | "FRAGMENT" | "URL";
|
|
1991
|
+
/** Type of the content a scraper generates */
|
|
1992
|
+
export type ScrapeContentType = "GALLERY" | "IMAGE" | "MOVIE" | "GROUP" | "PERFORMER" | "SCENE";
|
|
1993
|
+
export interface ScrapedSceneInput {
|
|
1994
|
+
title?: string | null | undefined;
|
|
1995
|
+
code?: string | null | undefined;
|
|
1996
|
+
details?: string | null | undefined;
|
|
1997
|
+
director?: string | null | undefined;
|
|
1998
|
+
/** @deprecated use urls */
|
|
1999
|
+
url?: string | null | undefined;
|
|
2000
|
+
urls?: Array<string> | null | undefined;
|
|
2001
|
+
date?: string | null | undefined;
|
|
2002
|
+
remote_site_id?: string | null | undefined;
|
|
2003
|
+
}
|
|
2004
|
+
export interface ScrapedGalleryInput {
|
|
2005
|
+
title?: string | null | undefined;
|
|
2006
|
+
code?: string | null | undefined;
|
|
2007
|
+
details?: string | null | undefined;
|
|
2008
|
+
photographer?: string | null | undefined;
|
|
2009
|
+
/** @deprecated use urls */
|
|
2010
|
+
url?: string | null | undefined;
|
|
2011
|
+
urls?: Array<string> | null | undefined;
|
|
2012
|
+
date?: string | null | undefined;
|
|
2013
|
+
}
|
|
2014
|
+
export interface ScrapedImageInput {
|
|
2015
|
+
title?: string | null | undefined;
|
|
2016
|
+
code?: string | null | undefined;
|
|
2017
|
+
details?: string | null | undefined;
|
|
2018
|
+
urls?: Array<string> | null | undefined;
|
|
2019
|
+
date?: string | null | undefined;
|
|
2020
|
+
}
|
|
2021
|
+
export interface ScraperSourceInput {
|
|
2022
|
+
/**
|
|
2023
|
+
* Index of the configured stash-box instance to use. Should be unset if scraper_id is set
|
|
2024
|
+
* @deprecated use stash_box_endpoint
|
|
2025
|
+
*/
|
|
2026
|
+
stash_box_index?: number | null | undefined;
|
|
2027
|
+
/** Stash-box endpoint */
|
|
2028
|
+
stash_box_endpoint?: string | null | undefined;
|
|
2029
|
+
/** Scraper ID to scrape with. Should be unset if stash_box_endpoint/stash_box_index is set */
|
|
2030
|
+
scraper_id?: string | null | undefined;
|
|
2031
|
+
}
|
|
2032
|
+
export interface ScrapeSingleSceneInput {
|
|
2033
|
+
/** Instructs to query by string */
|
|
2034
|
+
query?: string | null | undefined;
|
|
2035
|
+
/** Instructs to query by scene fingerprints */
|
|
2036
|
+
scene_id?: string | null | undefined;
|
|
2037
|
+
/** Instructs to query by scene fragment */
|
|
2038
|
+
scene_input?: ScrapedSceneInput | null | undefined;
|
|
2039
|
+
}
|
|
2040
|
+
export interface ScrapeMultiScenesInput {
|
|
2041
|
+
/** Instructs to query by scene fingerprints */
|
|
2042
|
+
scene_ids?: Array<string> | null | undefined;
|
|
2043
|
+
}
|
|
2044
|
+
export interface ScrapeSingleStudioInput {
|
|
2045
|
+
/** Query can be either a name or a Stash ID */
|
|
2046
|
+
query?: string | null | undefined;
|
|
2047
|
+
}
|
|
2048
|
+
export interface ScrapeSingleTagInput {
|
|
2049
|
+
/** Query can be either a name or a Stash ID */
|
|
2050
|
+
query?: string | null | undefined;
|
|
2051
|
+
}
|
|
2052
|
+
export interface ScrapeSinglePerformerInput {
|
|
2053
|
+
/** Instructs to query by string */
|
|
2054
|
+
query?: string | null | undefined;
|
|
2055
|
+
/** Instructs to query by performer id */
|
|
2056
|
+
performer_id?: string | null | undefined;
|
|
2057
|
+
/** Instructs to query by performer fragment */
|
|
2058
|
+
performer_input?: ScrapedPerformerInput | null | undefined;
|
|
2059
|
+
}
|
|
2060
|
+
export interface ScrapeMultiPerformersInput {
|
|
2061
|
+
/** Instructs to query by scene fingerprints */
|
|
2062
|
+
performer_ids?: Array<string> | null | undefined;
|
|
2063
|
+
}
|
|
2064
|
+
export interface ScrapeSingleGalleryInput {
|
|
2065
|
+
/** Instructs to query by string */
|
|
2066
|
+
query?: string | null | undefined;
|
|
2067
|
+
/** Instructs to query by gallery id */
|
|
2068
|
+
gallery_id?: string | null | undefined;
|
|
2069
|
+
/** Instructs to query by gallery fragment */
|
|
2070
|
+
gallery_input?: ScrapedGalleryInput | null | undefined;
|
|
2071
|
+
}
|
|
2072
|
+
export interface ScrapeSingleImageInput {
|
|
2073
|
+
/** Instructs to query by string */
|
|
2074
|
+
query?: string | null | undefined;
|
|
2075
|
+
/** Instructs to query by image id */
|
|
2076
|
+
image_id?: string | null | undefined;
|
|
2077
|
+
/** Instructs to query by image fragment */
|
|
2078
|
+
image_input?: ScrapedImageInput | null | undefined;
|
|
2079
|
+
}
|
|
2080
|
+
export interface ScrapeSingleMovieInput {
|
|
2081
|
+
/** Instructs to query by string */
|
|
2082
|
+
query?: string | null | undefined;
|
|
2083
|
+
/** Instructs to query by movie id */
|
|
2084
|
+
movie_id?: string | null | undefined;
|
|
2085
|
+
/** Instructs to query by movie fragment */
|
|
2086
|
+
movie_input?: ScrapedMovieInput | null | undefined;
|
|
2087
|
+
}
|
|
2088
|
+
export interface ScrapeSingleGroupInput {
|
|
2089
|
+
/** Instructs to query by string */
|
|
2090
|
+
query?: string | null | undefined;
|
|
2091
|
+
/** Instructs to query by group id */
|
|
2092
|
+
group_id?: string | null | undefined;
|
|
2093
|
+
/** Instructs to query by group fragment */
|
|
2094
|
+
group_input?: ScrapedGroupInput | null | undefined;
|
|
2095
|
+
}
|
|
2096
|
+
export interface StashBoxSceneQueryInput {
|
|
2097
|
+
/**
|
|
2098
|
+
* Index of the configured stash-box instance to use
|
|
2099
|
+
* @deprecated use stash_box_endpoint
|
|
2100
|
+
*/
|
|
2101
|
+
stash_box_index?: number | null | undefined;
|
|
2102
|
+
/** Endpoint of the stash-box instance to use */
|
|
2103
|
+
stash_box_endpoint?: string | null | undefined;
|
|
2104
|
+
/** Instructs query by scene fingerprints */
|
|
2105
|
+
scene_ids?: Array<string> | null | undefined;
|
|
2106
|
+
/** Query by query string */
|
|
2107
|
+
q?: string | null | undefined;
|
|
2108
|
+
}
|
|
2109
|
+
export interface StashBoxPerformerQueryInput {
|
|
2110
|
+
/**
|
|
2111
|
+
* Index of the configured stash-box instance to use
|
|
2112
|
+
* @deprecated use stash_box_endpoint
|
|
2113
|
+
*/
|
|
2114
|
+
stash_box_index?: number | null | undefined;
|
|
2115
|
+
/** Endpoint of the stash-box instance to use */
|
|
2116
|
+
stash_box_endpoint?: string | null | undefined;
|
|
2117
|
+
/** Instructs query by scene fingerprints */
|
|
2118
|
+
performer_ids?: Array<string> | null | undefined;
|
|
2119
|
+
/** Query by query string */
|
|
2120
|
+
q?: string | null | undefined;
|
|
2121
|
+
}
|
|
2122
|
+
/**
|
|
2123
|
+
* Accepts either ids, or a combination of names and stash_ids.
|
|
2124
|
+
* If none are set, then all existing items will be tagged.
|
|
2125
|
+
*/
|
|
2126
|
+
export interface StashBoxBatchTagInput {
|
|
2127
|
+
/**
|
|
2128
|
+
* Stash endpoint to use for the tagging
|
|
2129
|
+
* @deprecated use stash_box_endpoint
|
|
2130
|
+
*/
|
|
2131
|
+
endpoint?: number | null | undefined;
|
|
2132
|
+
/** Endpoint of the stash-box instance to use */
|
|
2133
|
+
stash_box_endpoint?: string | null | undefined;
|
|
2134
|
+
/** Fields to exclude when executing the tagging */
|
|
2135
|
+
exclude_fields?: Array<string> | null | undefined;
|
|
2136
|
+
/** Refresh items already tagged by StashBox if true. Only tag items with no StashBox tagging if false */
|
|
2137
|
+
refresh: boolean;
|
|
2138
|
+
/** If batch adding studios, should their parent studios also be created? */
|
|
2139
|
+
createParent: boolean;
|
|
2140
|
+
/**
|
|
2141
|
+
* IDs in stash of the items to update.
|
|
2142
|
+
* If set, names and stash_ids fields will be ignored.
|
|
2143
|
+
*/
|
|
2144
|
+
ids?: Array<string> | null | undefined;
|
|
2145
|
+
/** Names of the items in the stash-box instance to search for and create */
|
|
2146
|
+
names?: Array<string> | null | undefined;
|
|
2147
|
+
/** Stash IDs of the items in the stash-box instance to search for and create */
|
|
2148
|
+
stash_ids?: Array<string> | null | undefined;
|
|
2149
|
+
/**
|
|
2150
|
+
* IDs in stash of the performers to update
|
|
2151
|
+
* @deprecated use ids
|
|
2152
|
+
*/
|
|
2153
|
+
performer_ids?: Array<string> | null | undefined;
|
|
2154
|
+
/**
|
|
2155
|
+
* Names of the performers in the stash-box instance to search for and create
|
|
2156
|
+
* @deprecated use names
|
|
2157
|
+
*/
|
|
2158
|
+
performer_names?: Array<string> | null | undefined;
|
|
2159
|
+
}
|
|
2160
|
+
export interface StashBoxInput {
|
|
2161
|
+
endpoint: string;
|
|
2162
|
+
api_key: string;
|
|
2163
|
+
name: string;
|
|
2164
|
+
max_requests_per_minute?: number | null | undefined;
|
|
2165
|
+
}
|
|
2166
|
+
export interface StashIDInput {
|
|
2167
|
+
endpoint: string;
|
|
2168
|
+
stash_id: string;
|
|
2169
|
+
updated_at?: string | null | undefined;
|
|
2170
|
+
}
|
|
2171
|
+
export interface StashBoxFingerprintSubmissionInput {
|
|
2172
|
+
scene_ids: Array<string>;
|
|
2173
|
+
/** @deprecated use stash_box_endpoint */
|
|
2174
|
+
stash_box_index?: number | null | undefined;
|
|
2175
|
+
stash_box_endpoint?: string | null | undefined;
|
|
2176
|
+
}
|
|
2177
|
+
export interface StashBoxDraftSubmissionInput {
|
|
2178
|
+
id: string;
|
|
2179
|
+
/** @deprecated use stash_box_endpoint */
|
|
2180
|
+
stash_box_index?: number | null | undefined;
|
|
2181
|
+
stash_box_endpoint?: string | null | undefined;
|
|
2182
|
+
}
|
|
2183
|
+
export interface StudioCreateInput {
|
|
2184
|
+
name: string;
|
|
2185
|
+
/** @deprecated Use urls */
|
|
2186
|
+
url?: string | null | undefined;
|
|
2187
|
+
urls?: Array<string> | null | undefined;
|
|
2188
|
+
parent_id?: string | null | undefined;
|
|
2189
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
2190
|
+
image?: string | null | undefined;
|
|
2191
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
2192
|
+
rating100?: number | null | undefined;
|
|
2193
|
+
favorite?: boolean | null | undefined;
|
|
2194
|
+
details?: string | null | undefined;
|
|
2195
|
+
/** Duplicate aliases and those equal to name will be ignored (case-insensitive) */
|
|
2196
|
+
aliases?: Array<string> | null | undefined;
|
|
2197
|
+
tag_ids?: Array<string> | null | undefined;
|
|
2198
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
2199
|
+
organized?: boolean | null | undefined;
|
|
2200
|
+
custom_fields?: Record<string, unknown> | null | undefined;
|
|
2201
|
+
}
|
|
2202
|
+
export interface StudioUpdateInput {
|
|
2203
|
+
id: string;
|
|
2204
|
+
name?: string | null | undefined;
|
|
2205
|
+
/** @deprecated Use urls */
|
|
2206
|
+
url?: string | null | undefined;
|
|
2207
|
+
urls?: Array<string> | null | undefined;
|
|
2208
|
+
parent_id?: string | null | undefined;
|
|
2209
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
2210
|
+
image?: string | null | undefined;
|
|
2211
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
2212
|
+
rating100?: number | null | undefined;
|
|
2213
|
+
favorite?: boolean | null | undefined;
|
|
2214
|
+
details?: string | null | undefined;
|
|
2215
|
+
/** Duplicate aliases and those equal to name will be ignored (case-insensitive) */
|
|
2216
|
+
aliases?: Array<string> | null | undefined;
|
|
2217
|
+
tag_ids?: Array<string> | null | undefined;
|
|
2218
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
2219
|
+
organized?: boolean | null | undefined;
|
|
2220
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
2221
|
+
}
|
|
2222
|
+
export interface BulkStudioUpdateInput {
|
|
2223
|
+
ids: Array<string>;
|
|
2224
|
+
/** @deprecated Use urls */
|
|
2225
|
+
url?: string | null | undefined;
|
|
2226
|
+
urls?: BulkUpdateStrings | null | undefined;
|
|
2227
|
+
parent_id?: string | null | undefined;
|
|
2228
|
+
rating100?: number | null | undefined;
|
|
2229
|
+
favorite?: boolean | null | undefined;
|
|
2230
|
+
details?: string | null | undefined;
|
|
2231
|
+
tag_ids?: BulkUpdateIds | null | undefined;
|
|
2232
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
2233
|
+
organized?: boolean | null | undefined;
|
|
2234
|
+
}
|
|
2235
|
+
export interface StudioDestroyInput {
|
|
2236
|
+
id: string;
|
|
2237
|
+
}
|
|
2238
|
+
export interface TagCreateInput {
|
|
2239
|
+
name: string;
|
|
2240
|
+
/** Value that does not appear in the UI but overrides name for sorting */
|
|
2241
|
+
sort_name?: string | null | undefined;
|
|
2242
|
+
description?: string | null | undefined;
|
|
2243
|
+
/** Duplicate aliases and those equal to name will be ignored (case-insensitive) */
|
|
2244
|
+
aliases?: Array<string> | null | undefined;
|
|
2245
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
2246
|
+
favorite?: boolean | null | undefined;
|
|
2247
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
2248
|
+
image?: string | null | undefined;
|
|
2249
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
2250
|
+
parent_ids?: Array<string> | null | undefined;
|
|
2251
|
+
child_ids?: Array<string> | null | undefined;
|
|
2252
|
+
custom_fields?: Record<string, unknown> | null | undefined;
|
|
2253
|
+
}
|
|
2254
|
+
export interface TagUpdateInput {
|
|
2255
|
+
id: string;
|
|
2256
|
+
name?: string | null | undefined;
|
|
2257
|
+
/** Value that does not appear in the UI but overrides name for sorting */
|
|
2258
|
+
sort_name?: string | null | undefined;
|
|
2259
|
+
description?: string | null | undefined;
|
|
2260
|
+
/** Duplicate aliases and those equal to name will be ignored (case-insensitive) */
|
|
2261
|
+
aliases?: Array<string> | null | undefined;
|
|
2262
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
2263
|
+
favorite?: boolean | null | undefined;
|
|
2264
|
+
/** This should be a URL or a base64 encoded data URL */
|
|
2265
|
+
image?: string | null | undefined;
|
|
2266
|
+
stash_ids?: Array<StashIDInput> | null | undefined;
|
|
2267
|
+
parent_ids?: Array<string> | null | undefined;
|
|
2268
|
+
child_ids?: Array<string> | null | undefined;
|
|
2269
|
+
custom_fields?: CustomFieldsInput | null | undefined;
|
|
2270
|
+
}
|
|
2271
|
+
export interface TagDestroyInput {
|
|
2272
|
+
id: string;
|
|
2273
|
+
}
|
|
2274
|
+
export interface TagsMergeInput {
|
|
2275
|
+
source: Array<string>;
|
|
2276
|
+
destination: string;
|
|
2277
|
+
values?: TagUpdateInput | null | undefined;
|
|
2278
|
+
}
|
|
2279
|
+
export interface BulkTagUpdateInput {
|
|
2280
|
+
ids?: Array<string> | null | undefined;
|
|
2281
|
+
description?: string | null | undefined;
|
|
2282
|
+
/** Duplicate aliases and those equal to name will result in an error (case-insensitive) */
|
|
2283
|
+
aliases?: BulkUpdateStrings | null | undefined;
|
|
2284
|
+
ignore_auto_tag?: boolean | null | undefined;
|
|
2285
|
+
favorite?: boolean | null | undefined;
|
|
2286
|
+
parent_ids?: BulkUpdateIds | null | undefined;
|
|
2287
|
+
child_ids?: BulkUpdateIds | null | undefined;
|
|
2288
|
+
}
|
|
2289
|
+
export interface Objects {
|
|
2290
|
+
/** The query root for this schema */
|
|
2291
|
+
Query: {
|
|
2292
|
+
findSavedFilter: F<{
|
|
2293
|
+
id: string;
|
|
2294
|
+
}, N<R<"SavedFilter">>>;
|
|
2295
|
+
findSavedFilters: F<{
|
|
2296
|
+
mode?: FilterMode | null | undefined;
|
|
2297
|
+
}, L<R<"SavedFilter">>>;
|
|
2298
|
+
/** @deprecated default filter now stored in UI config */
|
|
2299
|
+
findDefaultFilter: F<{
|
|
2300
|
+
mode: FilterMode;
|
|
2301
|
+
}, N<R<"SavedFilter">>>;
|
|
2302
|
+
/** Find a file by its id or path */
|
|
2303
|
+
findFile: F<{
|
|
2304
|
+
id?: string | null | undefined;
|
|
2305
|
+
path?: string | null | undefined;
|
|
2306
|
+
}, R<"BaseFile">>;
|
|
2307
|
+
/** Queries for Files */
|
|
2308
|
+
findFiles: F<{
|
|
2309
|
+
file_filter?: FileFilterType | null | undefined;
|
|
2310
|
+
filter?: FindFilterType | null | undefined;
|
|
2311
|
+
ids?: Array<string> | null | undefined;
|
|
2312
|
+
}, R<"FindFilesResultType">>;
|
|
2313
|
+
/** Find a file by its id or path */
|
|
2314
|
+
findFolder: F<{
|
|
2315
|
+
id?: string | null | undefined;
|
|
2316
|
+
path?: string | null | undefined;
|
|
2317
|
+
}, R<"Folder">>;
|
|
2318
|
+
/** Queries for Files */
|
|
2319
|
+
findFolders: F<{
|
|
2320
|
+
folder_filter?: FolderFilterType | null | undefined;
|
|
2321
|
+
filter?: FindFilterType | null | undefined;
|
|
2322
|
+
ids?: Array<string> | null | undefined;
|
|
2323
|
+
}, R<"FindFoldersResultType">>;
|
|
2324
|
+
/** Find a scene by ID or Checksum */
|
|
2325
|
+
findScene: F<{
|
|
2326
|
+
id?: string | null | undefined;
|
|
2327
|
+
checksum?: string | null | undefined;
|
|
2328
|
+
}, N<R<"Scene">>>;
|
|
2329
|
+
findSceneByHash: F<{
|
|
2330
|
+
input: SceneHashInput;
|
|
2331
|
+
}, N<R<"Scene">>>;
|
|
2332
|
+
/** A function which queries Scene objects */
|
|
2333
|
+
findScenes: F<{
|
|
2334
|
+
scene_filter?: SceneFilterType | null | undefined;
|
|
2335
|
+
/** @deprecated use ids */
|
|
2336
|
+
scene_ids?: Array<number> | null | undefined;
|
|
2337
|
+
ids?: Array<string> | null | undefined;
|
|
2338
|
+
filter?: FindFilterType | null | undefined;
|
|
2339
|
+
}, R<"FindScenesResultType">>;
|
|
2340
|
+
findScenesByPathRegex: F<{
|
|
2341
|
+
filter?: FindFilterType | null | undefined;
|
|
2342
|
+
}, R<"FindScenesResultType">>;
|
|
2343
|
+
/**
|
|
2344
|
+
* Returns any groups of scenes that are perceptual duplicates within the queried distance
|
|
2345
|
+
* and the difference between their duration is smaller than durationDiff
|
|
2346
|
+
*/
|
|
2347
|
+
findDuplicateScenes: F<{
|
|
2348
|
+
distance?: number | null | undefined;
|
|
2349
|
+
/**
|
|
2350
|
+
* Max difference in seconds between files in order to be considered for similarity matching.
|
|
2351
|
+
* Fractional seconds are ok: 0.5 will mean only files that have durations within 0.5 seconds between them will be matched based on PHash distance.
|
|
2352
|
+
*/
|
|
2353
|
+
duration_diff?: number | null | undefined;
|
|
2354
|
+
}, L<L<R<"Scene">>>>;
|
|
2355
|
+
/** Return valid stream paths */
|
|
2356
|
+
sceneStreams: F<{
|
|
2357
|
+
id?: string | null | undefined;
|
|
2358
|
+
}, L<R<"SceneStreamEndpoint">>>;
|
|
2359
|
+
parseSceneFilenames: F<{
|
|
2360
|
+
filter?: FindFilterType | null | undefined;
|
|
2361
|
+
config: SceneParserInput;
|
|
2362
|
+
}, R<"SceneParserResultType">>;
|
|
2363
|
+
/** A function which queries SceneMarker objects */
|
|
2364
|
+
findSceneMarkers: F<{
|
|
2365
|
+
scene_marker_filter?: SceneMarkerFilterType | null | undefined;
|
|
2366
|
+
filter?: FindFilterType | null | undefined;
|
|
2367
|
+
ids?: Array<string> | null | undefined;
|
|
2368
|
+
}, R<"FindSceneMarkersResultType">>;
|
|
2369
|
+
findImage: F<{
|
|
2370
|
+
id?: string | null | undefined;
|
|
2371
|
+
checksum?: string | null | undefined;
|
|
2372
|
+
}, N<R<"Image">>>;
|
|
2373
|
+
/** A function which queries Scene objects */
|
|
2374
|
+
findImages: F<{
|
|
2375
|
+
image_filter?: ImageFilterType | null | undefined;
|
|
2376
|
+
/** @deprecated use ids */
|
|
2377
|
+
image_ids?: Array<number> | null | undefined;
|
|
2378
|
+
ids?: Array<string> | null | undefined;
|
|
2379
|
+
filter?: FindFilterType | null | undefined;
|
|
2380
|
+
}, R<"FindImagesResultType">>;
|
|
2381
|
+
/** Find a performer by ID */
|
|
2382
|
+
findPerformer: F<{
|
|
2383
|
+
id: string;
|
|
2384
|
+
}, N<R<"Performer">>>;
|
|
2385
|
+
/** A function which queries Performer objects */
|
|
2386
|
+
findPerformers: F<{
|
|
2387
|
+
performer_filter?: PerformerFilterType | null | undefined;
|
|
2388
|
+
filter?: FindFilterType | null | undefined;
|
|
2389
|
+
/** @deprecated use ids */
|
|
2390
|
+
performer_ids?: Array<number> | null | undefined;
|
|
2391
|
+
ids?: Array<string> | null | undefined;
|
|
2392
|
+
}, R<"FindPerformersResultType">>;
|
|
2393
|
+
/** Find a studio by ID */
|
|
2394
|
+
findStudio: F<{
|
|
2395
|
+
id: string;
|
|
2396
|
+
}, N<R<"Studio">>>;
|
|
2397
|
+
/** A function which queries Studio objects */
|
|
2398
|
+
findStudios: F<{
|
|
2399
|
+
studio_filter?: StudioFilterType | null | undefined;
|
|
2400
|
+
filter?: FindFilterType | null | undefined;
|
|
2401
|
+
ids?: Array<string> | null | undefined;
|
|
2402
|
+
}, R<"FindStudiosResultType">>;
|
|
2403
|
+
/**
|
|
2404
|
+
* Find a movie by ID
|
|
2405
|
+
* @deprecated Use findGroup instead
|
|
2406
|
+
*/
|
|
2407
|
+
findMovie: F<{
|
|
2408
|
+
id: string;
|
|
2409
|
+
}, N<R<"Movie">>>;
|
|
2410
|
+
/**
|
|
2411
|
+
* A function which queries Movie objects
|
|
2412
|
+
* @deprecated Use findGroups instead
|
|
2413
|
+
*/
|
|
2414
|
+
findMovies: F<{
|
|
2415
|
+
movie_filter?: MovieFilterType | null | undefined;
|
|
2416
|
+
filter?: FindFilterType | null | undefined;
|
|
2417
|
+
ids?: Array<string> | null | undefined;
|
|
2418
|
+
}, R<"FindMoviesResultType">>;
|
|
2419
|
+
/** Find a group by ID */
|
|
2420
|
+
findGroup: F<{
|
|
2421
|
+
id: string;
|
|
2422
|
+
}, N<R<"Group">>>;
|
|
2423
|
+
/** A function which queries Group objects */
|
|
2424
|
+
findGroups: F<{
|
|
2425
|
+
group_filter?: GroupFilterType | null | undefined;
|
|
2426
|
+
filter?: FindFilterType | null | undefined;
|
|
2427
|
+
ids?: Array<string> | null | undefined;
|
|
2428
|
+
}, R<"FindGroupsResultType">>;
|
|
2429
|
+
findGallery: F<{
|
|
2430
|
+
id: string;
|
|
2431
|
+
}, N<R<"Gallery">>>;
|
|
2432
|
+
findGalleries: F<{
|
|
2433
|
+
gallery_filter?: GalleryFilterType | null | undefined;
|
|
2434
|
+
filter?: FindFilterType | null | undefined;
|
|
2435
|
+
ids?: Array<string> | null | undefined;
|
|
2436
|
+
}, R<"FindGalleriesResultType">>;
|
|
2437
|
+
findTag: F<{
|
|
2438
|
+
id: string;
|
|
2439
|
+
}, N<R<"Tag">>>;
|
|
2440
|
+
findTags: F<{
|
|
2441
|
+
tag_filter?: TagFilterType | null | undefined;
|
|
2442
|
+
filter?: FindFilterType | null | undefined;
|
|
2443
|
+
ids?: Array<string> | null | undefined;
|
|
2444
|
+
}, R<"FindTagsResultType">>;
|
|
2445
|
+
/** Retrieve random scene markers for the wall */
|
|
2446
|
+
markerWall: F<{
|
|
2447
|
+
q?: string | null | undefined;
|
|
2448
|
+
}, L<R<"SceneMarker">>>;
|
|
2449
|
+
/** Retrieve random scenes for the wall */
|
|
2450
|
+
sceneWall: F<{
|
|
2451
|
+
q?: string | null | undefined;
|
|
2452
|
+
}, L<R<"Scene">>>;
|
|
2453
|
+
/** Get marker strings */
|
|
2454
|
+
markerStrings: F<{
|
|
2455
|
+
q?: string | null | undefined;
|
|
2456
|
+
sort?: string | null | undefined;
|
|
2457
|
+
}, L<N<R<"MarkerStringsResultType">>>>;
|
|
2458
|
+
/** Get stats */
|
|
2459
|
+
stats: F<{}, R<"StatsResultType">>;
|
|
2460
|
+
/** Organize scene markers by tag for a given scene ID */
|
|
2461
|
+
sceneMarkerTags: F<{
|
|
2462
|
+
scene_id: string;
|
|
2463
|
+
}, L<R<"SceneMarkerTag">>>;
|
|
2464
|
+
logs: F<{}, L<R<"LogEntry">>>;
|
|
2465
|
+
/** List available scrapers */
|
|
2466
|
+
listScrapers: F<{
|
|
2467
|
+
types: Array<ScrapeContentType>;
|
|
2468
|
+
}, L<R<"Scraper">>>;
|
|
2469
|
+
/** Scrape for a single scene */
|
|
2470
|
+
scrapeSingleScene: F<{
|
|
2471
|
+
source: ScraperSourceInput;
|
|
2472
|
+
input: ScrapeSingleSceneInput;
|
|
2473
|
+
}, L<R<"ScrapedScene">>>;
|
|
2474
|
+
/** Scrape for multiple scenes */
|
|
2475
|
+
scrapeMultiScenes: F<{
|
|
2476
|
+
source: ScraperSourceInput;
|
|
2477
|
+
input: ScrapeMultiScenesInput;
|
|
2478
|
+
}, L<L<R<"ScrapedScene">>>>;
|
|
2479
|
+
/** Scrape for a single studio */
|
|
2480
|
+
scrapeSingleStudio: F<{
|
|
2481
|
+
source: ScraperSourceInput;
|
|
2482
|
+
input: ScrapeSingleStudioInput;
|
|
2483
|
+
}, L<R<"ScrapedStudio">>>;
|
|
2484
|
+
/** Scrape for a single tag */
|
|
2485
|
+
scrapeSingleTag: F<{
|
|
2486
|
+
source: ScraperSourceInput;
|
|
2487
|
+
input: ScrapeSingleTagInput;
|
|
2488
|
+
}, L<R<"ScrapedTag">>>;
|
|
2489
|
+
/** Scrape for a single performer */
|
|
2490
|
+
scrapeSinglePerformer: F<{
|
|
2491
|
+
source: ScraperSourceInput;
|
|
2492
|
+
input: ScrapeSinglePerformerInput;
|
|
2493
|
+
}, L<R<"ScrapedPerformer">>>;
|
|
2494
|
+
/** Scrape for multiple performers */
|
|
2495
|
+
scrapeMultiPerformers: F<{
|
|
2496
|
+
source: ScraperSourceInput;
|
|
2497
|
+
input: ScrapeMultiPerformersInput;
|
|
2498
|
+
}, L<L<R<"ScrapedPerformer">>>>;
|
|
2499
|
+
/** Scrape for a single gallery */
|
|
2500
|
+
scrapeSingleGallery: F<{
|
|
2501
|
+
source: ScraperSourceInput;
|
|
2502
|
+
input: ScrapeSingleGalleryInput;
|
|
2503
|
+
}, L<R<"ScrapedGallery">>>;
|
|
2504
|
+
/**
|
|
2505
|
+
* Scrape for a single movie
|
|
2506
|
+
* @deprecated Use scrapeSingleGroup instead
|
|
2507
|
+
*/
|
|
2508
|
+
scrapeSingleMovie: F<{
|
|
2509
|
+
source: ScraperSourceInput;
|
|
2510
|
+
input: ScrapeSingleMovieInput;
|
|
2511
|
+
}, L<R<"ScrapedMovie">>>;
|
|
2512
|
+
/** Scrape for a single group */
|
|
2513
|
+
scrapeSingleGroup: F<{
|
|
2514
|
+
source: ScraperSourceInput;
|
|
2515
|
+
input: ScrapeSingleGroupInput;
|
|
2516
|
+
}, L<R<"ScrapedGroup">>>;
|
|
2517
|
+
/** Scrape for a single image */
|
|
2518
|
+
scrapeSingleImage: F<{
|
|
2519
|
+
source: ScraperSourceInput;
|
|
2520
|
+
input: ScrapeSingleImageInput;
|
|
2521
|
+
}, L<R<"ScrapedImage">>>;
|
|
2522
|
+
/** Scrapes content based on a URL */
|
|
2523
|
+
scrapeURL: F<{
|
|
2524
|
+
url: string;
|
|
2525
|
+
ty: ScrapeContentType;
|
|
2526
|
+
}, N<R<"ScrapedContent">>>;
|
|
2527
|
+
/** Scrapes a complete performer record based on a URL */
|
|
2528
|
+
scrapePerformerURL: F<{
|
|
2529
|
+
url: string;
|
|
2530
|
+
}, N<R<"ScrapedPerformer">>>;
|
|
2531
|
+
/** Scrapes a complete scene record based on a URL */
|
|
2532
|
+
scrapeSceneURL: F<{
|
|
2533
|
+
url: string;
|
|
2534
|
+
}, N<R<"ScrapedScene">>>;
|
|
2535
|
+
/** Scrapes a complete gallery record based on a URL */
|
|
2536
|
+
scrapeGalleryURL: F<{
|
|
2537
|
+
url: string;
|
|
2538
|
+
}, N<R<"ScrapedGallery">>>;
|
|
2539
|
+
/** Scrapes a complete image record based on a URL */
|
|
2540
|
+
scrapeImageURL: F<{
|
|
2541
|
+
url: string;
|
|
2542
|
+
}, N<R<"ScrapedImage">>>;
|
|
2543
|
+
/**
|
|
2544
|
+
* Scrapes a complete movie record based on a URL
|
|
2545
|
+
* @deprecated Use scrapeGroupURL instead
|
|
2546
|
+
*/
|
|
2547
|
+
scrapeMovieURL: F<{
|
|
2548
|
+
url: string;
|
|
2549
|
+
}, N<R<"ScrapedMovie">>>;
|
|
2550
|
+
/** Scrapes a complete group record based on a URL */
|
|
2551
|
+
scrapeGroupURL: F<{
|
|
2552
|
+
url: string;
|
|
2553
|
+
}, N<R<"ScrapedGroup">>>;
|
|
2554
|
+
/** List loaded plugins */
|
|
2555
|
+
plugins: F<{}, N<L<R<"Plugin">>>>;
|
|
2556
|
+
/** List available plugin operations */
|
|
2557
|
+
pluginTasks: F<{}, N<L<R<"PluginTask">>>>;
|
|
2558
|
+
/** List installed packages */
|
|
2559
|
+
installedPackages: F<{
|
|
2560
|
+
type: PackageType;
|
|
2561
|
+
}, L<R<"Package">>>;
|
|
2562
|
+
/** List available packages */
|
|
2563
|
+
availablePackages: F<{
|
|
2564
|
+
type: PackageType;
|
|
2565
|
+
source: string;
|
|
2566
|
+
}, L<R<"Package">>>;
|
|
2567
|
+
/** Returns the current, complete configuration */
|
|
2568
|
+
configuration: F<{}, R<"ConfigResult">>;
|
|
2569
|
+
/** Returns an array of paths for the given path */
|
|
2570
|
+
directory: F<{
|
|
2571
|
+
/** The directory path to list */
|
|
2572
|
+
path?: string | null | undefined;
|
|
2573
|
+
/** Desired collation locale. Determines the order of the directory result. eg. 'en-US', 'pt-BR', ... */
|
|
2574
|
+
locale?: string | null | undefined;
|
|
2575
|
+
}, R<"Directory">>;
|
|
2576
|
+
validateStashBoxCredentials: F<{
|
|
2577
|
+
input: StashBoxInput;
|
|
2578
|
+
}, R<"StashBoxValidationResult">>;
|
|
2579
|
+
systemStatus: F<{}, R<"SystemStatus">>;
|
|
2580
|
+
jobQueue: F<{}, N<L<R<"Job">>>>;
|
|
2581
|
+
findJob: F<{
|
|
2582
|
+
input: FindJobInput;
|
|
2583
|
+
}, N<R<"Job">>>;
|
|
2584
|
+
dlnaStatus: F<{}, R<"DLNAStatus">>;
|
|
2585
|
+
/** @deprecated Use findScenes instead */
|
|
2586
|
+
allScenes: F<{}, L<R<"Scene">>>;
|
|
2587
|
+
/** @deprecated Use findSceneMarkers instead */
|
|
2588
|
+
allSceneMarkers: F<{}, L<R<"SceneMarker">>>;
|
|
2589
|
+
/** @deprecated Use findImages instead */
|
|
2590
|
+
allImages: F<{}, L<R<"Image">>>;
|
|
2591
|
+
/** @deprecated Use findGalleries instead */
|
|
2592
|
+
allGalleries: F<{}, L<R<"Gallery">>>;
|
|
2593
|
+
allPerformers: F<{}, L<R<"Performer">>>;
|
|
2594
|
+
/** @deprecated Use findTags instead */
|
|
2595
|
+
allTags: F<{}, L<R<"Tag">>>;
|
|
2596
|
+
/** @deprecated Use findStudios instead */
|
|
2597
|
+
allStudios: F<{}, L<R<"Studio">>>;
|
|
2598
|
+
/** @deprecated Use findGroups instead */
|
|
2599
|
+
allMovies: F<{}, L<R<"Movie">>>;
|
|
2600
|
+
version: F<{}, R<"Version">>;
|
|
2601
|
+
latestversion: F<{}, R<"LatestVersion">>;
|
|
2602
|
+
};
|
|
2603
|
+
Mutation: {
|
|
2604
|
+
setup: F<{
|
|
2605
|
+
input: SetupInput;
|
|
2606
|
+
}, boolean>;
|
|
2607
|
+
/** Migrates the schema to the required version. Returns the job ID */
|
|
2608
|
+
migrate: F<{
|
|
2609
|
+
input: MigrateInput;
|
|
2610
|
+
}, string>;
|
|
2611
|
+
/** Downloads and installs ffmpeg and ffprobe binaries into the configuration directory. Returns the job ID. */
|
|
2612
|
+
downloadFFMpeg: F<{}, string>;
|
|
2613
|
+
sceneCreate: F<{
|
|
2614
|
+
input: SceneCreateInput;
|
|
2615
|
+
}, N<R<"Scene">>>;
|
|
2616
|
+
sceneUpdate: F<{
|
|
2617
|
+
input: SceneUpdateInput;
|
|
2618
|
+
}, N<R<"Scene">>>;
|
|
2619
|
+
sceneMerge: F<{
|
|
2620
|
+
input: SceneMergeInput;
|
|
2621
|
+
}, N<R<"Scene">>>;
|
|
2622
|
+
bulkSceneUpdate: F<{
|
|
2623
|
+
input: BulkSceneUpdateInput;
|
|
2624
|
+
}, N<L<R<"Scene">>>>;
|
|
2625
|
+
sceneDestroy: F<{
|
|
2626
|
+
input: SceneDestroyInput;
|
|
2627
|
+
}, boolean>;
|
|
2628
|
+
scenesDestroy: F<{
|
|
2629
|
+
input: ScenesDestroyInput;
|
|
2630
|
+
}, boolean>;
|
|
2631
|
+
scenesUpdate: F<{
|
|
2632
|
+
input: Array<SceneUpdateInput>;
|
|
2633
|
+
}, N<L<N<R<"Scene">>>>>;
|
|
2634
|
+
/**
|
|
2635
|
+
* Increments the o-counter for a scene. Returns the new value
|
|
2636
|
+
* @deprecated Use sceneAddO instead
|
|
2637
|
+
*/
|
|
2638
|
+
sceneIncrementO: F<{
|
|
2639
|
+
id: string;
|
|
2640
|
+
}, number>;
|
|
2641
|
+
/**
|
|
2642
|
+
* Decrements the o-counter for a scene. Returns the new value
|
|
2643
|
+
* @deprecated Use sceneRemoveO instead
|
|
2644
|
+
*/
|
|
2645
|
+
sceneDecrementO: F<{
|
|
2646
|
+
id: string;
|
|
2647
|
+
}, number>;
|
|
2648
|
+
/** Increments the o-counter for a scene. Uses the current time if none provided. */
|
|
2649
|
+
sceneAddO: F<{
|
|
2650
|
+
id: string;
|
|
2651
|
+
times?: Array<string> | null | undefined;
|
|
2652
|
+
}, R<"HistoryMutationResult">>;
|
|
2653
|
+
/** Decrements the o-counter for a scene, removing the last recorded time if specific time not provided. Returns the new value */
|
|
2654
|
+
sceneDeleteO: F<{
|
|
2655
|
+
id: string;
|
|
2656
|
+
times?: Array<string> | null | undefined;
|
|
2657
|
+
}, R<"HistoryMutationResult">>;
|
|
2658
|
+
/** Resets the o-counter for a scene to 0. Returns the new value */
|
|
2659
|
+
sceneResetO: F<{
|
|
2660
|
+
id: string;
|
|
2661
|
+
}, number>;
|
|
2662
|
+
/** Sets the resume time point (if provided) and adds the provided duration to the scene's play duration */
|
|
2663
|
+
sceneSaveActivity: F<{
|
|
2664
|
+
id: string;
|
|
2665
|
+
resume_time?: number | null | undefined;
|
|
2666
|
+
playDuration?: number | null | undefined;
|
|
2667
|
+
}, boolean>;
|
|
2668
|
+
/** Resets the resume time point and play duration */
|
|
2669
|
+
sceneResetActivity: F<{
|
|
2670
|
+
id: string;
|
|
2671
|
+
reset_resume?: boolean | null | undefined;
|
|
2672
|
+
reset_duration?: boolean | null | undefined;
|
|
2673
|
+
}, boolean>;
|
|
2674
|
+
/**
|
|
2675
|
+
* Increments the play count for the scene. Returns the new play count value.
|
|
2676
|
+
* @deprecated Use sceneAddPlay instead
|
|
2677
|
+
*/
|
|
2678
|
+
sceneIncrementPlayCount: F<{
|
|
2679
|
+
id: string;
|
|
2680
|
+
}, number>;
|
|
2681
|
+
/** Increments the play count for the scene. Uses the current time if none provided. */
|
|
2682
|
+
sceneAddPlay: F<{
|
|
2683
|
+
id: string;
|
|
2684
|
+
times?: Array<string> | null | undefined;
|
|
2685
|
+
}, R<"HistoryMutationResult">>;
|
|
2686
|
+
/** Decrements the play count for the scene, removing the specific times or the last recorded time if not provided. */
|
|
2687
|
+
sceneDeletePlay: F<{
|
|
2688
|
+
id: string;
|
|
2689
|
+
times?: Array<string> | null | undefined;
|
|
2690
|
+
}, R<"HistoryMutationResult">>;
|
|
2691
|
+
/** Resets the play count for a scene to 0. Returns the new play count value. */
|
|
2692
|
+
sceneResetPlayCount: F<{
|
|
2693
|
+
id: string;
|
|
2694
|
+
}, number>;
|
|
2695
|
+
/** Generates screenshot at specified time in seconds. Leave empty to generate default screenshot */
|
|
2696
|
+
sceneGenerateScreenshot: F<{
|
|
2697
|
+
id: string;
|
|
2698
|
+
at?: number | null | undefined;
|
|
2699
|
+
}, string>;
|
|
2700
|
+
sceneMarkerCreate: F<{
|
|
2701
|
+
input: SceneMarkerCreateInput;
|
|
2702
|
+
}, N<R<"SceneMarker">>>;
|
|
2703
|
+
sceneMarkerUpdate: F<{
|
|
2704
|
+
input: SceneMarkerUpdateInput;
|
|
2705
|
+
}, N<R<"SceneMarker">>>;
|
|
2706
|
+
bulkSceneMarkerUpdate: F<{
|
|
2707
|
+
input: BulkSceneMarkerUpdateInput;
|
|
2708
|
+
}, N<L<R<"SceneMarker">>>>;
|
|
2709
|
+
sceneMarkerDestroy: F<{
|
|
2710
|
+
id: string;
|
|
2711
|
+
}, boolean>;
|
|
2712
|
+
sceneMarkersDestroy: F<{
|
|
2713
|
+
ids: Array<string>;
|
|
2714
|
+
}, boolean>;
|
|
2715
|
+
sceneAssignFile: F<{
|
|
2716
|
+
input: AssignSceneFileInput;
|
|
2717
|
+
}, boolean>;
|
|
2718
|
+
imageUpdate: F<{
|
|
2719
|
+
input: ImageUpdateInput;
|
|
2720
|
+
}, N<R<"Image">>>;
|
|
2721
|
+
bulkImageUpdate: F<{
|
|
2722
|
+
input: BulkImageUpdateInput;
|
|
2723
|
+
}, N<L<R<"Image">>>>;
|
|
2724
|
+
imageDestroy: F<{
|
|
2725
|
+
input: ImageDestroyInput;
|
|
2726
|
+
}, boolean>;
|
|
2727
|
+
imagesDestroy: F<{
|
|
2728
|
+
input: ImagesDestroyInput;
|
|
2729
|
+
}, boolean>;
|
|
2730
|
+
imagesUpdate: F<{
|
|
2731
|
+
input: Array<ImageUpdateInput>;
|
|
2732
|
+
}, N<L<N<R<"Image">>>>>;
|
|
2733
|
+
/** Increments the o-counter for an image. Returns the new value */
|
|
2734
|
+
imageIncrementO: F<{
|
|
2735
|
+
id: string;
|
|
2736
|
+
}, number>;
|
|
2737
|
+
/** Decrements the o-counter for an image. Returns the new value */
|
|
2738
|
+
imageDecrementO: F<{
|
|
2739
|
+
id: string;
|
|
2740
|
+
}, number>;
|
|
2741
|
+
/** Resets the o-counter for a image to 0. Returns the new value */
|
|
2742
|
+
imageResetO: F<{
|
|
2743
|
+
id: string;
|
|
2744
|
+
}, number>;
|
|
2745
|
+
galleryCreate: F<{
|
|
2746
|
+
input: GalleryCreateInput;
|
|
2747
|
+
}, N<R<"Gallery">>>;
|
|
2748
|
+
galleryUpdate: F<{
|
|
2749
|
+
input: GalleryUpdateInput;
|
|
2750
|
+
}, N<R<"Gallery">>>;
|
|
2751
|
+
bulkGalleryUpdate: F<{
|
|
2752
|
+
input: BulkGalleryUpdateInput;
|
|
2753
|
+
}, N<L<R<"Gallery">>>>;
|
|
2754
|
+
galleryDestroy: F<{
|
|
2755
|
+
input: GalleryDestroyInput;
|
|
2756
|
+
}, boolean>;
|
|
2757
|
+
galleriesUpdate: F<{
|
|
2758
|
+
input: Array<GalleryUpdateInput>;
|
|
2759
|
+
}, N<L<N<R<"Gallery">>>>>;
|
|
2760
|
+
addGalleryImages: F<{
|
|
2761
|
+
input: GalleryAddInput;
|
|
2762
|
+
}, boolean>;
|
|
2763
|
+
removeGalleryImages: F<{
|
|
2764
|
+
input: GalleryRemoveInput;
|
|
2765
|
+
}, boolean>;
|
|
2766
|
+
setGalleryCover: F<{
|
|
2767
|
+
input: GallerySetCoverInput;
|
|
2768
|
+
}, boolean>;
|
|
2769
|
+
resetGalleryCover: F<{
|
|
2770
|
+
input: GalleryResetCoverInput;
|
|
2771
|
+
}, boolean>;
|
|
2772
|
+
galleryChapterCreate: F<{
|
|
2773
|
+
input: GalleryChapterCreateInput;
|
|
2774
|
+
}, N<R<"GalleryChapter">>>;
|
|
2775
|
+
galleryChapterUpdate: F<{
|
|
2776
|
+
input: GalleryChapterUpdateInput;
|
|
2777
|
+
}, N<R<"GalleryChapter">>>;
|
|
2778
|
+
galleryChapterDestroy: F<{
|
|
2779
|
+
id: string;
|
|
2780
|
+
}, boolean>;
|
|
2781
|
+
performerCreate: F<{
|
|
2782
|
+
input: PerformerCreateInput;
|
|
2783
|
+
}, N<R<"Performer">>>;
|
|
2784
|
+
performerUpdate: F<{
|
|
2785
|
+
input: PerformerUpdateInput;
|
|
2786
|
+
}, N<R<"Performer">>>;
|
|
2787
|
+
performerDestroy: F<{
|
|
2788
|
+
input: PerformerDestroyInput;
|
|
2789
|
+
}, boolean>;
|
|
2790
|
+
performersDestroy: F<{
|
|
2791
|
+
ids: Array<string>;
|
|
2792
|
+
}, boolean>;
|
|
2793
|
+
bulkPerformerUpdate: F<{
|
|
2794
|
+
input: BulkPerformerUpdateInput;
|
|
2795
|
+
}, N<L<R<"Performer">>>>;
|
|
2796
|
+
performerMerge: F<{
|
|
2797
|
+
input: PerformerMergeInput;
|
|
2798
|
+
}, R<"Performer">>;
|
|
2799
|
+
studioCreate: F<{
|
|
2800
|
+
input: StudioCreateInput;
|
|
2801
|
+
}, N<R<"Studio">>>;
|
|
2802
|
+
studioUpdate: F<{
|
|
2803
|
+
input: StudioUpdateInput;
|
|
2804
|
+
}, N<R<"Studio">>>;
|
|
2805
|
+
studioDestroy: F<{
|
|
2806
|
+
input: StudioDestroyInput;
|
|
2807
|
+
}, boolean>;
|
|
2808
|
+
studiosDestroy: F<{
|
|
2809
|
+
ids: Array<string>;
|
|
2810
|
+
}, boolean>;
|
|
2811
|
+
bulkStudioUpdate: F<{
|
|
2812
|
+
input: BulkStudioUpdateInput;
|
|
2813
|
+
}, N<L<R<"Studio">>>>;
|
|
2814
|
+
/** @deprecated Use groupCreate instead */
|
|
2815
|
+
movieCreate: F<{
|
|
2816
|
+
input: MovieCreateInput;
|
|
2817
|
+
}, N<R<"Movie">>>;
|
|
2818
|
+
/** @deprecated Use groupUpdate instead */
|
|
2819
|
+
movieUpdate: F<{
|
|
2820
|
+
input: MovieUpdateInput;
|
|
2821
|
+
}, N<R<"Movie">>>;
|
|
2822
|
+
/** @deprecated Use groupDestroy instead */
|
|
2823
|
+
movieDestroy: F<{
|
|
2824
|
+
input: MovieDestroyInput;
|
|
2825
|
+
}, boolean>;
|
|
2826
|
+
/** @deprecated Use groupsDestroy instead */
|
|
2827
|
+
moviesDestroy: F<{
|
|
2828
|
+
ids: Array<string>;
|
|
2829
|
+
}, boolean>;
|
|
2830
|
+
/** @deprecated Use bulkGroupUpdate instead */
|
|
2831
|
+
bulkMovieUpdate: F<{
|
|
2832
|
+
input: BulkMovieUpdateInput;
|
|
2833
|
+
}, N<L<R<"Movie">>>>;
|
|
2834
|
+
groupCreate: F<{
|
|
2835
|
+
input: GroupCreateInput;
|
|
2836
|
+
}, N<R<"Group">>>;
|
|
2837
|
+
groupUpdate: F<{
|
|
2838
|
+
input: GroupUpdateInput;
|
|
2839
|
+
}, N<R<"Group">>>;
|
|
2840
|
+
groupDestroy: F<{
|
|
2841
|
+
input: GroupDestroyInput;
|
|
2842
|
+
}, boolean>;
|
|
2843
|
+
groupsDestroy: F<{
|
|
2844
|
+
ids: Array<string>;
|
|
2845
|
+
}, boolean>;
|
|
2846
|
+
bulkGroupUpdate: F<{
|
|
2847
|
+
input: BulkGroupUpdateInput;
|
|
2848
|
+
}, N<L<R<"Group">>>>;
|
|
2849
|
+
addGroupSubGroups: F<{
|
|
2850
|
+
input: GroupSubGroupAddInput;
|
|
2851
|
+
}, boolean>;
|
|
2852
|
+
removeGroupSubGroups: F<{
|
|
2853
|
+
input: GroupSubGroupRemoveInput;
|
|
2854
|
+
}, boolean>;
|
|
2855
|
+
/** Reorder sub groups within a group. Returns true if successful. */
|
|
2856
|
+
reorderSubGroups: F<{
|
|
2857
|
+
input: ReorderSubGroupsInput;
|
|
2858
|
+
}, boolean>;
|
|
2859
|
+
tagCreate: F<{
|
|
2860
|
+
input: TagCreateInput;
|
|
2861
|
+
}, N<R<"Tag">>>;
|
|
2862
|
+
tagUpdate: F<{
|
|
2863
|
+
input: TagUpdateInput;
|
|
2864
|
+
}, N<R<"Tag">>>;
|
|
2865
|
+
tagDestroy: F<{
|
|
2866
|
+
input: TagDestroyInput;
|
|
2867
|
+
}, boolean>;
|
|
2868
|
+
tagsDestroy: F<{
|
|
2869
|
+
ids: Array<string>;
|
|
2870
|
+
}, boolean>;
|
|
2871
|
+
tagsMerge: F<{
|
|
2872
|
+
input: TagsMergeInput;
|
|
2873
|
+
}, N<R<"Tag">>>;
|
|
2874
|
+
bulkTagUpdate: F<{
|
|
2875
|
+
input: BulkTagUpdateInput;
|
|
2876
|
+
}, N<L<R<"Tag">>>>;
|
|
2877
|
+
/**
|
|
2878
|
+
* Moves the given files to the given destination. Returns true if successful.
|
|
2879
|
+
* Either the destination_folder or destination_folder_id must be provided.
|
|
2880
|
+
* If both are provided, the destination_folder_id takes precedence.
|
|
2881
|
+
* Destination folder must be a subfolder of one of the stash library paths.
|
|
2882
|
+
* If provided, destination_basename must be a valid filename with an extension that
|
|
2883
|
+
* matches one of the media extensions.
|
|
2884
|
+
* Creates folder hierarchy if needed.
|
|
2885
|
+
*/
|
|
2886
|
+
moveFiles: F<{
|
|
2887
|
+
input: MoveFilesInput;
|
|
2888
|
+
}, boolean>;
|
|
2889
|
+
deleteFiles: F<{
|
|
2890
|
+
ids: Array<string>;
|
|
2891
|
+
}, boolean>;
|
|
2892
|
+
/** Deletes file entries from the database without deleting the files from the filesystem */
|
|
2893
|
+
destroyFiles: F<{
|
|
2894
|
+
ids: Array<string>;
|
|
2895
|
+
}, boolean>;
|
|
2896
|
+
fileSetFingerprints: F<{
|
|
2897
|
+
input: FileSetFingerprintsInput;
|
|
2898
|
+
}, boolean>;
|
|
2899
|
+
/** Reveal the file in the system file manager */
|
|
2900
|
+
revealFileInFileManager: F<{
|
|
2901
|
+
id: string;
|
|
2902
|
+
}, boolean>;
|
|
2903
|
+
/** Reveal the folder in the system file manager */
|
|
2904
|
+
revealFolderInFileManager: F<{
|
|
2905
|
+
id: string;
|
|
2906
|
+
}, boolean>;
|
|
2907
|
+
saveFilter: F<{
|
|
2908
|
+
input: SaveFilterInput;
|
|
2909
|
+
}, R<"SavedFilter">>;
|
|
2910
|
+
destroySavedFilter: F<{
|
|
2911
|
+
input: DestroyFilterInput;
|
|
2912
|
+
}, boolean>;
|
|
2913
|
+
/** @deprecated now uses UI config */
|
|
2914
|
+
setDefaultFilter: F<{
|
|
2915
|
+
input: SetDefaultFilterInput;
|
|
2916
|
+
}, boolean>;
|
|
2917
|
+
/** Change general configuration options */
|
|
2918
|
+
configureGeneral: F<{
|
|
2919
|
+
input: ConfigGeneralInput;
|
|
2920
|
+
}, R<"ConfigGeneralResult">>;
|
|
2921
|
+
configureInterface: F<{
|
|
2922
|
+
input: ConfigInterfaceInput;
|
|
2923
|
+
}, R<"ConfigInterfaceResult">>;
|
|
2924
|
+
configureDLNA: F<{
|
|
2925
|
+
input: ConfigDLNAInput;
|
|
2926
|
+
}, R<"ConfigDLNAResult">>;
|
|
2927
|
+
configureScraping: F<{
|
|
2928
|
+
input: ConfigScrapingInput;
|
|
2929
|
+
}, R<"ConfigScrapingResult">>;
|
|
2930
|
+
configureDefaults: F<{
|
|
2931
|
+
input: ConfigDefaultSettingsInput;
|
|
2932
|
+
}, R<"ConfigDefaultSettingsResult">>;
|
|
2933
|
+
/** overwrites the entire plugin configuration for the given plugin */
|
|
2934
|
+
configurePlugin: F<{
|
|
2935
|
+
plugin_id: string;
|
|
2936
|
+
input: Record<string, unknown>;
|
|
2937
|
+
}, Record<string, unknown>>;
|
|
2938
|
+
/**
|
|
2939
|
+
* overwrites the UI configuration
|
|
2940
|
+
* if input is provided, then the entire UI configuration is replaced
|
|
2941
|
+
* if partial is provided, then the partial UI configuration is merged into the existing UI configuration
|
|
2942
|
+
*/
|
|
2943
|
+
configureUI: F<{
|
|
2944
|
+
input?: Record<string, unknown> | null | undefined;
|
|
2945
|
+
partial?: Record<string, unknown> | null | undefined;
|
|
2946
|
+
}, Record<string, unknown>>;
|
|
2947
|
+
/**
|
|
2948
|
+
* sets a single UI key value
|
|
2949
|
+
* key is a dot separated path to the value
|
|
2950
|
+
*/
|
|
2951
|
+
configureUISetting: F<{
|
|
2952
|
+
key: string;
|
|
2953
|
+
value?: unknown;
|
|
2954
|
+
}, Record<string, unknown>>;
|
|
2955
|
+
/** Generate and set (or clear) API key */
|
|
2956
|
+
generateAPIKey: F<{
|
|
2957
|
+
input: GenerateAPIKeyInput;
|
|
2958
|
+
}, string>;
|
|
2959
|
+
/** Returns a link to download the result */
|
|
2960
|
+
exportObjects: F<{
|
|
2961
|
+
input: ExportObjectsInput;
|
|
2962
|
+
}, N<string>>;
|
|
2963
|
+
/** Performs an incremental import. Returns the job ID */
|
|
2964
|
+
importObjects: F<{
|
|
2965
|
+
input: ImportObjectsInput;
|
|
2966
|
+
}, string>;
|
|
2967
|
+
/** Start an full import. Completely wipes the database and imports from the metadata directory. Returns the job ID */
|
|
2968
|
+
metadataImport: F<{}, string>;
|
|
2969
|
+
/** Start a full export. Outputs to the metadata directory. Returns the job ID */
|
|
2970
|
+
metadataExport: F<{}, string>;
|
|
2971
|
+
/** Start a scan. Returns the job ID */
|
|
2972
|
+
metadataScan: F<{
|
|
2973
|
+
input: ScanMetadataInput;
|
|
2974
|
+
}, string>;
|
|
2975
|
+
/** Start generating content. Returns the job ID */
|
|
2976
|
+
metadataGenerate: F<{
|
|
2977
|
+
input: GenerateMetadataInput;
|
|
2978
|
+
}, string>;
|
|
2979
|
+
/** Start auto-tagging. Returns the job ID */
|
|
2980
|
+
metadataAutoTag: F<{
|
|
2981
|
+
input: AutoTagMetadataInput;
|
|
2982
|
+
}, string>;
|
|
2983
|
+
/** Clean metadata. Returns the job ID */
|
|
2984
|
+
metadataClean: F<{
|
|
2985
|
+
input: CleanMetadataInput;
|
|
2986
|
+
}, string>;
|
|
2987
|
+
/** Clean generated files. Returns the job ID */
|
|
2988
|
+
metadataCleanGenerated: F<{
|
|
2989
|
+
input: CleanGeneratedInput;
|
|
2990
|
+
}, string>;
|
|
2991
|
+
/** Identifies scenes using scrapers. Returns the job ID */
|
|
2992
|
+
metadataIdentify: F<{
|
|
2993
|
+
input: IdentifyMetadataInput;
|
|
2994
|
+
}, string>;
|
|
2995
|
+
/** Migrate generated files for the current hash naming */
|
|
2996
|
+
migrateHashNaming: F<{}, string>;
|
|
2997
|
+
/** Migrates legacy scene screenshot files into the blob storage */
|
|
2998
|
+
migrateSceneScreenshots: F<{
|
|
2999
|
+
input: MigrateSceneScreenshotsInput;
|
|
3000
|
+
}, string>;
|
|
3001
|
+
/** Migrates blobs from the old storage system to the current one */
|
|
3002
|
+
migrateBlobs: F<{
|
|
3003
|
+
input: MigrateBlobsInput;
|
|
3004
|
+
}, string>;
|
|
3005
|
+
/** Anonymise the database in a separate file. Optionally returns a link to download the database file */
|
|
3006
|
+
anonymiseDatabase: F<{
|
|
3007
|
+
input: AnonymiseDatabaseInput;
|
|
3008
|
+
}, N<string>>;
|
|
3009
|
+
/** Optimises the database. Returns the job ID */
|
|
3010
|
+
optimiseDatabase: F<{}, string>;
|
|
3011
|
+
/** Reload scrapers */
|
|
3012
|
+
reloadScrapers: F<{}, boolean>;
|
|
3013
|
+
/**
|
|
3014
|
+
* Enable/disable plugins - enabledMap is a map of plugin IDs to enabled booleans.
|
|
3015
|
+
* Plugins not in the map are not affected.
|
|
3016
|
+
*/
|
|
3017
|
+
setPluginsEnabled: F<{
|
|
3018
|
+
enabledMap: Record<string, boolean>;
|
|
3019
|
+
}, boolean>;
|
|
3020
|
+
/**
|
|
3021
|
+
* Run a plugin task.
|
|
3022
|
+
* If task_name is provided, then the task must exist in the plugin config and the tasks configuration
|
|
3023
|
+
* will be used to run the plugin.
|
|
3024
|
+
* If no task_name is provided, then the plugin will be executed with the arguments provided only.
|
|
3025
|
+
* Returns the job ID
|
|
3026
|
+
*/
|
|
3027
|
+
runPluginTask: F<{
|
|
3028
|
+
plugin_id: string;
|
|
3029
|
+
/** if provided, then the default args will be applied */
|
|
3030
|
+
task_name?: string | null | undefined;
|
|
3031
|
+
/** displayed in the task queue */
|
|
3032
|
+
description?: string | null | undefined;
|
|
3033
|
+
/** @deprecated Use args_map instead */
|
|
3034
|
+
args?: Array<PluginArgInput> | null | undefined;
|
|
3035
|
+
args_map?: Record<string, unknown> | null | undefined;
|
|
3036
|
+
}, string>;
|
|
3037
|
+
/**
|
|
3038
|
+
* Runs a plugin operation. The operation is run immediately and does not use the job queue.
|
|
3039
|
+
* Returns a map of the result.
|
|
3040
|
+
*/
|
|
3041
|
+
runPluginOperation: F<{
|
|
3042
|
+
plugin_id: string;
|
|
3043
|
+
args?: Record<string, unknown> | null | undefined;
|
|
3044
|
+
}, N<unknown>>;
|
|
3045
|
+
reloadPlugins: F<{}, boolean>;
|
|
3046
|
+
/**
|
|
3047
|
+
* Installs the given packages.
|
|
3048
|
+
* If a package is already installed, it will be updated if needed..
|
|
3049
|
+
* If an error occurs when installing a package, the job will continue to install the remaining packages.
|
|
3050
|
+
* Returns the job ID
|
|
3051
|
+
*/
|
|
3052
|
+
installPackages: F<{
|
|
3053
|
+
type: PackageType;
|
|
3054
|
+
packages: Array<PackageSpecInput>;
|
|
3055
|
+
}, string>;
|
|
3056
|
+
/**
|
|
3057
|
+
* Updates the given packages.
|
|
3058
|
+
* If a package is not installed, it will not be installed.
|
|
3059
|
+
* If a package does not need to be updated, it will not be updated.
|
|
3060
|
+
* If no packages are provided, all packages of the given type will be updated.
|
|
3061
|
+
* If an error occurs when updating a package, the job will continue to update the remaining packages.
|
|
3062
|
+
* Returns the job ID.
|
|
3063
|
+
*/
|
|
3064
|
+
updatePackages: F<{
|
|
3065
|
+
type: PackageType;
|
|
3066
|
+
packages?: Array<PackageSpecInput> | null | undefined;
|
|
3067
|
+
}, string>;
|
|
3068
|
+
/**
|
|
3069
|
+
* Uninstalls the given packages.
|
|
3070
|
+
* If an error occurs when uninstalling a package, the job will continue to uninstall the remaining packages.
|
|
3071
|
+
* Returns the job ID
|
|
3072
|
+
*/
|
|
3073
|
+
uninstallPackages: F<{
|
|
3074
|
+
type: PackageType;
|
|
3075
|
+
packages: Array<PackageSpecInput>;
|
|
3076
|
+
}, string>;
|
|
3077
|
+
stopJob: F<{
|
|
3078
|
+
job_id: string;
|
|
3079
|
+
}, boolean>;
|
|
3080
|
+
stopAllJobs: F<{}, boolean>;
|
|
3081
|
+
/** Submit fingerprints to stash-box instance */
|
|
3082
|
+
submitStashBoxFingerprints: F<{
|
|
3083
|
+
input: StashBoxFingerprintSubmissionInput;
|
|
3084
|
+
}, boolean>;
|
|
3085
|
+
/** Submit scene as draft to stash-box instance */
|
|
3086
|
+
submitStashBoxSceneDraft: F<{
|
|
3087
|
+
input: StashBoxDraftSubmissionInput;
|
|
3088
|
+
}, N<string>>;
|
|
3089
|
+
/** Submit performer as draft to stash-box instance */
|
|
3090
|
+
submitStashBoxPerformerDraft: F<{
|
|
3091
|
+
input: StashBoxDraftSubmissionInput;
|
|
3092
|
+
}, N<string>>;
|
|
3093
|
+
/** Backup the database. Optionally returns a link to download the database file */
|
|
3094
|
+
backupDatabase: F<{
|
|
3095
|
+
input: BackupDatabaseInput;
|
|
3096
|
+
}, N<string>>;
|
|
3097
|
+
/** DANGEROUS: Execute an arbitrary SQL statement that returns rows. */
|
|
3098
|
+
querySQL: F<{
|
|
3099
|
+
sql: string;
|
|
3100
|
+
args?: Array<unknown> | null | undefined;
|
|
3101
|
+
}, R<"SQLQueryResult">>;
|
|
3102
|
+
/** DANGEROUS: Execute an arbitrary SQL statement without returning any rows. */
|
|
3103
|
+
execSQL: F<{
|
|
3104
|
+
sql: string;
|
|
3105
|
+
args?: Array<unknown> | null | undefined;
|
|
3106
|
+
}, R<"SQLExecResult">>;
|
|
3107
|
+
/** Run batch performer tag task. Returns the job ID. */
|
|
3108
|
+
stashBoxBatchPerformerTag: F<{
|
|
3109
|
+
input: StashBoxBatchTagInput;
|
|
3110
|
+
}, string>;
|
|
3111
|
+
/** Run batch studio tag task. Returns the job ID. */
|
|
3112
|
+
stashBoxBatchStudioTag: F<{
|
|
3113
|
+
input: StashBoxBatchTagInput;
|
|
3114
|
+
}, string>;
|
|
3115
|
+
/** Run batch tag tag task. Returns the job ID. */
|
|
3116
|
+
stashBoxBatchTagTag: F<{
|
|
3117
|
+
input: StashBoxBatchTagInput;
|
|
3118
|
+
}, string>;
|
|
3119
|
+
/** Enables DLNA for an optional duration. Has no effect if DLNA is enabled by default */
|
|
3120
|
+
enableDLNA: F<{
|
|
3121
|
+
input: EnableDLNAInput;
|
|
3122
|
+
}, boolean>;
|
|
3123
|
+
/** Disables DLNA for an optional duration. Has no effect if DLNA is disabled by default */
|
|
3124
|
+
disableDLNA: F<{
|
|
3125
|
+
input: DisableDLNAInput;
|
|
3126
|
+
}, boolean>;
|
|
3127
|
+
/** Enables an IP address for DLNA for an optional duration */
|
|
3128
|
+
addTempDLNAIP: F<{
|
|
3129
|
+
input: AddTempDLNAIPInput;
|
|
3130
|
+
}, boolean>;
|
|
3131
|
+
/** Removes an IP address from the temporary DLNA whitelist */
|
|
3132
|
+
removeTempDLNAIP: F<{
|
|
3133
|
+
input: RemoveTempDLNAIPInput;
|
|
3134
|
+
}, boolean>;
|
|
3135
|
+
};
|
|
3136
|
+
Subscription: {
|
|
3137
|
+
/** Update from the metadata manager */
|
|
3138
|
+
jobsSubscribe: F<{}, R<"JobStatusUpdate">>;
|
|
3139
|
+
loggingSubscribe: F<{}, L<R<"LogEntry">>>;
|
|
3140
|
+
scanCompleteSubscribe: F<{}, boolean>;
|
|
3141
|
+
};
|
|
3142
|
+
ConfigGeneralResult: {
|
|
3143
|
+
/** Array of file paths to content */
|
|
3144
|
+
stashes: F<{}, L<R<"StashConfig">>>;
|
|
3145
|
+
/** Path to the SQLite database */
|
|
3146
|
+
databasePath: F<{}, string>;
|
|
3147
|
+
/** Path to backup directory */
|
|
3148
|
+
backupDirectoryPath: F<{}, string>;
|
|
3149
|
+
/** Path to trash directory - if set, deleted files will be moved here instead of being permanently deleted */
|
|
3150
|
+
deleteTrashPath: F<{}, string>;
|
|
3151
|
+
/** Path to generated files */
|
|
3152
|
+
generatedPath: F<{}, string>;
|
|
3153
|
+
/** Path to import/export files */
|
|
3154
|
+
metadataPath: F<{}, string>;
|
|
3155
|
+
/** Path to the config file used */
|
|
3156
|
+
configFilePath: F<{}, string>;
|
|
3157
|
+
/** Path to scrapers */
|
|
3158
|
+
scrapersPath: F<{}, string>;
|
|
3159
|
+
/** Path to plugins */
|
|
3160
|
+
pluginsPath: F<{}, string>;
|
|
3161
|
+
/** Path to cache */
|
|
3162
|
+
cachePath: F<{}, string>;
|
|
3163
|
+
/** Path to blobs - required for filesystem blob storage */
|
|
3164
|
+
blobsPath: F<{}, string>;
|
|
3165
|
+
/** Where to store blobs */
|
|
3166
|
+
blobsStorage: F<{}, BlobsStorageType>;
|
|
3167
|
+
/** Path to the ffmpeg binary. If empty, stash will attempt to find it in the path or config directory */
|
|
3168
|
+
ffmpegPath: F<{}, string>;
|
|
3169
|
+
/** Path to the ffprobe binary. If empty, stash will attempt to find it in the path or config directory */
|
|
3170
|
+
ffprobePath: F<{}, string>;
|
|
3171
|
+
/** Whether to calculate MD5 checksums for scene video files */
|
|
3172
|
+
calculateMD5: F<{}, boolean>;
|
|
3173
|
+
/** Hash algorithm to use for generated file naming */
|
|
3174
|
+
videoFileNamingAlgorithm: F<{}, HashAlgorithm>;
|
|
3175
|
+
/** Number of parallel tasks to start during scan/generate */
|
|
3176
|
+
parallelTasks: F<{}, number>;
|
|
3177
|
+
/** Include audio stream in previews */
|
|
3178
|
+
previewAudio: F<{}, boolean>;
|
|
3179
|
+
/** Number of segments in a preview file */
|
|
3180
|
+
previewSegments: F<{}, number>;
|
|
3181
|
+
/** Preview segment duration, in seconds */
|
|
3182
|
+
previewSegmentDuration: F<{}, number>;
|
|
3183
|
+
/** Duration of start of video to exclude when generating previews */
|
|
3184
|
+
previewExcludeStart: F<{}, string>;
|
|
3185
|
+
/** Duration of end of video to exclude when generating previews */
|
|
3186
|
+
previewExcludeEnd: F<{}, string>;
|
|
3187
|
+
/** Preset when generating preview */
|
|
3188
|
+
previewPreset: F<{}, PreviewPreset>;
|
|
3189
|
+
/** Transcode Hardware Acceleration */
|
|
3190
|
+
transcodeHardwareAcceleration: F<{}, boolean>;
|
|
3191
|
+
/** Max generated transcode size */
|
|
3192
|
+
maxTranscodeSize: F<{}, N<StreamingResolutionEnum>>;
|
|
3193
|
+
/** Max streaming transcode size */
|
|
3194
|
+
maxStreamingTranscodeSize: F<{}, N<StreamingResolutionEnum>>;
|
|
3195
|
+
/**
|
|
3196
|
+
* ffmpeg transcode input args - injected before input file
|
|
3197
|
+
* These are applied to generated transcodes (previews and transcodes)
|
|
3198
|
+
*/
|
|
3199
|
+
transcodeInputArgs: F<{}, L<string>>;
|
|
3200
|
+
/**
|
|
3201
|
+
* ffmpeg transcode output args - injected before output file
|
|
3202
|
+
* These are applied to generated transcodes (previews and transcodes)
|
|
3203
|
+
*/
|
|
3204
|
+
transcodeOutputArgs: F<{}, L<string>>;
|
|
3205
|
+
/**
|
|
3206
|
+
* ffmpeg stream input args - injected before input file
|
|
3207
|
+
* These are applied when live transcoding
|
|
3208
|
+
*/
|
|
3209
|
+
liveTranscodeInputArgs: F<{}, L<string>>;
|
|
3210
|
+
/**
|
|
3211
|
+
* ffmpeg stream output args - injected before output file
|
|
3212
|
+
* These are applied when live transcoding
|
|
3213
|
+
*/
|
|
3214
|
+
liveTranscodeOutputArgs: F<{}, L<string>>;
|
|
3215
|
+
/** whether to include range in generated funscript heatmaps */
|
|
3216
|
+
drawFunscriptHeatmapRange: F<{}, boolean>;
|
|
3217
|
+
/** Write image thumbnails to disk when generating on the fly */
|
|
3218
|
+
writeImageThumbnails: F<{}, boolean>;
|
|
3219
|
+
/** Create Image Clips from Video extensions when Videos are disabled in Library */
|
|
3220
|
+
createImageClipsFromVideos: F<{}, boolean>;
|
|
3221
|
+
/** API Key */
|
|
3222
|
+
apiKey: F<{}, string>;
|
|
3223
|
+
/** Username */
|
|
3224
|
+
username: F<{}, string>;
|
|
3225
|
+
/** Password */
|
|
3226
|
+
password: F<{}, string>;
|
|
3227
|
+
/** Maximum session cookie age */
|
|
3228
|
+
maxSessionAge: F<{}, number>;
|
|
3229
|
+
/** Name of the log file */
|
|
3230
|
+
logFile: F<{}, N<string>>;
|
|
3231
|
+
/** Whether to also output to stderr */
|
|
3232
|
+
logOut: F<{}, boolean>;
|
|
3233
|
+
/** Minimum log level */
|
|
3234
|
+
logLevel: F<{}, string>;
|
|
3235
|
+
/** Whether to log http access */
|
|
3236
|
+
logAccess: F<{}, boolean>;
|
|
3237
|
+
/** Maximum log size */
|
|
3238
|
+
logFileMaxSize: F<{}, number>;
|
|
3239
|
+
/** True if sprite generation should use the sprite interval and min/max sprites settings instead of the default */
|
|
3240
|
+
useCustomSpriteInterval: F<{}, boolean>;
|
|
3241
|
+
/** Time between two different scrubber sprites in seconds - only used if useCustomSpriteInterval is true */
|
|
3242
|
+
spriteInterval: F<{}, number>;
|
|
3243
|
+
/** Minimum number of sprites to be generated - only used if useCustomSpriteInterval is true */
|
|
3244
|
+
minimumSprites: F<{}, number>;
|
|
3245
|
+
/** Maximum number of sprites to be generated - only used if useCustomSpriteInterval is true */
|
|
3246
|
+
maximumSprites: F<{}, number>;
|
|
3247
|
+
/** Size of the longest dimension for each sprite in pixels */
|
|
3248
|
+
spriteScreenshotSize: F<{}, number>;
|
|
3249
|
+
/** Array of video file extensions */
|
|
3250
|
+
videoExtensions: F<{}, L<string>>;
|
|
3251
|
+
/** Array of image file extensions */
|
|
3252
|
+
imageExtensions: F<{}, L<string>>;
|
|
3253
|
+
/** Array of gallery zip file extensions */
|
|
3254
|
+
galleryExtensions: F<{}, L<string>>;
|
|
3255
|
+
/** True if galleries should be created from folders with images */
|
|
3256
|
+
createGalleriesFromFolders: F<{}, boolean>;
|
|
3257
|
+
/** Regex used to identify images as gallery covers */
|
|
3258
|
+
galleryCoverRegex: F<{}, string>;
|
|
3259
|
+
/** Array of file regexp to exclude from Video Scans */
|
|
3260
|
+
excludes: F<{}, L<string>>;
|
|
3261
|
+
/** Array of file regexp to exclude from Image Scans */
|
|
3262
|
+
imageExcludes: F<{}, L<string>>;
|
|
3263
|
+
/** Custom Performer Image Location */
|
|
3264
|
+
customPerformerImageLocation: F<{}, N<string>>;
|
|
3265
|
+
/** Stash-box instances used for tagging */
|
|
3266
|
+
stashBoxes: F<{}, L<R<"StashBox">>>;
|
|
3267
|
+
/** Python path - resolved using path if unset */
|
|
3268
|
+
pythonPath: F<{}, string>;
|
|
3269
|
+
/** Source of scraper packages */
|
|
3270
|
+
scraperPackageSources: F<{}, L<R<"PackageSource">>>;
|
|
3271
|
+
/** Source of plugin packages */
|
|
3272
|
+
pluginPackageSources: F<{}, L<R<"PackageSource">>>;
|
|
3273
|
+
};
|
|
3274
|
+
ConfigImageLightboxResult: {
|
|
3275
|
+
slideshowDelay: F<{}, N<number>>;
|
|
3276
|
+
displayMode: F<{}, N<ImageLightboxDisplayMode>>;
|
|
3277
|
+
scaleUp: F<{}, N<boolean>>;
|
|
3278
|
+
resetZoomOnNav: F<{}, N<boolean>>;
|
|
3279
|
+
scrollMode: F<{}, N<ImageLightboxScrollMode>>;
|
|
3280
|
+
scrollAttemptsBeforeChange: F<{}, number>;
|
|
3281
|
+
disableAnimation: F<{}, N<boolean>>;
|
|
3282
|
+
};
|
|
3283
|
+
ConfigDisableDropdownCreate: {
|
|
3284
|
+
performer: F<{}, boolean>;
|
|
3285
|
+
tag: F<{}, boolean>;
|
|
3286
|
+
studio: F<{}, boolean>;
|
|
3287
|
+
movie: F<{}, boolean>;
|
|
3288
|
+
gallery: F<{}, boolean>;
|
|
3289
|
+
};
|
|
3290
|
+
ConfigInterfaceResult: {
|
|
3291
|
+
/** True if SFW content mode is enabled */
|
|
3292
|
+
sfwContentMode: F<{}, boolean>;
|
|
3293
|
+
/** Ordered list of items that should be shown in the menu */
|
|
3294
|
+
menuItems: F<{}, N<L<string>>>;
|
|
3295
|
+
/** Enable sound on mouseover previews */
|
|
3296
|
+
soundOnPreview: F<{}, N<boolean>>;
|
|
3297
|
+
/** Show title and tags in wall view */
|
|
3298
|
+
wallShowTitle: F<{}, N<boolean>>;
|
|
3299
|
+
/** Wall playback type */
|
|
3300
|
+
wallPlayback: F<{}, N<string>>;
|
|
3301
|
+
/** Show scene scrubber by default */
|
|
3302
|
+
showScrubber: F<{}, N<boolean>>;
|
|
3303
|
+
/** Maximum duration (in seconds) in which a scene video will loop in the scene player */
|
|
3304
|
+
maximumLoopDuration: F<{}, N<number>>;
|
|
3305
|
+
/** True if we should not auto-open a browser window on startup */
|
|
3306
|
+
noBrowser: F<{}, N<boolean>>;
|
|
3307
|
+
/** True if we should send desktop notifications */
|
|
3308
|
+
notificationsEnabled: F<{}, N<boolean>>;
|
|
3309
|
+
/** If true, video will autostart on load in the scene player */
|
|
3310
|
+
autostartVideo: F<{}, N<boolean>>;
|
|
3311
|
+
/** If true, video will autostart when loading from play random or play selected */
|
|
3312
|
+
autostartVideoOnPlaySelected: F<{}, N<boolean>>;
|
|
3313
|
+
/** If true, next scene in playlist will be played at video end by default */
|
|
3314
|
+
continuePlaylistDefault: F<{}, N<boolean>>;
|
|
3315
|
+
/** If true, studio overlays will be shown as text instead of logo images */
|
|
3316
|
+
showStudioAsText: F<{}, N<boolean>>;
|
|
3317
|
+
/** Custom CSS */
|
|
3318
|
+
css: F<{}, N<string>>;
|
|
3319
|
+
cssEnabled: F<{}, N<boolean>>;
|
|
3320
|
+
/** Custom Javascript */
|
|
3321
|
+
javascript: F<{}, N<string>>;
|
|
3322
|
+
javascriptEnabled: F<{}, N<boolean>>;
|
|
3323
|
+
/** Custom Locales */
|
|
3324
|
+
customLocales: F<{}, N<string>>;
|
|
3325
|
+
customLocalesEnabled: F<{}, N<boolean>>;
|
|
3326
|
+
/** When true, disables all customizations (plugins, CSS, JavaScript, locales) for troubleshooting */
|
|
3327
|
+
disableCustomizations: F<{}, N<boolean>>;
|
|
3328
|
+
/** Interface language */
|
|
3329
|
+
language: F<{}, N<string>>;
|
|
3330
|
+
imageLightbox: F<{}, R<"ConfigImageLightboxResult">>;
|
|
3331
|
+
/** Fields are true if creating via dropdown menus are disabled */
|
|
3332
|
+
disableDropdownCreate: F<{}, R<"ConfigDisableDropdownCreate">>;
|
|
3333
|
+
/** Handy Connection Key */
|
|
3334
|
+
handyKey: F<{}, N<string>>;
|
|
3335
|
+
/** Funscript Time Offset */
|
|
3336
|
+
funscriptOffset: F<{}, N<number>>;
|
|
3337
|
+
/** Whether to use Stash Hosted Funscript */
|
|
3338
|
+
useStashHostedFunscript: F<{}, N<boolean>>;
|
|
3339
|
+
};
|
|
3340
|
+
ConfigDLNAResult: {
|
|
3341
|
+
serverName: F<{}, string>;
|
|
3342
|
+
/** True if DLNA service should be enabled by default */
|
|
3343
|
+
enabled: F<{}, boolean>;
|
|
3344
|
+
/** Defaults to 1338 */
|
|
3345
|
+
port: F<{}, number>;
|
|
3346
|
+
/** List of IPs whitelisted for DLNA service */
|
|
3347
|
+
whitelistedIPs: F<{}, L<string>>;
|
|
3348
|
+
/** List of interfaces to run DLNA on. Empty for all */
|
|
3349
|
+
interfaces: F<{}, L<string>>;
|
|
3350
|
+
/** Order to sort videos */
|
|
3351
|
+
videoSortOrder: F<{}, string>;
|
|
3352
|
+
};
|
|
3353
|
+
ConfigScrapingResult: {
|
|
3354
|
+
/** Scraper user agent string */
|
|
3355
|
+
scraperUserAgent: F<{}, N<string>>;
|
|
3356
|
+
/** Scraper CDP path. Path to chrome executable or remote address */
|
|
3357
|
+
scraperCDPPath: F<{}, N<string>>;
|
|
3358
|
+
/** Whether the scraper should check for invalid certificates */
|
|
3359
|
+
scraperCertCheck: F<{}, boolean>;
|
|
3360
|
+
/** Tags blacklist during scraping */
|
|
3361
|
+
excludeTagPatterns: F<{}, L<string>>;
|
|
3362
|
+
};
|
|
3363
|
+
ConfigDefaultSettingsResult: {
|
|
3364
|
+
scan: F<{}, N<R<"ScanMetadataOptions">>>;
|
|
3365
|
+
identify: F<{}, N<R<"IdentifyMetadataTaskOptions">>>;
|
|
3366
|
+
autoTag: F<{}, N<R<"AutoTagMetadataOptions">>>;
|
|
3367
|
+
generate: F<{}, N<R<"GenerateMetadataOptions">>>;
|
|
3368
|
+
/** If true, delete file checkbox will be checked by default */
|
|
3369
|
+
deleteFile: F<{}, N<boolean>>;
|
|
3370
|
+
/** If true, delete generated supporting files checkbox will be checked by default */
|
|
3371
|
+
deleteGenerated: F<{}, N<boolean>>;
|
|
3372
|
+
};
|
|
3373
|
+
/** All configuration settings */
|
|
3374
|
+
ConfigResult: {
|
|
3375
|
+
general: F<{}, R<"ConfigGeneralResult">>;
|
|
3376
|
+
interface: F<{}, R<"ConfigInterfaceResult">>;
|
|
3377
|
+
dlna: F<{}, R<"ConfigDLNAResult">>;
|
|
3378
|
+
scraping: F<{}, R<"ConfigScrapingResult">>;
|
|
3379
|
+
defaults: F<{}, R<"ConfigDefaultSettingsResult">>;
|
|
3380
|
+
ui: F<{}, Record<string, unknown>>;
|
|
3381
|
+
plugins: F<{
|
|
3382
|
+
include?: Array<string> | null | undefined;
|
|
3383
|
+
}, Record<string, Record<string, unknown>>>;
|
|
3384
|
+
};
|
|
3385
|
+
/** Directory structure of a path */
|
|
3386
|
+
Directory: {
|
|
3387
|
+
path: F<{}, string>;
|
|
3388
|
+
parent: F<{}, N<string>>;
|
|
3389
|
+
directories: F<{}, L<string>>;
|
|
3390
|
+
};
|
|
3391
|
+
StashConfig: {
|
|
3392
|
+
path: F<{}, string>;
|
|
3393
|
+
excludeVideo: F<{}, boolean>;
|
|
3394
|
+
excludeImage: F<{}, boolean>;
|
|
3395
|
+
};
|
|
3396
|
+
StashBoxValidationResult: {
|
|
3397
|
+
valid: F<{}, boolean>;
|
|
3398
|
+
status: F<{}, string>;
|
|
3399
|
+
};
|
|
3400
|
+
DLNAIP: {
|
|
3401
|
+
ipAddress: F<{}, string>;
|
|
3402
|
+
/** Time until IP will be no longer allowed/disallowed */
|
|
3403
|
+
until: F<{}, N<string>>;
|
|
3404
|
+
};
|
|
3405
|
+
DLNAStatus: {
|
|
3406
|
+
running: F<{}, boolean>;
|
|
3407
|
+
/** If not currently running, time until it will be started. If running, time until it will be stopped */
|
|
3408
|
+
until: F<{}, N<string>>;
|
|
3409
|
+
recentIPAddresses: F<{}, L<string>>;
|
|
3410
|
+
allowedIPAddresses: F<{}, L<R<"DLNAIP">>>;
|
|
3411
|
+
};
|
|
3412
|
+
Fingerprint: {
|
|
3413
|
+
type: F<{}, string>;
|
|
3414
|
+
value: F<{}, string>;
|
|
3415
|
+
};
|
|
3416
|
+
Folder: {
|
|
3417
|
+
id: F<{}, string>;
|
|
3418
|
+
path: F<{}, string>;
|
|
3419
|
+
basename: F<{}, string>;
|
|
3420
|
+
/** @deprecated Use parent_folder instead */
|
|
3421
|
+
parent_folder_id: F<{}, N<string>>;
|
|
3422
|
+
/** @deprecated Use zip_file instead */
|
|
3423
|
+
zip_file_id: F<{}, N<string>>;
|
|
3424
|
+
parent_folder: F<{}, N<R<"Folder">>>;
|
|
3425
|
+
/** Returns all parent folders in order from immediate parent to top-level */
|
|
3426
|
+
parent_folders: F<{}, L<R<"Folder">>>;
|
|
3427
|
+
zip_file: F<{}, N<R<"BasicFile">>>;
|
|
3428
|
+
/** Returns direct sub-folders */
|
|
3429
|
+
sub_folders: F<{}, L<R<"Folder">>>;
|
|
3430
|
+
mod_time: F<{}, string>;
|
|
3431
|
+
created_at: F<{}, string>;
|
|
3432
|
+
updated_at: F<{}, string>;
|
|
3433
|
+
};
|
|
3434
|
+
BaseFile: {
|
|
3435
|
+
id: F<{}, string>;
|
|
3436
|
+
path: F<{}, string>;
|
|
3437
|
+
basename: F<{}, string>;
|
|
3438
|
+
/** @deprecated Use parent_folder instead */
|
|
3439
|
+
parent_folder_id: F<{}, string>;
|
|
3440
|
+
/** @deprecated Use zip_file instead */
|
|
3441
|
+
zip_file_id: F<{}, N<string>>;
|
|
3442
|
+
parent_folder: F<{}, R<"Folder">>;
|
|
3443
|
+
zip_file: F<{}, N<R<"BasicFile">>>;
|
|
3444
|
+
mod_time: F<{}, string>;
|
|
3445
|
+
size: F<{}, number>;
|
|
3446
|
+
fingerprint: F<{
|
|
3447
|
+
type: string;
|
|
3448
|
+
}, N<string>>;
|
|
3449
|
+
fingerprints: F<{}, L<R<"Fingerprint">>>;
|
|
3450
|
+
created_at: F<{}, string>;
|
|
3451
|
+
updated_at: F<{}, string>;
|
|
3452
|
+
};
|
|
3453
|
+
BasicFile: {
|
|
3454
|
+
id: F<{}, string>;
|
|
3455
|
+
path: F<{}, string>;
|
|
3456
|
+
basename: F<{}, string>;
|
|
3457
|
+
/** @deprecated Use parent_folder instead */
|
|
3458
|
+
parent_folder_id: F<{}, string>;
|
|
3459
|
+
/** @deprecated Use zip_file instead */
|
|
3460
|
+
zip_file_id: F<{}, N<string>>;
|
|
3461
|
+
parent_folder: F<{}, R<"Folder">>;
|
|
3462
|
+
zip_file: F<{}, N<R<"BasicFile">>>;
|
|
3463
|
+
mod_time: F<{}, string>;
|
|
3464
|
+
size: F<{}, number>;
|
|
3465
|
+
fingerprint: F<{
|
|
3466
|
+
type: string;
|
|
3467
|
+
}, N<string>>;
|
|
3468
|
+
fingerprints: F<{}, L<R<"Fingerprint">>>;
|
|
3469
|
+
created_at: F<{}, string>;
|
|
3470
|
+
updated_at: F<{}, string>;
|
|
3471
|
+
};
|
|
3472
|
+
VideoFile: {
|
|
3473
|
+
id: F<{}, string>;
|
|
3474
|
+
path: F<{}, string>;
|
|
3475
|
+
basename: F<{}, string>;
|
|
3476
|
+
/** @deprecated Use parent_folder instead */
|
|
3477
|
+
parent_folder_id: F<{}, string>;
|
|
3478
|
+
/** @deprecated Use zip_file instead */
|
|
3479
|
+
zip_file_id: F<{}, N<string>>;
|
|
3480
|
+
parent_folder: F<{}, R<"Folder">>;
|
|
3481
|
+
zip_file: F<{}, N<R<"BasicFile">>>;
|
|
3482
|
+
mod_time: F<{}, string>;
|
|
3483
|
+
size: F<{}, number>;
|
|
3484
|
+
fingerprint: F<{
|
|
3485
|
+
type: string;
|
|
3486
|
+
}, N<string>>;
|
|
3487
|
+
fingerprints: F<{}, L<R<"Fingerprint">>>;
|
|
3488
|
+
format: F<{}, string>;
|
|
3489
|
+
width: F<{}, number>;
|
|
3490
|
+
height: F<{}, number>;
|
|
3491
|
+
duration: F<{}, number>;
|
|
3492
|
+
video_codec: F<{}, string>;
|
|
3493
|
+
audio_codec: F<{}, string>;
|
|
3494
|
+
frame_rate: F<{}, number>;
|
|
3495
|
+
bit_rate: F<{}, number>;
|
|
3496
|
+
created_at: F<{}, string>;
|
|
3497
|
+
updated_at: F<{}, string>;
|
|
3498
|
+
};
|
|
3499
|
+
ImageFile: {
|
|
3500
|
+
id: F<{}, string>;
|
|
3501
|
+
path: F<{}, string>;
|
|
3502
|
+
basename: F<{}, string>;
|
|
3503
|
+
/** @deprecated Use parent_folder instead */
|
|
3504
|
+
parent_folder_id: F<{}, string>;
|
|
3505
|
+
/** @deprecated Use zip_file instead */
|
|
3506
|
+
zip_file_id: F<{}, N<string>>;
|
|
3507
|
+
parent_folder: F<{}, R<"Folder">>;
|
|
3508
|
+
zip_file: F<{}, N<R<"BasicFile">>>;
|
|
3509
|
+
mod_time: F<{}, string>;
|
|
3510
|
+
size: F<{}, number>;
|
|
3511
|
+
fingerprint: F<{
|
|
3512
|
+
type: string;
|
|
3513
|
+
}, N<string>>;
|
|
3514
|
+
fingerprints: F<{}, L<R<"Fingerprint">>>;
|
|
3515
|
+
format: F<{}, string>;
|
|
3516
|
+
width: F<{}, number>;
|
|
3517
|
+
height: F<{}, number>;
|
|
3518
|
+
created_at: F<{}, string>;
|
|
3519
|
+
updated_at: F<{}, string>;
|
|
3520
|
+
};
|
|
3521
|
+
VisualFile: {};
|
|
3522
|
+
GalleryFile: {
|
|
3523
|
+
id: F<{}, string>;
|
|
3524
|
+
path: F<{}, string>;
|
|
3525
|
+
basename: F<{}, string>;
|
|
3526
|
+
/** @deprecated Use parent_folder instead */
|
|
3527
|
+
parent_folder_id: F<{}, string>;
|
|
3528
|
+
/** @deprecated Use zip_file instead */
|
|
3529
|
+
zip_file_id: F<{}, N<string>>;
|
|
3530
|
+
parent_folder: F<{}, R<"Folder">>;
|
|
3531
|
+
zip_file: F<{}, N<R<"BasicFile">>>;
|
|
3532
|
+
mod_time: F<{}, string>;
|
|
3533
|
+
size: F<{}, number>;
|
|
3534
|
+
fingerprint: F<{
|
|
3535
|
+
type: string;
|
|
3536
|
+
}, N<string>>;
|
|
3537
|
+
fingerprints: F<{}, L<R<"Fingerprint">>>;
|
|
3538
|
+
created_at: F<{}, string>;
|
|
3539
|
+
updated_at: F<{}, string>;
|
|
3540
|
+
};
|
|
3541
|
+
FindFilesResultType: {
|
|
3542
|
+
count: F<{}, number>;
|
|
3543
|
+
/** Total megapixels of any image files */
|
|
3544
|
+
megapixels: F<{}, number>;
|
|
3545
|
+
/** Total duration in seconds of any video files */
|
|
3546
|
+
duration: F<{}, number>;
|
|
3547
|
+
/** Total file size in bytes */
|
|
3548
|
+
size: F<{}, number>;
|
|
3549
|
+
files: F<{}, L<R<"BaseFile">>>;
|
|
3550
|
+
};
|
|
3551
|
+
FindFoldersResultType: {
|
|
3552
|
+
count: F<{}, number>;
|
|
3553
|
+
folders: F<{}, L<R<"Folder">>>;
|
|
3554
|
+
};
|
|
3555
|
+
SavedFindFilterType: {
|
|
3556
|
+
q: F<{}, N<string>>;
|
|
3557
|
+
page: F<{}, N<number>>;
|
|
3558
|
+
/** use per_page = -1 to indicate all results. Defaults to 25. */
|
|
3559
|
+
per_page: F<{}, N<number>>;
|
|
3560
|
+
sort: F<{}, N<string>>;
|
|
3561
|
+
direction: F<{}, N<SortDirectionEnum>>;
|
|
3562
|
+
};
|
|
3563
|
+
SavedFilter: {
|
|
3564
|
+
id: F<{}, string>;
|
|
3565
|
+
mode: F<{}, FilterMode>;
|
|
3566
|
+
name: F<{}, string>;
|
|
3567
|
+
/**
|
|
3568
|
+
* JSON-encoded filter string
|
|
3569
|
+
* @deprecated use find_filter and object_filter instead
|
|
3570
|
+
*/
|
|
3571
|
+
filter: F<{}, string>;
|
|
3572
|
+
find_filter: F<{}, N<R<"SavedFindFilterType">>>;
|
|
3573
|
+
object_filter: F<{}, N<Record<string, unknown>>>;
|
|
3574
|
+
ui_options: F<{}, N<Record<string, unknown>>>;
|
|
3575
|
+
};
|
|
3576
|
+
GalleryChapter: {
|
|
3577
|
+
id: F<{}, string>;
|
|
3578
|
+
gallery: F<{}, R<"Gallery">>;
|
|
3579
|
+
title: F<{}, string>;
|
|
3580
|
+
image_index: F<{}, number>;
|
|
3581
|
+
created_at: F<{}, string>;
|
|
3582
|
+
updated_at: F<{}, string>;
|
|
3583
|
+
};
|
|
3584
|
+
FindGalleryChaptersResultType: {
|
|
3585
|
+
count: F<{}, number>;
|
|
3586
|
+
chapters: F<{}, L<R<"GalleryChapter">>>;
|
|
3587
|
+
};
|
|
3588
|
+
GalleryPathsType: {
|
|
3589
|
+
cover: F<{}, string>;
|
|
3590
|
+
preview: F<{}, string>;
|
|
3591
|
+
};
|
|
3592
|
+
/** Gallery type */
|
|
3593
|
+
Gallery: {
|
|
3594
|
+
id: F<{}, string>;
|
|
3595
|
+
title: F<{}, N<string>>;
|
|
3596
|
+
code: F<{}, N<string>>;
|
|
3597
|
+
/** @deprecated Use urls */
|
|
3598
|
+
url: F<{}, N<string>>;
|
|
3599
|
+
urls: F<{}, L<string>>;
|
|
3600
|
+
date: F<{}, N<string>>;
|
|
3601
|
+
details: F<{}, N<string>>;
|
|
3602
|
+
photographer: F<{}, N<string>>;
|
|
3603
|
+
rating100: F<{}, N<number>>;
|
|
3604
|
+
organized: F<{}, boolean>;
|
|
3605
|
+
created_at: F<{}, string>;
|
|
3606
|
+
updated_at: F<{}, string>;
|
|
3607
|
+
files: F<{}, L<R<"GalleryFile">>>;
|
|
3608
|
+
folder: F<{}, N<R<"Folder">>>;
|
|
3609
|
+
chapters: F<{}, L<R<"GalleryChapter">>>;
|
|
3610
|
+
scenes: F<{}, L<R<"Scene">>>;
|
|
3611
|
+
studio: F<{}, N<R<"Studio">>>;
|
|
3612
|
+
image_count: F<{}, number>;
|
|
3613
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
3614
|
+
performers: F<{}, L<R<"Performer">>>;
|
|
3615
|
+
cover: F<{}, N<R<"Image">>>;
|
|
3616
|
+
paths: F<{}, R<"GalleryPathsType">>;
|
|
3617
|
+
custom_fields: F<{}, Record<string, unknown>>;
|
|
3618
|
+
image: F<{
|
|
3619
|
+
index: number;
|
|
3620
|
+
}, R<"Image">>;
|
|
3621
|
+
};
|
|
3622
|
+
FindGalleriesResultType: {
|
|
3623
|
+
count: F<{}, number>;
|
|
3624
|
+
galleries: F<{}, L<R<"Gallery">>>;
|
|
3625
|
+
};
|
|
3626
|
+
/** GroupDescription represents a relationship to a group with a description of the relationship */
|
|
3627
|
+
GroupDescription: {
|
|
3628
|
+
group: F<{}, R<"Group">>;
|
|
3629
|
+
description: F<{}, N<string>>;
|
|
3630
|
+
};
|
|
3631
|
+
Group: {
|
|
3632
|
+
id: F<{}, string>;
|
|
3633
|
+
name: F<{}, string>;
|
|
3634
|
+
aliases: F<{}, N<string>>;
|
|
3635
|
+
/** Duration in seconds */
|
|
3636
|
+
duration: F<{}, N<number>>;
|
|
3637
|
+
date: F<{}, N<string>>;
|
|
3638
|
+
rating100: F<{}, N<number>>;
|
|
3639
|
+
studio: F<{}, N<R<"Studio">>>;
|
|
3640
|
+
director: F<{}, N<string>>;
|
|
3641
|
+
synopsis: F<{}, N<string>>;
|
|
3642
|
+
urls: F<{}, L<string>>;
|
|
3643
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
3644
|
+
created_at: F<{}, string>;
|
|
3645
|
+
updated_at: F<{}, string>;
|
|
3646
|
+
containing_groups: F<{}, L<R<"GroupDescription">>>;
|
|
3647
|
+
sub_groups: F<{}, L<R<"GroupDescription">>>;
|
|
3648
|
+
front_image_path: F<{}, N<string>>;
|
|
3649
|
+
back_image_path: F<{}, N<string>>;
|
|
3650
|
+
scene_count: F<{
|
|
3651
|
+
depth?: number | null | undefined;
|
|
3652
|
+
}, number>;
|
|
3653
|
+
performer_count: F<{
|
|
3654
|
+
depth?: number | null | undefined;
|
|
3655
|
+
}, number>;
|
|
3656
|
+
sub_group_count: F<{
|
|
3657
|
+
depth?: number | null | undefined;
|
|
3658
|
+
}, number>;
|
|
3659
|
+
scenes: F<{}, L<R<"Scene">>>;
|
|
3660
|
+
o_counter: F<{}, N<number>>;
|
|
3661
|
+
custom_fields: F<{}, Record<string, unknown>>;
|
|
3662
|
+
};
|
|
3663
|
+
FindGroupsResultType: {
|
|
3664
|
+
count: F<{}, number>;
|
|
3665
|
+
groups: F<{}, L<R<"Group">>>;
|
|
3666
|
+
};
|
|
3667
|
+
Image: {
|
|
3668
|
+
id: F<{}, string>;
|
|
3669
|
+
title: F<{}, N<string>>;
|
|
3670
|
+
code: F<{}, N<string>>;
|
|
3671
|
+
rating100: F<{}, N<number>>;
|
|
3672
|
+
/** @deprecated Use urls */
|
|
3673
|
+
url: F<{}, N<string>>;
|
|
3674
|
+
urls: F<{}, L<string>>;
|
|
3675
|
+
date: F<{}, N<string>>;
|
|
3676
|
+
details: F<{}, N<string>>;
|
|
3677
|
+
photographer: F<{}, N<string>>;
|
|
3678
|
+
o_counter: F<{}, N<number>>;
|
|
3679
|
+
organized: F<{}, boolean>;
|
|
3680
|
+
created_at: F<{}, string>;
|
|
3681
|
+
updated_at: F<{}, string>;
|
|
3682
|
+
/** @deprecated Use visual_files */
|
|
3683
|
+
files: F<{}, L<R<"ImageFile">>>;
|
|
3684
|
+
visual_files: F<{}, L<R<"VisualFile">>>;
|
|
3685
|
+
paths: F<{}, R<"ImagePathsType">>;
|
|
3686
|
+
galleries: F<{}, L<R<"Gallery">>>;
|
|
3687
|
+
studio: F<{}, N<R<"Studio">>>;
|
|
3688
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
3689
|
+
performers: F<{}, L<R<"Performer">>>;
|
|
3690
|
+
custom_fields: F<{}, Record<string, unknown>>;
|
|
3691
|
+
};
|
|
3692
|
+
ImageFileType: {
|
|
3693
|
+
mod_time: F<{}, string>;
|
|
3694
|
+
size: F<{}, number>;
|
|
3695
|
+
width: F<{}, number>;
|
|
3696
|
+
height: F<{}, number>;
|
|
3697
|
+
};
|
|
3698
|
+
ImagePathsType: {
|
|
3699
|
+
thumbnail: F<{}, N<string>>;
|
|
3700
|
+
preview: F<{}, N<string>>;
|
|
3701
|
+
image: F<{}, N<string>>;
|
|
3702
|
+
};
|
|
3703
|
+
FindImagesResultType: {
|
|
3704
|
+
count: F<{}, number>;
|
|
3705
|
+
/** Total megapixels of the images */
|
|
3706
|
+
megapixels: F<{}, number>;
|
|
3707
|
+
/** Total file size in bytes */
|
|
3708
|
+
filesize: F<{}, number>;
|
|
3709
|
+
images: F<{}, L<R<"Image">>>;
|
|
3710
|
+
};
|
|
3711
|
+
Job: {
|
|
3712
|
+
id: F<{}, string>;
|
|
3713
|
+
status: F<{}, JobStatus>;
|
|
3714
|
+
subTasks: F<{}, N<L<string>>>;
|
|
3715
|
+
description: F<{}, string>;
|
|
3716
|
+
progress: F<{}, N<number>>;
|
|
3717
|
+
startTime: F<{}, N<string>>;
|
|
3718
|
+
endTime: F<{}, N<string>>;
|
|
3719
|
+
addTime: F<{}, string>;
|
|
3720
|
+
error: F<{}, N<string>>;
|
|
3721
|
+
};
|
|
3722
|
+
JobStatusUpdate: {
|
|
3723
|
+
type: F<{}, JobStatusUpdateType>;
|
|
3724
|
+
job: F<{}, R<"Job">>;
|
|
3725
|
+
};
|
|
3726
|
+
LogEntry: {
|
|
3727
|
+
time: F<{}, string>;
|
|
3728
|
+
level: F<{}, LogLevel>;
|
|
3729
|
+
message: F<{}, string>;
|
|
3730
|
+
};
|
|
3731
|
+
GenerateMetadataOptions: {
|
|
3732
|
+
covers: F<{}, N<boolean>>;
|
|
3733
|
+
sprites: F<{}, N<boolean>>;
|
|
3734
|
+
previews: F<{}, N<boolean>>;
|
|
3735
|
+
imagePreviews: F<{}, N<boolean>>;
|
|
3736
|
+
previewOptions: F<{}, N<R<"GeneratePreviewOptions">>>;
|
|
3737
|
+
markers: F<{}, N<boolean>>;
|
|
3738
|
+
markerImagePreviews: F<{}, N<boolean>>;
|
|
3739
|
+
markerScreenshots: F<{}, N<boolean>>;
|
|
3740
|
+
transcodes: F<{}, N<boolean>>;
|
|
3741
|
+
phashes: F<{}, N<boolean>>;
|
|
3742
|
+
interactiveHeatmapsSpeeds: F<{}, N<boolean>>;
|
|
3743
|
+
imageThumbnails: F<{}, N<boolean>>;
|
|
3744
|
+
clipPreviews: F<{}, N<boolean>>;
|
|
3745
|
+
};
|
|
3746
|
+
GeneratePreviewOptions: {
|
|
3747
|
+
/** Number of segments in a preview file */
|
|
3748
|
+
previewSegments: F<{}, N<number>>;
|
|
3749
|
+
/** Preview segment duration, in seconds */
|
|
3750
|
+
previewSegmentDuration: F<{}, N<number>>;
|
|
3751
|
+
/** Duration of start of video to exclude when generating previews */
|
|
3752
|
+
previewExcludeStart: F<{}, N<string>>;
|
|
3753
|
+
/** Duration of end of video to exclude when generating previews */
|
|
3754
|
+
previewExcludeEnd: F<{}, N<string>>;
|
|
3755
|
+
/** Preset when generating preview */
|
|
3756
|
+
previewPreset: F<{}, N<PreviewPreset>>;
|
|
3757
|
+
};
|
|
3758
|
+
ScanMetadataOptions: {
|
|
3759
|
+
/** Forces a rescan on files even if modification time is unchanged */
|
|
3760
|
+
rescan: F<{}, boolean>;
|
|
3761
|
+
/** Generate covers during scan */
|
|
3762
|
+
scanGenerateCovers: F<{}, boolean>;
|
|
3763
|
+
/** Generate previews during scan */
|
|
3764
|
+
scanGeneratePreviews: F<{}, boolean>;
|
|
3765
|
+
/** Generate image previews during scan */
|
|
3766
|
+
scanGenerateImagePreviews: F<{}, boolean>;
|
|
3767
|
+
/** Generate sprites during scan */
|
|
3768
|
+
scanGenerateSprites: F<{}, boolean>;
|
|
3769
|
+
/** Generate video phashes during scan */
|
|
3770
|
+
scanGeneratePhashes: F<{}, boolean>;
|
|
3771
|
+
/** Generate image phashes during scan */
|
|
3772
|
+
scanGenerateImagePhashes: F<{}, N<boolean>>;
|
|
3773
|
+
/** Generate image thumbnails during scan */
|
|
3774
|
+
scanGenerateThumbnails: F<{}, boolean>;
|
|
3775
|
+
/** Generate image clip previews during scan */
|
|
3776
|
+
scanGenerateClipPreviews: F<{}, boolean>;
|
|
3777
|
+
};
|
|
3778
|
+
AutoTagMetadataOptions: {
|
|
3779
|
+
/** IDs of performers to tag files with, or "*" for all */
|
|
3780
|
+
performers: F<{}, N<L<string>>>;
|
|
3781
|
+
/** IDs of studios to tag files with, or "*" for all */
|
|
3782
|
+
studios: F<{}, N<L<string>>>;
|
|
3783
|
+
/** IDs of tags to tag files with, or "*" for all */
|
|
3784
|
+
tags: F<{}, N<L<string>>>;
|
|
3785
|
+
};
|
|
3786
|
+
IdentifyFieldOptions: {
|
|
3787
|
+
field: F<{}, string>;
|
|
3788
|
+
strategy: F<{}, IdentifyFieldStrategy>;
|
|
3789
|
+
/** creates missing objects if needed - only applicable for performers, tags and studios */
|
|
3790
|
+
createMissing: F<{}, N<boolean>>;
|
|
3791
|
+
};
|
|
3792
|
+
IdentifyMetadataOptions: {
|
|
3793
|
+
/** any fields missing from here are defaulted to MERGE and createMissing false */
|
|
3794
|
+
fieldOptions: F<{}, N<L<R<"IdentifyFieldOptions">>>>;
|
|
3795
|
+
/** defaults to true if not provided */
|
|
3796
|
+
setCoverImage: F<{}, N<boolean>>;
|
|
3797
|
+
setOrganized: F<{}, N<boolean>>;
|
|
3798
|
+
/**
|
|
3799
|
+
* defaults to true if not provided
|
|
3800
|
+
* @deprecated Use performerGenders
|
|
3801
|
+
*/
|
|
3802
|
+
includeMalePerformers: F<{}, N<boolean>>;
|
|
3803
|
+
/** Filter to only include performers with these genders. If not provided, all genders are included. */
|
|
3804
|
+
performerGenders: F<{}, N<L<GenderEnum>>>;
|
|
3805
|
+
/** defaults to true if not provided */
|
|
3806
|
+
skipMultipleMatches: F<{}, N<boolean>>;
|
|
3807
|
+
/** tag to tag skipped multiple matches with */
|
|
3808
|
+
skipMultipleMatchTag: F<{}, N<string>>;
|
|
3809
|
+
/** defaults to true if not provided */
|
|
3810
|
+
skipSingleNamePerformers: F<{}, N<boolean>>;
|
|
3811
|
+
/** tag to tag skipped single name performers with */
|
|
3812
|
+
skipSingleNamePerformerTag: F<{}, N<string>>;
|
|
3813
|
+
};
|
|
3814
|
+
IdentifySource: {
|
|
3815
|
+
source: F<{}, R<"ScraperSource">>;
|
|
3816
|
+
/** Options defined for a source override the defaults */
|
|
3817
|
+
options: F<{}, N<R<"IdentifyMetadataOptions">>>;
|
|
3818
|
+
};
|
|
3819
|
+
IdentifyMetadataTaskOptions: {
|
|
3820
|
+
/** An ordered list of sources to identify items with. Only the first source that finds a match is used. */
|
|
3821
|
+
sources: F<{}, L<R<"IdentifySource">>>;
|
|
3822
|
+
/** Options defined here override the configured defaults */
|
|
3823
|
+
options: F<{}, N<R<"IdentifyMetadataOptions">>>;
|
|
3824
|
+
};
|
|
3825
|
+
SystemStatus: {
|
|
3826
|
+
databaseSchema: F<{}, N<number>>;
|
|
3827
|
+
databasePath: F<{}, N<string>>;
|
|
3828
|
+
configPath: F<{}, N<string>>;
|
|
3829
|
+
appSchema: F<{}, number>;
|
|
3830
|
+
status: F<{}, SystemStatusEnum>;
|
|
3831
|
+
os: F<{}, string>;
|
|
3832
|
+
workingDir: F<{}, string>;
|
|
3833
|
+
homeDir: F<{}, string>;
|
|
3834
|
+
ffmpegPath: F<{}, N<string>>;
|
|
3835
|
+
ffprobePath: F<{}, N<string>>;
|
|
3836
|
+
};
|
|
3837
|
+
Movie: {
|
|
3838
|
+
id: F<{}, string>;
|
|
3839
|
+
name: F<{}, string>;
|
|
3840
|
+
aliases: F<{}, N<string>>;
|
|
3841
|
+
/** Duration in seconds */
|
|
3842
|
+
duration: F<{}, N<number>>;
|
|
3843
|
+
date: F<{}, N<string>>;
|
|
3844
|
+
rating100: F<{}, N<number>>;
|
|
3845
|
+
studio: F<{}, N<R<"Studio">>>;
|
|
3846
|
+
director: F<{}, N<string>>;
|
|
3847
|
+
synopsis: F<{}, N<string>>;
|
|
3848
|
+
/** @deprecated Use urls */
|
|
3849
|
+
url: F<{}, N<string>>;
|
|
3850
|
+
urls: F<{}, L<string>>;
|
|
3851
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
3852
|
+
created_at: F<{}, string>;
|
|
3853
|
+
updated_at: F<{}, string>;
|
|
3854
|
+
front_image_path: F<{}, N<string>>;
|
|
3855
|
+
back_image_path: F<{}, N<string>>;
|
|
3856
|
+
scene_count: F<{
|
|
3857
|
+
depth?: number | null | undefined;
|
|
3858
|
+
}, number>;
|
|
3859
|
+
scenes: F<{}, L<R<"Scene">>>;
|
|
3860
|
+
};
|
|
3861
|
+
FindMoviesResultType: {
|
|
3862
|
+
count: F<{}, number>;
|
|
3863
|
+
movies: F<{}, L<R<"Movie">>>;
|
|
3864
|
+
};
|
|
3865
|
+
Package: {
|
|
3866
|
+
package_id: F<{}, string>;
|
|
3867
|
+
name: F<{}, string>;
|
|
3868
|
+
version: F<{}, N<string>>;
|
|
3869
|
+
date: F<{}, N<string>>;
|
|
3870
|
+
requires: F<{}, L<R<"Package">>>;
|
|
3871
|
+
sourceURL: F<{}, string>;
|
|
3872
|
+
/** The version of this package currently available from the remote source */
|
|
3873
|
+
source_package: F<{}, N<R<"Package">>>;
|
|
3874
|
+
metadata: F<{}, Record<string, unknown>>;
|
|
3875
|
+
};
|
|
3876
|
+
PackageSource: {
|
|
3877
|
+
name: F<{}, N<string>>;
|
|
3878
|
+
url: F<{}, string>;
|
|
3879
|
+
local_path: F<{}, N<string>>;
|
|
3880
|
+
};
|
|
3881
|
+
Performer: {
|
|
3882
|
+
id: F<{}, string>;
|
|
3883
|
+
name: F<{}, string>;
|
|
3884
|
+
disambiguation: F<{}, N<string>>;
|
|
3885
|
+
/** @deprecated Use urls */
|
|
3886
|
+
url: F<{}, N<string>>;
|
|
3887
|
+
urls: F<{}, N<L<string>>>;
|
|
3888
|
+
gender: F<{}, N<GenderEnum>>;
|
|
3889
|
+
/** @deprecated Use urls */
|
|
3890
|
+
twitter: F<{}, N<string>>;
|
|
3891
|
+
/** @deprecated Use urls */
|
|
3892
|
+
instagram: F<{}, N<string>>;
|
|
3893
|
+
birthdate: F<{}, N<string>>;
|
|
3894
|
+
ethnicity: F<{}, N<string>>;
|
|
3895
|
+
country: F<{}, N<string>>;
|
|
3896
|
+
eye_color: F<{}, N<string>>;
|
|
3897
|
+
height_cm: F<{}, N<number>>;
|
|
3898
|
+
measurements: F<{}, N<string>>;
|
|
3899
|
+
fake_tits: F<{}, N<string>>;
|
|
3900
|
+
penis_length: F<{}, N<number>>;
|
|
3901
|
+
circumcised: F<{}, N<CircumcisedEnum>>;
|
|
3902
|
+
/** @deprecated Use career_start and career_end */
|
|
3903
|
+
career_length: F<{}, N<string>>;
|
|
3904
|
+
career_start: F<{}, N<string>>;
|
|
3905
|
+
career_end: F<{}, N<string>>;
|
|
3906
|
+
tattoos: F<{}, N<string>>;
|
|
3907
|
+
piercings: F<{}, N<string>>;
|
|
3908
|
+
alias_list: F<{}, L<string>>;
|
|
3909
|
+
favorite: F<{}, boolean>;
|
|
3910
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
3911
|
+
ignore_auto_tag: F<{}, boolean>;
|
|
3912
|
+
image_path: F<{}, N<string>>;
|
|
3913
|
+
scene_count: F<{}, number>;
|
|
3914
|
+
image_count: F<{}, number>;
|
|
3915
|
+
gallery_count: F<{}, number>;
|
|
3916
|
+
group_count: F<{}, number>;
|
|
3917
|
+
/** @deprecated use group_count instead */
|
|
3918
|
+
movie_count: F<{}, number>;
|
|
3919
|
+
performer_count: F<{}, number>;
|
|
3920
|
+
o_counter: F<{}, N<number>>;
|
|
3921
|
+
scenes: F<{}, L<R<"Scene">>>;
|
|
3922
|
+
stash_ids: F<{}, L<R<"StashID">>>;
|
|
3923
|
+
rating100: F<{}, N<number>>;
|
|
3924
|
+
details: F<{}, N<string>>;
|
|
3925
|
+
death_date: F<{}, N<string>>;
|
|
3926
|
+
hair_color: F<{}, N<string>>;
|
|
3927
|
+
weight: F<{}, N<number>>;
|
|
3928
|
+
created_at: F<{}, string>;
|
|
3929
|
+
updated_at: F<{}, string>;
|
|
3930
|
+
groups: F<{}, L<R<"Group">>>;
|
|
3931
|
+
/** @deprecated use groups instead */
|
|
3932
|
+
movies: F<{}, L<R<"Movie">>>;
|
|
3933
|
+
custom_fields: F<{}, Record<string, unknown>>;
|
|
3934
|
+
};
|
|
3935
|
+
FindPerformersResultType: {
|
|
3936
|
+
count: F<{}, number>;
|
|
3937
|
+
performers: F<{}, L<R<"Performer">>>;
|
|
3938
|
+
};
|
|
3939
|
+
PluginPaths: {
|
|
3940
|
+
javascript: F<{}, N<L<string>>>;
|
|
3941
|
+
css: F<{}, N<L<string>>>;
|
|
3942
|
+
};
|
|
3943
|
+
Plugin: {
|
|
3944
|
+
id: F<{}, string>;
|
|
3945
|
+
name: F<{}, string>;
|
|
3946
|
+
description: F<{}, N<string>>;
|
|
3947
|
+
url: F<{}, N<string>>;
|
|
3948
|
+
version: F<{}, N<string>>;
|
|
3949
|
+
enabled: F<{}, boolean>;
|
|
3950
|
+
tasks: F<{}, N<L<R<"PluginTask">>>>;
|
|
3951
|
+
hooks: F<{}, N<L<R<"PluginHook">>>>;
|
|
3952
|
+
settings: F<{}, N<L<R<"PluginSetting">>>>;
|
|
3953
|
+
/**
|
|
3954
|
+
* Plugin IDs of plugins that this plugin depends on.
|
|
3955
|
+
* Applies only for UI plugins to indicate css/javascript load order.
|
|
3956
|
+
*/
|
|
3957
|
+
requires: F<{}, N<L<string>>>;
|
|
3958
|
+
paths: F<{}, R<"PluginPaths">>;
|
|
3959
|
+
};
|
|
3960
|
+
PluginTask: {
|
|
3961
|
+
name: F<{}, string>;
|
|
3962
|
+
description: F<{}, N<string>>;
|
|
3963
|
+
plugin: F<{}, R<"Plugin">>;
|
|
3964
|
+
};
|
|
3965
|
+
PluginHook: {
|
|
3966
|
+
name: F<{}, string>;
|
|
3967
|
+
description: F<{}, N<string>>;
|
|
3968
|
+
hooks: F<{}, N<L<string>>>;
|
|
3969
|
+
plugin: F<{}, R<"Plugin">>;
|
|
3970
|
+
};
|
|
3971
|
+
PluginResult: {
|
|
3972
|
+
error: F<{}, N<string>>;
|
|
3973
|
+
result: F<{}, N<string>>;
|
|
3974
|
+
};
|
|
3975
|
+
PluginSetting: {
|
|
3976
|
+
name: F<{}, string>;
|
|
3977
|
+
display_name: F<{}, N<string>>;
|
|
3978
|
+
description: F<{}, N<string>>;
|
|
3979
|
+
type: F<{}, PluginSettingTypeEnum>;
|
|
3980
|
+
};
|
|
3981
|
+
SceneMarkerTag: {
|
|
3982
|
+
tag: F<{}, R<"Tag">>;
|
|
3983
|
+
scene_markers: F<{}, L<R<"SceneMarker">>>;
|
|
3984
|
+
};
|
|
3985
|
+
SceneMarker: {
|
|
3986
|
+
id: F<{}, string>;
|
|
3987
|
+
scene: F<{}, R<"Scene">>;
|
|
3988
|
+
title: F<{}, string>;
|
|
3989
|
+
/** The required start time of the marker (in seconds). Supports decimals. */
|
|
3990
|
+
seconds: F<{}, number>;
|
|
3991
|
+
/** The optional end time of the marker (in seconds). Supports decimals. */
|
|
3992
|
+
end_seconds: F<{}, N<number>>;
|
|
3993
|
+
primary_tag: F<{}, R<"Tag">>;
|
|
3994
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
3995
|
+
created_at: F<{}, string>;
|
|
3996
|
+
updated_at: F<{}, string>;
|
|
3997
|
+
/** The path to stream this marker */
|
|
3998
|
+
stream: F<{}, string>;
|
|
3999
|
+
/** The path to the preview image for this marker */
|
|
4000
|
+
preview: F<{}, string>;
|
|
4001
|
+
/** The path to the screenshot image for this marker */
|
|
4002
|
+
screenshot: F<{}, string>;
|
|
4003
|
+
};
|
|
4004
|
+
FindSceneMarkersResultType: {
|
|
4005
|
+
count: F<{}, number>;
|
|
4006
|
+
scene_markers: F<{}, L<R<"SceneMarker">>>;
|
|
4007
|
+
};
|
|
4008
|
+
MarkerStringsResultType: {
|
|
4009
|
+
count: F<{}, number>;
|
|
4010
|
+
id: F<{}, string>;
|
|
4011
|
+
title: F<{}, string>;
|
|
4012
|
+
};
|
|
4013
|
+
SceneFileType: {
|
|
4014
|
+
size: F<{}, N<string>>;
|
|
4015
|
+
duration: F<{}, N<number>>;
|
|
4016
|
+
video_codec: F<{}, N<string>>;
|
|
4017
|
+
audio_codec: F<{}, N<string>>;
|
|
4018
|
+
width: F<{}, N<number>>;
|
|
4019
|
+
height: F<{}, N<number>>;
|
|
4020
|
+
framerate: F<{}, N<number>>;
|
|
4021
|
+
bitrate: F<{}, N<number>>;
|
|
4022
|
+
};
|
|
4023
|
+
ScenePathsType: {
|
|
4024
|
+
screenshot: F<{}, N<string>>;
|
|
4025
|
+
preview: F<{}, N<string>>;
|
|
4026
|
+
stream: F<{}, N<string>>;
|
|
4027
|
+
webp: F<{}, N<string>>;
|
|
4028
|
+
vtt: F<{}, N<string>>;
|
|
4029
|
+
sprite: F<{}, N<string>>;
|
|
4030
|
+
funscript: F<{}, N<string>>;
|
|
4031
|
+
interactive_heatmap: F<{}, N<string>>;
|
|
4032
|
+
caption: F<{}, N<string>>;
|
|
4033
|
+
};
|
|
4034
|
+
SceneMovie: {
|
|
4035
|
+
movie: F<{}, R<"Movie">>;
|
|
4036
|
+
scene_index: F<{}, N<number>>;
|
|
4037
|
+
};
|
|
4038
|
+
SceneGroup: {
|
|
4039
|
+
group: F<{}, R<"Group">>;
|
|
4040
|
+
scene_index: F<{}, N<number>>;
|
|
4041
|
+
};
|
|
4042
|
+
VideoCaption: {
|
|
4043
|
+
language_code: F<{}, string>;
|
|
4044
|
+
caption_type: F<{}, string>;
|
|
4045
|
+
};
|
|
4046
|
+
Scene: {
|
|
4047
|
+
id: F<{}, string>;
|
|
4048
|
+
title: F<{}, N<string>>;
|
|
4049
|
+
code: F<{}, N<string>>;
|
|
4050
|
+
details: F<{}, N<string>>;
|
|
4051
|
+
director: F<{}, N<string>>;
|
|
4052
|
+
/** @deprecated Use urls */
|
|
4053
|
+
url: F<{}, N<string>>;
|
|
4054
|
+
urls: F<{}, L<string>>;
|
|
4055
|
+
date: F<{}, N<string>>;
|
|
4056
|
+
rating100: F<{}, N<number>>;
|
|
4057
|
+
organized: F<{}, boolean>;
|
|
4058
|
+
o_counter: F<{}, N<number>>;
|
|
4059
|
+
interactive: F<{}, boolean>;
|
|
4060
|
+
interactive_speed: F<{}, N<number>>;
|
|
4061
|
+
captions: F<{}, N<L<R<"VideoCaption">>>>;
|
|
4062
|
+
created_at: F<{}, string>;
|
|
4063
|
+
updated_at: F<{}, string>;
|
|
4064
|
+
/** The last time play count was updated */
|
|
4065
|
+
last_played_at: F<{}, N<string>>;
|
|
4066
|
+
/** The time index a scene was left at */
|
|
4067
|
+
resume_time: F<{}, N<number>>;
|
|
4068
|
+
/** The total time a scene has spent playing */
|
|
4069
|
+
play_duration: F<{}, N<number>>;
|
|
4070
|
+
/** The number ot times a scene has been played */
|
|
4071
|
+
play_count: F<{}, N<number>>;
|
|
4072
|
+
/** Times a scene was played */
|
|
4073
|
+
play_history: F<{}, L<string>>;
|
|
4074
|
+
/** Times the o counter was incremented */
|
|
4075
|
+
o_history: F<{}, L<string>>;
|
|
4076
|
+
files: F<{}, L<R<"VideoFile">>>;
|
|
4077
|
+
paths: F<{}, R<"ScenePathsType">>;
|
|
4078
|
+
scene_markers: F<{}, L<R<"SceneMarker">>>;
|
|
4079
|
+
galleries: F<{}, L<R<"Gallery">>>;
|
|
4080
|
+
studio: F<{}, N<R<"Studio">>>;
|
|
4081
|
+
groups: F<{}, L<R<"SceneGroup">>>;
|
|
4082
|
+
/** @deprecated Use groups */
|
|
4083
|
+
movies: F<{}, L<R<"SceneMovie">>>;
|
|
4084
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
4085
|
+
performers: F<{}, L<R<"Performer">>>;
|
|
4086
|
+
stash_ids: F<{}, L<R<"StashID">>>;
|
|
4087
|
+
custom_fields: F<{}, Record<string, unknown>>;
|
|
4088
|
+
/** Return valid stream paths */
|
|
4089
|
+
sceneStreams: F<{}, L<R<"SceneStreamEndpoint">>>;
|
|
4090
|
+
};
|
|
4091
|
+
FindScenesResultType: {
|
|
4092
|
+
count: F<{}, number>;
|
|
4093
|
+
/** Total duration in seconds */
|
|
4094
|
+
duration: F<{}, number>;
|
|
4095
|
+
/** Total file size in bytes */
|
|
4096
|
+
filesize: F<{}, number>;
|
|
4097
|
+
scenes: F<{}, L<R<"Scene">>>;
|
|
4098
|
+
};
|
|
4099
|
+
SceneMovieID: {
|
|
4100
|
+
movie_id: F<{}, string>;
|
|
4101
|
+
scene_index: F<{}, N<string>>;
|
|
4102
|
+
};
|
|
4103
|
+
SceneParserResult: {
|
|
4104
|
+
scene: F<{}, R<"Scene">>;
|
|
4105
|
+
title: F<{}, N<string>>;
|
|
4106
|
+
code: F<{}, N<string>>;
|
|
4107
|
+
details: F<{}, N<string>>;
|
|
4108
|
+
director: F<{}, N<string>>;
|
|
4109
|
+
url: F<{}, N<string>>;
|
|
4110
|
+
date: F<{}, N<string>>;
|
|
4111
|
+
/** @deprecated Use 1-100 range with rating100 */
|
|
4112
|
+
rating: F<{}, N<number>>;
|
|
4113
|
+
rating100: F<{}, N<number>>;
|
|
4114
|
+
studio_id: F<{}, N<string>>;
|
|
4115
|
+
gallery_ids: F<{}, N<L<string>>>;
|
|
4116
|
+
performer_ids: F<{}, N<L<string>>>;
|
|
4117
|
+
movies: F<{}, N<L<R<"SceneMovieID">>>>;
|
|
4118
|
+
tag_ids: F<{}, N<L<string>>>;
|
|
4119
|
+
};
|
|
4120
|
+
SceneParserResultType: {
|
|
4121
|
+
count: F<{}, number>;
|
|
4122
|
+
results: F<{}, L<R<"SceneParserResult">>>;
|
|
4123
|
+
};
|
|
4124
|
+
SceneStreamEndpoint: {
|
|
4125
|
+
url: F<{}, string>;
|
|
4126
|
+
mime_type: F<{}, N<string>>;
|
|
4127
|
+
label: F<{}, N<string>>;
|
|
4128
|
+
};
|
|
4129
|
+
HistoryMutationResult: {
|
|
4130
|
+
count: F<{}, number>;
|
|
4131
|
+
history: F<{}, L<string>>;
|
|
4132
|
+
};
|
|
4133
|
+
/** A movie from a scraping operation... */
|
|
4134
|
+
ScrapedMovie: {
|
|
4135
|
+
stored_id: F<{}, N<string>>;
|
|
4136
|
+
name: F<{}, N<string>>;
|
|
4137
|
+
aliases: F<{}, N<string>>;
|
|
4138
|
+
duration: F<{}, N<string>>;
|
|
4139
|
+
date: F<{}, N<string>>;
|
|
4140
|
+
rating: F<{}, N<string>>;
|
|
4141
|
+
director: F<{}, N<string>>;
|
|
4142
|
+
/** @deprecated use urls */
|
|
4143
|
+
url: F<{}, N<string>>;
|
|
4144
|
+
urls: F<{}, N<L<string>>>;
|
|
4145
|
+
synopsis: F<{}, N<string>>;
|
|
4146
|
+
studio: F<{}, N<R<"ScrapedStudio">>>;
|
|
4147
|
+
tags: F<{}, N<L<R<"ScrapedTag">>>>;
|
|
4148
|
+
/** This should be a base64 encoded data URL */
|
|
4149
|
+
front_image: F<{}, N<string>>;
|
|
4150
|
+
/** This should be a base64 encoded data URL */
|
|
4151
|
+
back_image: F<{}, N<string>>;
|
|
4152
|
+
};
|
|
4153
|
+
/** A group from a scraping operation... */
|
|
4154
|
+
ScrapedGroup: {
|
|
4155
|
+
stored_id: F<{}, N<string>>;
|
|
4156
|
+
name: F<{}, N<string>>;
|
|
4157
|
+
aliases: F<{}, N<string>>;
|
|
4158
|
+
duration: F<{}, N<string>>;
|
|
4159
|
+
date: F<{}, N<string>>;
|
|
4160
|
+
rating: F<{}, N<string>>;
|
|
4161
|
+
director: F<{}, N<string>>;
|
|
4162
|
+
urls: F<{}, N<L<string>>>;
|
|
4163
|
+
synopsis: F<{}, N<string>>;
|
|
4164
|
+
studio: F<{}, N<R<"ScrapedStudio">>>;
|
|
4165
|
+
tags: F<{}, N<L<R<"ScrapedTag">>>>;
|
|
4166
|
+
/** This should be a base64 encoded data URL */
|
|
4167
|
+
front_image: F<{}, N<string>>;
|
|
4168
|
+
/** This should be a base64 encoded data URL */
|
|
4169
|
+
back_image: F<{}, N<string>>;
|
|
4170
|
+
};
|
|
4171
|
+
/** A performer from a scraping operation... */
|
|
4172
|
+
ScrapedPerformer: {
|
|
4173
|
+
/** Set if performer matched */
|
|
4174
|
+
stored_id: F<{}, N<string>>;
|
|
4175
|
+
name: F<{}, N<string>>;
|
|
4176
|
+
disambiguation: F<{}, N<string>>;
|
|
4177
|
+
gender: F<{}, N<string>>;
|
|
4178
|
+
/** @deprecated use urls */
|
|
4179
|
+
url: F<{}, N<string>>;
|
|
4180
|
+
urls: F<{}, N<L<string>>>;
|
|
4181
|
+
/** @deprecated use urls */
|
|
4182
|
+
twitter: F<{}, N<string>>;
|
|
4183
|
+
/** @deprecated use urls */
|
|
4184
|
+
instagram: F<{}, N<string>>;
|
|
4185
|
+
birthdate: F<{}, N<string>>;
|
|
4186
|
+
ethnicity: F<{}, N<string>>;
|
|
4187
|
+
country: F<{}, N<string>>;
|
|
4188
|
+
eye_color: F<{}, N<string>>;
|
|
4189
|
+
height: F<{}, N<string>>;
|
|
4190
|
+
measurements: F<{}, N<string>>;
|
|
4191
|
+
fake_tits: F<{}, N<string>>;
|
|
4192
|
+
penis_length: F<{}, N<string>>;
|
|
4193
|
+
circumcised: F<{}, N<string>>;
|
|
4194
|
+
/** @deprecated Use career_start and career_end */
|
|
4195
|
+
career_length: F<{}, N<string>>;
|
|
4196
|
+
career_start: F<{}, N<string>>;
|
|
4197
|
+
career_end: F<{}, N<string>>;
|
|
4198
|
+
tattoos: F<{}, N<string>>;
|
|
4199
|
+
piercings: F<{}, N<string>>;
|
|
4200
|
+
aliases: F<{}, N<string>>;
|
|
4201
|
+
tags: F<{}, N<L<R<"ScrapedTag">>>>;
|
|
4202
|
+
/**
|
|
4203
|
+
* This should be a base64 encoded data URL
|
|
4204
|
+
* @deprecated use images instead
|
|
4205
|
+
*/
|
|
4206
|
+
image: F<{}, N<string>>;
|
|
4207
|
+
images: F<{}, N<L<string>>>;
|
|
4208
|
+
details: F<{}, N<string>>;
|
|
4209
|
+
death_date: F<{}, N<string>>;
|
|
4210
|
+
hair_color: F<{}, N<string>>;
|
|
4211
|
+
weight: F<{}, N<string>>;
|
|
4212
|
+
remote_site_id: F<{}, N<string>>;
|
|
4213
|
+
};
|
|
4214
|
+
/** Scraped Content is the forming union over the different scrapers */
|
|
4215
|
+
ScrapedContent: {};
|
|
4216
|
+
ScraperSpec: {
|
|
4217
|
+
/** URLs matching these can be scraped with */
|
|
4218
|
+
urls: F<{}, N<L<string>>>;
|
|
4219
|
+
supported_scrapes: F<{}, L<ScrapeType>>;
|
|
4220
|
+
};
|
|
4221
|
+
Scraper: {
|
|
4222
|
+
id: F<{}, string>;
|
|
4223
|
+
name: F<{}, string>;
|
|
4224
|
+
/** Details for performer scraper */
|
|
4225
|
+
performer: F<{}, N<R<"ScraperSpec">>>;
|
|
4226
|
+
/** Details for scene scraper */
|
|
4227
|
+
scene: F<{}, N<R<"ScraperSpec">>>;
|
|
4228
|
+
/** Details for gallery scraper */
|
|
4229
|
+
gallery: F<{}, N<R<"ScraperSpec">>>;
|
|
4230
|
+
/** Details for image scraper */
|
|
4231
|
+
image: F<{}, N<R<"ScraperSpec">>>;
|
|
4232
|
+
/**
|
|
4233
|
+
* Details for movie scraper
|
|
4234
|
+
* @deprecated use group
|
|
4235
|
+
*/
|
|
4236
|
+
movie: F<{}, N<R<"ScraperSpec">>>;
|
|
4237
|
+
/** Details for group scraper */
|
|
4238
|
+
group: F<{}, N<R<"ScraperSpec">>>;
|
|
4239
|
+
};
|
|
4240
|
+
ScrapedStudio: {
|
|
4241
|
+
/** Set if studio matched */
|
|
4242
|
+
stored_id: F<{}, N<string>>;
|
|
4243
|
+
name: F<{}, string>;
|
|
4244
|
+
/** @deprecated use urls */
|
|
4245
|
+
url: F<{}, N<string>>;
|
|
4246
|
+
urls: F<{}, N<L<string>>>;
|
|
4247
|
+
parent: F<{}, N<R<"ScrapedStudio">>>;
|
|
4248
|
+
image: F<{}, N<string>>;
|
|
4249
|
+
details: F<{}, N<string>>;
|
|
4250
|
+
/** Aliases must be comma-delimited to be parsed correctly */
|
|
4251
|
+
aliases: F<{}, N<string>>;
|
|
4252
|
+
tags: F<{}, N<L<R<"ScrapedTag">>>>;
|
|
4253
|
+
remote_site_id: F<{}, N<string>>;
|
|
4254
|
+
};
|
|
4255
|
+
ScrapedTag: {
|
|
4256
|
+
/** Set if tag matched */
|
|
4257
|
+
stored_id: F<{}, N<string>>;
|
|
4258
|
+
name: F<{}, string>;
|
|
4259
|
+
description: F<{}, N<string>>;
|
|
4260
|
+
alias_list: F<{}, N<L<string>>>;
|
|
4261
|
+
parent: F<{}, N<R<"ScrapedTag">>>;
|
|
4262
|
+
/** Remote site ID, if applicable */
|
|
4263
|
+
remote_site_id: F<{}, N<string>>;
|
|
4264
|
+
};
|
|
4265
|
+
ScrapedScene: {
|
|
4266
|
+
title: F<{}, N<string>>;
|
|
4267
|
+
code: F<{}, N<string>>;
|
|
4268
|
+
details: F<{}, N<string>>;
|
|
4269
|
+
director: F<{}, N<string>>;
|
|
4270
|
+
/** @deprecated use urls */
|
|
4271
|
+
url: F<{}, N<string>>;
|
|
4272
|
+
urls: F<{}, N<L<string>>>;
|
|
4273
|
+
date: F<{}, N<string>>;
|
|
4274
|
+
/** This should be a base64 encoded data URL */
|
|
4275
|
+
image: F<{}, N<string>>;
|
|
4276
|
+
file: F<{}, N<R<"SceneFileType">>>;
|
|
4277
|
+
studio: F<{}, N<R<"ScrapedStudio">>>;
|
|
4278
|
+
tags: F<{}, N<L<R<"ScrapedTag">>>>;
|
|
4279
|
+
performers: F<{}, N<L<R<"ScrapedPerformer">>>>;
|
|
4280
|
+
/** @deprecated use groups */
|
|
4281
|
+
movies: F<{}, N<L<R<"ScrapedMovie">>>>;
|
|
4282
|
+
groups: F<{}, N<L<R<"ScrapedGroup">>>>;
|
|
4283
|
+
remote_site_id: F<{}, N<string>>;
|
|
4284
|
+
duration: F<{}, N<number>>;
|
|
4285
|
+
fingerprints: F<{}, N<L<R<"StashBoxFingerprint">>>>;
|
|
4286
|
+
};
|
|
4287
|
+
ScrapedGallery: {
|
|
4288
|
+
title: F<{}, N<string>>;
|
|
4289
|
+
code: F<{}, N<string>>;
|
|
4290
|
+
details: F<{}, N<string>>;
|
|
4291
|
+
photographer: F<{}, N<string>>;
|
|
4292
|
+
/** @deprecated use urls */
|
|
4293
|
+
url: F<{}, N<string>>;
|
|
4294
|
+
urls: F<{}, N<L<string>>>;
|
|
4295
|
+
date: F<{}, N<string>>;
|
|
4296
|
+
studio: F<{}, N<R<"ScrapedStudio">>>;
|
|
4297
|
+
tags: F<{}, N<L<R<"ScrapedTag">>>>;
|
|
4298
|
+
performers: F<{}, N<L<R<"ScrapedPerformer">>>>;
|
|
4299
|
+
};
|
|
4300
|
+
ScrapedImage: {
|
|
4301
|
+
title: F<{}, N<string>>;
|
|
4302
|
+
code: F<{}, N<string>>;
|
|
4303
|
+
details: F<{}, N<string>>;
|
|
4304
|
+
photographer: F<{}, N<string>>;
|
|
4305
|
+
urls: F<{}, N<L<string>>>;
|
|
4306
|
+
date: F<{}, N<string>>;
|
|
4307
|
+
studio: F<{}, N<R<"ScrapedStudio">>>;
|
|
4308
|
+
tags: F<{}, N<L<R<"ScrapedTag">>>>;
|
|
4309
|
+
performers: F<{}, N<L<R<"ScrapedPerformer">>>>;
|
|
4310
|
+
};
|
|
4311
|
+
ScraperSource: {
|
|
4312
|
+
/**
|
|
4313
|
+
* Index of the configured stash-box instance to use. Should be unset if scraper_id is set
|
|
4314
|
+
* @deprecated use stash_box_endpoint
|
|
4315
|
+
*/
|
|
4316
|
+
stash_box_index: F<{}, N<number>>;
|
|
4317
|
+
/** Stash-box endpoint */
|
|
4318
|
+
stash_box_endpoint: F<{}, N<string>>;
|
|
4319
|
+
/** Scraper ID to scrape with. Should be unset if stash_box_endpoint/stash_box_index is set */
|
|
4320
|
+
scraper_id: F<{}, N<string>>;
|
|
4321
|
+
};
|
|
4322
|
+
StashBoxPerformerQueryResult: {
|
|
4323
|
+
query: F<{}, string>;
|
|
4324
|
+
results: F<{}, L<R<"ScrapedPerformer">>>;
|
|
4325
|
+
};
|
|
4326
|
+
StashBoxFingerprint: {
|
|
4327
|
+
algorithm: F<{}, string>;
|
|
4328
|
+
hash: F<{}, string>;
|
|
4329
|
+
duration: F<{}, number>;
|
|
4330
|
+
};
|
|
4331
|
+
SQLQueryResult: {
|
|
4332
|
+
/** The column names, in the order they appear in the result set. */
|
|
4333
|
+
columns: F<{}, L<string>>;
|
|
4334
|
+
/** The returned rows. */
|
|
4335
|
+
rows: F<{}, L<L<N<unknown>>>>;
|
|
4336
|
+
};
|
|
4337
|
+
SQLExecResult: {
|
|
4338
|
+
/**
|
|
4339
|
+
* The number of rows affected by the query, usually an UPDATE, INSERT, or DELETE.
|
|
4340
|
+
* Not all queries or databases support this feature.
|
|
4341
|
+
*/
|
|
4342
|
+
rows_affected: F<{}, N<number>>;
|
|
4343
|
+
/**
|
|
4344
|
+
* The integer generated by the database in response to a command.
|
|
4345
|
+
* Typically this will be from an "auto increment" column when inserting a new row.
|
|
4346
|
+
* Not all databases support this feature, and the syntax of such statements varies.
|
|
4347
|
+
*/
|
|
4348
|
+
last_insert_id: F<{}, N<number>>;
|
|
4349
|
+
};
|
|
4350
|
+
StashBox: {
|
|
4351
|
+
endpoint: F<{}, string>;
|
|
4352
|
+
api_key: F<{}, string>;
|
|
4353
|
+
name: F<{}, string>;
|
|
4354
|
+
max_requests_per_minute: F<{}, number>;
|
|
4355
|
+
};
|
|
4356
|
+
StashID: {
|
|
4357
|
+
endpoint: F<{}, string>;
|
|
4358
|
+
stash_id: F<{}, string>;
|
|
4359
|
+
updated_at: F<{}, string>;
|
|
4360
|
+
};
|
|
4361
|
+
StatsResultType: {
|
|
4362
|
+
scene_count: F<{}, number>;
|
|
4363
|
+
scenes_size: F<{}, number>;
|
|
4364
|
+
scenes_duration: F<{}, number>;
|
|
4365
|
+
image_count: F<{}, number>;
|
|
4366
|
+
images_size: F<{}, number>;
|
|
4367
|
+
gallery_count: F<{}, number>;
|
|
4368
|
+
performer_count: F<{}, number>;
|
|
4369
|
+
studio_count: F<{}, number>;
|
|
4370
|
+
group_count: F<{}, number>;
|
|
4371
|
+
/** @deprecated use group_count instead */
|
|
4372
|
+
movie_count: F<{}, number>;
|
|
4373
|
+
tag_count: F<{}, number>;
|
|
4374
|
+
total_o_count: F<{}, number>;
|
|
4375
|
+
total_play_duration: F<{}, number>;
|
|
4376
|
+
total_play_count: F<{}, number>;
|
|
4377
|
+
scenes_played: F<{}, number>;
|
|
4378
|
+
};
|
|
4379
|
+
Studio: {
|
|
4380
|
+
id: F<{}, string>;
|
|
4381
|
+
name: F<{}, string>;
|
|
4382
|
+
/** @deprecated Use urls */
|
|
4383
|
+
url: F<{}, N<string>>;
|
|
4384
|
+
urls: F<{}, L<string>>;
|
|
4385
|
+
parent_studio: F<{}, N<R<"Studio">>>;
|
|
4386
|
+
child_studios: F<{}, L<R<"Studio">>>;
|
|
4387
|
+
aliases: F<{}, L<string>>;
|
|
4388
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
4389
|
+
ignore_auto_tag: F<{}, boolean>;
|
|
4390
|
+
organized: F<{}, boolean>;
|
|
4391
|
+
image_path: F<{}, N<string>>;
|
|
4392
|
+
scene_count: F<{
|
|
4393
|
+
depth?: number | null | undefined;
|
|
4394
|
+
}, number>;
|
|
4395
|
+
image_count: F<{
|
|
4396
|
+
depth?: number | null | undefined;
|
|
4397
|
+
}, number>;
|
|
4398
|
+
gallery_count: F<{
|
|
4399
|
+
depth?: number | null | undefined;
|
|
4400
|
+
}, number>;
|
|
4401
|
+
performer_count: F<{
|
|
4402
|
+
depth?: number | null | undefined;
|
|
4403
|
+
}, number>;
|
|
4404
|
+
group_count: F<{
|
|
4405
|
+
depth?: number | null | undefined;
|
|
4406
|
+
}, number>;
|
|
4407
|
+
/** @deprecated use group_count instead */
|
|
4408
|
+
movie_count: F<{
|
|
4409
|
+
depth?: number | null | undefined;
|
|
4410
|
+
}, number>;
|
|
4411
|
+
stash_ids: F<{}, L<R<"StashID">>>;
|
|
4412
|
+
rating100: F<{}, N<number>>;
|
|
4413
|
+
favorite: F<{}, boolean>;
|
|
4414
|
+
details: F<{}, N<string>>;
|
|
4415
|
+
created_at: F<{}, string>;
|
|
4416
|
+
updated_at: F<{}, string>;
|
|
4417
|
+
groups: F<{}, L<R<"Group">>>;
|
|
4418
|
+
/** @deprecated use groups instead */
|
|
4419
|
+
movies: F<{}, L<R<"Movie">>>;
|
|
4420
|
+
o_counter: F<{}, N<number>>;
|
|
4421
|
+
custom_fields: F<{}, Record<string, unknown>>;
|
|
4422
|
+
};
|
|
4423
|
+
FindStudiosResultType: {
|
|
4424
|
+
count: F<{}, number>;
|
|
4425
|
+
studios: F<{}, L<R<"Studio">>>;
|
|
4426
|
+
};
|
|
4427
|
+
Tag: {
|
|
4428
|
+
id: F<{}, string>;
|
|
4429
|
+
name: F<{}, string>;
|
|
4430
|
+
/** Value that does not appear in the UI but overrides name for sorting */
|
|
4431
|
+
sort_name: F<{}, N<string>>;
|
|
4432
|
+
description: F<{}, N<string>>;
|
|
4433
|
+
aliases: F<{}, L<string>>;
|
|
4434
|
+
ignore_auto_tag: F<{}, boolean>;
|
|
4435
|
+
created_at: F<{}, string>;
|
|
4436
|
+
updated_at: F<{}, string>;
|
|
4437
|
+
favorite: F<{}, boolean>;
|
|
4438
|
+
stash_ids: F<{}, L<R<"StashID">>>;
|
|
4439
|
+
image_path: F<{}, N<string>>;
|
|
4440
|
+
scene_count: F<{
|
|
4441
|
+
depth?: number | null | undefined;
|
|
4442
|
+
}, number>;
|
|
4443
|
+
scene_marker_count: F<{
|
|
4444
|
+
depth?: number | null | undefined;
|
|
4445
|
+
}, number>;
|
|
4446
|
+
image_count: F<{
|
|
4447
|
+
depth?: number | null | undefined;
|
|
4448
|
+
}, number>;
|
|
4449
|
+
gallery_count: F<{
|
|
4450
|
+
depth?: number | null | undefined;
|
|
4451
|
+
}, number>;
|
|
4452
|
+
performer_count: F<{
|
|
4453
|
+
depth?: number | null | undefined;
|
|
4454
|
+
}, number>;
|
|
4455
|
+
studio_count: F<{
|
|
4456
|
+
depth?: number | null | undefined;
|
|
4457
|
+
}, number>;
|
|
4458
|
+
group_count: F<{
|
|
4459
|
+
depth?: number | null | undefined;
|
|
4460
|
+
}, number>;
|
|
4461
|
+
/** @deprecated use group_count instead */
|
|
4462
|
+
movie_count: F<{
|
|
4463
|
+
depth?: number | null | undefined;
|
|
4464
|
+
}, number>;
|
|
4465
|
+
parents: F<{}, L<R<"Tag">>>;
|
|
4466
|
+
children: F<{}, L<R<"Tag">>>;
|
|
4467
|
+
parent_count: F<{}, number>;
|
|
4468
|
+
child_count: F<{}, number>;
|
|
4469
|
+
custom_fields: F<{}, Record<string, unknown>>;
|
|
4470
|
+
};
|
|
4471
|
+
FindTagsResultType: {
|
|
4472
|
+
count: F<{}, number>;
|
|
4473
|
+
tags: F<{}, L<R<"Tag">>>;
|
|
4474
|
+
};
|
|
4475
|
+
Version: {
|
|
4476
|
+
version: F<{}, N<string>>;
|
|
4477
|
+
hash: F<{}, string>;
|
|
4478
|
+
build_time: F<{}, string>;
|
|
4479
|
+
};
|
|
4480
|
+
LatestVersion: {
|
|
4481
|
+
version: F<{}, string>;
|
|
4482
|
+
shorthash: F<{}, string>;
|
|
4483
|
+
release_date: F<{}, string>;
|
|
4484
|
+
url: F<{}, string>;
|
|
4485
|
+
};
|
|
4486
|
+
}
|
|
4487
|
+
export interface Abstract {
|
|
4488
|
+
BaseFile: "BasicFile" | "VideoFile" | "ImageFile" | "GalleryFile";
|
|
4489
|
+
VisualFile: "VideoFile" | "ImageFile";
|
|
4490
|
+
ScrapedContent: "ScrapedStudio" | "ScrapedTag" | "ScrapedScene" | "ScrapedGallery" | "ScrapedImage" | "ScrapedMovie" | "ScrapedGroup" | "ScrapedPerformer";
|
|
4491
|
+
}
|