SYMBOL INDEX (12481 symbols across 1220 files) FILE: cmd/phasher/main.go function customUsage (line 17) | func customUsage() { function printPhash (line 23) | func printPhash(ff *ffmpeg.FFMpeg, ffp *ffmpeg.FFProbe, inputfile string... function printVideoPhash (line 40) | func printVideoPhash(ff *ffmpeg.FFMpeg, ffp *ffmpeg.FFProbe, inputfile s... function printImagePhash (line 68) | func printImagePhash(ff *ffmpeg.FFMpeg, inputfile string, quiet *bool) e... function getPaths (line 86) | func getPaths() (string, string) { function main (line 93) | func main() { FILE: cmd/stash/main.go function main (line 31) | func main() { function initLogTemp (line 115) | func initLogTemp() *log.Logger { function initLog (line 123) | func initLog(cfg *config.Config) *log.Logger { function initProfiling (line 131) | func initProfiling(path string) error { function recoverPanic (line 146) | func recoverPanic() { function exitError (line 156) | func exitError(err error) { function handleSignals (line 167) | func handleSignals(exit chan<- int) { FILE: cmd/stash/main_test.go function TestStub (line 5) | func TestStub(t *testing.T) { FILE: internal/api/authentication.go constant tripwireActivatedErrMsg (line 18) | tripwireActivatedErrMsg = "Stash is exposed to the public internet witho... constant externalAccessErrMsg (line 21) | externalAccessErrMsg = "You have attempted to access Stash over the inte... function allowUnauthenticated (line 27) | func allowUnauthenticated(r *http.Request) bool { function authenticateHandler (line 32) | func authenticateHandler() func(http.Handler) http.Handler { FILE: internal/api/bool_map.go function MarshalBoolMap (line 11) | func MarshalBoolMap(val map[string]bool) graphql.Marshaler { function UnmarshalBoolMap (line 20) | func UnmarshalBoolMap(v interface{}) (map[string]bool, error) { FILE: internal/api/changeset_translator.go constant updateInputField (line 15) | updateInputField = "input" function getArgumentMap (line 17) | func getArgumentMap(ctx context.Context) map[string]interface{} { function getUpdateInputMap (line 23) | func getUpdateInputMap(ctx context.Context) map[string]interface{} { function getNamedUpdateInputMap (line 27) | func getNamedUpdateInputMap(ctx context.Context, field string) map[strin... function getUpdateInputMaps (line 55) | func getUpdateInputMaps(ctx context.Context) []map[string]interface{} { type changesetTranslator (line 74) | type changesetTranslator struct method hasField (line 78) | func (t changesetTranslator) hasField(field string) bool { method getFields (line 87) | func (t changesetTranslator) getFields() []string { method string (line 96) | func (t changesetTranslator) string(value *string) string { method optionalString (line 104) | func (t changesetTranslator) optionalString(value *string, field strin... method optionalDate (line 117) | func (t changesetTranslator) optionalDate(value *string, field string)... method datePtr (line 137) | func (t changesetTranslator) datePtr(value *string) (*models.Date, err... method intPtrFromString (line 149) | func (t changesetTranslator) intPtrFromString(value *string) (*int, er... method optionalInt (line 161) | func (t changesetTranslator) optionalInt(value *int, field string) mod... method optionalIntFromString (line 169) | func (t changesetTranslator) optionalIntFromString(value *string, fiel... method bool (line 188) | func (t changesetTranslator) bool(value *bool) bool { method optionalBool (line 196) | func (t changesetTranslator) optionalBool(value *bool, field string) m... method optionalFloat64 (line 204) | func (t changesetTranslator) optionalFloat64(value *float64, field str... method fileIDPtrFromString (line 212) | func (t changesetTranslator) fileIDPtrFromString(value *string) (*mode... method fileIDSliceFromStringSlice (line 226) | func (t changesetTranslator) fileIDSliceFromStringSlice(value []string... method relatedIds (line 240) | func (t changesetTranslator) relatedIds(value []string) (models.Relate... method updateIds (line 249) | func (t changesetTranslator) updateIds(value []string, field string) (... method updateIdsBulk (line 265) | func (t changesetTranslator) updateIdsBulk(value *BulkUpdateIds, field... method optionalURLs (line 281) | func (t changesetTranslator) optionalURLs(value []string, legacyValue ... method optionalURLsBulk (line 301) | func (t changesetTranslator) optionalURLsBulk(value *BulkUpdateStrings... method updateStrings (line 321) | func (t changesetTranslator) updateStrings(value []string, field strin... method updateStringsBulk (line 338) | func (t changesetTranslator) updateStringsBulk(value *BulkUpdateString... method updateStashIDs (line 355) | func (t changesetTranslator) updateStashIDs(value models.StashIDInputs... method relatedGroupsFromMovies (line 366) | func (t changesetTranslator) relatedGroupsFromMovies(value []models.Sc... method relatedGroups (line 393) | func (t changesetTranslator) relatedGroups(value []models.SceneGroupIn... method updateGroupIDsFromMovies (line 402) | func (t changesetTranslator) updateGroupIDsFromMovies(value []models.S... method updateGroupIDs (line 418) | func (t changesetTranslator) updateGroupIDs(value []models.SceneGroupI... method updateGroupIDsBulk (line 434) | func (t changesetTranslator) updateGroupIDsBulk(value *BulkUpdateIds, ... method groupIDDescriptions (line 475) | func (t changesetTranslator) groupIDDescriptions(value []*GroupDescrip... method updateGroupIDDescriptions (line 484) | func (t changesetTranslator) updateGroupIDDescriptions(value []*GroupD... method updateGroupIDDescriptionsBulk (line 500) | func (t changesetTranslator) updateGroupIDDescriptionsBulk(value *Bulk... function groupsScenesFromGroupInput (line 375) | func groupsScenesFromGroupInput(input []models.SceneGroupInput) ([]model... function groupsDescriptionsFromGroupInput (line 455) | func groupsDescriptionsFromGroupInput(input []*GroupDescriptionInput) ([... FILE: internal/api/check_version.go constant apiReleases (line 23) | apiReleases string = "https://api.github.com/repos/stashapp/stash/releases" constant apiTags (line 24) | apiTags string = "https://api.github.com/repos/stashapp/stash/tags" constant apiAcceptHeader (line 25) | apiAcceptHeader string = "application/vnd.github.v3+json" constant developmentTag (line 26) | developmentTag string = "latest_develop" constant defaultSHLength (line 27) | defaultSHLength int = 8 function isMacOSBundle (line 42) | func isMacOSBundle() bool { function getWantedRelease (line 48) | func getWantedRelease(platform string) string { type githubReleasesResponse (line 59) | type githubReleasesResponse struct type githubAuthor (line 80) | type githubAuthor struct type githubAsset (line 101) | type githubAsset struct type githubTagResponse (line 117) | type githubTagResponse struct type LatestRelease (line 128) | type LatestRelease struct function makeGithubRequest (line 136) | func makeGithubRequest(ctx context.Context, url string, output interface... function GetLatestRelease (line 180) | func GetLatestRelease(ctx context.Context) (*LatestRelease, error) { function getReleaseHash (line 252) | func getReleaseHash(ctx context.Context, tagName string) (string, error) { function printLatestVersion (line 292) | func printLatestVersion(ctx context.Context) { FILE: internal/api/context_keys.go type key (line 5) | type key constant galleryKey (line 8) | galleryKey key = 0 constant performerKey (line 9) | performerKey constant sceneKey (line 10) | sceneKey constant studioKey (line 11) | studioKey constant groupKey (line 12) | groupKey constant tagKey (line 13) | tagKey constant downloadKey (line 14) | downloadKey constant imageKey (line 15) | imageKey constant pluginKey (line 16) | pluginKey FILE: internal/api/custom_fields.go function handleUpdateCustomFields (line 5) | func handleUpdateCustomFields(input models.CustomFieldsInput) models.Cus... FILE: internal/api/dir_list.go type dirLister (line 12) | type dirLister method Len (line 14) | func (s dirLister) Len() int { method Swap (line 18) | func (s dirLister) Swap(i, j int) { method Bytes (line 22) | func (s dirLister) Bytes(i int) []byte { function listDir (line 27) | func listDir(col *collate.Collator, path string) ([]string, error) { FILE: internal/api/error.go function gqlErrorHandler (line 13) | func gqlErrorHandler(ctx context.Context, e error) *gqlerror.Error { FILE: internal/api/fields.go type queryFields (line 9) | type queryFields method Has (line 16) | func (f queryFields) Has(field string) bool { function collectQueryFields (line 11) | func collectQueryFields(ctx context.Context) queryFields { FILE: internal/api/images.go type imageBox (line 17) | type imageBox struct method GetRandomImageByName (line 60) | func (box *imageBox) GetRandomImageByName(name string) ([]byte, error) { function newImageBox (line 32) | func newImageBox(box fs.FS) (*imageBox, error) { function init (line 80) | func init() { function initCustomPerformerImages (line 92) | func initCustomPerformerImages(customPath string) { function getDefaultPerformerImage (line 105) | func getDefaultPerformerImage(name string, gender *models.GenderEnum, sf... FILE: internal/api/input.go function handleIDList (line 12) | func handleIDList(idList []string, field string) ([]int, error) { function validateIDList (line 26) | func validateIDList(ids []string) error { FILE: internal/api/json.go function jsonNumberToNumber (line 11) | func jsonNumberToNumber(n json.Number) interface{} { function anyJSONNumberToNumber (line 21) | func anyJSONNumberToNumber(v any) any { function convertMapJSONNumbers (line 30) | func convertMapJSONNumbers(m map[string]interface{}) (ret map[string]int... function convertCustomFieldCriterionValues (line 49) | func convertCustomFieldCriterionValues(c models.CustomFieldCriterionInpu... function convertCustomFieldCriterionInputJSONNumbers (line 58) | func convertCustomFieldCriterionInputJSONNumbers(c []models.CustomFieldC... FILE: internal/api/json_test.go function TestConvertMapJSONNumbers (line 10) | func TestConvertMapJSONNumbers(t *testing.T) { FILE: internal/api/loaders/customfieldsloader_gen.go type CustomFieldsLoaderConfig (line 13) | type CustomFieldsLoaderConfig struct function NewCustomFieldsLoader (line 25) | func NewCustomFieldsLoader(config CustomFieldsLoaderConfig) *CustomField... type CustomFieldsLoader (line 34) | type CustomFieldsLoader struct method Load (line 66) | func (l *CustomFieldsLoader) Load(key int) (models.CustomFieldMap, err... method LoadThunk (line 73) | func (l *CustomFieldsLoader) LoadThunk(key int) func() (models.CustomF... method LoadAll (line 116) | func (l *CustomFieldsLoader) LoadAll(keys []int) ([]models.CustomField... method LoadAllThunk (line 134) | func (l *CustomFieldsLoader) LoadAllThunk(keys []int) func() ([]models... method Prime (line 152) | func (l *CustomFieldsLoader) Prime(key int, value models.CustomFieldMa... method Clear (line 163) | func (l *CustomFieldsLoader) Clear(key int) { method unsafeSet (line 169) | func (l *CustomFieldsLoader) unsafeSet(key int, value models.CustomFie... type customFieldsLoaderBatch (line 57) | type customFieldsLoaderBatch struct method keyIndex (line 178) | func (b *customFieldsLoaderBatch) keyIndex(l *CustomFieldsLoader, key ... method startTimer (line 202) | func (b *customFieldsLoaderBatch) startTimer(l *CustomFieldsLoader) { method end (line 218) | func (b *customFieldsLoaderBatch) end(l *CustomFieldsLoader) { FILE: internal/api/loaders/dataloaders.go type contextKey (line 34) | type contextKey struct constant wait (line 41) | wait = 1 * time.Millisecond constant maxBatch (line 42) | maxBatch = 100 type Loaders (line 45) | type Loaders struct type Middleware (line 81) | type Middleware struct method Middleware (line 85) | func (m Middleware) Middleware(next http.Handler) http.Handler { method fetchScenes (line 233) | func (m Middleware) fetchScenes(ctx context.Context) func(keys []int) ... method fetchSceneCustomFields (line 244) | func (m Middleware) fetchSceneCustomFields(ctx context.Context) func(k... method fetchImages (line 256) | func (m Middleware) fetchImages(ctx context.Context) func(keys []int) ... method fetchImageCustomFields (line 268) | func (m Middleware) fetchImageCustomFields(ctx context.Context) func(k... method fetchGalleries (line 280) | func (m Middleware) fetchGalleries(ctx context.Context) func(keys []in... method fetchPerformers (line 292) | func (m Middleware) fetchPerformers(ctx context.Context) func(keys []i... method fetchPerformerCustomFields (line 304) | func (m Middleware) fetchPerformerCustomFields(ctx context.Context) fu... method fetchStudios (line 316) | func (m Middleware) fetchStudios(ctx context.Context) func(keys []int)... method fetchStudioCustomFields (line 327) | func (m Middleware) fetchStudioCustomFields(ctx context.Context) func(... method fetchTags (line 339) | func (m Middleware) fetchTags(ctx context.Context) func(keys []int) ([... method fetchTagCustomFields (line 350) | func (m Middleware) fetchTagCustomFields(ctx context.Context) func(key... method fetchGroupCustomFields (line 362) | func (m Middleware) fetchGroupCustomFields(ctx context.Context) func(k... method fetchGalleryCustomFields (line 374) | func (m Middleware) fetchGalleryCustomFields(ctx context.Context) func... method fetchGroups (line 386) | func (m Middleware) fetchGroups(ctx context.Context) func(keys []int) ... method fetchFiles (line 397) | func (m Middleware) fetchFiles(ctx context.Context) func(keys []models... method fetchFolders (line 408) | func (m Middleware) fetchFolders(ctx context.Context) func(keys []mode... method fetchFoldersParentFolderIDs (line 419) | func (m Middleware) fetchFoldersParentFolderIDs(ctx context.Context) f... method fetchScenesFileIDs (line 430) | func (m Middleware) fetchScenesFileIDs(ctx context.Context) func(keys ... method fetchImagesFileIDs (line 441) | func (m Middleware) fetchImagesFileIDs(ctx context.Context) func(keys ... method fetchGalleriesFileIDs (line 452) | func (m Middleware) fetchGalleriesFileIDs(ctx context.Context) func(ke... method fetchScenesOCount (line 463) | func (m Middleware) fetchScenesOCount(ctx context.Context) func(keys [... method fetchScenesPlayCount (line 474) | func (m Middleware) fetchScenesPlayCount(ctx context.Context) func(key... method fetchScenesOHistory (line 485) | func (m Middleware) fetchScenesOHistory(ctx context.Context) func(keys... method fetchScenesPlayHistory (line 496) | func (m Middleware) fetchScenesPlayHistory(ctx context.Context) func(k... method fetchScenesLastPlayed (line 507) | func (m Middleware) fetchScenesLastPlayed(ctx context.Context) func(ke... function From (line 221) | func From(ctx context.Context) Loaders { function toErrorSlice (line 225) | func toErrorSlice(err error) []error { FILE: internal/api/loaders/fileloader_gen.go type FileLoaderConfig (line 13) | type FileLoaderConfig struct function NewFileLoader (line 25) | func NewFileLoader(config FileLoaderConfig) *FileLoader { type FileLoader (line 34) | type FileLoader struct method Load (line 66) | func (l *FileLoader) Load(key models.FileID) (models.File, error) { method LoadThunk (line 73) | func (l *FileLoader) LoadThunk(key models.FileID) func() (models.File,... method LoadAll (line 116) | func (l *FileLoader) LoadAll(keys []models.FileID) ([]models.File, []e... method LoadAllThunk (line 134) | func (l *FileLoader) LoadAllThunk(keys []models.FileID) func() ([]mode... method Prime (line 152) | func (l *FileLoader) Prime(key models.FileID, value models.File) bool { method Clear (line 163) | func (l *FileLoader) Clear(key models.FileID) { method unsafeSet (line 169) | func (l *FileLoader) unsafeSet(key models.FileID, value models.File) { type fileLoaderBatch (line 57) | type fileLoaderBatch struct method keyIndex (line 178) | func (b *fileLoaderBatch) keyIndex(l *FileLoader, key models.FileID) i... method startTimer (line 202) | func (b *fileLoaderBatch) startTimer(l *FileLoader) { method end (line 218) | func (b *fileLoaderBatch) end(l *FileLoader) { FILE: internal/api/loaders/folderloader_gen.go type FolderLoaderConfig (line 13) | type FolderLoaderConfig struct function NewFolderLoader (line 25) | func NewFolderLoader(config FolderLoaderConfig) *FolderLoader { type FolderLoader (line 34) | type FolderLoader struct method Load (line 66) | func (l *FolderLoader) Load(key models.FolderID) (*models.Folder, erro... method LoadThunk (line 73) | func (l *FolderLoader) LoadThunk(key models.FolderID) func() (*models.... method LoadAll (line 116) | func (l *FolderLoader) LoadAll(keys []models.FolderID) ([]*models.Fold... method LoadAllThunk (line 134) | func (l *FolderLoader) LoadAllThunk(keys []models.FolderID) func() ([]... method Prime (line 152) | func (l *FolderLoader) Prime(key models.FolderID, value *models.Folder... method Clear (line 166) | func (l *FolderLoader) Clear(key models.FolderID) { method unsafeSet (line 172) | func (l *FolderLoader) unsafeSet(key models.FolderID, value *models.Fo... type folderLoaderBatch (line 57) | type folderLoaderBatch struct method keyIndex (line 181) | func (b *folderLoaderBatch) keyIndex(l *FolderLoader, key models.Folde... method startTimer (line 205) | func (b *folderLoaderBatch) startTimer(l *FolderLoader) { method end (line 221) | func (b *folderLoaderBatch) end(l *FolderLoader) { FILE: internal/api/loaders/folderparentfolderidsloader_gen.go type FolderParentFolderIDsLoaderConfig (line 13) | type FolderParentFolderIDsLoaderConfig struct function NewFolderParentFolderIDsLoader (line 25) | func NewFolderParentFolderIDsLoader(config FolderParentFolderIDsLoaderCo... type FolderParentFolderIDsLoader (line 34) | type FolderParentFolderIDsLoader struct method Load (line 66) | func (l *FolderParentFolderIDsLoader) Load(key models.FolderID) ([]mod... method LoadThunk (line 73) | func (l *FolderParentFolderIDsLoader) LoadThunk(key models.FolderID) f... method LoadAll (line 116) | func (l *FolderParentFolderIDsLoader) LoadAll(keys []models.FolderID) ... method LoadAllThunk (line 134) | func (l *FolderParentFolderIDsLoader) LoadAllThunk(keys []models.Folde... method Prime (line 152) | func (l *FolderParentFolderIDsLoader) Prime(key models.FolderID, value... method Clear (line 167) | func (l *FolderParentFolderIDsLoader) Clear(key models.FolderID) { method unsafeSet (line 173) | func (l *FolderParentFolderIDsLoader) unsafeSet(key models.FolderID, v... type folderParentFolderIDsLoaderBatch (line 57) | type folderParentFolderIDsLoaderBatch struct method keyIndex (line 182) | func (b *folderParentFolderIDsLoaderBatch) keyIndex(l *FolderParentFol... method startTimer (line 206) | func (b *folderParentFolderIDsLoaderBatch) startTimer(l *FolderParentF... method end (line 222) | func (b *folderParentFolderIDsLoaderBatch) end(l *FolderParentFolderID... FILE: internal/api/loaders/galleryfileidsloader_gen.go type GalleryFileIDsLoaderConfig (line 13) | type GalleryFileIDsLoaderConfig struct function NewGalleryFileIDsLoader (line 25) | func NewGalleryFileIDsLoader(config GalleryFileIDsLoaderConfig) *Gallery... type GalleryFileIDsLoader (line 34) | type GalleryFileIDsLoader struct method Load (line 66) | func (l *GalleryFileIDsLoader) Load(key int) ([]models.FileID, error) { method LoadThunk (line 73) | func (l *GalleryFileIDsLoader) LoadThunk(key int) func() ([]models.Fil... method LoadAll (line 116) | func (l *GalleryFileIDsLoader) LoadAll(keys []int) ([][]models.FileID,... method LoadAllThunk (line 134) | func (l *GalleryFileIDsLoader) LoadAllThunk(keys []int) func() ([][]mo... method Prime (line 152) | func (l *GalleryFileIDsLoader) Prime(key int, value []models.FileID) b... method Clear (line 167) | func (l *GalleryFileIDsLoader) Clear(key int) { method unsafeSet (line 173) | func (l *GalleryFileIDsLoader) unsafeSet(key int, value []models.FileI... type galleryFileIDsLoaderBatch (line 57) | type galleryFileIDsLoaderBatch struct method keyIndex (line 182) | func (b *galleryFileIDsLoaderBatch) keyIndex(l *GalleryFileIDsLoader, ... method startTimer (line 206) | func (b *galleryFileIDsLoaderBatch) startTimer(l *GalleryFileIDsLoader) { method end (line 222) | func (b *galleryFileIDsLoaderBatch) end(l *GalleryFileIDsLoader) { FILE: internal/api/loaders/galleryloader_gen.go type GalleryLoaderConfig (line 13) | type GalleryLoaderConfig struct function NewGalleryLoader (line 25) | func NewGalleryLoader(config GalleryLoaderConfig) *GalleryLoader { type GalleryLoader (line 34) | type GalleryLoader struct method Load (line 66) | func (l *GalleryLoader) Load(key int) (*models.Gallery, error) { method LoadThunk (line 73) | func (l *GalleryLoader) LoadThunk(key int) func() (*models.Gallery, er... method LoadAll (line 116) | func (l *GalleryLoader) LoadAll(keys []int) ([]*models.Gallery, []erro... method LoadAllThunk (line 134) | func (l *GalleryLoader) LoadAllThunk(keys []int) func() ([]*models.Gal... method Prime (line 152) | func (l *GalleryLoader) Prime(key int, value *models.Gallery) bool { method Clear (line 166) | func (l *GalleryLoader) Clear(key int) { method unsafeSet (line 172) | func (l *GalleryLoader) unsafeSet(key int, value *models.Gallery) { type galleryLoaderBatch (line 57) | type galleryLoaderBatch struct method keyIndex (line 181) | func (b *galleryLoaderBatch) keyIndex(l *GalleryLoader, key int) int { method startTimer (line 205) | func (b *galleryLoaderBatch) startTimer(l *GalleryLoader) { method end (line 221) | func (b *galleryLoaderBatch) end(l *GalleryLoader) { FILE: internal/api/loaders/grouploader_gen.go type GroupLoaderConfig (line 13) | type GroupLoaderConfig struct function NewGroupLoader (line 25) | func NewGroupLoader(config GroupLoaderConfig) *GroupLoader { type GroupLoader (line 34) | type GroupLoader struct method Load (line 66) | func (l *GroupLoader) Load(key int) (*models.Group, error) { method LoadThunk (line 73) | func (l *GroupLoader) LoadThunk(key int) func() (*models.Group, error) { method LoadAll (line 116) | func (l *GroupLoader) LoadAll(keys []int) ([]*models.Group, []error) { method LoadAllThunk (line 134) | func (l *GroupLoader) LoadAllThunk(keys []int) func() ([]*models.Group... method Prime (line 152) | func (l *GroupLoader) Prime(key int, value *models.Group) bool { method Clear (line 166) | func (l *GroupLoader) Clear(key int) { method unsafeSet (line 172) | func (l *GroupLoader) unsafeSet(key int, value *models.Group) { type groupLoaderBatch (line 57) | type groupLoaderBatch struct method keyIndex (line 181) | func (b *groupLoaderBatch) keyIndex(l *GroupLoader, key int) int { method startTimer (line 205) | func (b *groupLoaderBatch) startTimer(l *GroupLoader) { method end (line 221) | func (b *groupLoaderBatch) end(l *GroupLoader) { FILE: internal/api/loaders/imagefileidsloader_gen.go type ImageFileIDsLoaderConfig (line 13) | type ImageFileIDsLoaderConfig struct function NewImageFileIDsLoader (line 25) | func NewImageFileIDsLoader(config ImageFileIDsLoaderConfig) *ImageFileID... type ImageFileIDsLoader (line 34) | type ImageFileIDsLoader struct method Load (line 66) | func (l *ImageFileIDsLoader) Load(key int) ([]models.FileID, error) { method LoadThunk (line 73) | func (l *ImageFileIDsLoader) LoadThunk(key int) func() ([]models.FileI... method LoadAll (line 116) | func (l *ImageFileIDsLoader) LoadAll(keys []int) ([][]models.FileID, [... method LoadAllThunk (line 134) | func (l *ImageFileIDsLoader) LoadAllThunk(keys []int) func() ([][]mode... method Prime (line 152) | func (l *ImageFileIDsLoader) Prime(key int, value []models.FileID) bool { method Clear (line 167) | func (l *ImageFileIDsLoader) Clear(key int) { method unsafeSet (line 173) | func (l *ImageFileIDsLoader) unsafeSet(key int, value []models.FileID) { type imageFileIDsLoaderBatch (line 57) | type imageFileIDsLoaderBatch struct method keyIndex (line 182) | func (b *imageFileIDsLoaderBatch) keyIndex(l *ImageFileIDsLoader, key ... method startTimer (line 206) | func (b *imageFileIDsLoaderBatch) startTimer(l *ImageFileIDsLoader) { method end (line 222) | func (b *imageFileIDsLoaderBatch) end(l *ImageFileIDsLoader) { FILE: internal/api/loaders/imageloader_gen.go type ImageLoaderConfig (line 13) | type ImageLoaderConfig struct function NewImageLoader (line 25) | func NewImageLoader(config ImageLoaderConfig) *ImageLoader { type ImageLoader (line 34) | type ImageLoader struct method Load (line 66) | func (l *ImageLoader) Load(key int) (*models.Image, error) { method LoadThunk (line 73) | func (l *ImageLoader) LoadThunk(key int) func() (*models.Image, error) { method LoadAll (line 116) | func (l *ImageLoader) LoadAll(keys []int) ([]*models.Image, []error) { method LoadAllThunk (line 134) | func (l *ImageLoader) LoadAllThunk(keys []int) func() ([]*models.Image... method Prime (line 152) | func (l *ImageLoader) Prime(key int, value *models.Image) bool { method Clear (line 166) | func (l *ImageLoader) Clear(key int) { method unsafeSet (line 172) | func (l *ImageLoader) unsafeSet(key int, value *models.Image) { type imageLoaderBatch (line 57) | type imageLoaderBatch struct method keyIndex (line 181) | func (b *imageLoaderBatch) keyIndex(l *ImageLoader, key int) int { method startTimer (line 205) | func (b *imageLoaderBatch) startTimer(l *ImageLoader) { method end (line 221) | func (b *imageLoaderBatch) end(l *ImageLoader) { FILE: internal/api/loaders/performerloader_gen.go type PerformerLoaderConfig (line 13) | type PerformerLoaderConfig struct function NewPerformerLoader (line 25) | func NewPerformerLoader(config PerformerLoaderConfig) *PerformerLoader { type PerformerLoader (line 34) | type PerformerLoader struct method Load (line 66) | func (l *PerformerLoader) Load(key int) (*models.Performer, error) { method LoadThunk (line 73) | func (l *PerformerLoader) LoadThunk(key int) func() (*models.Performer... method LoadAll (line 116) | func (l *PerformerLoader) LoadAll(keys []int) ([]*models.Performer, []... method LoadAllThunk (line 134) | func (l *PerformerLoader) LoadAllThunk(keys []int) func() ([]*models.P... method Prime (line 152) | func (l *PerformerLoader) Prime(key int, value *models.Performer) bool { method Clear (line 166) | func (l *PerformerLoader) Clear(key int) { method unsafeSet (line 172) | func (l *PerformerLoader) unsafeSet(key int, value *models.Performer) { type performerLoaderBatch (line 57) | type performerLoaderBatch struct method keyIndex (line 181) | func (b *performerLoaderBatch) keyIndex(l *PerformerLoader, key int) i... method startTimer (line 205) | func (b *performerLoaderBatch) startTimer(l *PerformerLoader) { method end (line 221) | func (b *performerLoaderBatch) end(l *PerformerLoader) { FILE: internal/api/loaders/scenefileidsloader_gen.go type SceneFileIDsLoaderConfig (line 13) | type SceneFileIDsLoaderConfig struct function NewSceneFileIDsLoader (line 25) | func NewSceneFileIDsLoader(config SceneFileIDsLoaderConfig) *SceneFileID... type SceneFileIDsLoader (line 34) | type SceneFileIDsLoader struct method Load (line 66) | func (l *SceneFileIDsLoader) Load(key int) ([]models.FileID, error) { method LoadThunk (line 73) | func (l *SceneFileIDsLoader) LoadThunk(key int) func() ([]models.FileI... method LoadAll (line 116) | func (l *SceneFileIDsLoader) LoadAll(keys []int) ([][]models.FileID, [... method LoadAllThunk (line 134) | func (l *SceneFileIDsLoader) LoadAllThunk(keys []int) func() ([][]mode... method Prime (line 152) | func (l *SceneFileIDsLoader) Prime(key int, value []models.FileID) bool { method Clear (line 167) | func (l *SceneFileIDsLoader) Clear(key int) { method unsafeSet (line 173) | func (l *SceneFileIDsLoader) unsafeSet(key int, value []models.FileID) { type sceneFileIDsLoaderBatch (line 57) | type sceneFileIDsLoaderBatch struct method keyIndex (line 182) | func (b *sceneFileIDsLoaderBatch) keyIndex(l *SceneFileIDsLoader, key ... method startTimer (line 206) | func (b *sceneFileIDsLoaderBatch) startTimer(l *SceneFileIDsLoader) { method end (line 222) | func (b *sceneFileIDsLoaderBatch) end(l *SceneFileIDsLoader) { FILE: internal/api/loaders/scenelastplayedloader_gen.go type SceneLastPlayedLoaderConfig (line 11) | type SceneLastPlayedLoaderConfig struct function NewSceneLastPlayedLoader (line 23) | func NewSceneLastPlayedLoader(config SceneLastPlayedLoaderConfig) *Scene... type SceneLastPlayedLoader (line 32) | type SceneLastPlayedLoader struct method Load (line 64) | func (l *SceneLastPlayedLoader) Load(key int) (*time.Time, error) { method LoadThunk (line 71) | func (l *SceneLastPlayedLoader) LoadThunk(key int) func() (*time.Time,... method LoadAll (line 114) | func (l *SceneLastPlayedLoader) LoadAll(keys []int) ([]*time.Time, []e... method LoadAllThunk (line 132) | func (l *SceneLastPlayedLoader) LoadAllThunk(keys []int) func() ([]*ti... method Prime (line 150) | func (l *SceneLastPlayedLoader) Prime(key int, value *time.Time) bool { method Clear (line 164) | func (l *SceneLastPlayedLoader) Clear(key int) { method unsafeSet (line 170) | func (l *SceneLastPlayedLoader) unsafeSet(key int, value *time.Time) { type sceneLastPlayedLoaderBatch (line 55) | type sceneLastPlayedLoaderBatch struct method keyIndex (line 179) | func (b *sceneLastPlayedLoaderBatch) keyIndex(l *SceneLastPlayedLoader... method startTimer (line 203) | func (b *sceneLastPlayedLoaderBatch) startTimer(l *SceneLastPlayedLoad... method end (line 219) | func (b *sceneLastPlayedLoaderBatch) end(l *SceneLastPlayedLoader) { FILE: internal/api/loaders/sceneloader_gen.go type SceneLoaderConfig (line 13) | type SceneLoaderConfig struct function NewSceneLoader (line 25) | func NewSceneLoader(config SceneLoaderConfig) *SceneLoader { type SceneLoader (line 34) | type SceneLoader struct method Load (line 66) | func (l *SceneLoader) Load(key int) (*models.Scene, error) { method LoadThunk (line 73) | func (l *SceneLoader) LoadThunk(key int) func() (*models.Scene, error) { method LoadAll (line 116) | func (l *SceneLoader) LoadAll(keys []int) ([]*models.Scene, []error) { method LoadAllThunk (line 134) | func (l *SceneLoader) LoadAllThunk(keys []int) func() ([]*models.Scene... method Prime (line 152) | func (l *SceneLoader) Prime(key int, value *models.Scene) bool { method Clear (line 166) | func (l *SceneLoader) Clear(key int) { method unsafeSet (line 172) | func (l *SceneLoader) unsafeSet(key int, value *models.Scene) { type sceneLoaderBatch (line 57) | type sceneLoaderBatch struct method keyIndex (line 181) | func (b *sceneLoaderBatch) keyIndex(l *SceneLoader, key int) int { method startTimer (line 205) | func (b *sceneLoaderBatch) startTimer(l *SceneLoader) { method end (line 221) | func (b *sceneLoaderBatch) end(l *SceneLoader) { FILE: internal/api/loaders/sceneocountloader_gen.go type SceneOCountLoaderConfig (line 11) | type SceneOCountLoaderConfig struct function NewSceneOCountLoader (line 23) | func NewSceneOCountLoader(config SceneOCountLoaderConfig) *SceneOCountLo... type SceneOCountLoader (line 32) | type SceneOCountLoader struct method Load (line 64) | func (l *SceneOCountLoader) Load(key int) (int, error) { method LoadThunk (line 71) | func (l *SceneOCountLoader) LoadThunk(key int) func() (int, error) { method LoadAll (line 114) | func (l *SceneOCountLoader) LoadAll(keys []int) ([]int, []error) { method LoadAllThunk (line 132) | func (l *SceneOCountLoader) LoadAllThunk(keys []int) func() ([]int, []... method Prime (line 150) | func (l *SceneOCountLoader) Prime(key int, value int) bool { method Clear (line 161) | func (l *SceneOCountLoader) Clear(key int) { method unsafeSet (line 167) | func (l *SceneOCountLoader) unsafeSet(key int, value int) { type sceneOCountLoaderBatch (line 55) | type sceneOCountLoaderBatch struct method keyIndex (line 176) | func (b *sceneOCountLoaderBatch) keyIndex(l *SceneOCountLoader, key in... method startTimer (line 200) | func (b *sceneOCountLoaderBatch) startTimer(l *SceneOCountLoader) { method end (line 216) | func (b *sceneOCountLoaderBatch) end(l *SceneOCountLoader) { FILE: internal/api/loaders/sceneohistoryloader_gen.go type SceneOHistoryLoaderConfig (line 11) | type SceneOHistoryLoaderConfig struct function NewSceneOHistoryLoader (line 23) | func NewSceneOHistoryLoader(config SceneOHistoryLoaderConfig) *SceneOHis... type SceneOHistoryLoader (line 32) | type SceneOHistoryLoader struct method Load (line 64) | func (l *SceneOHistoryLoader) Load(key int) ([]time.Time, error) { method LoadThunk (line 71) | func (l *SceneOHistoryLoader) LoadThunk(key int) func() ([]time.Time, ... method LoadAll (line 114) | func (l *SceneOHistoryLoader) LoadAll(keys []int) ([][]time.Time, []er... method LoadAllThunk (line 132) | func (l *SceneOHistoryLoader) LoadAllThunk(keys []int) func() ([][]tim... method Prime (line 150) | func (l *SceneOHistoryLoader) Prime(key int, value []time.Time) bool { method Clear (line 165) | func (l *SceneOHistoryLoader) Clear(key int) { method unsafeSet (line 171) | func (l *SceneOHistoryLoader) unsafeSet(key int, value []time.Time) { type sceneOHistoryLoaderBatch (line 55) | type sceneOHistoryLoaderBatch struct method keyIndex (line 180) | func (b *sceneOHistoryLoaderBatch) keyIndex(l *SceneOHistoryLoader, ke... method startTimer (line 204) | func (b *sceneOHistoryLoaderBatch) startTimer(l *SceneOHistoryLoader) { method end (line 220) | func (b *sceneOHistoryLoaderBatch) end(l *SceneOHistoryLoader) { FILE: internal/api/loaders/sceneplaycountloader_gen.go type ScenePlayCountLoaderConfig (line 11) | type ScenePlayCountLoaderConfig struct function NewScenePlayCountLoader (line 23) | func NewScenePlayCountLoader(config ScenePlayCountLoaderConfig) *ScenePl... type ScenePlayCountLoader (line 32) | type ScenePlayCountLoader struct method Load (line 64) | func (l *ScenePlayCountLoader) Load(key int) (int, error) { method LoadThunk (line 71) | func (l *ScenePlayCountLoader) LoadThunk(key int) func() (int, error) { method LoadAll (line 114) | func (l *ScenePlayCountLoader) LoadAll(keys []int) ([]int, []error) { method LoadAllThunk (line 132) | func (l *ScenePlayCountLoader) LoadAllThunk(keys []int) func() ([]int,... method Prime (line 150) | func (l *ScenePlayCountLoader) Prime(key int, value int) bool { method Clear (line 161) | func (l *ScenePlayCountLoader) Clear(key int) { method unsafeSet (line 167) | func (l *ScenePlayCountLoader) unsafeSet(key int, value int) { type scenePlayCountLoaderBatch (line 55) | type scenePlayCountLoaderBatch struct method keyIndex (line 176) | func (b *scenePlayCountLoaderBatch) keyIndex(l *ScenePlayCountLoader, ... method startTimer (line 200) | func (b *scenePlayCountLoaderBatch) startTimer(l *ScenePlayCountLoader) { method end (line 216) | func (b *scenePlayCountLoaderBatch) end(l *ScenePlayCountLoader) { FILE: internal/api/loaders/sceneplayhistoryloader_gen.go type ScenePlayHistoryLoaderConfig (line 11) | type ScenePlayHistoryLoaderConfig struct function NewScenePlayHistoryLoader (line 23) | func NewScenePlayHistoryLoader(config ScenePlayHistoryLoaderConfig) *Sce... type ScenePlayHistoryLoader (line 32) | type ScenePlayHistoryLoader struct method Load (line 64) | func (l *ScenePlayHistoryLoader) Load(key int) ([]time.Time, error) { method LoadThunk (line 71) | func (l *ScenePlayHistoryLoader) LoadThunk(key int) func() ([]time.Tim... method LoadAll (line 114) | func (l *ScenePlayHistoryLoader) LoadAll(keys []int) ([][]time.Time, [... method LoadAllThunk (line 132) | func (l *ScenePlayHistoryLoader) LoadAllThunk(keys []int) func() ([][]... method Prime (line 150) | func (l *ScenePlayHistoryLoader) Prime(key int, value []time.Time) bool { method Clear (line 165) | func (l *ScenePlayHistoryLoader) Clear(key int) { method unsafeSet (line 171) | func (l *ScenePlayHistoryLoader) unsafeSet(key int, value []time.Time) { type scenePlayHistoryLoaderBatch (line 55) | type scenePlayHistoryLoaderBatch struct method keyIndex (line 180) | func (b *scenePlayHistoryLoaderBatch) keyIndex(l *ScenePlayHistoryLoad... method startTimer (line 204) | func (b *scenePlayHistoryLoaderBatch) startTimer(l *ScenePlayHistoryLo... method end (line 220) | func (b *scenePlayHistoryLoaderBatch) end(l *ScenePlayHistoryLoader) { FILE: internal/api/loaders/studioloader_gen.go type StudioLoaderConfig (line 13) | type StudioLoaderConfig struct function NewStudioLoader (line 25) | func NewStudioLoader(config StudioLoaderConfig) *StudioLoader { type StudioLoader (line 34) | type StudioLoader struct method Load (line 66) | func (l *StudioLoader) Load(key int) (*models.Studio, error) { method LoadThunk (line 73) | func (l *StudioLoader) LoadThunk(key int) func() (*models.Studio, erro... method LoadAll (line 116) | func (l *StudioLoader) LoadAll(keys []int) ([]*models.Studio, []error) { method LoadAllThunk (line 134) | func (l *StudioLoader) LoadAllThunk(keys []int) func() ([]*models.Stud... method Prime (line 152) | func (l *StudioLoader) Prime(key int, value *models.Studio) bool { method Clear (line 166) | func (l *StudioLoader) Clear(key int) { method unsafeSet (line 172) | func (l *StudioLoader) unsafeSet(key int, value *models.Studio) { type studioLoaderBatch (line 57) | type studioLoaderBatch struct method keyIndex (line 181) | func (b *studioLoaderBatch) keyIndex(l *StudioLoader, key int) int { method startTimer (line 205) | func (b *studioLoaderBatch) startTimer(l *StudioLoader) { method end (line 221) | func (b *studioLoaderBatch) end(l *StudioLoader) { FILE: internal/api/loaders/tagloader_gen.go type TagLoaderConfig (line 13) | type TagLoaderConfig struct function NewTagLoader (line 25) | func NewTagLoader(config TagLoaderConfig) *TagLoader { type TagLoader (line 34) | type TagLoader struct method Load (line 66) | func (l *TagLoader) Load(key int) (*models.Tag, error) { method LoadThunk (line 73) | func (l *TagLoader) LoadThunk(key int) func() (*models.Tag, error) { method LoadAll (line 116) | func (l *TagLoader) LoadAll(keys []int) ([]*models.Tag, []error) { method LoadAllThunk (line 134) | func (l *TagLoader) LoadAllThunk(keys []int) func() ([]*models.Tag, []... method Prime (line 152) | func (l *TagLoader) Prime(key int, value *models.Tag) bool { method Clear (line 166) | func (l *TagLoader) Clear(key int) { method unsafeSet (line 172) | func (l *TagLoader) unsafeSet(key int, value *models.Tag) { type tagLoaderBatch (line 57) | type tagLoaderBatch struct method keyIndex (line 181) | func (b *tagLoaderBatch) keyIndex(l *TagLoader, key int) int { method startTimer (line 205) | func (b *tagLoaderBatch) startTimer(l *TagLoader) { method end (line 221) | func (b *tagLoaderBatch) end(l *TagLoader) { FILE: internal/api/locale.go function newCollator (line 43) | func newCollator(locale *string, opts ...collate.Option) *collate.Collat... FILE: internal/api/models.go type BaseFile (line 10) | type BaseFile interface type VisualFile (line 14) | type VisualFile interface function convertVisualFile (line 18) | func convertVisualFile(f models.File) (VisualFile, error) { function convertBaseFile (line 31) | func convertBaseFile(f models.File) BaseFile { function convertBaseFiles (line 50) | func convertBaseFiles(files []models.File) []BaseFile { type GalleryFile (line 54) | type GalleryFile struct method IsBaseFile (line 58) | func (GalleryFile) IsBaseFile() {} method IsVisualFile (line 60) | func (GalleryFile) IsVisualFile() {} method Fingerprints (line 62) | func (f *GalleryFile) Fingerprints() []models.Fingerprint { type VideoFile (line 66) | type VideoFile struct method IsBaseFile (line 70) | func (VideoFile) IsBaseFile() {} method IsVisualFile (line 72) | func (VideoFile) IsVisualFile() {} method Fingerprints (line 74) | func (f *VideoFile) Fingerprints() []models.Fingerprint { type ImageFile (line 78) | type ImageFile struct method IsBaseFile (line 82) | func (ImageFile) IsBaseFile() {} method IsVisualFile (line 84) | func (ImageFile) IsVisualFile() {} method Fingerprints (line 86) | func (f *ImageFile) Fingerprints() []models.Fingerprint { type BasicFile (line 90) | type BasicFile struct method IsBaseFile (line 94) | func (BasicFile) IsBaseFile() {} method IsVisualFile (line 96) | func (BasicFile) IsVisualFile() {} method Fingerprints (line 98) | func (f *BasicFile) Fingerprints() []models.Fingerprint { FILE: internal/api/plugin_map.go function MarshalPluginConfigMap (line 11) | func MarshalPluginConfigMap(val map[string]map[string]interface{}) graph... function UnmarshalPluginConfigMap (line 20) | func UnmarshalPluginConfigMap(v interface{}) (map[string]map[string]inte... FILE: internal/api/resolver.go type hookExecutor (line 30) | type hookExecutor interface type Resolver (line 34) | type Resolver struct method scraperCache (line 44) | func (r *Resolver) scraperCache() *scraper.Cache { method Gallery (line 48) | func (r *Resolver) Gallery() GalleryResolver { method GalleryChapter (line 51) | func (r *Resolver) GalleryChapter() GalleryChapterResolver { method Mutation (line 54) | func (r *Resolver) Mutation() MutationResolver { method Performer (line 57) | func (r *Resolver) Performer() PerformerResolver { method Query (line 60) | func (r *Resolver) Query() QueryResolver { method Scene (line 63) | func (r *Resolver) Scene() SceneResolver { method Image (line 66) | func (r *Resolver) Image() ImageResolver { method SceneMarker (line 69) | func (r *Resolver) SceneMarker() SceneMarkerResolver { method Studio (line 72) | func (r *Resolver) Studio() StudioResolver { method Group (line 76) | func (r *Resolver) Group() GroupResolver { method Movie (line 79) | func (r *Resolver) Movie() MovieResolver { method Subscription (line 83) | func (r *Resolver) Subscription() SubscriptionResolver { method Tag (line 86) | func (r *Resolver) Tag() TagResolver { method GalleryFile (line 89) | func (r *Resolver) GalleryFile() GalleryFileResolver { method VideoFile (line 92) | func (r *Resolver) VideoFile() VideoFileResolver { method ImageFile (line 95) | func (r *Resolver) ImageFile() ImageFileResolver { method BasicFile (line 98) | func (r *Resolver) BasicFile() BasicFileResolver { method Folder (line 101) | func (r *Resolver) Folder() FolderResolver { method SavedFilter (line 104) | func (r *Resolver) SavedFilter() SavedFilterResolver { method Plugin (line 107) | func (r *Resolver) Plugin() PluginResolver { method ConfigResult (line 110) | func (r *Resolver) ConfigResult() ConfigResultResolver { method withTxn (line 140) | func (r *Resolver) withTxn(ctx context.Context, fn func(ctx context.Co... method withReadTxn (line 144) | func (r *Resolver) withReadTxn(ctx context.Context, fn func(ctx contex... type mutationResolver (line 114) | type mutationResolver struct method ExecSQL (line 323) | func (r *mutationResolver) ExecSQL(ctx context.Context, sql string, ar... method QuerySQL (line 342) | func (r *mutationResolver) QuerySQL(ctx context.Context, sql string, a... type queryResolver (line 115) | type queryResolver struct method MarkerWall (line 148) | func (r *queryResolver) MarkerWall(ctx context.Context, q *string) (re... method SceneWall (line 158) | func (r *queryResolver) SceneWall(ctx context.Context, q *string) (ret... method MarkerStrings (line 169) | func (r *queryResolver) MarkerStrings(ctx context.Context, q *string, ... method Stats (line 180) | func (r *queryResolver) Stats(ctx context.Context) (*StatsResultType, ... method Version (line 295) | func (r *queryResolver) Version(ctx context.Context) (*Version, error) { method Latestversion (line 305) | func (r *queryResolver) Latestversion(ctx context.Context) (*LatestVer... method SceneMarkerTags (line 362) | func (r *queryResolver) SceneMarkerTags(ctx context.Context, scene_id ... type subscriptionResolver (line 116) | type subscriptionResolver struct type galleryResolver (line 118) | type galleryResolver struct type galleryChapterResolver (line 119) | type galleryChapterResolver struct type performerResolver (line 120) | type performerResolver struct type sceneResolver (line 121) | type sceneResolver struct type sceneMarkerResolver (line 122) | type sceneMarkerResolver struct type imageResolver (line 123) | type imageResolver struct type studioResolver (line 124) | type studioResolver struct type groupResolver (line 127) | type groupResolver struct type movieResolver (line 128) | type movieResolver struct type tagResolver (line 130) | type tagResolver struct type galleryFileResolver (line 131) | type galleryFileResolver struct type videoFileResolver (line 132) | type videoFileResolver struct type imageFileResolver (line 133) | type imageFileResolver struct type basicFileResolver (line 134) | type basicFileResolver struct type folderResolver (line 135) | type folderResolver struct type savedFilterResolver (line 136) | type savedFilterResolver struct type pluginResolver (line 137) | type pluginResolver struct type configResultResolver (line 138) | type configResultResolver struct function firstError (line 417) | func firstError(errs []error) error { FILE: internal/api/resolver_model_config.go method Plugins (line 9) | func (r *configResultResolver) Plugins(ctx context.Context, obj *ConfigR... FILE: internal/api/resolver_model_file.go function fingerprintResolver (line 10) | func fingerprintResolver(fp models.Fingerprints, type_ string) (*string,... method Fingerprint (line 19) | func (r *galleryFileResolver) Fingerprint(ctx context.Context, obj *Gall... method Fingerprint (line 23) | func (r *imageFileResolver) Fingerprint(ctx context.Context, obj *ImageF... method Fingerprint (line 27) | func (r *videoFileResolver) Fingerprint(ctx context.Context, obj *VideoF... method Fingerprint (line 31) | func (r *basicFileResolver) Fingerprint(ctx context.Context, obj *BasicF... method ParentFolder (line 35) | func (r *galleryFileResolver) ParentFolder(ctx context.Context, obj *Gal... method ParentFolder (line 39) | func (r *imageFileResolver) ParentFolder(ctx context.Context, obj *Image... method ParentFolder (line 43) | func (r *videoFileResolver) ParentFolder(ctx context.Context, obj *Video... method ParentFolder (line 47) | func (r *basicFileResolver) ParentFolder(ctx context.Context, obj *Basic... function zipFileResolver (line 51) | func zipFileResolver(ctx context.Context, zipFileID *models.FileID) (*Ba... method ZipFile (line 66) | func (r *galleryFileResolver) ZipFile(ctx context.Context, obj *GalleryF... method ZipFile (line 70) | func (r *imageFileResolver) ZipFile(ctx context.Context, obj *ImageFile)... method ZipFile (line 74) | func (r *videoFileResolver) ZipFile(ctx context.Context, obj *VideoFile)... method ZipFile (line 78) | func (r *basicFileResolver) ZipFile(ctx context.Context, obj *BasicFile)... FILE: internal/api/resolver_model_folder.go method Basename (line 11) | func (r *folderResolver) Basename(ctx context.Context, obj *models.Folde... method ParentFolder (line 15) | func (r *folderResolver) ParentFolder(ctx context.Context, obj *models.F... method ParentFolders (line 23) | func (r *folderResolver) ParentFolders(ctx context.Context, obj *models.... method ZipFile (line 34) | func (r *folderResolver) ZipFile(ctx context.Context, obj *models.Folder... FILE: internal/api/resolver_model_gallery.go method getFiles (line 15) | func (r *galleryResolver) getFiles(ctx context.Context, obj *models.Gall... method Files (line 25) | func (r *galleryResolver) Files(ctx context.Context, obj *models.Gallery... method Folder (line 42) | func (r *galleryResolver) Folder(ctx context.Context, obj *models.Galler... method Cover (line 69) | func (r *galleryResolver) Cover(ctx context.Context, obj *models.Gallery... method Date (line 81) | func (r *galleryResolver) Date(ctx context.Context, obj *models.Gallery)... method Rating100 (line 89) | func (r *galleryResolver) Rating100(ctx context.Context, obj *models.Gal... method Scenes (line 93) | func (r *galleryResolver) Scenes(ctx context.Context, obj *models.Galler... method Studio (line 107) | func (r *galleryResolver) Studio(ctx context.Context, obj *models.Galler... method Tags (line 115) | func (r *galleryResolver) Tags(ctx context.Context, obj *models.Gallery)... method Performers (line 129) | func (r *galleryResolver) Performers(ctx context.Context, obj *models.Ga... method ImageCount (line 143) | func (r *galleryResolver) ImageCount(ctx context.Context, obj *models.Ga... method Chapters (line 155) | func (r *galleryResolver) Chapters(ctx context.Context, obj *models.Gall... method URL (line 166) | func (r *galleryResolver) URL(ctx context.Context, obj *models.Gallery) ... method Urls (line 183) | func (r *galleryResolver) Urls(ctx context.Context, obj *models.Gallery)... method Paths (line 195) | func (r *galleryResolver) Paths(ctx context.Context, obj *models.Gallery... method Image (line 205) | func (r *galleryResolver) Image(ctx context.Context, obj *models.Gallery... method CustomFields (line 220) | func (r *galleryResolver) CustomFields(ctx context.Context, obj *models.... FILE: internal/api/resolver_model_gallery_chapter.go method Gallery (line 9) | func (r *galleryChapterResolver) Gallery(ctx context.Context, obj *model... FILE: internal/api/resolver_model_image.go method getFiles (line 11) | func (r *imageResolver) getFiles(ctx context.Context, obj *models.Image)... method VisualFiles (line 21) | func (r *imageResolver) VisualFiles(ctx context.Context, obj *models.Ima... method Date (line 38) | func (r *imageResolver) Date(ctx context.Context, obj *models.Image) (*s... method Files (line 46) | func (r *imageResolver) Files(ctx context.Context, obj *models.Image) ([... method Paths (line 69) | func (r *imageResolver) Paths(ctx context.Context, obj *models.Image) (*... method Galleries (line 82) | func (r *imageResolver) Galleries(ctx context.Context, obj *models.Image... method Rating100 (line 96) | func (r *imageResolver) Rating100(ctx context.Context, obj *models.Image... method Studio (line 100) | func (r *imageResolver) Studio(ctx context.Context, obj *models.Image) (... method Tags (line 108) | func (r *imageResolver) Tags(ctx context.Context, obj *models.Image) (re... method Performers (line 122) | func (r *imageResolver) Performers(ctx context.Context, obj *models.Imag... method URL (line 136) | func (r *imageResolver) URL(ctx context.Context, obj *models.Image) (*st... method Urls (line 153) | func (r *imageResolver) Urls(ctx context.Context, obj *models.Image) ([]... method CustomFields (line 165) | func (r *imageResolver) CustomFields(ctx context.Context, obj *models.Im... FILE: internal/api/resolver_model_movie.go method Date (line 14) | func (r *groupResolver) Date(ctx context.Context, obj *models.Group) (*s... method Rating100 (line 22) | func (r *groupResolver) Rating100(ctx context.Context, obj *models.Group... method URL (line 26) | func (r *groupResolver) URL(ctx context.Context, obj *models.Group) (*st... method Urls (line 43) | func (r *groupResolver) Urls(ctx context.Context, obj *models.Group) ([]... method Studio (line 55) | func (r *groupResolver) Studio(ctx context.Context, obj *models.Group) (... method Tags (line 63) | func (r groupResolver) Tags(ctx context.Context, obj *models.Group) (ret... method relatedGroups (line 77) | func (r groupResolver) relatedGroups(ctx context.Context, rgd models.Rel... method ContainingGroups (line 104) | func (r groupResolver) ContainingGroups(ctx context.Context, obj *models... method SubGroups (line 116) | func (r groupResolver) SubGroups(ctx context.Context, obj *models.Group)... method SubGroupCount (line 128) | func (r *groupResolver) SubGroupCount(ctx context.Context, obj *models.G... method FrontImagePath (line 139) | func (r *groupResolver) FrontImagePath(ctx context.Context, obj *models.... method BackImagePath (line 154) | func (r *groupResolver) BackImagePath(ctx context.Context, obj *models.G... method SceneCount (line 174) | func (r *groupResolver) SceneCount(ctx context.Context, obj *models.Grou... method PerformerCount (line 185) | func (r *groupResolver) PerformerCount(ctx context.Context, obj *models.... method Scenes (line 196) | func (r *groupResolver) Scenes(ctx context.Context, obj *models.Group) (... method OCounter (line 208) | func (r *groupResolver) OCounter(ctx context.Context, obj *models.Group)... method CustomFields (line 219) | func (r *groupResolver) CustomFields(ctx context.Context, obj *models.Gr... FILE: internal/api/resolver_model_performer.go method AliasList (line 15) | func (r *performerResolver) AliasList(ctx context.Context, obj *models.P... method URL (line 27) | func (r *performerResolver) URL(ctx context.Context, obj *models.Perform... method Twitter (line 44) | func (r *performerResolver) Twitter(ctx context.Context, obj *models.Per... method Instagram (line 66) | func (r *performerResolver) Instagram(ctx context.Context, obj *models.P... method Urls (line 88) | func (r *performerResolver) Urls(ctx context.Context, obj *models.Perfor... method Height (line 100) | func (r *performerResolver) Height(ctx context.Context, obj *models.Perf... method HeightCm (line 108) | func (r *performerResolver) HeightCm(ctx context.Context, obj *models.Pe... method CareerStart (line 112) | func (r *performerResolver) CareerStart(ctx context.Context, obj *models... method CareerEnd (line 120) | func (r *performerResolver) CareerEnd(ctx context.Context, obj *models.P... method CareerLength (line 128) | func (r *performerResolver) CareerLength(ctx context.Context, obj *model... method Birthdate (line 137) | func (r *performerResolver) Birthdate(ctx context.Context, obj *models.P... method ImagePath (line 145) | func (r *performerResolver) ImagePath(ctx context.Context, obj *models.P... method Tags (line 160) | func (r *performerResolver) Tags(ctx context.Context, obj *models.Perfor... method SceneCount (line 174) | func (r *performerResolver) SceneCount(ctx context.Context, obj *models.... method ImageCount (line 185) | func (r *performerResolver) ImageCount(ctx context.Context, obj *models.... method GalleryCount (line 196) | func (r *performerResolver) GalleryCount(ctx context.Context, obj *model... method GroupCount (line 207) | func (r *performerResolver) GroupCount(ctx context.Context, obj *models.... method MovieCount (line 219) | func (r *performerResolver) MovieCount(ctx context.Context, obj *models.... method PerformerCount (line 223) | func (r *performerResolver) PerformerCount(ctx context.Context, obj *mod... method OCounter (line 234) | func (r *performerResolver) OCounter(ctx context.Context, obj *models.Pe... method Scenes (line 252) | func (r *performerResolver) Scenes(ctx context.Context, obj *models.Perf... method StashIds (line 263) | func (r *performerResolver) StashIds(ctx context.Context, obj *models.Pe... method Rating100 (line 273) | func (r *performerResolver) Rating100(ctx context.Context, obj *models.P... method DeathDate (line 277) | func (r *performerResolver) DeathDate(ctx context.Context, obj *models.P... method Groups (line 285) | func (r *performerResolver) Groups(ctx context.Context, obj *models.Perf... method CustomFields (line 296) | func (r *performerResolver) CustomFields(ctx context.Context, obj *model... method Movies (line 310) | func (r *performerResolver) Movies(ctx context.Context, obj *models.Perf... FILE: internal/api/resolver_model_plugin.go type pluginURLBuilder (line 9) | type pluginURLBuilder struct method javascript (line 14) | func (b pluginURLBuilder) javascript() []string { method css (line 28) | func (b pluginURLBuilder) css() []string { method paths (line 41) | func (b *pluginURLBuilder) paths() *PluginPaths { method Paths (line 48) | func (r *pluginResolver) Paths(ctx context.Context, obj *plugin.Plugin) ... method Requires (line 59) | func (r *pluginResolver) Requires(ctx context.Context, obj *plugin.Plugi... FILE: internal/api/resolver_model_saved_filter.go method Filter (line 9) | func (r *savedFilterResolver) Filter(ctx context.Context, obj *models.Sa... FILE: internal/api/resolver_model_scene.go function convertVideoFile (line 14) | func convertVideoFile(f models.File) (*models.VideoFile, error) { method getPrimaryFile (line 22) | func (r *sceneResolver) getPrimaryFile(ctx context.Context, obj *models.... method getFiles (line 44) | func (r *sceneResolver) getFiles(ctx context.Context, obj *models.Scene)... method Date (line 69) | func (r *sceneResolver) Date(ctx context.Context, obj *models.Scene) (*s... method Files (line 77) | func (r *sceneResolver) Files(ctx context.Context, obj *models.Scene) ([... method Rating (line 94) | func (r *sceneResolver) Rating(ctx context.Context, obj *models.Scene) (... method Rating100 (line 102) | func (r *sceneResolver) Rating100(ctx context.Context, obj *models.Scene... method Paths (line 106) | func (r *sceneResolver) Paths(ctx context.Context, obj *models.Scene) (*... method SceneMarkers (line 134) | func (r *sceneResolver) SceneMarkers(ctx context.Context, obj *models.Sc... method Captions (line 145) | func (r *sceneResolver) Captions(ctx context.Context, obj *models.Scene)... method Galleries (line 164) | func (r *sceneResolver) Galleries(ctx context.Context, obj *models.Scene... method Studio (line 178) | func (r *sceneResolver) Studio(ctx context.Context, obj *models.Scene) (... method Movies (line 186) | func (r *sceneResolver) Movies(ctx context.Context, obj *models.Scene) (... method Groups (line 217) | func (r *sceneResolver) Groups(ctx context.Context, obj *models.Scene) (... method Tags (line 248) | func (r *sceneResolver) Tags(ctx context.Context, obj *models.Scene) (re... method Performers (line 262) | func (r *sceneResolver) Performers(ctx context.Context, obj *models.Scen... method StashIds (line 276) | func (r *sceneResolver) StashIds(ctx context.Context, obj *models.Scene)... method SceneStreams (line 286) | func (r *sceneResolver) SceneStreams(ctx context.Context, obj *models.Sc... method Interactive (line 302) | func (r *sceneResolver) Interactive(ctx context.Context, obj *models.Sce... method InteractiveSpeed (line 314) | func (r *sceneResolver) InteractiveSpeed(ctx context.Context, obj *model... method URL (line 326) | func (r *sceneResolver) URL(ctx context.Context, obj *models.Scene) (*st... method Urls (line 343) | func (r *sceneResolver) Urls(ctx context.Context, obj *models.Scene) ([]... method OCounter (line 355) | func (r *sceneResolver) OCounter(ctx context.Context, obj *models.Scene)... method LastPlayedAt (line 364) | func (r *sceneResolver) LastPlayedAt(ctx context.Context, obj *models.Sc... method PlayCount (line 373) | func (r *sceneResolver) PlayCount(ctx context.Context, obj *models.Scene... method PlayHistory (line 382) | func (r *sceneResolver) PlayHistory(ctx context.Context, obj *models.Sce... method OHistory (line 398) | func (r *sceneResolver) OHistory(ctx context.Context, obj *models.Scene)... method CustomFields (line 414) | func (r *sceneResolver) CustomFields(ctx context.Context, obj *models.Sc... FILE: internal/api/resolver_model_scene_marker.go method Scene (line 10) | func (r *sceneMarkerResolver) Scene(ctx context.Context, obj *models.Sce... method PrimaryTag (line 21) | func (r *sceneMarkerResolver) PrimaryTag(ctx context.Context, obj *model... method Tags (line 32) | func (r *sceneMarkerResolver) Tags(ctx context.Context, obj *models.Scen... method Stream (line 43) | func (r *sceneMarkerResolver) Stream(ctx context.Context, obj *models.Sc... method Preview (line 48) | func (r *sceneMarkerResolver) Preview(ctx context.Context, obj *models.S... method Screenshot (line 53) | func (r *sceneMarkerResolver) Screenshot(ctx context.Context, obj *model... FILE: internal/api/resolver_model_studio.go method ImagePath (line 16) | func (r *studioResolver) ImagePath(ctx context.Context, obj *models.Stud... method Aliases (line 31) | func (r *studioResolver) Aliases(ctx context.Context, obj *models.Studio... method URL (line 43) | func (r *studioResolver) URL(ctx context.Context, obj *models.Studio) (*... method Urls (line 60) | func (r *studioResolver) Urls(ctx context.Context, obj *models.Studio) (... method Tags (line 72) | func (r *studioResolver) Tags(ctx context.Context, obj *models.Studio) (... method SceneCount (line 86) | func (r *studioResolver) SceneCount(ctx context.Context, obj *models.Stu... method ImageCount (line 97) | func (r *studioResolver) ImageCount(ctx context.Context, obj *models.Stu... method GalleryCount (line 108) | func (r *studioResolver) GalleryCount(ctx context.Context, obj *models.S... method PerformerCount (line 119) | func (r *studioResolver) PerformerCount(ctx context.Context, obj *models... method GroupCount (line 130) | func (r *studioResolver) GroupCount(ctx context.Context, obj *models.Stu... method MovieCount (line 142) | func (r *studioResolver) MovieCount(ctx context.Context, obj *models.Stu... method OCounter (line 146) | func (r *studioResolver) OCounter(ctx context.Context, obj *models.Studi... method ParentStudio (line 164) | func (r *studioResolver) ParentStudio(ctx context.Context, obj *models.S... method ChildStudios (line 172) | func (r *studioResolver) ChildStudios(ctx context.Context, obj *models.S... method StashIds (line 183) | func (r *studioResolver) StashIds(ctx context.Context, obj *models.Studi... method Rating100 (line 195) | func (r *studioResolver) Rating100(ctx context.Context, obj *models.Stud... method Groups (line 199) | func (r *studioResolver) Groups(ctx context.Context, obj *models.Studio)... method CustomFields (line 210) | func (r *studioResolver) CustomFields(ctx context.Context, obj *models.S... method Movies (line 224) | func (r *studioResolver) Movies(ctx context.Context, obj *models.Studio)... FILE: internal/api/resolver_model_tag.go method Parents (line 17) | func (r *tagResolver) Parents(ctx context.Context, obj *models.Tag) (ret... method Children (line 31) | func (r *tagResolver) Children(ctx context.Context, obj *models.Tag) (re... method Aliases (line 45) | func (r *tagResolver) Aliases(ctx context.Context, obj *models.Tag) (ret... method StashIds (line 57) | func (r *tagResolver) StashIds(ctx context.Context, obj *models.Tag) ([]... method SceneCount (line 67) | func (r *tagResolver) SceneCount(ctx context.Context, obj *models.Tag, d... method SceneMarkerCount (line 78) | func (r *tagResolver) SceneMarkerCount(ctx context.Context, obj *models.... method ImageCount (line 89) | func (r *tagResolver) ImageCount(ctx context.Context, obj *models.Tag, d... method GalleryCount (line 100) | func (r *tagResolver) GalleryCount(ctx context.Context, obj *models.Tag,... method PerformerCount (line 111) | func (r *tagResolver) PerformerCount(ctx context.Context, obj *models.Ta... method StudioCount (line 122) | func (r *tagResolver) StudioCount(ctx context.Context, obj *models.Tag, ... method GroupCount (line 133) | func (r *tagResolver) GroupCount(ctx context.Context, obj *models.Tag, d... method MovieCount (line 144) | func (r *tagResolver) MovieCount(ctx context.Context, obj *models.Tag, d... method ImagePath (line 148) | func (r *tagResolver) ImagePath(ctx context.Context, obj *models.Tag) (*... method ParentCount (line 163) | func (r *tagResolver) ParentCount(ctx context.Context, obj *models.Tag) ... method ChildCount (line 174) | func (r *tagResolver) ChildCount(ctx context.Context, obj *models.Tag) (... method CustomFields (line 185) | func (r *tagResolver) CustomFields(ctx context.Context, obj *models.Tag)... FILE: internal/api/resolver_mutation_configure.go method Setup (line 25) | func (r *mutationResolver) Setup(ctx context.Context, input manager.Setu... method DownloadFFMpeg (line 30) | func (r *mutationResolver) DownloadFFMpeg(ctx context.Context) (string, ... method setConfigString (line 58) | func (r *mutationResolver) setConfigString(key string, value *string) { method setConfigBool (line 65) | func (r *mutationResolver) setConfigBool(key string, value *bool) { method setConfigInt (line 72) | func (r *mutationResolver) setConfigInt(key string, value *int) { method setConfigFloat (line 79) | func (r *mutationResolver) setConfigFloat(key string, value *float64) { method ConfigureGeneral (line 86) | func (r *mutationResolver) ConfigureGeneral(ctx context.Context, input C... method ConfigureInterface (line 470) | func (r *mutationResolver) ConfigureInterface(ctx context.Context, input... method ConfigureDlna (line 552) | func (r *mutationResolver) ConfigureDlna(ctx context.Context, input Conf... method ConfigureScraping (line 585) | func (r *mutationResolver) ConfigureScraping(ctx context.Context, input ... method ConfigureDefaults (line 621) | func (r *mutationResolver) ConfigureDefaults(ctx context.Context, input ... method GenerateAPIKey (line 652) | func (r *mutationResolver) GenerateAPIKey(ctx context.Context, input Gen... method ConfigureUI (line 675) | func (r *mutationResolver) ConfigureUI(ctx context.Context, input map[st... method ConfigureUISetting (line 700) | func (r *mutationResolver) ConfigureUISetting(ctx context.Context, key s... method ConfigurePlugin (line 717) | func (r *mutationResolver) ConfigurePlugin(ctx context.Context, pluginID... FILE: internal/api/resolver_mutation_dlna.go method EnableDlna (line 10) | func (r *mutationResolver) EnableDlna(ctx context.Context, input EnableD... method DisableDlna (line 18) | func (r *mutationResolver) DisableDlna(ctx context.Context, input Disabl... method AddTempDlnaip (line 23) | func (r *mutationResolver) AddTempDlnaip(ctx context.Context, input AddT... method RemoveTempDlnaip (line 28) | func (r *mutationResolver) RemoveTempDlnaip(ctx context.Context, input R... function parseMinutes (line 33) | func parseMinutes(minutes *int) *time.Duration { FILE: internal/api/resolver_mutation_file.go method MoveFiles (line 19) | func (r *mutationResolver) MoveFiles(ctx context.Context, input MoveFile... method validateFolderPath (line 117) | func (r *mutationResolver) validateFolderPath(paths config.StashConfigs,... method validateFileExtension (line 125) | func (r *mutationResolver) validateFileExtension(oldBasename, newBasenam... method validateFileExtensionList (line 142) | func (r *mutationResolver) validateFileExtensionList(exts []string, oldB... method DeleteFiles (line 150) | func (r *mutationResolver) DeleteFiles(ctx context.Context, ids []string... method DestroyFiles (line 217) | func (r *mutationResolver) DestroyFiles(ctx context.Context, ids []strin... method FileSetFingerprints (line 269) | func (r *mutationResolver) FileSetFingerprints(ctx context.Context, inpu... method RevealFileInFileManager (line 334) | func (r *mutationResolver) RevealFileInFileManager(ctx context.Context, ... method RevealFolderInFileManager (line 368) | func (r *mutationResolver) RevealFolderInFileManager(ctx context.Context... FILE: internal/api/resolver_mutation_gallery.go method getGallery (line 23) | func (r *mutationResolver) getGallery(ctx context.Context, id int) (ret ... method GalleryCreate (line 34) | func (r *mutationResolver) GalleryCreate(ctx context.Context, input Gall... method GalleryUpdate (line 105) | func (r *mutationResolver) GalleryUpdate(ctx context.Context, input mode... method GalleriesUpdate (line 123) | func (r *mutationResolver) GalleriesUpdate(ctx context.Context, input []... method galleryUpdate (line 166) | func (r *mutationResolver) galleryUpdate(ctx context.Context, input mode... method BulkGalleryUpdate (line 263) | func (r *mutationResolver) BulkGalleryUpdate(ctx context.Context, input ... method GalleryDestroy (line 345) | func (r *mutationResolver) GalleryDestroy(ctx context.Context, input mod... function isStashPath (line 428) | func isStashPath(path string) bool { method AddGalleryImages (line 439) | func (r *mutationResolver) AddGalleryImages(ctx context.Context, input G... method RemoveGalleryImages (line 469) | func (r *mutationResolver) RemoveGalleryImages(ctx context.Context, inpu... method SetGalleryCover (line 499) | func (r *mutationResolver) SetGalleryCover(ctx context.Context, input Ga... method ResetGalleryCover (line 529) | func (r *mutationResolver) ResetGalleryCover(ctx context.Context, input ... method getGalleryChapter (line 554) | func (r *mutationResolver) getGalleryChapter(ctx context.Context, id int... method GalleryChapterCreate (line 565) | func (r *mutationResolver) GalleryChapterCreate(ctx context.Context, inp... method GalleryChapterUpdate (line 599) | func (r *mutationResolver) GalleryChapterUpdate(ctx context.Context, inp... method GalleryChapterDestroy (line 665) | func (r *mutationResolver) GalleryChapterDestroy(ctx context.Context, id... FILE: internal/api/resolver_mutation_group.go function groupFromGroupCreateInput (line 17) | func groupFromGroupCreateInput(ctx context.Context, input GroupCreateInp... method GroupCreate (line 93) | func (r *mutationResolver) GroupCreate(ctx context.Context, input GroupC... function groupPartialFromGroupUpdateInput (line 116) | func groupPartialFromGroupUpdateInput(translator changesetTranslator, in... method GroupUpdate (line 167) | func (r *mutationResolver) GroupUpdate(ctx context.Context, input GroupU... function groupPartialFromBulkGroupUpdateInput (line 227) | func groupPartialFromBulkGroupUpdateInput(translator changesetTranslator... method BulkGroupUpdate (line 275) | func (r *mutationResolver) BulkGroupUpdate(ctx context.Context, input Bu... method GroupDestroy (line 325) | func (r *mutationResolver) GroupDestroy(ctx context.Context, input Group... method GroupsDestroy (line 344) | func (r *mutationResolver) GroupsDestroy(ctx context.Context, groupIDs [... method AddGroupSubGroups (line 372) | func (r *mutationResolver) AddGroupSubGroups(ctx context.Context, input ... method RemoveGroupSubGroups (line 392) | func (r *mutationResolver) RemoveGroupSubGroups(ctx context.Context, inp... method ReorderSubGroups (line 412) | func (r *mutationResolver) ReorderSubGroups(ctx context.Context, input R... FILE: internal/api/resolver_mutation_image.go method getImage (line 20) | func (r *mutationResolver) getImage(ctx context.Context, id int) (ret *m... method ImageUpdate (line 31) | func (r *mutationResolver) ImageUpdate(ctx context.Context, input models... method ImagesUpdate (line 49) | func (r *mutationResolver) ImagesUpdate(ctx context.Context, input []*mo... method imageUpdate (line 92) | func (r *mutationResolver) imageUpdate(ctx context.Context, input models... method BulkImageUpdate (line 203) | func (r *mutationResolver) BulkImageUpdate(ctx context.Context, input Bu... method ImageDestroy (line 319) | func (r *mutationResolver) ImageDestroy(ctx context.Context, input model... method ImagesDestroy (line 361) | func (r *mutationResolver) ImagesDestroy(ctx context.Context, input mode... method ImageIncrementO (line 415) | func (r *mutationResolver) ImageIncrementO(ctx context.Context, id strin... method ImageDecrementO (line 433) | func (r *mutationResolver) ImageDecrementO(ctx context.Context, id strin... method ImageResetO (line 451) | func (r *mutationResolver) ImageResetO(ctx context.Context, id string) (... FILE: internal/api/resolver_mutation_job.go method StopJob (line 11) | func (r *mutationResolver) StopJob(ctx context.Context, jobID string) (b... method StopAllJobs (line 21) | func (r *mutationResolver) StopAllJobs(ctx context.Context) (bool, error) { FILE: internal/api/resolver_mutation_metadata.go method MetadataScan (line 17) | func (r *mutationResolver) MetadataScan(ctx context.Context, input manag... method MetadataImport (line 27) | func (r *mutationResolver) MetadataImport(ctx context.Context) (string, ... method ImportObjects (line 36) | func (r *mutationResolver) ImportObjects(ctx context.Context, input mana... method MetadataExport (line 47) | func (r *mutationResolver) MetadataExport(ctx context.Context) (string, ... method ExportObjects (line 56) | func (r *mutationResolver) ExportObjects(ctx context.Context, input mana... method MetadataGenerate (line 75) | func (r *mutationResolver) MetadataGenerate(ctx context.Context, input m... method MetadataAutoTag (line 85) | func (r *mutationResolver) MetadataAutoTag(ctx context.Context, input ma... method MetadataIdentify (line 90) | func (r *mutationResolver) MetadataIdentify(ctx context.Context, input i... method MetadataClean (line 97) | func (r *mutationResolver) MetadataClean(ctx context.Context, input mana... method MetadataCleanGenerated (line 102) | func (r *mutationResolver) MetadataCleanGenerated(ctx context.Context, i... method MigrateHashNaming (line 117) | func (r *mutationResolver) MigrateHashNaming(ctx context.Context) (strin... method BackupDatabase (line 122) | func (r *mutationResolver) BackupDatabase(ctx context.Context, input Bac... method AnonymiseDatabase (line 152) | func (r *mutationResolver) AnonymiseDatabase(ctx context.Context, input ... method OptimiseDatabase (line 181) | func (r *mutationResolver) OptimiseDatabase(ctx context.Context) (string... FILE: internal/api/resolver_mutation_migrate.go method MigrateSceneScreenshots (line 13) | func (r *mutationResolver) MigrateSceneScreenshots(ctx context.Context, ... method MigrateBlobs (line 29) | func (r *mutationResolver) MigrateBlobs(ctx context.Context, input Migra... method Migrate (line 42) | func (r *mutationResolver) Migrate(ctx context.Context, input manager.Mi... FILE: internal/api/resolver_mutation_movie.go method getGroup (line 17) | func (r *mutationResolver) getGroup(ctx context.Context, id int) (ret *m... method MovieCreate (line 28) | func (r *mutationResolver) MovieCreate(ctx context.Context, input MovieC... method MovieUpdate (line 122) | func (r *mutationResolver) MovieUpdate(ctx context.Context, input MovieU... method BulkMovieUpdate (line 209) | func (r *mutationResolver) BulkMovieUpdate(ctx context.Context, input Bu... method MovieDestroy (line 273) | func (r *mutationResolver) MovieDestroy(ctx context.Context, input Movie... method MoviesDestroy (line 292) | func (r *mutationResolver) MoviesDestroy(ctx context.Context, groupIDs [... FILE: internal/api/resolver_mutation_package.go function refreshPackageType (line 12) | func refreshPackageType(typeArg PackageType) { method InstallPackages (line 22) | func (r *mutationResolver) InstallPackages(ctx context.Context, typeArg ... method UpdatePackages (line 41) | func (r *mutationResolver) UpdatePackages(ctx context.Context, typeArg P... method UninstallPackages (line 60) | func (r *mutationResolver) UninstallPackages(ctx context.Context, typeAr... FILE: internal/api/resolver_mutation_performer.go constant twitterURL (line 20) | twitterURL = "https://twitter.com" constant instagramURL (line 21) | instagramURL = "https://instagram.com" method getPerformer (line 25) | func (r *mutationResolver) getPerformer(ctx context.Context, id int) (re... method PerformerCreate (line 36) | func (r *mutationResolver) PerformerCreate(ctx context.Context, input mo... function validateNoLegacyURLs (line 160) | func validateNoLegacyURLs(translator changesetTranslator) error { method handleLegacyURLs (line 175) | func (r *mutationResolver) handleLegacyURLs(ctx context.Context, perform... type legacyPerformerURLs (line 250) | type legacyPerformerURLs struct method AnySet (line 256) | func (u *legacyPerformerURLs) AnySet() bool { function legacyPerformerURLsFromInput (line 260) | func legacyPerformerURLsFromInput(input models.PerformerUpdateInput, tra... function performerPartialFromInput (line 268) | func performerPartialFromInput(input models.PerformerUpdateInput, transl... method PerformerUpdate (line 355) | func (r *mutationResolver) PerformerUpdate(ctx context.Context, input mo... method BulkPerformerUpdate (line 437) | func (r *mutationResolver) BulkPerformerUpdate(ctx context.Context, inpu... method PerformerDestroy (line 581) | func (r *mutationResolver) PerformerDestroy(ctx context.Context, input P... method PerformersDestroy (line 598) | func (r *mutationResolver) PerformersDestroy(ctx context.Context, perfor... method PerformerMerge (line 624) | func (r *mutationResolver) PerformerMerge(ctx context.Context, input Per... FILE: internal/api/resolver_mutation_plugin.go function toPluginArgs (line 13) | func toPluginArgs(args []*plugin.PluginArgInput) plugin.OperationInput { function toPluginArgValue (line 22) | func toPluginArgValue(arg *plugin.PluginValueInput) interface{} { method RunPluginTask (line 49) | func (r *mutationResolver) RunPluginTask( method RunPluginOperation (line 68) | func (r *mutationResolver) RunPluginOperation( method ReloadPlugins (line 81) | func (r *mutationResolver) ReloadPlugins(ctx context.Context) (bool, err... method SetPluginsEnabled (line 86) | func (r *mutationResolver) SetPluginsEnabled(ctx context.Context, enable... FILE: internal/api/resolver_mutation_saved_filter.go method SaveFilter (line 16) | func (r *mutationResolver) SaveFilter(ctx context.Context, input SaveFil... method DestroySavedFilter (line 57) | func (r *mutationResolver) DestroySavedFilter(ctx context.Context, input... method SetDefaultFilter (line 72) | func (r *mutationResolver) SetDefaultFilter(ctx context.Context, input S... FILE: internal/api/resolver_mutation_scene.go method getScene (line 24) | func (r *mutationResolver) getScene(ctx context.Context, id int) (ret *m... method SceneCreate (line 35) | func (r *mutationResolver) SceneCreate(ctx context.Context, input models... method SceneUpdate (line 123) | func (r *mutationResolver) SceneUpdate(ctx context.Context, input models... method ScenesUpdate (line 140) | func (r *mutationResolver) ScenesUpdate(ctx context.Context, input []*mo... function scenePartialFromInput (line 183) | func scenePartialFromInput(input models.SceneUpdateInput, translator cha... method sceneUpdate (line 250) | func (r *mutationResolver) sceneUpdate(ctx context.Context, input models... method sceneUpdateCoverImage (line 345) | func (r *mutationResolver) sceneUpdateCoverImage(ctx context.Context, s ... method BulkSceneUpdate (line 356) | func (r *mutationResolver) BulkSceneUpdate(ctx context.Context, input Bu... method SceneDestroy (line 460) | func (r *mutationResolver) SceneDestroy(ctx context.Context, input model... method ScenesDestroy (line 515) | func (r *mutationResolver) ScenesDestroy(ctx context.Context, input mode... method SceneAssignFile (line 579) | func (r *mutationResolver) SceneAssignFile(ctx context.Context, input As... method SceneMerge (line 599) | func (r *mutationResolver) SceneMerge(ctx context.Context, input SceneMe... method getSceneMarker (line 688) | func (r *mutationResolver) getSceneMarker(ctx context.Context, id int) (... method SceneMarkerCreate (line 699) | func (r *mutationResolver) SceneMarkerCreate(ctx context.Context, input ... function validateSceneMarkerEndSeconds (line 750) | func validateSceneMarkerEndSeconds(seconds, endSeconds float64) error { function float64OrZero (line 757) | func float64OrZero(f *float64) float64 { method SceneMarkerUpdate (line 764) | func (r *mutationResolver) SceneMarkerUpdate(ctx context.Context, input ... method BulkSceneMarkerUpdate (line 884) | func (r *mutationResolver) BulkSceneMarkerUpdate(ctx context.Context, in... function adjustMarkerPartialForTagExclusion (line 952) | func adjustMarkerPartialForTagExclusion(ctx context.Context, r models.Sc... method SceneMarkerDestroy (line 1001) | func (r *mutationResolver) SceneMarkerDestroy(ctx context.Context, id st... method SceneMarkersDestroy (line 1005) | func (r *mutationResolver) SceneMarkersDestroy(ctx context.Context, mark... method SceneSaveActivity (line 1068) | func (r *mutationResolver) SceneSaveActivity(ctx context.Context, id str... method SceneResetActivity (line 1086) | func (r *mutationResolver) SceneResetActivity(ctx context.Context, id st... method SceneIncrementPlayCount (line 1105) | func (r *mutationResolver) SceneIncrementPlayCount(ctx context.Context, ... method SceneAddPlay (line 1125) | func (r *mutationResolver) SceneAddPlay(ctx context.Context, id string, ... method SceneDeletePlay (line 1155) | func (r *mutationResolver) SceneDeletePlay(ctx context.Context, id strin... method SceneResetPlayCount (line 1184) | func (r *mutationResolver) SceneResetPlayCount(ctx context.Context, id s... method SceneIncrementO (line 1203) | func (r *mutationResolver) SceneIncrementO(ctx context.Context, id strin... method SceneDecrementO (line 1224) | func (r *mutationResolver) SceneDecrementO(ctx context.Context, id strin... method SceneResetO (line 1244) | func (r *mutationResolver) SceneResetO(ctx context.Context, id string) (... method SceneAddO (line 1262) | func (r *mutationResolver) SceneAddO(ctx context.Context, id string, t [... method SceneDeleteO (line 1292) | func (r *mutationResolver) SceneDeleteO(ctx context.Context, id string, ... method SceneGenerateScreenshot (line 1321) | func (r *mutationResolver) SceneGenerateScreenshot(ctx context.Context, ... FILE: internal/api/resolver_mutation_scraper.go method ReloadScrapers (line 9) | func (r *mutationResolver) ReloadScrapers(ctx context.Context) (bool, er... FILE: internal/api/resolver_mutation_stash_box.go method SubmitStashBoxFingerprints (line 16) | func (r *mutationResolver) SubmitStashBoxFingerprints(ctx context.Contex... method StashBoxBatchPerformerTag (line 41) | func (r *mutationResolver) StashBoxBatchPerformerTag(ctx context.Context... method StashBoxBatchStudioTag (line 51) | func (r *mutationResolver) StashBoxBatchStudioTag(ctx context.Context, i... method StashBoxBatchTagTag (line 61) | func (r *mutationResolver) StashBoxBatchTagTag(ctx context.Context, inpu... method SubmitStashBoxSceneDraft (line 71) | func (r *mutationResolver) SubmitStashBoxSceneDraft(ctx context.Context,... method makeSceneDraft (line 113) | func (r *mutationResolver) makeSceneDraft(ctx context.Context, s *models... method SubmitStashBoxPerformerDraft (line 179) | func (r *mutationResolver) SubmitStashBoxPerformerDraft(ctx context.Cont... FILE: internal/api/resolver_mutation_studio.go method getStudio (line 17) | func (r *mutationResolver) getStudio(ctx context.Context, id int) (ret *... method StudioCreate (line 28) | func (r *mutationResolver) StudioCreate(ctx context.Context, input model... method StudioUpdate (line 105) | func (r *mutationResolver) StudioUpdate(ctx context.Context, input model... method BulkStudioUpdate (line 224) | func (r *mutationResolver) BulkStudioUpdate(ctx context.Context, input B... method StudioDestroy (line 315) | func (r *mutationResolver) StudioDestroy(ctx context.Context, input Stud... method StudiosDestroy (line 332) | func (r *mutationResolver) StudiosDestroy(ctx context.Context, studioIDs... FILE: internal/api/resolver_mutation_tag.go method getTag (line 16) | func (r *mutationResolver) getTag(ctx context.Context, id int) (ret *mod... method TagCreate (line 27) | func (r *mutationResolver) TagCreate(ctx context.Context, input TagCreat... function tagPartialFromInput (line 105) | func tagPartialFromInput(input TagUpdateInput, translator changesetTrans... method TagUpdate (line 145) | func (r *mutationResolver) TagUpdate(ctx context.Context, input TagUpdat... method BulkTagUpdate (line 222) | func (r *mutationResolver) BulkTagUpdate(ctx context.Context, input Bulk... method TagDestroy (line 291) | func (r *mutationResolver) TagDestroy(ctx context.Context, input TagDest... method TagsDestroy (line 308) | func (r *mutationResolver) TagsDestroy(ctx context.Context, tagIDs []str... method TagsMerge (line 334) | func (r *mutationResolver) TagsMerge(ctx context.Context, input TagsMerg... FILE: internal/api/resolver_mutation_tag_test.go function newResolver (line 17) | func newResolver(db *mocks.Database) *Resolver { constant tagName (line 25) | tagName = "tagName" constant errTagName (line 26) | errTagName = "errTagName" constant existingTagID (line 28) | existingTagID = 1 constant existingTagName (line 29) | existingTagName = "existingTagName" constant newTagID (line 31) | newTagID = 2 type mockHookExecutor (line 36) | type mockHookExecutor struct method ExecutePostHooks (line 38) | func (*mockHookExecutor) ExecutePostHooks(ctx context.Context, id int,... function TestTagCreate (line 41) | func TestTagCreate(t *testing.T) { FILE: internal/api/resolver_query_configuration.go method Configuration (line 15) | func (r *queryResolver) Configuration(ctx context.Context) (*ConfigResul... method Directory (line 19) | func (r *queryResolver) Directory(ctx context.Context, path, locale *str... function getDir (line 43) | func getDir(path string) string { function getParent (line 51) | func getParent(path string) *string { function makeConfigResult (line 61) | func makeConfigResult() *ConfigResult { function makeConfigGeneralResult (line 72) | func makeConfigGeneralResult() *ConfigGeneralResult { function makeConfigInterfaceResult (line 144) | func makeConfigInterfaceResult() *ConfigInterfaceResult { function makeConfigDLNAResult (line 205) | func makeConfigDLNAResult() *ConfigDLNAResult { function makeConfigScrapingResult (line 218) | func makeConfigScrapingResult() *ConfigScrapingResult { function makeConfigDefaultsResult (line 232) | func makeConfigDefaultsResult() *ConfigDefaultSettingsResult { function makeConfigUIResult (line 247) | func makeConfigUIResult() map[string]interface{} { method ValidateStashBoxCredentials (line 251) | func (r *queryResolver) ValidateStashBoxCredentials(ctx context.Context,... FILE: internal/api/resolver_query_dlna.go method DlnaStatus (line 10) | func (r *queryResolver) DlnaStatus(ctx context.Context) (*dlna.Status, e... FILE: internal/api/resolver_query_find_file.go method FindFile (line 12) | func (r *queryResolver) FindFile(ctx context.Context, id *string, path *... method FindFiles (line 48) | func (r *queryResolver) FindFiles( FILE: internal/api/resolver_query_find_folder.go method FindFolder (line 11) | func (r *queryResolver) FindFolder(ctx context.Context, id *string, path... method FindFolders (line 43) | func (r *queryResolver) FindFolders( FILE: internal/api/resolver_query_find_gallery.go method FindGallery (line 10) | func (r *queryResolver) FindGallery(ctx context.Context, id string) (ret... method FindGalleries (line 26) | func (r *queryResolver) FindGalleries(ctx context.Context, galleryFilter... method AllGalleries (line 60) | func (r *queryResolver) AllGalleries(ctx context.Context) (ret []*models... FILE: internal/api/resolver_query_find_group.go method FindGroup (line 10) | func (r *queryResolver) FindGroup(ctx context.Context, id string) (ret *... method FindGroups (line 26) | func (r *queryResolver) FindGroups(ctx context.Context, groupFilter *mod... FILE: internal/api/resolver_query_find_image.go method FindImage (line 12) | func (r *queryResolver) FindImage(ctx context.Context, id *string, check... method FindImages (line 49) | func (r *queryResolver) FindImages( method AllImages (line 127) | func (r *queryResolver) AllImages(ctx context.Context) (ret []*models.Im... FILE: internal/api/resolver_query_find_movie.go method FindMovie (line 10) | func (r *queryResolver) FindMovie(ctx context.Context, id string) (ret *... method FindMovies (line 26) | func (r *queryResolver) FindMovies(ctx context.Context, movieFilter *mod... method AllMovies (line 60) | func (r *queryResolver) AllMovies(ctx context.Context) (ret []*models.Gr... FILE: internal/api/resolver_query_find_performer.go method FindPerformer (line 10) | func (r *queryResolver) FindPerformer(ctx context.Context, id string) (r... method FindPerformers (line 26) | func (r *queryResolver) FindPerformers(ctx context.Context, performerFil... method AllPerformers (line 68) | func (r *queryResolver) AllPerformers(ctx context.Context) (ret []*model... FILE: internal/api/resolver_query_find_saved_filter.go method FindSavedFilter (line 14) | func (r *queryResolver) FindSavedFilter(ctx context.Context, id string) ... method FindSavedFilters (line 29) | func (r *queryResolver) FindSavedFilters(ctx context.Context, mode *mode... method FindDefaultFilter (line 43) | func (r *queryResolver) FindDefaultFilter(ctx context.Context, mode mode... FILE: internal/api/resolver_query_find_scene.go method FindScene (line 14) | func (r *queryResolver) FindScene(ctx context.Context, id *string, check... method FindSceneByHash (line 44) | func (r *queryResolver) FindSceneByHash(ctx context.Context, input Scene... method FindScenes (line 77) | func (r *queryResolver) FindScenes( method FindScenesByPathRegex (line 151) | func (r *queryResolver) FindScenesByPathRegex(ctx context.Context, filte... method ParseSceneFilenames (line 206) | func (r *queryResolver) ParseSceneFilenames(ctx context.Context, filter ... method FindDuplicateScenes (line 230) | func (r *queryResolver) FindDuplicateScenes(ctx context.Context, distanc... method AllScenes (line 249) | func (r *queryResolver) AllScenes(ctx context.Context) (ret []*models.Sc... FILE: internal/api/resolver_query_find_scene_marker.go method FindSceneMarkers (line 9) | func (r *queryResolver) FindSceneMarkers(ctx context.Context, sceneMarke... method AllSceneMarkers (line 44) | func (r *queryResolver) AllSceneMarkers(ctx context.Context) (ret []*mod... FILE: internal/api/resolver_query_find_studio.go method FindStudio (line 10) | func (r *queryResolver) FindStudio(ctx context.Context, id string) (ret ... method FindStudios (line 27) | func (r *queryResolver) FindStudios(ctx context.Context, studioFilter *m... method AllStudios (line 61) | func (r *queryResolver) AllStudios(ctx context.Context) (ret []*models.S... FILE: internal/api/resolver_query_find_tag.go method FindTag (line 10) | func (r *queryResolver) FindTag(ctx context.Context, id string) (ret *mo... method FindTags (line 26) | func (r *queryResolver) FindTags(ctx context.Context, tagFilter *models.... method AllTags (line 61) | func (r *queryResolver) AllTags(ctx context.Context) (ret []*models.Tag,... FILE: internal/api/resolver_query_job.go method JobQueue (line 11) | func (r *queryResolver) JobQueue(ctx context.Context) ([]*Job, error) { method FindJob (line 22) | func (r *queryResolver) FindJob(ctx context.Context, input FindJobInput)... function jobToJobModel (line 35) | func jobToJobModel(j job.Job) *Job { FILE: internal/api/resolver_query_logs.go method Logs (line 9) | func (r *queryResolver) Logs(ctx context.Context) ([]*LogEntry, error) { FILE: internal/api/resolver_query_metadata.go method SystemStatus (line 9) | func (r *queryResolver) SystemStatus(ctx context.Context) (*manager.Syst... FILE: internal/api/resolver_query_package.go function getPackageManager (line 19) | func getPackageManager(typeArg PackageType) (*pkg.Manager, error) { function manifestToPackage (line 37) | func manifestToPackage(p pkg.Manifest) *Package { function remotePackageToPackage (line 59) | func remotePackageToPackage(p pkg.RemotePackage, index pkg.RemotePackage... function sortedPackageSpecKeys (line 98) | func sortedPackageSpecKeys[V any](m map[models.PackageSpecInput]V) []mod... method getInstalledPackagesWithUpgrades (line 129) | func (r *queryResolver) getInstalledPackagesWithUpgrades(ctx context.Con... method InstalledPackages (line 161) | func (r *queryResolver) InstalledPackages(ctx context.Context, typeArg P... method AvailablePackages (line 191) | func (r *queryResolver) AvailablePackages(ctx context.Context, typeArg P... FILE: internal/api/resolver_query_plugin.go method Plugins (line 10) | func (r *queryResolver) Plugins(ctx context.Context) ([]*plugin.Plugin, ... method PluginTasks (line 14) | func (r *queryResolver) PluginTasks(ctx context.Context) ([]*plugin.Plug... FILE: internal/api/resolver_query_scene.go method SceneStreams (line 13) | func (r *queryResolver) SceneStreams(ctx context.Context, id *string) ([... FILE: internal/api/resolver_query_scraper.go method ScrapeURL (line 17) | func (r *queryResolver) ScrapeURL(ctx context.Context, url string, ty sc... method ListScrapers (line 21) | func (r *queryResolver) ListScrapers(ctx context.Context, types []scrape... method ScrapePerformerURL (line 25) | func (r *queryResolver) ScrapePerformerURL(ctx context.Context, url stri... method ScrapeSceneQuery (line 34) | func (r *queryResolver) ScrapeSceneQuery(ctx context.Context, scraperID ... method ScrapeSceneURL (line 52) | func (r *queryResolver) ScrapeSceneURL(ctx context.Context, url string) ... method ScrapeGalleryURL (line 66) | func (r *queryResolver) ScrapeGalleryURL(ctx context.Context, url string... method ScrapeImageURL (line 80) | func (r *queryResolver) ScrapeImageURL(ctx context.Context, url string) ... method ScrapeMovieURL (line 89) | func (r *queryResolver) ScrapeMovieURL(ctx context.Context, url string) ... method ScrapeGroupURL (line 103) | func (r *queryResolver) ScrapeGroupURL(ctx context.Context, url string) ... method ScrapeSingleScene (line 134) | func (r *queryResolver) ScrapeSingleScene(ctx context.Context, source sc... method ScrapeMultiScenes (line 218) | func (r *queryResolver) ScrapeMultiScenes(ctx context.Context, source sc... method getScenesFingerprints (line 258) | func (r *queryResolver) getScenesFingerprints(ctx context.Context, ids [... method matchScenesRelationships (line 296) | func (r *queryResolver) matchScenesRelationships(ctx context.Context, ss... method ScrapeSingleStudio (line 317) | func (r *queryResolver) ScrapeSingleStudio(ctx context.Context, source s... method ScrapeSingleTag (line 356) | func (r *queryResolver) ScrapeSingleTag(ctx context.Context, source scra... method ScrapeSinglePerformer (line 395) | func (r *queryResolver) ScrapeSinglePerformer(ctx context.Context, sourc... method ScrapeMultiPerformers (line 461) | func (r *queryResolver) ScrapeMultiPerformers(ctx context.Context, sourc... method findPerformerNames (line 483) | func (r *queryResolver) findPerformerNames(ctx context.Context, performe... method ScrapeSingleGallery (line 509) | func (r *queryResolver) ScrapeSingleGallery(ctx context.Context, source ... method ScrapeSingleImage (line 552) | func (r *queryResolver) ScrapeSingleImage(ctx context.Context, source sc... method ScrapeSingleMovie (line 585) | func (r *queryResolver) ScrapeSingleMovie(ctx context.Context, source sc... method ScrapeSingleGroup (line 589) | func (r *queryResolver) ScrapeSingleGroup(ctx context.Context, source sc... FILE: internal/api/resolver_subscription_job.go function makeJobStatusUpdate (line 10) | func makeJobStatusUpdate(t JobStatusUpdateType, j job.Job) *JobStatusUpd... method JobsSubscribe (line 17) | func (r *subscriptionResolver) JobsSubscribe(ctx context.Context) (<-cha... method ScanCompleteSubscribe (line 41) | func (r *subscriptionResolver) ScanCompleteSubscribe(ctx context.Context... FILE: internal/api/resolver_subscription_logging.go function getLogLevel (line 10) | func getLogLevel(logType string) LogLevel { function logEntriesFromLogItems (line 29) | func logEntriesFromLogItems(logItems []log.LogItem) []*LogEntry { method LoggingSubscribe (line 43) | func (r *subscriptionResolver) LoggingSubscribe(ctx context.Context) (<-... FILE: internal/api/routes.go type routes (line 9) | type routes struct method withReadTxn (line 13) | func (rs routes) withReadTxn(r *http.Request, fn txn.TxnFunc) error { FILE: internal/api/routes_custom.go type customRoutes (line 11) | type customRoutes struct method Routes (line 19) | func (rs customRoutes) Routes() chi.Router { function getCustomRoutes (line 15) | func getCustomRoutes(servedFolders utils.URLMap) chi.Router { FILE: internal/api/routes_downloads.go type downloadsRoutes (line 12) | type downloadsRoutes struct method Routes (line 14) | func (rs downloadsRoutes) Routes() chi.Router { method file (line 25) | func (rs downloadsRoutes) file(w http.ResponseWriter, r *http.Request) { function downloadCtx (line 35) | func downloadCtx(next http.Handler) http.Handler { FILE: internal/api/routes_gallery.go type GalleryFinder (line 19) | type GalleryFinder interface type GalleryImageFinder (line 24) | type GalleryImageFinder interface type galleryRoutes (line 30) | type galleryRoutes struct method Routes (line 38) | func (rs galleryRoutes) Routes() chi.Router { method Cover (line 51) | func (rs galleryRoutes) Cover(w http.ResponseWriter, r *http.Request) { method Preview (line 84) | func (rs galleryRoutes) Preview(w http.ResponseWriter, r *http.Request) { method GalleryCtx (line 122) | func (rs galleryRoutes) GalleryCtx(next http.Handler) http.Handler { FILE: internal/api/routes_group.go type GroupFinder (line 17) | type GroupFinder interface type groupRoutes (line 23) | type groupRoutes struct method Routes (line 28) | func (rs groupRoutes) Routes() chi.Router { method FrontImage (line 40) | func (rs groupRoutes) FrontImage(w http.ResponseWriter, r *http.Reques... method BackImage (line 66) | func (rs groupRoutes) BackImage(w http.ResponseWriter, r *http.Request) { method GroupCtx (line 92) | func (rs groupRoutes) GroupCtx(next http.Handler) http.Handler { FILE: internal/api/routes_image.go type ImageFinder (line 24) | type ImageFinder interface type imageRoutes (line 29) | type imageRoutes struct method Routes (line 35) | func (rs imageRoutes) Routes() chi.Router { method Thumbnail (line 49) | func (rs imageRoutes) Thumbnail(w http.ResponseWriter, r *http.Request) { method serveThumbnail (line 54) | func (rs imageRoutes) serveThumbnail(w http.ResponseWriter, r *http.Re... method Preview (line 118) | func (rs imageRoutes) Preview(w http.ResponseWriter, r *http.Request) { method Image (line 126) | func (rs imageRoutes) Image(w http.ResponseWriter, r *http.Request) { method serveImage (line 133) | func (rs imageRoutes) serveImage(w http.ResponseWriter, r *http.Reques... method ImageCtx (line 159) | func (rs imageRoutes) ImageCtx(next http.Handler) http.Handler { FILE: internal/api/routes_performer.go type PerformerFinder (line 16) | type PerformerFinder interface type sfwConfig (line 21) | type sfwConfig interface type performerRoutes (line 25) | type performerRoutes struct method Routes (line 31) | func (rs performerRoutes) Routes() chi.Router { method Image (line 42) | func (rs performerRoutes) Image(w http.ResponseWriter, r *http.Request) { method PerformerCtx (line 68) | func (rs performerRoutes) PerformerCtx(next http.Handler) http.Handler { FILE: internal/api/routes_plugin.go type pluginRoutes (line 14) | type pluginRoutes struct method Routes (line 18) | func (rs pluginRoutes) Routes() chi.Router { method Assets (line 32) | func (rs pluginRoutes) Assets(w http.ResponseWriter, r *http.Request) { method Javascript (line 68) | func (rs pluginRoutes) Javascript(w http.ResponseWriter, r *http.Reque... method CSS (line 80) | func (rs pluginRoutes) CSS(w http.ResponseWriter, r *http.Request) { method PluginCtx (line 92) | func (rs pluginRoutes) PluginCtx(next http.Handler) http.Handler { FILE: internal/api/routes_scene.go type SceneFinder (line 24) | type SceneFinder interface type SceneMarkerFinder (line 32) | type SceneMarkerFinder interface type SceneMarkerTagFinder (line 37) | type SceneMarkerTagFinder interface type CaptionFinder (line 42) | type CaptionFinder interface type sceneRoutes (line 46) | type sceneRoutes struct method Routes (line 55) | func (rs sceneRoutes) Routes() chi.Router { method StreamDirect (line 93) | func (rs sceneRoutes) StreamDirect(w http.ResponseWriter, r *http.Requ... method StreamMp4 (line 102) | func (rs sceneRoutes) StreamMp4(w http.ResponseWriter, r *http.Request) { method StreamWebM (line 106) | func (rs sceneRoutes) StreamWebM(w http.ResponseWriter, r *http.Reques... method StreamMKV (line 110) | func (rs sceneRoutes) StreamMKV(w http.ResponseWriter, r *http.Request) { method streamTranscode (line 135) | func (rs sceneRoutes) streamTranscode(w http.ResponseWriter, r *http.R... method StreamHLS (line 168) | func (rs sceneRoutes) StreamHLS(w http.ResponseWriter, r *http.Request) { method StreamDASH (line 172) | func (rs sceneRoutes) StreamDASH(w http.ResponseWriter, r *http.Reques... method streamManifest (line 176) | func (rs sceneRoutes) streamManifest(w http.ResponseWriter, r *http.Re... method StreamHLSSegment (line 200) | func (rs sceneRoutes) StreamHLSSegment(w http.ResponseWriter, r *http.... method StreamDASHVideoSegment (line 204) | func (rs sceneRoutes) StreamDASHVideoSegment(w http.ResponseWriter, r ... method StreamDASHAudioSegment (line 208) | func (rs sceneRoutes) StreamDASHAudioSegment(w http.ResponseWriter, r ... method streamSegment (line 212) | func (rs sceneRoutes) streamSegment(w http.ResponseWriter, r *http.Req... method Screenshot (line 246) | func (rs sceneRoutes) Screenshot(w http.ResponseWriter, r *http.Reques... method Preview (line 262) | func (rs sceneRoutes) Preview(w http.ResponseWriter, r *http.Request) { method Webp (line 270) | func (rs sceneRoutes) Webp(w http.ResponseWriter, r *http.Request) { method getChapterVttTitle (line 278) | func (rs sceneRoutes) getChapterVttTitle(r *http.Request, marker *mode... method VttChapter (line 310) | func (rs sceneRoutes) VttChapter(w http.ResponseWriter, r *http.Reques... method VttThumbs (line 352) | func (rs sceneRoutes) VttThumbs(w http.ResponseWriter, r *http.Request) { method VttSprite (line 366) | func (rs sceneRoutes) VttSprite(w http.ResponseWriter, r *http.Request) { method Funscript (line 379) | func (rs sceneRoutes) Funscript(w http.ResponseWriter, r *http.Request) { method InteractiveCSV (line 386) | func (rs sceneRoutes) InteractiveCSV(w http.ResponseWriter, r *http.Re... method InteractiveHeatmap (line 400) | func (rs sceneRoutes) InteractiveHeatmap(w http.ResponseWriter, r *htt... method Caption (line 408) | func (rs sceneRoutes) Caption(w http.ResponseWriter, r *http.Request, ... method CaptionLang (line 458) | func (rs sceneRoutes) CaptionLang(w http.ResponseWriter, r *http.Reque... method SceneMarkerStream (line 469) | func (rs sceneRoutes) SceneMarkerStream(w http.ResponseWriter, r *http... method SceneMarkerPreview (line 497) | func (rs sceneRoutes) SceneMarkerPreview(w http.ResponseWriter, r *htt... method SceneMarkerScreenshot (line 533) | func (rs sceneRoutes) SceneMarkerScreenshot(w http.ResponseWriter, r *... method SceneCtx (line 569) | func (rs sceneRoutes) SceneCtx(next http.Handler) http.Handler { FILE: internal/api/routes_studio.go type StudioFinder (line 17) | type StudioFinder interface type studioRoutes (line 22) | type studioRoutes struct method Routes (line 27) | func (rs studioRoutes) Routes() chi.Router { method Image (line 38) | func (rs studioRoutes) Image(w http.ResponseWriter, r *http.Request) { method StudioCtx (line 65) | func (rs studioRoutes) StudioCtx(next http.Handler) http.Handler { FILE: internal/api/routes_tag.go type TagFinder (line 17) | type TagFinder interface type tagRoutes (line 22) | type tagRoutes struct method Routes (line 27) | func (rs tagRoutes) Routes() chi.Router { method Image (line 38) | func (rs tagRoutes) Image(w http.ResponseWriter, r *http.Request) { method TagCtx (line 65) | func (rs tagRoutes) TagCtx(next http.Handler) http.Handler { FILE: internal/api/scraped_content.go function marshalScrapedScenes (line 12) | func marshalScrapedScenes(content []scraper.ScrapedContent) ([]*models.S... function marshalScrapedPerformers (line 35) | func marshalScrapedPerformers(content []scraper.ScrapedContent) ([]*mode... function marshalScrapedGalleries (line 58) | func marshalScrapedGalleries(content []scraper.ScrapedContent) ([]*model... function marshalScrapedImages (line 79) | func marshalScrapedImages(content []scraper.ScrapedContent) ([]*models.S... function marshalScrapedMovies (line 102) | func marshalScrapedMovies(content []scraper.ScrapedContent) ([]*models.S... function marshalScrapedGroups (line 125) | func marshalScrapedGroups(content []scraper.ScrapedContent) ([]*models.S... function marshalScrapedPerformer (line 154) | func marshalScrapedPerformer(content scraper.ScrapedContent) (*models.Sc... function marshalScrapedScene (line 164) | func marshalScrapedScene(content scraper.ScrapedContent) (*models.Scrape... function marshalScrapedGallery (line 174) | func marshalScrapedGallery(content scraper.ScrapedContent) (*models.Scra... function marshalScrapedImage (line 184) | func marshalScrapedImage(content scraper.ScrapedContent) (*models.Scrape... function marshalScrapedMovie (line 194) | func marshalScrapedMovie(content scraper.ScrapedContent) (*models.Scrape... function marshalScrapedGroup (line 204) | func marshalScrapedGroup(content scraper.ScrapedContent) (*models.Scrape... FILE: internal/api/server.go constant loginEndpoint (line 45) | loginEndpoint = "/login" constant loginLocaleEndpoint (line 46) | loginLocaleEndpoint = loginEndpoint + "/locale" constant logoutEndpoint (line 47) | logoutEndpoint = "/logout" constant gqlEndpoint (line 48) | gqlEndpoint = "/graphql" constant playgroundEndpoint (line 49) | playgroundEndpoint = "/playground" type Server (line 52) | type Server struct method Start (line 330) | func (s *Server) Start() error { method Shutdown (line 342) | func (s *Server) Shutdown() { method getPerformerRoutes (line 349) | func (s *Server) getPerformerRoutes() chi.Router { method getSceneRoutes (line 358) | func (s *Server) getSceneRoutes() chi.Router { method getGalleryRoutes (line 370) | func (s *Server) getGalleryRoutes() chi.Router { method getImageRoutes (line 380) | func (s *Server) getImageRoutes() chi.Router { method getStudioRoutes (line 389) | func (s *Server) getStudioRoutes() chi.Router { method getGroupRoutes (line 397) | func (s *Server) getGroupRoutes() chi.Router { method getTagRoutes (line 405) | func (s *Server) getTagRoutes() chi.Router { method getDownloadsRoutes (line 413) | func (s *Server) getDownloadsRoutes() chi.Router { method getPluginRoutes (line 417) | func (s *Server) getPluginRoutes() chi.Router { type osFS (line 61) | type osFS method ReadDir (line 63) | func (dir osFS) ReadDir(name string) ([]os.DirEntry, error) { method Open (line 77) | func (dir osFS) Open(name string) (fs.File, error) { function Initialize (line 83) | func Initialize() (*Server, error) { function handleFavicon (line 302) | func handleFavicon(staticUI *statigz.Server) func(w http.ResponseWriter,... function copyFile (line 423) | func copyFile(w io.Writer, path string) error { function serveFiles (line 435) | func serveFiles(w http.ResponseWriter, r *http.Request, paths []string) { function cssHandler (line 449) | func cssHandler(c *config.Config) func(w http.ResponseWriter, r *http.Re... function javascriptHandler (line 467) | func javascriptHandler(c *config.Config) func(w http.ResponseWriter, r *... function customLocalesHandler (line 485) | func customLocalesHandler(c *config.Config) func(w http.ResponseWriter, ... function makeTLSConfig (line 510) | func makeTLSConfig(c *config.Config) (*tls.Config, error) { function isURL (line 550) | func isURL(s string) bool { function setPageSecurityHeaders (line 554) | func setPageSecurityHeaders(w http.ResponseWriter, r *http.Request, plug... function SecurityHeadersMiddleware (line 626) | func SecurityHeadersMiddleware(next http.Handler) http.Handler { type contextKey (line 635) | type contextKey struct function BaseURLMiddleware (line 643) | func BaseURLMiddleware(next http.Handler) http.Handler { function getProxyPrefix (line 667) | func getProxyPrefix(r *http.Request) string { FILE: internal/api/session.go constant returnURLParam (line 21) | returnURLParam = "returnURL" constant defaultLocale (line 23) | defaultLocale = "en-GB" function getLoginPage (line 26) | func getLoginPage() []byte { type loginTemplateData (line 34) | type loginTemplateData struct function serveLoginPage (line 39) | func serveLoginPage(w http.ResponseWriter, r *http.Request, returnURL st... function handleLoginLocale (line 65) | func handleLoginLocale(cfg *config.Config) http.HandlerFunc { function getLoginLocale (line 98) | func getLoginLocale(lang string) ([]byte, error) { function handleLogin (line 106) | func handleLogin() http.HandlerFunc { function handleLoginPost (line 124) | func handleLoginPost() http.HandlerFunc { function handleLogout (line 149) | func handleLogout() http.HandlerFunc { FILE: internal/api/stash_box.go method newStashBoxClient (line 13) | func (r *Resolver) newStashBoxClient(box models.StashBox) *stashbox.Clie... function resolveStashBoxFn (line 17) | func resolveStashBoxFn(indexField, endpointField string) func(index *int... FILE: internal/api/timestamp.go function MarshalTimestamp (line 17) | func MarshalTimestamp(t time.Time) graphql.Marshaler { function UnmarshalTimestamp (line 30) | func UnmarshalTimestamp(v interface{}) (time.Time, error) { FILE: internal/api/timestamp_test.go function TestTimestampSymmetry (line 10) | func TestTimestampSymmetry(t *testing.T) { function TestTimestamp (line 29) | func TestTimestamp(t *testing.T) { constant epsilon (line 63) | epsilon = 10 * time.Second function TestTimestampRelative (line 65) | func TestTimestampRelative(t *testing.T) { FILE: internal/api/types.go function stashIDsSliceToPtrSlice (line 8) | func stashIDsSliceToPtrSlice(v []models.StashID) []*models.StashID { FILE: internal/api/urlbuilders/gallery.go type GalleryURLBuilder (line 9) | type GalleryURLBuilder struct method GetPreviewURL (line 23) | func (b GalleryURLBuilder) GetPreviewURL() string { method GetCoverURL (line 27) | func (b GalleryURLBuilder) GetCoverURL() string { function NewGalleryURLBuilder (line 15) | func NewGalleryURLBuilder(baseURL string, gallery *models.Gallery) Galle... FILE: internal/api/urlbuilders/group.go type GroupURLBuilder (line 9) | type GroupURLBuilder struct method GetGroupFrontImageURL (line 23) | func (b GroupURLBuilder) GetGroupFrontImageURL(hasImage bool) string { method GetGroupBackImageURL (line 31) | func (b GroupURLBuilder) GetGroupBackImageURL() string { function NewGroupURLBuilder (line 15) | func NewGroupURLBuilder(baseURL string, group *models.Group) GroupURLBui... FILE: internal/api/urlbuilders/image.go type ImageURLBuilder (line 11) | type ImageURLBuilder struct method GetImageURL (line 27) | func (b ImageURLBuilder) GetImageURL() string { method GetThumbnailURL (line 31) | func (b ImageURLBuilder) GetThumbnailURL() string { method GetPreviewURL (line 35) | func (b ImageURLBuilder) GetPreviewURL() string { function NewImageURLBuilder (line 18) | func NewImageURLBuilder(baseURL string, image *models.Image) ImageURLBui... FILE: internal/api/urlbuilders/performer.go type PerformerURLBuilder (line 9) | type PerformerURLBuilder struct method GetPerformerImageURL (line 23) | func (b PerformerURLBuilder) GetPerformerImageURL(hasImage bool) string { function NewPerformerURLBuilder (line 15) | func NewPerformerURLBuilder(baseURL string, performer *models.Performer)... FILE: internal/api/urlbuilders/scene.go type SceneURLBuilder (line 11) | type SceneURLBuilder struct method GetStreamURL (line 25) | func (b SceneURLBuilder) GetStreamURL(apiKey string) *url.URL { method GetStreamPreviewURL (line 40) | func (b SceneURLBuilder) GetStreamPreviewURL() string { method GetStreamPreviewImageURL (line 44) | func (b SceneURLBuilder) GetStreamPreviewImageURL() string { method GetSpriteVTTURL (line 48) | func (b SceneURLBuilder) GetSpriteVTTURL(checksum string) string { method GetSpriteURL (line 52) | func (b SceneURLBuilder) GetSpriteURL(checksum string) string { method GetScreenshotURL (line 56) | func (b SceneURLBuilder) GetScreenshotURL() string { method GetFunscriptURL (line 60) | func (b SceneURLBuilder) GetFunscriptURL() string { method GetCaptionURL (line 64) | func (b SceneURLBuilder) GetCaptionURL() string { method GetInteractiveHeatmapURL (line 68) | func (b SceneURLBuilder) GetInteractiveHeatmapURL() string { function NewSceneURLBuilder (line 17) | func NewSceneURLBuilder(baseURL string, scene *models.Scene) SceneURLBui... FILE: internal/api/urlbuilders/scene_markers.go type SceneMarkerURLBuilder (line 9) | type SceneMarkerURLBuilder struct method GetStreamURL (line 23) | func (b SceneMarkerURLBuilder) GetStreamURL() string { method GetPreviewURL (line 27) | func (b SceneMarkerURLBuilder) GetPreviewURL() string { method GetScreenshotURL (line 31) | func (b SceneMarkerURLBuilder) GetScreenshotURL() string { function NewSceneMarkerURLBuilder (line 15) | func NewSceneMarkerURLBuilder(baseURL string, sceneMarker *models.SceneM... FILE: internal/api/urlbuilders/studio.go type StudioURLBuilder (line 9) | type StudioURLBuilder struct method GetStudioImageURL (line 23) | func (b StudioURLBuilder) GetStudioImageURL(hasImage bool) string { function NewStudioURLBuilder (line 15) | func NewStudioURLBuilder(baseURL string, studio *models.Studio) StudioUR... FILE: internal/api/urlbuilders/tag.go type TagURLBuilder (line 8) | type TagURLBuilder struct method GetTagImageURL (line 22) | func (b TagURLBuilder) GetTagImageURL(hasImage bool) string { function NewTagURLBuilder (line 14) | func NewTagURLBuilder(baseURL string, tag *models.Tag) TagURLBuilder { FILE: internal/autotag/gallery.go type GalleryFinderUpdater (line 12) | type GalleryFinderUpdater interface type GalleryPerformerUpdater (line 17) | type GalleryPerformerUpdater interface type GalleryTagUpdater (line 22) | type GalleryTagUpdater interface function getGalleryFileTagger (line 27) | func getGalleryFileTagger(s *models.Gallery, cache *match.Cache) tagger { function GalleryPerformers (line 47) | func GalleryPerformers(ctx context.Context, s *models.Gallery, rw Galler... function GalleryStudios (line 71) | func GalleryStudios(ctx context.Context, s *models.Gallery, rw GalleryFi... function GalleryTags (line 85) | func GalleryTags(ctx context.Context, s *models.Gallery, rw GalleryTagUp... FILE: internal/autotag/gallery_test.go constant galleryExt (line 13) | galleryExt = "zip" function galleryPartialsEqual (line 19) | func galleryPartialsEqual(got, expected models.GalleryPartial) bool { function TestGalleryPerformers (line 30) | func TestGalleryPerformers(t *testing.T) { function TestGalleryStudios (line 86) | func TestGalleryStudios(t *testing.T) { function TestGalleryTags (line 158) | func TestGalleryTags(t *testing.T) { FILE: internal/autotag/image.go type ImageFinderUpdater (line 12) | type ImageFinderUpdater interface type ImagePerformerUpdater (line 17) | type ImagePerformerUpdater interface type ImageTagUpdater (line 22) | type ImageTagUpdater interface function getImageFileTagger (line 27) | func getImageFileTagger(s *models.Image, cache *match.Cache) tagger { function ImagePerformers (line 38) | func ImagePerformers(ctx context.Context, s *models.Image, rw ImagePerfo... function ImageStudios (line 62) | func ImageStudios(ctx context.Context, s *models.Image, rw ImageFinderUp... function ImageTags (line 76) | func ImageTags(ctx context.Context, s *models.Image, rw ImageTagUpdater,... FILE: internal/autotag/image_test.go constant imageExt (line 12) | imageExt = "jpg" function imagePartialsEqual (line 16) | func imagePartialsEqual(got, expected models.ImagePartial) bool { function TestImagePerformers (line 27) | func TestImagePerformers(t *testing.T) { function TestImageStudios (line 83) | func TestImageStudios(t *testing.T) { function TestImageTags (line 155) | func TestImageTags(t *testing.T) { FILE: internal/autotag/integration_test.go constant testName (line 25) | testName = "Foo's Bar" constant existingStudioName (line 26) | existingStudioName = "ExistingStudio" constant existingStudioSceneName (line 28) | existingStudioSceneName = testName + ".dontChangeStudio.mp4" constant existingStudioImageName (line 29) | existingStudioImageName = testName + ".dontChangeStudio.png" constant existingStudioGalleryName (line 30) | existingStudioGalleryName = testName + ".dontChangeStudio.zip" constant expectedMatchTitle (line 34) | expectedMatchTitle = "expected match" function testTeardown (line 39) | func testTeardown(databaseFile string) { function runTests (line 52) | func runTests(m *testing.M) int { function TestMain (line 80) | func TestMain(m *testing.M) { function createPerformer (line 88) | func createPerformer(ctx context.Context, pqb models.PerformerWriter) er... function createStudio (line 102) | func createStudio(ctx context.Context, qb models.StudioWriter, name stri... function createTag (line 115) | func createTag(ctx context.Context, qb models.TagWriter) error { function createScenes (line 129) | func createScenes(ctx context.Context, sqb models.SceneReaderWriter, fol... function makeScene (line 190) | func makeScene(expectedResult bool) *models.Scene { function createSceneFile (line 201) | func createSceneFile(ctx context.Context, name string, folderStore model... function getOrCreateFolder (line 226) | func getOrCreateFolder(ctx context.Context, folderStore models.FolderFin... function createScene (line 262) | func createScene(ctx context.Context, sqb models.SceneWriter, s *models.... function createImages (line 272) | func createImages(ctx context.Context, w models.ImageReaderWriter, folde... function createImageFile (line 331) | func createImageFile(ctx context.Context, name string, folderStore model... function makeImage (line 356) | func makeImage(expectedResult bool) *models.Image { function createImage (line 367) | func createImage(ctx context.Context, w models.ImageWriter, o *models.Im... function createGalleries (line 380) | func createGalleries(ctx context.Context, w models.GalleryReaderWriter, ... function createGalleryFile (line 439) | func createGalleryFile(ctx context.Context, name string, folderStore mod... function makeGallery (line 462) | func makeGallery(expectedResult bool) *models.Gallery { function createGallery (line 473) | func createGallery(ctx context.Context, w models.GalleryWriter, o *model... function withTxn (line 485) | func withTxn(f func(ctx context.Context) error) error { function withDB (line 489) | func withDB(f func(ctx context.Context) error) error { function populateDB (line 493) | func populateDB() error { function TestParsePerformerScenes (line 541) | func TestParsePerformerScenes(t *testing.T) { function TestParseStudioScenes (line 595) | func TestParseStudioScenes(t *testing.T) { function TestParseTagScenes (line 655) | func TestParseTagScenes(t *testing.T) { function TestParsePerformerImages (line 711) | func TestParsePerformerImages(t *testing.T) { function TestParseStudioImages (line 766) | func TestParseStudioImages(t *testing.T) { function TestParseTagImages (line 826) | func TestParseTagImages(t *testing.T) { function TestParsePerformerGalleries (line 883) | func TestParsePerformerGalleries(t *testing.T) { function TestParseStudioGalleries (line 938) | func TestParseStudioGalleries(t *testing.T) { function TestParseTagGalleries (line 998) | func TestParseTagGalleries(t *testing.T) { FILE: internal/autotag/performer.go type SceneQueryPerformerUpdater (line 15) | type SceneQueryPerformerUpdater interface type ImageQueryPerformerUpdater (line 21) | type ImageQueryPerformerUpdater interface type GalleryQueryPerformerUpdater (line 27) | type GalleryQueryPerformerUpdater interface function getPerformerTaggers (line 33) | func getPerformerTaggers(p *models.Performer, cache *match.Cache) []tagg... method PerformerScenes (line 56) | func (tagger *Tagger) PerformerScenes(ctx context.Context, p *models.Per... method PerformerImages (line 85) | func (tagger *Tagger) PerformerImages(ctx context.Context, p *models.Per... method PerformerGalleries (line 114) | func (tagger *Tagger) PerformerGalleries(ctx context.Context, p *models.... FILE: internal/autotag/performer_test.go function TestPerformerScenes (line 15) | func TestPerformerScenes(t *testing.T) { function testPerformerScenes (line 47) | func testPerformerScenes(t *testing.T, performerName, expectedRegex stri... function TestPerformerImages (line 118) | func TestPerformerImages(t *testing.T) { function testPerformerImages (line 142) | func testPerformerImages(t *testing.T, performerName, expectedRegex stri... function TestPerformerGalleries (line 213) | func TestPerformerGalleries(t *testing.T) { function testPerformerGalleries (line 237) | func testPerformerGalleries(t *testing.T, performerName, expectedRegex s... FILE: internal/autotag/scene.go type SceneFinderUpdater (line 12) | type SceneFinderUpdater interface type ScenePerformerUpdater (line 17) | type ScenePerformerUpdater interface type SceneTagUpdater (line 22) | type SceneTagUpdater interface function getSceneFileTagger (line 27) | func getSceneFileTagger(s *models.Scene, cache *match.Cache) tagger { function ScenePerformers (line 38) | func ScenePerformers(ctx context.Context, s *models.Scene, rw ScenePerfo... function SceneStudios (line 62) | func SceneStudios(ctx context.Context, s *models.Scene, rw SceneFinderUp... function SceneTags (line 76) | func SceneTags(ctx context.Context, s *models.Scene, rw SceneTagUpdater,... FILE: internal/autotag/scene_test.go constant sceneExt (line 15) | sceneExt = "mp4" function scenePartialsEqual (line 34) | func scenePartialsEqual(got, expected models.ScenePartial) bool { function generateNamePatterns (line 45) | func generateNamePatterns(name, separator, ext string) []string { function generateSplitNamePatterns (line 58) | func generateSplitNamePatterns(name, separator, ext string) []string { function generateFalseNamePatterns (line 69) | func generateFalseNamePatterns(name string, separator, ext string) []str... function generateTestPaths (line 81) | func generateTestPaths(testName, ext string) (scenePatterns []string, fa... type pathTestTable (line 119) | type pathTestTable struct function generateTestTable (line 124) | func generateTestTable(testName, ext string) []pathTestTable { function TestScenePerformers (line 160) | func TestScenePerformers(t *testing.T) { function TestSceneStudios (line 217) | func TestSceneStudios(t *testing.T) { function TestSceneTags (line 291) | func TestSceneTags(t *testing.T) { FILE: internal/autotag/studio.go function addSceneStudio (line 14) | func addSceneStudio(ctx context.Context, sceneWriter models.SceneUpdater... function addImageStudio (line 30) | func addImageStudio(ctx context.Context, imageWriter models.ImageUpdater... function addGalleryStudio (line 46) | func addGalleryStudio(ctx context.Context, galleryWriter GalleryFinderUp... function getStudioTagger (line 62) | func getStudioTagger(p *models.Studio, aliases []string, cache *match.Ca... method StudioScenes (line 82) | func (tagger *Tagger) StudioScenes(ctx context.Context, p *models.Studio... method StudioImages (line 112) | func (tagger *Tagger) StudioImages(ctx context.Context, p *models.Studio... method StudioGalleries (line 142) | func (tagger *Tagger) StudioGalleries(ctx context.Context, p *models.Stu... FILE: internal/autotag/studio_test.go type testStudioCase (line 15) | type testStudioCase struct function TestStudioScenes (line 66) | func TestStudioScenes(t *testing.T) { function testStudioScenes (line 80) | func testStudioScenes(t *testing.T, tc testStudioCase) { function TestStudioImages (line 177) | func TestStudioImages(t *testing.T) { function testStudioImages (line 185) | func testStudioImages(t *testing.T, tc testStudioCase) { function TestStudioGalleries (line 280) | func TestStudioGalleries(t *testing.T) { function testStudioGalleries (line 288) | func testStudioGalleries(t *testing.T, tc testStudioCase) { FILE: internal/autotag/tag.go type SceneQueryTagUpdater (line 15) | type SceneQueryTagUpdater interface type ImageQueryTagUpdater (line 21) | type ImageQueryTagUpdater interface type GalleryQueryTagUpdater (line 27) | type GalleryQueryTagUpdater interface function getTagTaggers (line 33) | func getTagTaggers(p *models.Tag, aliases []string, cache *match.Cache) ... method TagScenes (line 54) | func (tagger *Tagger) TagScenes(ctx context.Context, p *models.Tag, path... method TagImages (line 83) | func (tagger *Tagger) TagImages(ctx context.Context, p *models.Tag, path... method TagGalleries (line 112) | func (tagger *Tagger) TagGalleries(ctx context.Context, p *models.Tag, p... FILE: internal/autotag/tag_test.go type testTagCase (line 15) | type testTagCase struct function TestTagScenes (line 66) | func TestTagScenes(t *testing.T) { function testTagScenes (line 80) | func testTagScenes(t *testing.T, tc testTagCase) { function TestTagImages (line 180) | func TestTagImages(t *testing.T) { function testTagImages (line 188) | func testTagImages(t *testing.T, tc testTagCase) { function TestTagGalleries (line 287) | func TestTagGalleries(t *testing.T) { function testTagGalleries (line 295) | func testTagGalleries(t *testing.T, tc testTagCase) { FILE: internal/autotag/tagger.go type Tagger (line 26) | type Tagger struct type tagger (line 31) | type tagger struct method addError (line 46) | func (t *tagger) addError(otherType, otherName string, err error) error { method addLog (line 50) | func (t *tagger) addLog(otherType, otherName string) { method tagPerformers (line 54) | func (t *tagger) tagPerformers(ctx context.Context, performerReader mo... method tagStudios (line 75) | func (t *tagger) tagStudios(ctx context.Context, studioReader models.S... method tagTags (line 96) | func (t *tagger) tagTags(ctx context.Context, tagReader models.TagAuto... method tagScenes (line 117) | func (t *tagger) tagScenes(ctx context.Context, paths []string, sceneR... method tagImages (line 133) | func (t *tagger) tagImages(ctx context.Context, paths []string, imageR... method tagGalleries (line 149) | func (t *tagger) tagGalleries(ctx context.Context, paths []string, gal... type addLinkFunc (line 41) | type addLinkFunc type addImageLinkFunc (line 42) | type addImageLinkFunc type addGalleryLinkFunc (line 43) | type addGalleryLinkFunc type addSceneLinkFunc (line 44) | type addSceneLinkFunc FILE: internal/build/version.go function Version (line 13) | func Version() (string, string, string) { function VersionString (line 17) | func VersionString() string { function IsOfficial (line 42) | func IsOfficial() bool { function IsDevelop (line 46) | func IsDevelop() bool { FILE: internal/desktop/desktop.go function InitIsDesktop (line 27) | func InitIsDesktop() { type FaviconProvider (line 31) | type FaviconProvider interface function Start (line 38) | func Start(exit chan int, faviconProvider FaviconProvider) { function openURLInBrowser (line 52) | func openURLInBrowser(path string) { function SendNotification (line 63) | func SendNotification(title string, text string) { function IsDesktop (line 72) | func IsDesktop() bool { function isDesktopCheck (line 78) | func isDesktopCheck() bool { function IsServerDockerized (line 106) | func IsServerDockerized() bool { function writeStashIcon (line 111) | func writeStashIcon(faviconProvider FaviconProvider) { function IsAllowedAutoUpdate (line 124) | func IsAllowedAutoUpdate() bool { function getIconPath (line 155) | func getIconPath() string { function RevealInFileManager (line 159) | func RevealInFileManager(path string) error { function getServerURL (line 172) | func getServerURL(path string) string { FILE: internal/desktop/desktop_platform_darwin.go function isService (line 15) | func isService() bool { function isServerDockerized (line 20) | func isServerDockerized() bool { function sendNotification (line 24) | func sendNotification(notificationTitle string, notificationText string) { function revealInFileManager (line 37) | func revealInFileManager(path string, _ os.FileInfo) error { function isDoubleClickLaunched (line 44) | func isDoubleClickLaunched() bool { function hideConsole (line 48) | func hideConsole() { FILE: internal/desktop/desktop_platform_nixes.go function isService (line 17) | func isService() bool { function isServerDockerized (line 21) | func isServerDockerized() bool { function sendNotification (line 31) | func sendNotification(notificationTitle string, notificationText string) { function revealInFileManager (line 38) | func revealInFileManager(path string, info os.FileInfo) error { function isDoubleClickLaunched (line 49) | func isDoubleClickLaunched() bool { function hideConsole (line 53) | func hideConsole() { FILE: internal/desktop/desktop_platform_windows.go function isService (line 22) | func isService() bool { function isDoubleClickLaunched (line 37) | func isDoubleClickLaunched() bool { function hideConsole (line 50) | func hideConsole() { function getConsoleWindow (line 59) | func getConsoleWindow() uintptr { function isServerDockerized (line 65) | func isServerDockerized() bool { function sendNotification (line 69) | func sendNotification(notificationTitle string, notificationText string) { function revealInFileManager (line 87) | func revealInFileManager(path string, _ os.FileInfo) error { FILE: internal/desktop/dialog_nonwindows.go function FatalError (line 6) | func FatalError(err error) int { FILE: internal/desktop/dialog_windows.go function FatalError (line 12) | func FatalError(err error) int { function messageBox (line 22) | func messageBox(hwnd uintptr, caption, title string, flags uint) int { FILE: internal/desktop/systray_nixes.go function startSystray (line 5) | func startSystray(exit chan int, favicon FaviconProvider) { FILE: internal/desktop/systray_nonlinux.go function startSystray (line 19) | func startSystray(exit chan int, faviconProvider FaviconProvider) { function systrayInitialize (line 59) | func systrayInitialize(exit chan<- int, faviconProvider FaviconProvider) { FILE: internal/dlna/activity.go constant DefaultSessionTimeout (line 18) | DefaultSessionTimeout = 5 * time.Minute constant monitorInterval (line 21) | monitorInterval = 10 * time.Second type ActivityConfig (line 25) | type ActivityConfig interface type SceneActivityWriter (line 36) | type SceneActivityWriter interface type streamSession (line 42) | type streamSession struct method percentWatched (line 62) | func (s *streamSession) percentWatched() float64 { method estimatedResumeTime (line 89) | func (s *streamSession) estimatedResumeTime() float64 { function sessionKey (line 52) | func sessionKey(clientIP string, sceneID int) string { type ActivityTracker (line 115) | type ActivityTracker struct method Stop (line 155) | func (t *ActivityTracker) Stop() { method RecordRequest (line 176) | func (t *ActivityTracker) RecordRequest(sceneID int, clientIP string, ... method monitorSessions (line 203) | func (t *ActivityTracker) monitorSessions() { method processExpiredSessions (line 220) | func (t *ActivityTracker) processExpiredSessions() { method processCompletedSession (line 262) | func (t *ActivityTracker) processCompletedSession(session *streamSessi... method isEnabled (line 320) | func (t *ActivityTracker) isEnabled() bool { method getMinimumPlayPercent (line 328) | func (t *ActivityTracker) getMinimumPlayPercent() int { function NewActivityTracker (line 130) | func NewActivityTracker( FILE: internal/dlna/activity_test.go type mockSceneWriter (line 13) | type mockSceneWriter struct method SaveActivity (line 30) | func (m *mockSceneWriter) SaveActivity(_ context.Context, sceneID int,... method AddViews (line 41) | func (m *mockSceneWriter) AddViews(_ context.Context, sceneID int, dat... type saveActivityCall (line 19) | type saveActivityCall struct type addViewsCall (line 25) | type addViewsCall struct type mockConfig (line 52) | type mockConfig struct method GetDLNAActivityTrackingEnabled (line 57) | func (c *mockConfig) GetDLNAActivityTrackingEnabled() bool { method GetMinimumPlayPercent (line 61) | func (c *mockConfig) GetMinimumPlayPercent() int { function TestStreamSession_PercentWatched (line 65) | func TestStreamSession_PercentWatched(t *testing.T) { function TestStreamSession_EstimatedResumeTime (line 132) | func TestStreamSession_EstimatedResumeTime(t *testing.T) { function TestSessionKey (line 206) | func TestSessionKey(t *testing.T) { function TestActivityTracker_RecordRequest (line 211) | func TestActivityTracker_RecordRequest(t *testing.T) { function TestActivityTracker_DisabledTracking (line 249) | func TestActivityTracker_DisabledTracking(t *testing.T) { function TestActivityTracker_SessionExpiration (line 271) | func TestActivityTracker_SessionExpiration(t *testing.T) { function TestActivityTracker_SessionExpiration_StoppedEarly (line 310) | func TestActivityTracker_SessionExpiration_StoppedEarly(t *testing.T) { function TestActivityTracker_MinimumPlayPercentThreshold (line 343) | func TestActivityTracker_MinimumPlayPercentThreshold(t *testing.T) { function TestActivityTracker_MultipleSessions (line 373) | func TestActivityTracker_MultipleSessions(t *testing.T) { function TestActivityTracker_ShortSessionIgnored (line 397) | func TestActivityTracker_ShortSessionIgnored(t *testing.T) { FILE: internal/dlna/cd-service-desc.go constant contentDirectoryServiceDescription (line 29) | contentDirectoryServiceDescription = ` FILE: internal/dlna/cds.go type browse (line 48) | type browse struct type contentDirectoryService (line 56) | type contentDirectoryService struct method updateIDString (line 75) | func (me *contentDirectoryService) updateIDString() string { method objectFromID (line 149) | func (me *contentDirectoryService) objectFromID(id string) (o object, ... method Handle (line 175) | func (me *contentDirectoryService) Handle(action string, argsXML []byt... method handleBrowseDirectChildren (line 229) | func (me *contentDirectoryService) handleBrowseDirectChildren(obj obje... method handleBrowseMetadata (line 340) | func (me *contentDirectoryService) handleBrowseMetadata(obj object, ho... method getVideos (line 451) | func (me *contentDirectoryService) getVideos(sceneFilter *models.Scene... method getPageVideos (line 497) | func (me *contentDirectoryService) getPageVideos(sceneFilter *models.S... method getAllScenes (line 537) | func (me *contentDirectoryService) getAllScenes(host string) []interfa... method getStudios (line 541) | func (me *contentDirectoryService) getStudios() []interface{} { method getStudioScenes (line 563) | func (me *contentDirectoryService) getStudioScenes(paths []string, hos... method getTags (line 581) | func (me *contentDirectoryService) getTags() []interface{} { method getTagScenes (line 603) | func (me *contentDirectoryService) getTagScenes(paths []string, host s... method getPerformers (line 621) | func (me *contentDirectoryService) getPerformers() []interface{} { method getPerformerScenes (line 643) | func (me *contentDirectoryService) getPerformerScenes(paths []string, ... method getGroups (line 661) | func (me *contentDirectoryService) getGroups() []interface{} { method getGroupScenes (line 683) | func (me *contentDirectoryService) getGroupScenes(paths []string, host... method getRating (line 701) | func (me *contentDirectoryService) getRating() []interface{} { method getRatingScenes (line 712) | func (me *contentDirectoryService) getRatingScenes(paths []string, hos... function formatDurationSexagesimal (line 61) | func formatDurationSexagesimal(d time.Duration) string { function sceneToContainer (line 79) | func sceneToContainer(scene *models.Scene, parent string, host string) i... function childPath (line 167) | func childPath(paths []string) []string { function makeBrowseResult (line 393) | func makeBrowseResult(objs []interface{}, updateID string) (map[string]s... function makeStorageFolder (line 407) | func makeStorageFolder(id, title, parentID string) upnpav.Container { function getRootObject (line 421) | func getRootObject() []interface{} { function getRootObjects (line 427) | func getRootObjects() []interface{} { function getSortDirection (line 442) | func getSortDirection(sceneFilter *models.SceneFilterType, sort string) ... function getPageFromID (line 523) | func getPageFromID(paths []string) *int { type object (line 736) | type object struct method FilePath (line 742) | func (o *object) FilePath() string { method ID (line 747) | func (o object) ID() string { method IsRoot (line 754) | func (o *object) IsRoot() bool { method ParentID (line 760) | func (o object) ParentID() string { FILE: internal/dlna/cds_test.go function TestEscapeObjectID (line 37) | func TestEscapeObjectID(t *testing.T) { function TestRootObjectID (line 47) | func TestRootObjectID(t *testing.T) { function TestRootParentObjectID (line 53) | func TestRootParentObjectID(t *testing.T) { function testHandleBrowse (line 59) | func testHandleBrowse(argsXML string) (map[string]string, error) { function TestBrowseMetadataRoot (line 68) | func TestBrowseMetadataRoot(t *testing.T) { function TestBrowseMetadataTags (line 75) | func TestBrowseMetadataTags(t *testing.T) { FILE: internal/dlna/cm-service-desc.go constant connectionManagerServiceDescription (line 24) | connectionManagerServiceDescription = ` FILE: internal/identify/identify.go type MultipleMatchesFoundError (line 25) | type MultipleMatchesFoundError struct method Error (line 29) | func (e *MultipleMatchesFoundError) Error() string { type SceneScraper (line 33) | type SceneScraper interface type SceneUpdatePostHookExecutor (line 37) | type SceneUpdatePostHookExecutor interface type ScraperSource (line 41) | type ScraperSource struct type SceneIdentifier (line 48) | type SceneIdentifier struct method Identify (line 60) | func (t *SceneIdentifier) Identify(ctx context.Context, scene *models.... method scrapeScene (line 102) | func (t *SceneIdentifier) scrapeScene(ctx context.Context, scene *mode... method getOptions (line 132) | func (t *SceneIdentifier) getOptions(source ScraperSource) MetadataOpt... method getSceneUpdater (line 169) | func (t *SceneIdentifier) getSceneUpdater(ctx context.Context, s *mode... method modifyScene (line 285) | func (t *SceneIdentifier) modifyScene(ctx context.Context, s *models.S... method addTagToScene (line 340) | func (t *SceneIdentifier) addTagToScene(ctx context.Context, s *models... type scrapeResult (line 97) | type scrapeResult struct function getFieldOptions (line 375) | func getFieldOptions(options []MetadataOptions) map[string]*FieldOptions { function getScenePartial (line 389) | func getScenePartial(scene *models.Scene, scraped *models.ScrapedScene, ... function getFieldStrategy (line 451) | func getFieldStrategy(strategy *FieldOptions) FieldStrategy { function shouldSetSingleValueField (line 462) | func shouldSetSingleValueField(strategy *FieldOptions, hasExistingValue ... FILE: internal/identify/identify_test.go type mockSceneScraper (line 19) | type mockSceneScraper struct method ScrapeScenes (line 24) | func (s mockSceneScraper) ScrapeScenes(ctx context.Context, sceneID in... type mockHookExecutor (line 31) | type mockHookExecutor struct method ExecuteSceneUpdatePostHooks (line 34) | func (s mockHookExecutor) ExecuteSceneUpdatePostHooks(ctx context.Cont... function TestSceneIdentifier_Identify (line 37) | func TestSceneIdentifier_Identify(t *testing.T) { function TestSceneIdentifier_modifyScene (line 220) | func TestSceneIdentifier_modifyScene(t *testing.T) { function Test_getFieldOptions (line 282) | func Test_getFieldOptions(t *testing.T) { function Test_getScenePartial (line 352) | func Test_getScenePartial(t *testing.T) { function Test_shouldSetSingleValueField (line 533) | func Test_shouldSetSingleValueField(t *testing.T) { FILE: internal/identify/options.go type Source (line 12) | type Source struct type Options (line 18) | type Options struct type MetadataOptions (line 29) | type MetadataOptions struct type FieldOptions (line 50) | type FieldOptions struct type FieldStrategy (line 57) | type FieldStrategy method IsValid (line 77) | func (e FieldStrategy) IsValid() bool { method String (line 85) | func (e FieldStrategy) String() string { method UnmarshalGQL (line 89) | func (e *FieldStrategy) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 102) | func (e FieldStrategy) MarshalGQL(w io.Writer) { constant FieldStrategyIgnore (line 61) | FieldStrategyIgnore FieldStrategy = "IGNORE" constant FieldStrategyMerge (line 64) | FieldStrategyMerge FieldStrategy = "MERGE" constant FieldStrategyOverwrite (line 68) | FieldStrategyOverwrite FieldStrategy = "OVERWRITE" FILE: internal/identify/performer.go type PerformerCreator (line 12) | type PerformerCreator interface function getPerformerID (line 17) | func getPerformerID(ctx context.Context, endpoint string, w PerformerCre... function createMissingPerformer (line 37) | func createMissingPerformer(ctx context.Context, endpoint string, w Perf... FILE: internal/identify/performer_test.go function Test_getPerformerID (line 14) | func Test_getPerformerID(t *testing.T) { function Test_createMissingPerformer (line 147) | func Test_createMissingPerformer(t *testing.T) { FILE: internal/identify/scene.go type SceneCoverGetter (line 19) | type SceneCoverGetter interface type SceneReaderUpdater (line 23) | type SceneReaderUpdater interface type sceneRelationships (line 32) | type sceneRelationships struct method studio (line 43) | func (g sceneRelationships) studio(ctx context.Context) (*int, error) { method performers (line 73) | func (g sceneRelationships) performers(ctx context.Context, allowedGen... method tags (line 136) | func (g sceneRelationships) tags(ctx context.Context) ([]int, error) { method stashIDs (line 197) | func (g sceneRelationships) stashIDs(ctx context.Context, setUpdateTim... method cover (line 257) | func (g sceneRelationships) cover(ctx context.Context) ([]byte, error) { FILE: internal/identify/scene_test.go function Test_sceneRelationships_studio (line 16) | func Test_sceneRelationships_studio(t *testing.T) { function Test_sceneRelationships_performers (line 144) | func Test_sceneRelationships_performers(t *testing.T) { function Test_sceneRelationships_tags (line 334) | func Test_sceneRelationships_tags(t *testing.T) { function Test_sceneRelationships_stashIDs (line 526) | func Test_sceneRelationships_stashIDs(t *testing.T) { function Test_sceneRelationships_cover (line 755) | func Test_sceneRelationships_cover(t *testing.T) { FILE: internal/identify/studio.go function createMissingStudio (line 12) | func createMissingStudio(ctx context.Context, endpoint string, w models.... FILE: internal/identify/studio_test.go function Test_createMissingStudio (line 13) | func Test_createMissingStudio(t *testing.T) { FILE: internal/log/hook.go type fileLogHook (line 9) | type fileLogHook struct method Fire (line 14) | func (hook *fileLogHook) Fire(entry *logrus.Entry) error { method Levels (line 23) | func (hook *fileLogHook) Levels() []logrus.Level { FILE: internal/log/logger.go type LogItem (line 16) | type LogItem struct type Logger (line 22) | type Logger struct method Init (line 46) | func (log *Logger) Init(logFile string, logOut bool, logLevel string, ... method SetLogLevel (line 102) | func (log *Logger) SetLogLevel(level string) { method addToCache (line 123) | func (log *Logger) addToCache(l *LogItem) { method addLogItem (line 135) | func (log *Logger) addLogItem(l *LogItem) { method GetLogCache (line 143) | func (log *Logger) GetLogCache() []LogItem { method SubscribeToLog (line 154) | func (log *Logger) SubscribeToLog(stop chan int) <-chan []LogItem { method unsubscribeFromLog (line 169) | func (log *Logger) unsubscribeFromLog(toRemove chan []LogItem) { method doBroadcastLogItems (line 180) | func (log *Logger) doBroadcastLogItems() { method broadcastLogItem (line 196) | func (log *Logger) broadcastLogItem(l *LogItem) { method Progressf (line 222) | func (log *Logger) Progressf(format string, args ...interface{}) { method Trace (line 231) | func (log *Logger) Trace(args ...interface{}) { method Tracef (line 240) | func (log *Logger) Tracef(format string, args ...interface{}) { method TraceFunc (line 249) | func (log *Logger) TraceFunc(fn func() (string, []interface{})) { method Debug (line 256) | func (log *Logger) Debug(args ...interface{}) { method Debugf (line 265) | func (log *Logger) Debugf(format string, args ...interface{}) { method logFunc (line 274) | func (log *Logger) logFunc(level logrus.Level, logFn func(format strin... method DebugFunc (line 281) | func (log *Logger) DebugFunc(fn func() (string, []interface{})) { method Info (line 285) | func (log *Logger) Info(args ...interface{}) { method Infof (line 294) | func (log *Logger) Infof(format string, args ...interface{}) { method InfoFunc (line 303) | func (log *Logger) InfoFunc(fn func() (string, []interface{})) { method Warn (line 307) | func (log *Logger) Warn(args ...interface{}) { method Warnf (line 316) | func (log *Logger) Warnf(format string, args ...interface{}) { method WarnFunc (line 325) | func (log *Logger) WarnFunc(fn func() (string, []interface{})) { method Error (line 329) | func (log *Logger) Error(args ...interface{}) { method Errorf (line 338) | func (log *Logger) Errorf(format string, args ...interface{}) { method ErrorFunc (line 347) | func (log *Logger) ErrorFunc(fn func() (string, []interface{})) { method Fatal (line 351) | func (log *Logger) Fatal(args ...interface{}) { method Fatalf (line 355) | func (log *Logger) Fatalf(format string, args ...interface{}) { function NewLogger (line 33) | func NewLogger() *Logger { function logLevelFromString (line 106) | func logLevelFromString(level string) logrus.Level { FILE: internal/log/progress_formatter.go type ProgressFormatter (line 7) | type ProgressFormatter struct method Format (line 9) | func (f *ProgressFormatter) Format(entry *logrus.Entry) ([]byte, error) { FILE: internal/manager/apikey.go constant APIKeySubject (line 13) | APIKeySubject = "APIKey" type APIKeyClaims (line 15) | type APIKeyClaims struct function GenerateAPIKey (line 20) | func GenerateAPIKey(userID string) (string, error) { function GetUserIDFromAPIKey (line 40) | func GetUserIDFromAPIKey(apiKey string) (string, error) { FILE: internal/manager/backup.go type databaseBackupZip (line 17) | type databaseBackupZip struct method zipFileRename (line 21) | func (z *databaseBackupZip) zipFileRename(fn, outDir, outFn string) er... method zipFile (line 44) | func (z *databaseBackupZip) zipFile(fn, outDir string) error { method BackupDatabase (line 48) | func (s *Manager) BackupDatabase(download bool, includeBlobs bool) (stri... method backupDatabaseOnly (line 146) | func (s *Manager) backupDatabaseOnly(download bool) (string, string, err... FILE: internal/manager/checksum.go type SceneMissingHashCounter (line 10) | type SceneMissingHashCounter interface function ValidateVideoFileNamingAlgorithm (line 23) | func ValidateVideoFileNamingAlgorithm(ctx context.Context, qb SceneMissi... FILE: internal/manager/config/config.go constant Stash (line 34) | Stash = "stash" constant Cache (line 35) | Cache = "cache" constant BackupDirectoryPath (line 36) | BackupDirectoryPath = "backup_directory_path" constant Generated (line 37) | Generated = "generated" constant Metadata (line 38) | Metadata = "metadata" constant BlobsPath (line 39) | BlobsPath = "blobs_path" constant Downloads (line 40) | Downloads = "downloads" constant ApiKey (line 41) | ApiKey = "api_key" constant Username (line 42) | Username = "username" constant Password (line 43) | Password = "password" constant MaxSessionAge (line 44) | MaxSessionAge = "max_session_age" constant SFWContentMode (line 47) | SFWContentMode = "sfw_content_mode" constant FFMpegPath (line 49) | FFMpegPath = "ffmpeg_path" constant FFProbePath (line 50) | FFProbePath = "ffprobe_path" constant BlobsStorage (line 52) | BlobsStorage = "blobs_storage" constant DefaultMaxSessionAge (line 54) | DefaultMaxSessionAge = 60 * 60 * 1 constant Database (line 56) | Database = "database" constant Exclude (line 58) | Exclude = "exclude" constant ImageExclude (line 59) | ImageExclude = "image_exclude" constant VideoExtensions (line 61) | VideoExtensions = "video_extensions" constant ImageExtensions (line 62) | ImageExtensions = "image_extensions" constant GalleryExtensions (line 63) | GalleryExtensions = "gallery_extensions" constant CreateGalleriesFromFolders (line 64) | CreateGalleriesFromFolders = "create_galleries_from_folders" constant CalculateMD5 (line 68) | CalculateMD5 = "calculate_md5" constant VideoFileNamingAlgorithm (line 72) | VideoFileNamingAlgorithm = "video_file_naming_algorithm" constant MaxTranscodeSize (line 74) | MaxTranscodeSize = "max_transcode_size" constant MaxStreamingTranscodeSize (line 75) | MaxStreamingTranscodeSize = "max_streaming_transcode_size" constant TranscodeInputArgs (line 78) | TranscodeInputArgs = "ffmpeg.transcode.input_args" constant TranscodeOutputArgs (line 79) | TranscodeOutputArgs = "ffmpeg.transcode.output_args" constant LiveTranscodeInputArgs (line 80) | LiveTranscodeInputArgs = "ffmpeg.live_transcode.input_args" constant LiveTranscodeOutputArgs (line 81) | LiveTranscodeOutputArgs = "ffmpeg.live_transcode.output_args" constant ParallelTasks (line 83) | ParallelTasks = "parallel_tasks" constant parallelTasksDefault (line 84) | parallelTasksDefault = 1 constant UseCustomSpriteInterval (line 86) | UseCustomSpriteInterval = "use_custom_sprite_interval" constant UseCustomSpriteIntervalDefault (line 87) | UseCustomSpriteIntervalDefault = false constant SpriteInterval (line 89) | SpriteInterval = "sprite_interval" constant SpriteIntervalDefault (line 90) | SpriteIntervalDefault = 30 constant MinimumSprites (line 92) | MinimumSprites = "minimum_sprites" constant MinimumSpritesDefault (line 93) | MinimumSpritesDefault = 10 constant MaximumSprites (line 95) | MaximumSprites = "maximum_sprites" constant MaximumSpritesDefault (line 96) | MaximumSpritesDefault = 500 constant SpriteScreenshotSize (line 98) | SpriteScreenshotSize = "sprite_screenshot_width" constant spriteScreenshotSizeDefault (line 99) | spriteScreenshotSizeDefault = 160 constant PreviewPreset (line 101) | PreviewPreset = "preview_preset" constant TranscodeHardwareAcceleration (line 102) | TranscodeHardwareAcceleration = "ffmpeg.hardware_acceleration" constant SequentialScanning (line 104) | SequentialScanning = "sequential_scanning" constant SequentialScanningDefault (line 105) | SequentialScanningDefault = false constant PreviewAudio (line 107) | PreviewAudio = "preview_audio" constant previewAudioDefault (line 108) | previewAudioDefault = true constant PreviewSegmentDuration (line 110) | PreviewSegmentDuration = "preview_segment_duration" constant previewSegmentDurationDefault (line 111) | previewSegmentDurationDefault = 0.75 constant PreviewSegments (line 113) | PreviewSegments = "preview_segments" constant previewSegmentsDefault (line 114) | previewSegmentsDefault = 12 constant PreviewExcludeStart (line 116) | PreviewExcludeStart = "preview_exclude_start" constant previewExcludeStartDefault (line 117) | previewExcludeStartDefault = "0" constant PreviewExcludeEnd (line 119) | PreviewExcludeEnd = "preview_exclude_end" constant previewExcludeEndDefault (line 120) | previewExcludeEndDefault = "0" constant WriteImageThumbnails (line 122) | WriteImageThumbnails = "write_image_thumbnails" constant writeImageThumbnailsDefault (line 123) | writeImageThumbnailsDefault = true constant CreateImageClipsFromVideos (line 125) | CreateImageClipsFromVideos = "create_image_clip_from_videos" constant createImageClipsFromVideosDefault (line 126) | createImageClipsFromVideosDefault = false constant Host (line 128) | Host = "host" constant hostDefault (line 129) | hostDefault = "0.0.0.0" constant Port (line 131) | Port = "port" constant portDefault (line 132) | portDefault = 9999 constant ExternalHost (line 134) | ExternalHost = "external_host" constant Proxy (line 137) | Proxy = "proxy" constant NoProxy (line 140) | NoProxy = "no_proxy" constant noProxyDefault (line 141) | noProxyDefault = "localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0... constant JWTSignKey (line 144) | JWTSignKey = "jwt_secret_key" constant SessionStoreKey (line 147) | SessionStoreKey = "session_store_key" constant ScrapersPath (line 150) | ScrapersPath = "scrapers_path" constant ScraperUserAgent (line 151) | ScraperUserAgent = "scraper_user_agent" constant ScraperCertCheck (line 152) | ScraperCertCheck = "scraper_cert_check" constant ScraperCDPPath (line 153) | ScraperCDPPath = "scraper_cdp_path" constant ScraperExcludeTagPatterns (line 154) | ScraperExcludeTagPatterns = "scraper_exclude_tag_patterns" constant StashBoxes (line 157) | StashBoxes = "stash_boxes" constant PythonPath (line 159) | PythonPath = "python_path" constant PluginsPath (line 162) | PluginsPath = "plugins_path" constant PluginsSetting (line 163) | PluginsSetting = "plugins.settings" constant PluginsSettingPrefix (line 164) | PluginsSettingPrefix = PluginsSetting + "." constant DisabledPlugins (line 165) | DisabledPlugins = "plugins.disabled" constant sourceDefaultPath (line 167) | sourceDefaultPath = "community" constant sourceDefaultName (line 168) | sourceDefaultName = "Community (stable)" constant PluginPackageSources (line 170) | PluginPackageSources = "plugins.package_sources" constant pluginPackageSourcesDefault (line 171) | pluginPackageSourcesDefault = "https://stashapp.github.io/CommunityScrip... constant ScraperPackageSources (line 173) | ScraperPackageSources = "scrapers.package_sources" constant scraperPackageSourcesDefault (line 174) | scraperPackageSourcesDefault = "https://stashapp.github.io/CommunityScra... constant Language (line 177) | Language = "language" constant CustomServedFolders (line 181) | CustomServedFolders = "custom_served_folders" constant UILocation (line 185) | UILocation = "ui_location" constant LegacyCustomUILocation (line 188) | LegacyCustomUILocation = "custom_ui_location" constant GalleryCoverRegex (line 191) | GalleryCoverRegex = "gallery_cover_regex" constant galleryCoverRegexDefault (line 192) | galleryCoverRegexDefault = `(poster|cover|folder|board)\.[^\.]+$` constant MenuItems (line 195) | MenuItems = "menu_items" constant SoundOnPreview (line 197) | SoundOnPreview = "sound_on_preview" constant WallShowTitle (line 199) | WallShowTitle = "wall_show_title" constant defaultWallShowTitle (line 200) | defaultWallShowTitle = true constant CustomPerformerImageLocation (line 202) | CustomPerformerImageLocation = "custom_performer_image_location" constant MaximumLoopDuration (line 203) | MaximumLoopDuration = "maximum_loop_duration" constant AutostartVideo (line 204) | AutostartVideo = "autostart_video" constant AutostartVideoOnPlaySelected (line 205) | AutostartVideoOnPlaySelected = "autostart_video_on_play_selected" constant autostartVideoOnPlaySelectedDefault (line 206) | autostartVideoOnPlaySelectedDefault = true constant ContinuePlaylistDefault (line 207) | ContinuePlaylistDefault = "continue_playlist_default" constant ShowStudioAsText (line 208) | ShowStudioAsText = "show_studio_as_text" constant CSSEnabled (line 209) | CSSEnabled = "cssenabled" constant JavascriptEnabled (line 210) | JavascriptEnabled = "javascriptenabled" constant CustomLocalesEnabled (line 211) | CustomLocalesEnabled = "customlocalesenabled" constant DisableCustomizations (line 212) | DisableCustomizations = "disable_customizations" constant ShowScrubber (line 214) | ShowScrubber = "show_scrubber" constant showScrubberDefault (line 215) | showScrubberDefault = true constant WallPlayback (line 217) | WallPlayback = "wall_playback" constant defaultWallPlayback (line 218) | defaultWallPlayback = "video" constant legacyImageLightboxSlideshowDelay (line 221) | legacyImageLightboxSlideshowDelay = "slideshow_delay" constant ImageLightboxSlideshowDelay (line 222) | ImageLightboxSlideshowDelay = "image_lightbox.slideshow_delay" constant ImageLightboxDisplayModeKey (line 223) | ImageLightboxDisplayModeKey = "image_lightbox.display_mode" constant ImageLightboxScaleUp (line 224) | ImageLightboxScaleUp = "image_lightbox.scale_up" constant ImageLightboxResetZoomOnNav (line 225) | ImageLightboxResetZoomOnNav = "image_lightbox.reset_zoom_on_... constant ImageLightboxScrollModeKey (line 226) | ImageLightboxScrollModeKey = "image_lightbox.scroll_mode" constant ImageLightboxScrollAttemptsBeforeChange (line 227) | ImageLightboxScrollAttemptsBeforeChange = "image_lightbox.scroll_attempt... constant ImageLightboxDisableAnimation (line 228) | ImageLightboxDisableAnimation = "image_lightbox.disable_animat... constant UI (line 230) | UI = "ui" constant defaultImageLightboxSlideshowDelay (line 232) | defaultImageLightboxSlideshowDelay = 5 constant DisableDropdownCreatePerformer (line 234) | DisableDropdownCreatePerformer = "disable_dropdown_create.performer" constant DisableDropdownCreateStudio (line 235) | DisableDropdownCreateStudio = "disable_dropdown_create.studio" constant DisableDropdownCreateTag (line 236) | DisableDropdownCreateTag = "disable_dropdown_create.tag" constant DisableDropdownCreateMovie (line 237) | DisableDropdownCreateMovie = "disable_dropdown_create.movie" constant DisableDropdownCreateGallery (line 238) | DisableDropdownCreateGallery = "disable_dropdown_create.gallery" constant HandyKey (line 240) | HandyKey = "handy_key" constant FunscriptOffset (line 241) | FunscriptOffset = "funscript_offset" constant UseStashHostedFunscript (line 242) | UseStashHostedFunscript = "use_stash_hosted_funscript" constant useStashHostedFunscriptDefault (line 243) | useStashHostedFunscriptDefault = false constant DrawFunscriptHeatmapRange (line 245) | DrawFunscriptHeatmapRange = "draw_funscript_heatmap_range" constant drawFunscriptHeatmapRangeDefault (line 246) | drawFunscriptHeatmapRangeDefault = true constant ThemeColor (line 248) | ThemeColor = "theme_color" constant DefaultThemeColor (line 249) | DefaultThemeColor = "#202b33" constant dangerousAllowPublicWithoutAuth (line 252) | dangerousAllowPublicWithoutAuth = "dangerous_allow_pub... constant dangerousAllowPublicWithoutAuthDefault (line 253) | dangerousAllowPublicWithoutAuthDefault = "false" constant SecurityTripwireAccessedFromPublicInternet (line 254) | SecurityTripwireAccessedFromPublicInternet = "security_tripwire_a... constant securityTripwireAccessedFromPublicInternetDefault (line 255) | securityTripwireAccessedFromPublicInternetDefault = "" constant sslCertPath (line 257) | sslCertPath = "ssl_cert_path" constant sslKeyPath (line 258) | sslKeyPath = "ssl_key_path" constant DLNAServerName (line 261) | DLNAServerName = "dlna.server_name" constant DLNADefaultEnabled (line 262) | DLNADefaultEnabled = "dlna.default_enabled" constant DLNADefaultIPWhitelist (line 263) | DLNADefaultIPWhitelist = "dlna.default_whitelist" constant DLNAInterfaces (line 264) | DLNAInterfaces = "dlna.interfaces" constant DLNAVideoSortOrder (line 266) | DLNAVideoSortOrder = "dlna.video_sort_order" constant dlnaVideoSortOrderDefault (line 267) | dlnaVideoSortOrderDefault = "title" constant DLNAPort (line 269) | DLNAPort = "dlna.port" constant DLNAPortDefault (line 270) | DLNAPortDefault = 1338 constant LogFile (line 273) | LogFile = "logfile" constant LogOut (line 274) | LogOut = "logout" constant defaultLogOut (line 275) | defaultLogOut = true constant LogLevel (line 276) | LogLevel = "loglevel" constant defaultLogLevel (line 277) | defaultLogLevel = "Info" constant LogAccess (line 278) | LogAccess = "logaccess" constant defaultLogAccess (line 279) | defaultLogAccess = true constant LogFileMaxSize (line 280) | LogFileMaxSize = "logfile_max_size" constant defaultLogFileMaxSize (line 281) | defaultLogFileMaxSize = 0 constant DefaultScanSettings (line 284) | DefaultScanSettings = "defaults.scan_task" constant DefaultIdentifySettings (line 285) | DefaultIdentifySettings = "defaults.identify_task" constant DefaultAutoTagSettings (line 286) | DefaultAutoTagSettings = "defaults.auto_tag_task" constant DefaultGenerateSettings (line 287) | DefaultGenerateSettings = "defaults.generate_task" constant DeleteFileDefault (line 289) | DeleteFileDefault = "defaults.delete_file" constant DeleteGeneratedDefault (line 290) | DeleteGeneratedDefault = "defaults.delete_generated" constant deleteGeneratedDefaultDefault (line 291) | deleteGeneratedDefaultDefault = true constant DeleteTrashPath (line 294) | DeleteTrashPath = "delete_trash_path" constant NoBrowser (line 297) | NoBrowser = "nobrowser" constant NoBrowserDefault (line 298) | NoBrowserDefault = false constant NotificationsEnabled (line 299) | NotificationsEnabled = "notifications_enabled" constant NotificationsEnabledDefault (line 300) | NotificationsEnabledDefault = true constant ShowOneTimeMovedNotification (line 301) | ShowOneTimeMovedNotification = "show_one_time_moved_notification" constant ShowOneTimeMovedNotificationDefault (line 302) | ShowOneTimeMovedNotificationDefault = false constant MaxUploadSize (line 305) | MaxUploadSize = "max_upload_size" constant ExtraBlobsPaths (line 308) | ExtraBlobsPaths = "developer_options.extra_blob_paths" type MissingConfigError (line 319) | type MissingConfigError struct method Error (line 323) | func (e MissingConfigError) Error() string { type StashBoxError (line 328) | type StashBoxError struct method Error (line 332) | func (s *StashBoxError) Error() string { type Config (line 337) | type Config struct method load (line 363) | func (i *Config) load(f string) error { method IsNewSystem (line 372) | func (i *Config) IsNewSystem() bool { method SetConfigFile (line 376) | func (i *Config) SetConfigFile(fn string) { method InitTLS (line 382) | func (i *Config) InitTLS() { method GetTLSFiles (line 402) | func (i *Config) GetTLSFiles() (certFile, keyFile string) { method HasTLSConfig (line 406) | func (i *Config) HasTLSConfig() bool { method GetNoBrowser (line 411) | func (i *Config) GetNoBrowser() bool { method GetNotificationsEnabled (line 415) | func (i *Config) GetNotificationsEnabled() bool { method GetShowOneTimeMovedNotification (line 422) | func (i *Config) GetShowOneTimeMovedNotification() bool { method SetBool (line 427) | func (i *Config) SetBool(key string, value bool) { method SetString (line 431) | func (i *Config) SetString(key string, value string) { method SetInt (line 435) | func (i *Config) SetInt(key string, value int) { method SetFloat (line 439) | func (i *Config) SetFloat(key string, value float64) { method SetInterface (line 443) | func (i *Config) SetInterface(key string, value interface{}) { method set (line 450) | func (i *Config) set(key string, value interface{}) { method SetDefault (line 470) | func (i *Config) SetDefault(key string, value interface{}) { method setDefault (line 477) | func (i *Config) setDefault(key string, value interface{}) { method SetPassword (line 483) | func (i *Config) SetPassword(value string) { method Write (line 492) | func (i *Config) Write() error { method Marshal (line 504) | func (i *Config) Marshal() ([]byte, error) { method marshal (line 511) | func (i *Config) marshal() ([]byte, error) { method GetConfigFile (line 522) | func (i *Config) GetConfigFile() string { method GetConfigPath (line 530) | func (i *Config) GetConfigPath() string { method GetConfigPathAbs (line 537) | func (i *Config) GetConfigPathAbs() string { method GetDefaultDatabaseFilePath (line 550) | func (i *Config) GetDefaultDatabaseFilePath() string { method forKey (line 557) | func (i *Config) forKey(key string) *koanf.Koanf { method with (line 568) | func (i *Config) with(key string) *koanf.Koanf { method HasOverride (line 578) | func (i *Config) HasOverride(key string) bool { method unmarshalKey (line 588) | func (i *Config) unmarshalKey(key string, rawVal interface{}) error { method getStringSlice (line 595) | func (i *Config) getStringSlice(key string) []string { method getString (line 602) | func (i *Config) getString(key string) string { method getBool (line 609) | func (i *Config) getBool(key string) bool { method getBoolDefault (line 616) | func (i *Config) getBoolDefault(key string, def bool) bool { method getInt (line 628) | func (i *Config) getInt(key string) int { method getFloat64 (line 635) | func (i *Config) getFloat64(key string) float64 { method getStringMapString (line 642) | func (i *Config) getStringMapString(key string) map[string]string { method GetSFWContentMode (line 659) | func (i *Config) GetSFWContentMode() bool { method GetStashPaths (line 668) | func (i *Config) GetStashPaths() StashConfigs { method GetCachePath (line 694) | func (i *Config) GetCachePath() string { method GetGeneratedPath (line 698) | func (i *Config) GetGeneratedPath() string { method GetBlobsPath (line 702) | func (i *Config) GetBlobsPath() string { method GetExtraBlobsPaths (line 708) | func (i *Config) GetExtraBlobsPaths() []string { method GetBlobsStorage (line 712) | func (i *Config) GetBlobsStorage() BlobsStorageType { method GetMetadataPath (line 724) | func (i *Config) GetMetadataPath() string { method GetDatabasePath (line 728) | func (i *Config) GetDatabasePath() string { method GetBackupDirectoryPath (line 732) | func (i *Config) GetBackupDirectoryPath() string { method GetBackupDirectoryPathOrDefault (line 736) | func (i *Config) GetBackupDirectoryPathOrDefault() string { method GetFFMpegPath (line 748) | func (i *Config) GetFFMpegPath() string { method GetFFProbePath (line 754) | func (i *Config) GetFFProbePath() string { method GetJWTSignKey (line 758) | func (i *Config) GetJWTSignKey() []byte { method GetSessionStoreKey (line 762) | func (i *Config) GetSessionStoreKey() []byte { method GetDefaultScrapersPath (line 766) | func (i *Config) GetDefaultScrapersPath() string { method GetExcludes (line 773) | func (i *Config) GetExcludes() []string { method GetImageExcludes (line 777) | func (i *Config) GetImageExcludes() []string { method GetVideoExtensions (line 781) | func (i *Config) GetVideoExtensions() []string { method GetImageExtensions (line 789) | func (i *Config) GetImageExtensions() []string { method GetGalleryExtensions (line 797) | func (i *Config) GetGalleryExtensions() []string { method GetCreateGalleriesFromFolders (line 805) | func (i *Config) GetCreateGalleriesFromFolders() bool { method GetLanguage (line 809) | func (i *Config) GetLanguage() string { method IsCalculateMD5 (line 822) | func (i *Config) IsCalculateMD5() bool { method GetVideoFileNamingAlgorithm (line 828) | func (i *Config) GetVideoFileNamingAlgorithm() models.HashAlgorithm { method GetSequentialScanning (line 839) | func (i *Config) GetSequentialScanning() bool { method GetGalleryCoverRegex (line 843) | func (i *Config) GetGalleryCoverRegex() string { method GetScrapersPath (line 855) | func (i *Config) GetScrapersPath() string { method GetScraperUserAgent (line 859) | func (i *Config) GetScraperUserAgent() string { method GetScraperCDPPath (line 865) | func (i *Config) GetScraperCDPPath() string { method GetScraperCertCheck (line 871) | func (i *Config) GetScraperCertCheck() bool { method GetScraperExcludeTagPatterns (line 875) | func (i *Config) GetScraperExcludeTagPatterns() []string { method GetStashBoxes (line 879) | func (i *Config) GetStashBoxes() []*models.StashBox { method GetDefaultPluginsPath (line 888) | func (i *Config) GetDefaultPluginsPath() string { method GetPluginsPath (line 895) | func (i *Config) GetPluginsPath() string { method GetAllPluginConfiguration (line 899) | func (i *Config) GetAllPluginConfiguration() map[string]map[string]int... method GetPluginConfiguration (line 919) | func (i *Config) GetPluginConfiguration(pluginID string) map[string]in... method SetPluginConfiguration (line 930) | func (i *Config) SetPluginConfiguration(pluginID string, v map[string]... method GetDisabledPlugins (line 939) | func (i *Config) GetDisabledPlugins() []string { method GetPythonPath (line 943) | func (i *Config) GetPythonPath() string { method GetHost (line 947) | func (i *Config) GetHost() string { method GetPort (line 956) | func (i *Config) GetPort() int { method GetThemeColor (line 965) | func (i *Config) GetThemeColor() string { method GetExternalHost (line 969) | func (i *Config) GetExternalHost() string { method GetPreviewSegmentDuration (line 975) | func (i *Config) GetPreviewSegmentDuration() float64 { method GetParallelTasks (line 981) | func (i *Config) GetParallelTasks() int { method GetParallelTasksWithAutoDetection (line 985) | func (i *Config) GetParallelTasksWithAutoDetection() int { method GetUseCustomSpriteInterval (line 995) | func (i *Config) GetUseCustomSpriteInterval() bool { method GetSpriteInterval (line 1003) | func (i *Config) GetSpriteInterval() float64 { method GetMinimumSprites (line 1010) | func (i *Config) GetMinimumSprites() int { method GetMaximumSprites (line 1020) | func (i *Config) GetMaximumSprites() int { method GetSpriteScreenshotSize (line 1029) | func (i *Config) GetSpriteScreenshotSize() int { method GetPreviewAudio (line 1037) | func (i *Config) GetPreviewAudio() bool { method GetPreviewSegments (line 1042) | func (i *Config) GetPreviewSegments() int { method GetPreviewExcludeStart (line 1052) | func (i *Config) GetPreviewExcludeStart() string { method GetPreviewExcludeEnd (line 1061) | func (i *Config) GetPreviewExcludeEnd() string { method GetPreviewPreset (line 1067) | func (i *Config) GetPreviewPreset() models.PreviewPreset { method GetTranscodeHardwareAcceleration (line 1078) | func (i *Config) GetTranscodeHardwareAcceleration() bool { method GetMaxTranscodeSize (line 1082) | func (i *Config) GetMaxTranscodeSize() models.StreamingResolutionEnum { method GetMaxStreamingTranscodeSize (line 1093) | func (i *Config) GetMaxStreamingTranscodeSize() models.StreamingResolu... method GetTranscodeInputArgs (line 1104) | func (i *Config) GetTranscodeInputArgs() []string { method GetTranscodeOutputArgs (line 1108) | func (i *Config) GetTranscodeOutputArgs() []string { method GetLiveTranscodeInputArgs (line 1112) | func (i *Config) GetLiveTranscodeInputArgs() []string { method GetLiveTranscodeOutputArgs (line 1116) | func (i *Config) GetLiveTranscodeOutputArgs() []string { method GetDrawFunscriptHeatmapRange (line 1120) | func (i *Config) GetDrawFunscriptHeatmapRange() bool { method IsWriteImageThumbnails (line 1126) | func (i *Config) IsWriteImageThumbnails() bool { method IsCreateImageClipsFromVideos (line 1130) | func (i *Config) IsCreateImageClipsFromVideos() bool { method GetAPIKey (line 1134) | func (i *Config) GetAPIKey() string { method GetUsername (line 1138) | func (i *Config) GetUsername() string { method GetPasswordHash (line 1142) | func (i *Config) GetPasswordHash() string { method GetCredentials (line 1146) | func (i *Config) GetCredentials() (string, string) { method HasCredentials (line 1154) | func (i *Config) HasCredentials() bool { method ValidateCredentials (line 1167) | func (i *Config) ValidateCredentials(username string, password string)... method ValidateStashBoxes (line 1192) | func (i *Config) ValidateStashBoxes(boxes []*StashBoxInput) error { method GetMaxSessionAge (line 1219) | func (i *Config) GetMaxSessionAge() int { method GetCustomServedFolders (line 1234) | func (i *Config) GetCustomServedFolders() utils.URLMap { method GetUILocation (line 1238) | func (i *Config) GetUILocation() string { method GetMenuItems (line 1247) | func (i *Config) GetMenuItems() []string { method GetSoundOnPreview (line 1257) | func (i *Config) GetSoundOnPreview() bool { method GetWallShowTitle (line 1261) | func (i *Config) GetWallShowTitle() bool { method GetCustomPerformerImageLocation (line 1273) | func (i *Config) GetCustomPerformerImageLocation() string { method GetWallPlayback (line 1277) | func (i *Config) GetWallPlayback() string { method GetShowScrubber (line 1290) | func (i *Config) GetShowScrubber() bool { method GetMaximumLoopDuration (line 1294) | func (i *Config) GetMaximumLoopDuration() int { method GetAutostartVideo (line 1298) | func (i *Config) GetAutostartVideo() bool { method GetAutostartVideoOnPlaySelected (line 1302) | func (i *Config) GetAutostartVideoOnPlaySelected() bool { method GetContinuePlaylistDefault (line 1306) | func (i *Config) GetContinuePlaylistDefault() bool { method GetShowStudioAsText (line 1310) | func (i *Config) GetShowStudioAsText() bool { method getSlideshowDelay (line 1314) | func (i *Config) getSlideshowDelay() int { method GetImageLightboxOptions (line 1332) | func (i *Config) GetImageLightboxOptions() ConfigImageLightboxResult { method GetDisableDropdownCreate (line 1369) | func (i *Config) GetDisableDropdownCreate() *ConfigDisableDropdownCrea... method GetUIConfiguration (line 1379) | func (i *Config) GetUIConfiguration() map[string]interface{} { method GetMinimumPlayPercent (line 1388) | func (i *Config) GetMinimumPlayPercent() int { method SetUIConfiguration (line 1406) | func (i *Config) SetUIConfiguration(v map[string]interface{}) { method GetCSSPath (line 1413) | func (i *Config) GetCSSPath() string { method GetCSS (line 1423) | func (i *Config) GetCSS() string { method SetCSS (line 1440) | func (i *Config) SetCSS(css string) { method GetCSSEnabled (line 1452) | func (i *Config) GetCSSEnabled() bool { method GetJavascriptPath (line 1456) | func (i *Config) GetJavascriptPath() string { method GetJavascript (line 1466) | func (i *Config) GetJavascript() string { method SetJavascript (line 1483) | func (i *Config) SetJavascript(javascript string) { method GetJavascriptEnabled (line 1495) | func (i *Config) GetJavascriptEnabled() bool { method GetCustomLocalesPath (line 1499) | func (i *Config) GetCustomLocalesPath() string { method GetCustomLocales (line 1509) | func (i *Config) GetCustomLocales() string { method SetCustomLocales (line 1526) | func (i *Config) SetCustomLocales(customLocales string) { method GetCustomLocalesEnabled (line 1538) | func (i *Config) GetCustomLocalesEnabled() bool { method GetDisableCustomizations (line 1545) | func (i *Config) GetDisableCustomizations() bool { method GetHandyKey (line 1549) | func (i *Config) GetHandyKey() string { method GetFunscriptOffset (line 1553) | func (i *Config) GetFunscriptOffset() int { method GetUseStashHostedFunscript (line 1557) | func (i *Config) GetUseStashHostedFunscript() bool { method GetDeleteFileDefault (line 1561) | func (i *Config) GetDeleteFileDefault() bool { method GetDeleteGeneratedDefault (line 1565) | func (i *Config) GetDeleteGeneratedDefault() bool { method GetDeleteTrashPath (line 1569) | func (i *Config) GetDeleteTrashPath() string { method SetDeleteTrashPath (line 1573) | func (i *Config) SetDeleteTrashPath(value string) { method GetDefaultIdentifySettings (line 1580) | func (i *Config) GetDefaultIdentifySettings() *identify.Options { method GetDefaultScanSettings (line 1600) | func (i *Config) GetDefaultScanSettings() *ScanMetadataOptions { method GetDefaultAutoTagSettings (line 1619) | func (i *Config) GetDefaultAutoTagSettings() *AutoTagMetadataOptions { method GetDefaultGenerateSettings (line 1638) | func (i *Config) GetDefaultGenerateSettings() *models.GenerateMetadata... method GetDangerousAllowPublicWithoutAuth (line 1656) | func (i *Config) GetDangerousAllowPublicWithoutAuth() bool { method GetSecurityTripwireAccessedFromPublicInternet (line 1663) | func (i *Config) GetSecurityTripwireAccessedFromPublicInternet() string { method GetDLNAServerName (line 1669) | func (i *Config) GetDLNAServerName() string { method GetDLNADefaultEnabled (line 1674) | func (i *Config) GetDLNADefaultEnabled() bool { method GetDLNADefaultIPWhitelist (line 1680) | func (i *Config) GetDLNADefaultIPWhitelist() []string { method GetDLNAInterfaces (line 1686) | func (i *Config) GetDLNAInterfaces() []string { method GetDLNAPort (line 1692) | func (i *Config) GetDLNAPort() int { method GetDLNAPortAsString (line 1701) | func (i *Config) GetDLNAPortAsString() string { method GetDLNAActivityTrackingEnabled (line 1708) | func (i *Config) GetDLNAActivityTrackingEnabled() bool { method GetVideoSortOrder (line 1723) | func (i *Config) GetVideoSortOrder() string { method GetLogFile (line 1734) | func (i *Config) GetLogFile() string { method GetLogOut (line 1741) | func (i *Config) GetLogOut() bool { method GetLogLevel (line 1747) | func (i *Config) GetLogLevel() string { method GetLogAccess (line 1758) | func (i *Config) GetLogAccess() bool { method GetLogFileMaxSize (line 1763) | func (i *Config) GetLogFileMaxSize() int { method GetMaxUploadSize (line 1773) | func (i *Config) GetMaxUploadSize() int64 { method GetProxy (line 1786) | func (i *Config) GetProxy() string { method GetNoProxy (line 1801) | func (i *Config) GetNoProxy() string { method ActivatePublicAccessTripwire (line 1809) | func (i *Config) ActivatePublicAccessTripwire(requestIP string) error { method getPackageSources (line 1814) | func (i *Config) getPackageSources(key string) []*models.PackageSource { method GetPluginPackageSources (line 1823) | func (i *Config) GetPluginPackageSources() []*models.PackageSource { method GetScraperPackageSources (line 1827) | func (i *Config) GetScraperPackageSources() []*models.PackageSource { method GetPluginPackagePathGetter (line 1857) | func (i *Config) GetPluginPackagePathGetter() packagePathGetter { method GetScraperPackagePathGetter (line 1863) | func (i *Config) GetScraperPackagePathGetter() packagePathGetter { method Validate (line 1869) | func (i *Config) Validate() error { method setDefaultValues (line 1900) | func (i *Config) setDefaultValues() { method setExistingSystemDefaults (line 1972) | func (i *Config) setExistingSystemDefaults() { method SetInitialConfig (line 1990) | func (i *Config) SetInitialConfig() error { method FinalizeSetup (line 2015) | func (i *Config) FinalizeSetup() { function GetInstance (line 356) | func GetInstance() *Config { function FileEnvSet (line 517) | func FileEnvSet() bool { function hashPassword (line 1161) | func hashPassword(password string) string { function stashBoxValidate (line 1180) | func stashBoxValidate(str string) bool { type StashBoxInput (line 1185) | type StashBoxInput struct type packagePathGetter (line 1831) | type packagePathGetter struct method GetAllSourcePaths (line 1835) | func (g packagePathGetter) GetAllSourcePaths() []string { method GetSourcePath (line 1845) | func (g packagePathGetter) GetSourcePath(srcURL string) string { FILE: internal/manager/config/config_concurrency_test.go function TestConcurrentConfigAccess (line 10) | func TestConcurrentConfigAccess(t *testing.T) { FILE: internal/manager/config/config_test.go function TestConfig_GetAllPluginConfiguration (line 9) | func TestConfig_GetAllPluginConfiguration(t *testing.T) { FILE: internal/manager/config/enums.go type BlobsStorageType (line 9) | type BlobsStorageType method IsValid (line 23) | func (e BlobsStorageType) IsValid() bool { method String (line 31) | func (e BlobsStorageType) String() string { method UnmarshalGQL (line 35) | func (e *BlobsStorageType) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 48) | func (e BlobsStorageType) MarshalGQL(w io.Writer) { constant BlobStorageTypeDatabase (line 13) | BlobStorageTypeDatabase BlobsStorageType = "DATABASE" constant BlobStorageTypeFilesystem (line 15) | BlobStorageTypeFilesystem BlobsStorageType = "FILESYSTEM" FILE: internal/manager/config/init.go type flagStruct (line 20) | type flagStruct struct function init (line 51) | func init() { function Initialize (line 60) | func Initialize() (*Config, error) { function InitializeEmpty (line 104) | func InitializeEmpty() *Config { method loadFromCommandLine (line 113) | func (i *Config) loadFromCommandLine() { method loadFromEnv (line 128) | func (i *Config) loadFromEnv() { method initOverrides (line 143) | func (i *Config) initOverrides() { method initConfig (line 148) | func (i *Config) initConfig() error { method loadFirstFromFiles (line 194) | func (i *Config) loadFirstFromFiles(f []string) error { FILE: internal/manager/config/stash_config.go type StashConfigInput (line 10) | type StashConfigInput struct type StashConfig (line 16) | type StashConfig struct type StashConfigs (line 22) | type StashConfigs method GetStashFromPath (line 24) | func (s StashConfigs) GetStashFromPath(path string) *StashConfig { method GetStashFromDirPath (line 33) | func (s StashConfigs) GetStashFromDirPath(dirPath string) *StashConfig { method Paths (line 42) | func (s StashConfigs) Paths() []string { FILE: internal/manager/config/tasks.go type ScanMetadataOptions (line 3) | type ScanMetadataOptions struct type AutoTagMetadataOptions (line 24) | type AutoTagMetadataOptions struct FILE: internal/manager/config/ui.go type ConfigImageLightboxResult (line 9) | type ConfigImageLightboxResult struct type ImageLightboxDisplayMode (line 19) | type ImageLightboxDisplayMode method IsValid (line 33) | func (e ImageLightboxDisplayMode) IsValid() bool { method String (line 41) | func (e ImageLightboxDisplayMode) String() string { method UnmarshalGQL (line 45) | func (e *ImageLightboxDisplayMode) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 58) | func (e ImageLightboxDisplayMode) MarshalGQL(w io.Writer) { constant ImageLightboxDisplayModeOriginal (line 22) | ImageLightboxDisplayModeOriginal ImageLightboxDisplayMode = "ORIGINAL" constant ImageLightboxDisplayModeFitXy (line 23) | ImageLightboxDisplayModeFitXy ImageLightboxDisplayMode = "FIT_XY" constant ImageLightboxDisplayModeFitX (line 24) | ImageLightboxDisplayModeFitX ImageLightboxDisplayMode = "FIT_X" type ImageLightboxScrollMode (line 62) | type ImageLightboxScrollMode method IsValid (line 74) | func (e ImageLightboxScrollMode) IsValid() bool { method String (line 82) | func (e ImageLightboxScrollMode) String() string { method UnmarshalGQL (line 86) | func (e *ImageLightboxScrollMode) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 99) | func (e ImageLightboxScrollMode) MarshalGQL(w io.Writer) { constant ImageLightboxScrollModeZoom (line 65) | ImageLightboxScrollModeZoom ImageLightboxScrollMode = "ZOOM" constant ImageLightboxScrollModePanY (line 66) | ImageLightboxScrollModePanY ImageLightboxScrollMode = "PAN_Y" type ConfigDisableDropdownCreate (line 103) | type ConfigDisableDropdownCreate struct FILE: internal/manager/downloads.go type DownloadStore (line 14) | type DownloadStore struct method RegisterFile (line 33) | func (s *DownloadStore) RegisterFile(fp string, contentType string, ke... method Serve (line 64) | func (s *DownloadStore) Serve(hash string, w http.ResponseWriter, r *h... method waitAndRemoveFile (line 87) | func (s *DownloadStore) waitAndRemoveFile(hash string, w *http.Respons... type storeFile (line 19) | type storeFile struct function NewDownloadStore (line 27) | func NewDownloadStore() *DownloadStore { FILE: internal/manager/enums.go type SystemStatusEnum (line 9) | type SystemStatusEnum method IsValid (line 23) | func (e SystemStatusEnum) IsValid() bool { method String (line 31) | func (e SystemStatusEnum) String() string { method UnmarshalGQL (line 35) | func (e *SystemStatusEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 48) | func (e SystemStatusEnum) MarshalGQL(w io.Writer) { constant SystemStatusEnumSetup (line 12) | SystemStatusEnumSetup SystemStatusEnum = "SETUP" constant SystemStatusEnumNeedsMigration (line 13) | SystemStatusEnumNeedsMigration SystemStatusEnum = "NEEDS_MIGRATION" constant SystemStatusEnumOk (line 14) | SystemStatusEnumOk SystemStatusEnum = "OK" FILE: internal/manager/exclude_files.go function excludeFiles (line 10) | func excludeFiles(files []string, patterns []string) ([]string, int) { function matchFileRegex (line 39) | func matchFileRegex(file string, fileRegexps []*regexp.Regexp) bool { function matchFile (line 48) | func matchFile(file string, patterns []string) bool { function generateRegexps (line 58) | func generateRegexps(patterns []string) []*regexp.Regexp { function matchFileSimple (line 86) | func matchFileSimple(file string, regExps []*regexp.Regexp) bool { FILE: internal/manager/exclude_files_test.go function TestExcludeFiles (line 53) | func TestExcludeFiles(t *testing.T) { function runExclude (line 62) | func runExclude(filenames []string, patterns []string, expCount int) err... function TestMatchFile (line 76) | func TestMatchFile(t *testing.T) { function runMatch (line 85) | func runMatch(filenames []string, patterns []string, expCount int) error { FILE: internal/manager/fingerprint.go type fingerprintCalculator (line 16) | type fingerprintCalculator struct method calculateOshash (line 20) | func (c *fingerprintCalculator) calculateOshash(f *models.BaseFile, o ... method calculateMD5 (line 44) | func (c *fingerprintCalculator) calculateMD5(o file.Opener) (*models.F... method CalculateFingerprints (line 63) | func (c *fingerprintCalculator) CalculateFingerprints(f *models.BaseFi... FILE: internal/manager/generator.go type generatorInfo (line 14) | type generatorInfo struct method calculateFrameRate (line 36) | func (g *generatorInfo) calculateFrameRate(videoStream *ffmpeg.FFProbe... method configure (line 86) | func (g *generatorInfo) configure() error { function newGeneratorInfo (line 25) | func newGeneratorInfo(videoFile ffmpeg.VideoFile) (*generatorInfo, error) { function isValidFloat64 (line 82) | func isValidFloat64(value float64) bool { FILE: internal/manager/generator_interactive_heatmap_speed.go type InteractiveHeatmapSpeedGenerator (line 19) | type InteractiveHeatmapSpeedGenerator struct method Generate (line 66) | func (g *InteractiveHeatmapSpeedGenerator) Generate(funscriptPath stri... method LoadFunscriptData (line 92) | func (g *InteractiveHeatmapSpeedGenerator) LoadFunscriptData(path stri... method RenderHeatmap (line 156) | func (g *InteractiveHeatmapSpeedGenerator) RenderHeatmap(heatmapPath s... type Script (line 29) | type Script struct method UpdateIntensityAndSpeed (line 134) | func (funscript *Script) UpdateIntensityAndSpeed() { method CalculateMedian (line 200) | func (funscript *Script) CalculateMedian() int { method getGradientTable (line 243) | func (funscript Script) getGradientTable(numSegments int, sceneDuratio... type Action (line 42) | type Action struct type GradientTable (line 51) | type GradientTable method GetInterpolatedColorFor (line 214) | func (gt GradientTable) GetInterpolatedColorFor(t float64) colorful.Co... method GetYRange (line 229) | func (gt GradientTable) GetYRange(t float64) [2]float64 { function NewInteractiveHeatmapSpeedGenerator (line 57) | func NewInteractiveHeatmapSpeedGenerator(drawRange bool) *InteractiveHea... function getSegmentColor (line 329) | func getSegmentColor(intensity float64) colorful.Color { function LoadFunscriptData (line 366) | func LoadFunscriptData(path string) (Script, error) { function convertRange (line 387) | func convertRange(value int, fromLow int, fromHigh int, toLow int, toHig... function ConvertFunscriptToCSV (line 391) | func ConvertFunscriptToCSV(funscriptPath string) ([]byte, error) { function ConvertFunscriptToCSVFile (line 416) | func ConvertFunscriptToCSVFile(funscriptPath string, csvPath string) err... FILE: internal/manager/generator_sprite.go type SpriteGenerator (line 18) | type SpriteGenerator struct method Generate (line 186) | func (g *SpriteGenerator) Generate() error { method generateSpriteImage (line 196) | func (g *SpriteGenerator) generateSpriteImage() error { method generateSpriteVTT (line 246) | func (g *SpriteGenerator) generateSpriteVTT() error { method imageExists (line 265) | func (g *SpriteGenerator) imageExists() bool { method vttExists (line 270) | func (g *SpriteGenerator) vttExists() bool { type SpriteGeneratorConfig (line 33) | type SpriteGeneratorConfig struct constant DefaultSpriteAmount (line 62) | DefaultSpriteAmount = 81 constant DefaultSpriteSize (line 66) | DefaultSpriteSize = 160 function NewSpriteGenerator (line 78) | func NewSpriteGenerator(videoFile ffmpeg.VideoFile, videoChecksum string... function calculateSpriteInterval (line 152) | func calculateSpriteInterval(videoFile ffmpeg.VideoFile, config SpriteGe... FILE: internal/manager/import.go type ImportDuplicateEnum (line 12) | type ImportDuplicateEnum method IsValid (line 26) | func (e ImportDuplicateEnum) IsValid() bool { method String (line 34) | func (e ImportDuplicateEnum) String() string { method UnmarshalGQL (line 38) | func (e *ImportDuplicateEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 51) | func (e ImportDuplicateEnum) MarshalGQL(w io.Writer) { constant ImportDuplicateEnumIgnore (line 15) | ImportDuplicateEnumIgnore ImportDuplicateEnum = "IGNORE" constant ImportDuplicateEnumOverwrite (line 16) | ImportDuplicateEnumOverwrite ImportDuplicateEnum = "OVERWRITE" constant ImportDuplicateEnumFail (line 17) | ImportDuplicateEnumFail ImportDuplicateEnum = "FAIL" type importer (line 55) | type importer interface function performImport (line 64) | func performImport(ctx context.Context, i importer, duplicateBehaviour I... FILE: internal/manager/init.go function Initialize (line 35) | func Initialize(cfg *config.Config, l *log.Logger) (*Manager, error) { function formatDuration (line 142) | func formatDuration(t time.Duration) string { function initJobManager (line 155) | func initJobManager(cfg *config.Config) *job.Manager { method postInit (line 189) | func (s *Manager) postInit(ctx context.Context) error { method checkSecurityTripwire (line 253) | func (s *Manager) checkSecurityTripwire() { method writeStashIcon (line 259) | func (s *Manager) writeStashIcon() { method RefreshFFMpeg (line 267) | func (s *Manager) RefreshFFMpeg(ctx context.Context) { FILE: internal/manager/json_utils.go type jsonUtils (line 10) | type jsonUtils struct method savePerformer (line 14) | func (jp *jsonUtils) savePerformer(fn string, performer *jsonschema.Pe... method saveStudio (line 18) | func (jp *jsonUtils) saveStudio(fn string, studio *jsonschema.Studio) ... method saveTag (line 22) | func (jp *jsonUtils) saveTag(fn string, tag *jsonschema.Tag) error { method saveGroup (line 26) | func (jp *jsonUtils) saveGroup(fn string, group *jsonschema.Group) err... method saveScene (line 30) | func (jp *jsonUtils) saveScene(fn string, scene *jsonschema.Scene) err... method saveImage (line 34) | func (jp *jsonUtils) saveImage(fn string, image *jsonschema.Image) err... method saveGallery (line 38) | func (jp *jsonUtils) saveGallery(fn string, gallery *jsonschema.Galler... method saveFile (line 42) | func (jp *jsonUtils) saveFile(fn string, file jsonschema.DirEntry) err... method saveSavedFilter (line 46) | func (jp *jsonUtils) saveSavedFilter(fn string, savedFilter *jsonschem... FILE: internal/manager/log.go function logErrorOutput (line 10) | func logErrorOutput(err error) { FILE: internal/manager/manager.go type Manager (line 35) | type Manager struct method SetBlobStoreOptions (line 83) | func (s *Manager) SetBlobStoreOptions() { method RefreshConfig (line 96) | func (s *Manager) RefreshConfig() { method RefreshPluginCache (line 125) | func (s *Manager) RefreshPluginCache() { method RefreshScraperCache (line 131) | func (s *Manager) RefreshScraperCache() { method RefreshStreamManager (line 137) | func (s *Manager) RefreshStreamManager() { method RefreshDLNA (line 150) | func (s *Manager) RefreshDLNA() { method RefreshScraperSourceManager (line 181) | func (s *Manager) RefreshScraperSourceManager() { method RefreshPluginSourceManager (line 185) | func (s *Manager) RefreshPluginSourceManager() { method Setup (line 211) | func (s *Manager) Setup(ctx context.Context, input SetupInput) error { method validateFFmpeg (line 309) | func (s *Manager) validateFFmpeg() error { method AnonymiseDatabase (line 316) | func (s *Manager) AnonymiseDatabase(download bool) (string, string, er... method GetSystemStatus (line 351) | func (s *Manager) GetSystemStatus() *SystemStatus { method Shutdown (line 394) | func (s *Manager) Shutdown() { function GetInstance (line 76) | func GetInstance() *Manager { function createPackageManager (line 162) | func createPackageManager(localPath string, srcPathGetter pkg.SourcePath... function setSetupDefaults (line 189) | func setSetupDefaults(input *SetupInput) { FILE: internal/manager/manager_tasks.go function useAsVideo (line 21) | func useAsVideo(pathname string) bool { function useAsImage (line 30) | func useAsImage(pathname string) bool { function isZip (line 38) | func isZip(pathname string) bool { function isVideo (line 43) | func isVideo(pathname string) bool { function isImage (line 48) | func isImage(pathname string) bool { function getScanPaths (line 53) | func getScanPaths(inputPaths []string) []*config.StashConfig { function filterStashPaths (line 78) | func filterStashPaths(inputPaths []string) []string { method ScanSubscribe (line 101) | func (s *Manager) ScanSubscribe(ctx context.Context) <-chan bool { type ScanMetadataInput (line 105) | type ScanMetadataInput struct type ScanMetaDataFilterInput (line 115) | type ScanMetaDataFilterInput struct method Scan (line 120) | func (s *Manager) Scan(ctx context.Context, input ScanMetadataInput) (in... method Import (line 161) | func (s *Manager) Import(ctx context.Context) (int, error) { method Export (line 187) | func (s *Manager) Export(ctx context.Context) (int, error) { method RunSingleTask (line 210) | func (s *Manager) RunSingleTask(ctx context.Context, t Task) int { method Generate (line 224) | func (s *Manager) Generate(ctx context.Context, input GenerateMetadataIn... method GenerateDefaultScreenshot (line 240) | func (s *Manager) GenerateDefaultScreenshot(ctx context.Context, sceneId... method GenerateScreenshot (line 244) | func (s *Manager) GenerateScreenshot(ctx context.Context, sceneId string... method generateScreenshot (line 249) | func (s *Manager) generateScreenshot(ctx context.Context, sceneId string... type AutoTagMetadataInput (line 293) | type AutoTagMetadataInput struct method AutoTag (line 304) | func (s *Manager) AutoTag(ctx context.Context, input AutoTagMetadataInpu... type CleanMetadataInput (line 313) | type CleanMetadataInput struct method Clean (line 321) | func (s *Manager) Clean(ctx context.Context, input CleanMetadataInput) i... method OptimiseDatabase (line 343) | func (s *Manager) OptimiseDatabase(ctx context.Context) int { method MigrateHash (line 351) | func (s *Manager) MigrateHash(ctx context.Context) int { type batchTagType (line 400) | type batchTagType constant batchTagByIds (line 403) | batchTagByIds batchTagType = iota constant batchTagByNamesOrStashIds (line 404) | batchTagByNamesOrStashIds constant batchTagAll (line 405) | batchTagAll type StashBoxBatchTagInput (line 426) | type StashBoxBatchTagInput struct method getBatchTagType (line 409) | func (input StashBoxBatchTagInput) getBatchTagType(hasPerformerFields ... method batchTagPerformersByIds (line 455) | func (s *Manager) batchTagPerformersByIds(ctx context.Context, input Sta... method batchTagPerformersByNamesOrStashIds (line 493) | func (s *Manager) batchTagPerformersByNamesOrStashIds(input StashBoxBatc... method batchTagAllPerformers (line 526) | func (s *Manager) batchTagAllPerformers(ctx context.Context, input Stash... method StashBoxBatchPerformerTag (line 557) | func (s *Manager) StashBoxBatchPerformerTag(ctx context.Context, box *mo... method batchTagStudiosByIds (line 599) | func (s *Manager) batchTagStudiosByIds(ctx context.Context, input StashB... method batchTagStudiosByNamesOrStashIds (line 633) | func (s *Manager) batchTagStudiosByNamesOrStashIds(input StashBoxBatchTa... method batchTagAllStudios (line 663) | func (s *Manager) batchTagAllStudios(ctx context.Context, input StashBox... method StashBoxBatchStudioTag (line 691) | func (s *Manager) StashBoxBatchStudioTag(ctx context.Context, box *model... method batchTagTagsByIds (line 733) | func (s *Manager) batchTagTagsByIds(ctx context.Context, input StashBoxB... method batchTagTagsByNamesOrStashIds (line 767) | func (s *Manager) batchTagTagsByNamesOrStashIds(input StashBoxBatchTagIn... method batchTagAllTags (line 797) | func (s *Manager) batchTagAllTags(ctx context.Context, input StashBoxBat... method StashBoxBatchTagTag (line 825) | func (s *Manager) StashBoxBatchTagTag(ctx context.Context, box *models.S... FILE: internal/manager/models.go type SystemStatus (line 7) | type SystemStatus struct type SetupInput (line 20) | type SetupInput struct type MigrateInput (line 37) | type MigrateInput struct FILE: internal/manager/repository.go type SceneService (line 12) | type SceneService interface type ImageService (line 22) | type ImageService interface type GalleryService (line 27) | type GalleryService interface type GroupService (line 41) | type GroupService interface FILE: internal/manager/running_streams.go function KillRunningStreams (line 20) | func KillRunningStreams(scene *models.Scene, fileNamingAlgo models.HashA... type SceneCoverGetter (line 33) | type SceneCoverGetter interface type SceneServer (line 37) | type SceneServer struct method StreamSceneDirect (line 42) | func (s *SceneServer) StreamSceneDirect(scene *models.Scene, w http.Re... method ServeScreenshot (line 64) | func (s *SceneServer) ServeScreenshot(scene *models.Scene, w http.Resp... FILE: internal/manager/scan_stashignore_test.go type stashIgnorePathFilter (line 21) | type stashIgnorePathFilter struct method Accept (line 26) | func (f *stashIgnorePathFilter) Accept(ctx context.Context, path strin... function createTestFileOnDisk (line 31) | func createTestFileOnDisk(t *testing.T, dir, name string) string { function createStashIgnoreFile (line 45) | func createStashIgnoreFile(t *testing.T, dir, content string) { function TestScannerWithStashIgnore (line 53) | func TestScannerWithStashIgnore(t *testing.T) { function TestScannerWithNestedStashIgnore (line 117) | func TestScannerWithNestedStashIgnore(t *testing.T) { function TestScannerWithoutStashIgnore (line 172) | func TestScannerWithoutStashIgnore(t *testing.T) { function TestScannerWithNegationPattern (line 217) | func TestScannerWithNegationPattern(t *testing.T) { FILE: internal/manager/scene.go type SceneStreamEndpoint (line 13) | type SceneStreamEndpoint struct type endpointType (line 19) | type endpointType struct function GetVideoFileContainer (line 59) | func GetVideoFileContainer(file *models.VideoFile) (ffmpeg.Container, er... function GetSceneStreamPaths (line 78) | func GetSceneStreamPaths(scene *models.Scene, directStreamURL *url.URL, ... function HasTranscode (line 225) | func HasTranscode(scene *models.Scene, fileNamingAlgo models.HashAlgorit... FILE: internal/manager/subscribe.go type subscriptionManager (line 8) | type subscriptionManager struct method subscribe (line 13) | func (m *subscriptionManager) subscribe(ctx context.Context) <-chan bo... method notify (line 37) | func (m *subscriptionManager) notify() { FILE: internal/manager/task.go type Task (line 5) | type Task interface FILE: internal/manager/task/clean_generated.go type CleanGeneratedOptions (line 19) | type CleanGeneratedOptions struct type BlobCleaner (line 33) | type BlobCleaner interface type CleanGeneratedJob (line 37) | type CleanGeneratedJob struct method deleteFile (line 52) | func (j *CleanGeneratedJob) deleteFile(path string) { method deleteDir (line 63) | func (j *CleanGeneratedJob) deleteDir(path string) { method countTasks (line 74) | func (j *CleanGeneratedJob) countTasks() int { method taskComplete (line 98) | func (j *CleanGeneratedJob) taskComplete(progress *job.Progress) { method logError (line 103) | func (j *CleanGeneratedJob) logError(err error) { method Execute (line 109) | func (j *CleanGeneratedJob) Execute(ctx context.Context, progress *job... method setTaskProgress (line 191) | func (j *CleanGeneratedJob) setTaskProgress(taskProgress float64, prog... method logDelete (line 195) | func (j *CleanGeneratedJob) logDelete(format string, args ...interface... method estimateProgress (line 202) | func (j *CleanGeneratedJob) estimateProgress(hashPrefix string) (float... method setProgressFromFilename (line 212) | func (j *CleanGeneratedJob) setProgressFromFilename(prefix string, pro... method getIntraFolderPrefix (line 221) | func (j *CleanGeneratedJob) getIntraFolderPrefix(basename string) (str... method getBlobFileHash (line 231) | func (j *CleanGeneratedJob) getBlobFileHash(basename string) (string, ... method cleanBlobFiles (line 241) | func (j *CleanGeneratedJob) cleanBlobFiles(ctx context.Context, progre... method getScenesWithHash (line 319) | func (j *CleanGeneratedJob) getScenesWithHash(ctx context.Context, has... method hashPatternPrefix (line 338) | func (j *CleanGeneratedJob) hashPatternPrefix() string { method getSpriteFileHash (line 347) | func (j *CleanGeneratedJob) getSpriteFileHash(basename string) (string... method cleanSpriteFiles (line 366) | func (j *CleanGeneratedJob) cleanSpriteFiles(ctx context.Context, prog... method cleanSceneFiles (line 420) | func (j *CleanGeneratedJob) cleanSceneFiles(ctx context.Context, path ... method getScreenshotFileHash (line 473) | func (j *CleanGeneratedJob) getScreenshotFileHash(basename string) (st... method cleanScreenshotFiles (line 485) | func (j *CleanGeneratedJob) cleanScreenshotFiles(ctx context.Context, ... method getTranscodeFileHash (line 489) | func (j *CleanGeneratedJob) getTranscodeFileHash(basename string) (str... method cleanTranscodeFiles (line 499) | func (j *CleanGeneratedJob) cleanTranscodeFiles(ctx context.Context, p... method getMarkerSceneFileHash (line 503) | func (j *CleanGeneratedJob) getMarkerSceneFileHash(basename string) (s... method getMarkerFileSeconds (line 513) | func (j *CleanGeneratedJob) getMarkerFileSeconds(basename string) (int... method cleanMarkerFiles (line 525) | func (j *CleanGeneratedJob) cleanMarkerFiles(ctx context.Context, prog... method getImagesWithHash (line 643) | func (j *CleanGeneratedJob) getImagesWithHash(ctx context.Context, che... method getThumbnailFileHash (line 657) | func (j *CleanGeneratedJob) getThumbnailFileHash(basename string) (str... method cleanThumbnailFiles (line 672) | func (j *CleanGeneratedJob) cleanThumbnailFiles(ctx context.Context, p... constant md5Length (line 334) | md5Length = 32 constant oshashLength (line 335) | oshashLength = 16 FILE: internal/manager/task/download_ffmpeg.go type DownloadFFmpegJob (line 20) | type DownloadFFmpegJob struct method Execute (line 27) | func (s *DownloadFFmpegJob) Execute(ctx context.Context, progress *job... method setTaskProgress (line 42) | func (s *DownloadFFmpegJob) setTaskProgress(taskProgress float64, prog... method download (line 46) | func (s *DownloadFFmpegJob) download(ctx context.Context, progress *jo... method downloadSingle (line 90) | func (s *DownloadFFmpegJob) downloadSingle(ctx context.Context, url st... method downloadFile (line 152) | func (s *DownloadFFmpegJob) downloadFile(ctx context.Context, url stri... method unzip (line 203) | func (s *DownloadFFmpegJob) unzip(src string) error { type downloadProgressReader (line 70) | type downloadProgressReader struct method Read (line 77) | func (r *downloadProgressReader) Read(p []byte) (int, error) { FILE: internal/manager/task/migrate.go type migrateJobConfig (line 15) | type migrateJobConfig interface type MigrateJob (line 20) | type MigrateJob struct method Execute (line 32) | func (s *MigrateJob) Execute(ctx context.Context, progress *job.Progre... method required (line 108) | func (s *MigrateJob) required() (ret databaseSchemaInfo, err error) { method runMigrations (line 130) | func (s *MigrateJob) runMigrations(ctx context.Context, progress *job.... type databaseSchemaInfo (line 26) | type databaseSchemaInfo struct FILE: internal/manager/task/migrate_blobs.go type BlobStoreMigrator (line 12) | type BlobStoreMigrator interface type Vacuumer (line 18) | type Vacuumer interface type MigrateBlobsJob (line 22) | type MigrateBlobsJob struct method Execute (line 29) | func (j *MigrateBlobsJob) Execute(ctx context.Context, progress *job.P... method countBlobs (line 75) | func (j *MigrateBlobsJob) countBlobs(ctx context.Context) (int, error) { method migrateBlobs (line 88) | func (j *MigrateBlobsJob) migrateBlobs(ctx context.Context, progress *... method getBatch (line 117) | func (j *MigrateBlobsJob) getBatch(ctx context.Context, lastChecksum s... FILE: internal/manager/task/migrate_scene_screenshots.go type MigrateSceneScreenshotsJob (line 18) | type MigrateSceneScreenshotsJob struct method Execute (line 25) | func (j *MigrateSceneScreenshotsJob) Execute(ctx context.Context, prog... method countFiles (line 54) | func (j *MigrateSceneScreenshotsJob) countFiles(ctx context.Context) (... method migrateFiles (line 78) | func (j *MigrateSceneScreenshotsJob) migrateFiles(ctx context.Context,... FILE: internal/manager/task/packages.go type PackagesJob (line 13) | type PackagesJob struct method installPackage (line 18) | func (j *PackagesJob) installPackage(ctx context.Context, p models.Pac... type InstallPackagesJob (line 28) | type InstallPackagesJob struct method Execute (line 33) | func (j *InstallPackagesJob) Execute(ctx context.Context, progress *jo... type UpdatePackagesJob (line 59) | type UpdatePackagesJob struct method Execute (line 64) | func (j *UpdatePackagesJob) Execute(ctx context.Context, progress *job... type UninstallPackagesJob (line 107) | type UninstallPackagesJob struct method Execute (line 112) | func (j *UninstallPackagesJob) Execute(ctx context.Context, progress *... FILE: internal/manager/task_autotag.go type autoTagJob (line 21) | type autoTagJob struct method Execute (line 28) | func (j *autoTagJob) Execute(ctx context.Context, progress *job.Progre... method isFileBasedAutoTag (line 44) | func (j *autoTagJob) isFileBasedAutoTag(input AutoTagMetadataInput) bo... method autoTagFiles (line 53) | func (j *autoTagJob) autoTagFiles(ctx context.Context, progress *job.P... method autoTagSpecific (line 67) | func (j *autoTagJob) autoTagSpecific(ctx context.Context, progress *jo... method autoTagPerformers (line 122) | func (j *autoTagJob) autoTagPerformers(ctx context.Context, progress *... method autoTagStudios (line 219) | func (j *autoTagJob) autoTagStudios(ctx context.Context, progress *job... method autoTagTags (line 317) | func (j *autoTagJob) autoTagTags(ctx context.Context, progress *job.Pr... type autoTagFilesTask (line 414) | type autoTagFilesTask struct method makeSceneFilter (line 425) | func (t *autoTagFilesTask) makeSceneFilter() *models.SceneFilterType { method makeImageFilter (line 434) | func (t *autoTagFilesTask) makeImageFilter() *models.ImageFilterType { method makeGalleryFilter (line 464) | func (t *autoTagFilesTask) makeGalleryFilter() *models.GalleryFilterTy... method getCount (line 501) | func (t *autoTagFilesTask) getCount(ctx context.Context) (int, error) { method processScenes (line 543) | func (t *autoTagFilesTask) processScenes(ctx context.Context) { method processImages (line 606) | func (t *autoTagFilesTask) processImages(ctx context.Context) { method processGalleries (line 669) | func (t *autoTagFilesTask) processGalleries(ctx context.Context) { method process (line 732) | func (t *autoTagFilesTask) process(ctx context.Context) { type autoTagSceneTask (line 755) | type autoTagSceneTask struct method Start (line 766) | func (t *autoTagSceneTask) Start(ctx context.Context, wg *sync.WaitGro... type autoTagImageTask (line 799) | type autoTagImageTask struct method Start (line 810) | func (t *autoTagImageTask) Start(ctx context.Context, wg *sync.WaitGro... type autoTagGalleryTask (line 838) | type autoTagGalleryTask struct method Start (line 849) | func (t *autoTagGalleryTask) Start(ctx context.Context, wg *sync.WaitG... FILE: internal/manager/task_clean.go type cleaner (line 22) | type cleaner interface type cleanJob (line 26) | type cleanJob struct method Execute (line 35) | func (j *cleanJob) Execute(ctx context.Context, progress *job.Progress... method cleanEmptyGalleries (line 62) | func (j *cleanJob) cleanEmptyGalleries(ctx context.Context) { method deleteGallery (line 112) | func (j *cleanJob) deleteGallery(ctx context.Context, id int) { type cleanFilter (line 146) | type cleanFilter struct method Accept (line 163) | func (f *cleanFilter) Accept(ctx context.Context, path string, info fs... method shouldCleanFolder (line 200) | func (f *cleanFilter) shouldCleanFolder(path string, s *config.StashCo... method shouldCleanFile (line 211) | func (f *cleanFilter) shouldCleanFile(path string, info fs.FileInfo, s... method shouldCleanVideoFile (line 225) | func (f *cleanFilter) shouldCleanVideoFile(path string, stash *config.... method shouldCleanGallery (line 239) | func (f *cleanFilter) shouldCleanGallery(path string, stash *config.St... method shouldCleanImage (line 253) | func (f *cleanFilter) shouldCleanImage(path string, stash *config.Stas... function newCleanFilter (line 150) | func newCleanFilter(c *config.Config) *cleanFilter { type cleanHandler (line 267) | type cleanHandler struct method HandleFile (line 269) | func (h *cleanHandler) HandleFile(ctx context.Context, fileDeleter *fi... method HandleFolder (line 283) | func (h *cleanHandler) HandleFolder(ctx context.Context, fileDeleter *... method handleRelatedScenes (line 287) | func (h *cleanHandler) handleRelatedScenes(ctx context.Context, fileDe... method handleRelatedGalleries (line 345) | func (h *cleanHandler) handleRelatedGalleries(ctx context.Context, fil... method deleteRelatedFolderGalleries (line 391) | func (h *cleanHandler) deleteRelatedFolderGalleries(ctx context.Contex... method handleRelatedImages (line 415) | func (h *cleanHandler) handleRelatedImages(ctx context.Context, fileDe... FILE: internal/manager/task_export.go type ExportTask (line 34) | type ExportTask struct method Start (line 122) | func (t *ExportTask) Start(ctx context.Context, wg *sync.WaitGroup) { method generateDownload (line 198) | func (t *ExportTask) generateDownload() error { method zipFiles (line 222) | func (t *ExportTask) zipFiles(w io.Writer) error { method zipWalkFunc (line 248) | func (t *ExportTask) zipWalkFunc(outDir string, z *zip.Writer) filepat... method zipFile (line 262) | func (t *ExportTask) zipFile(fn, outDir string, z *zip.Writer) error { method populateGroupScenes (line 287) | func (t *ExportTask) populateGroupScenes(ctx context.Context) { method populateGalleryImages (line 318) | func (t *ExportTask) populateGalleryImages(ctx context.Context) { method ExportScenes (line 354) | func (t *ExportTask) ExportScenes(ctx context.Context, workers int) { method exportFile (line 397) | func (t *ExportTask) exportFile(f models.File) { method exportFolder (line 461) | func (t *ExportTask) exportFolder(f models.Folder) { method exportScene (line 487) | func (t *ExportTask) exportScene(ctx context.Context, wg *sync.WaitGro... method ExportImages (line 602) | func (t *ExportTask) ExportImages(ctx context.Context, workers int) { method exportImage (line 646) | func (t *ExportTask) exportImage(ctx context.Context, wg *sync.WaitGro... method ExportGalleries (line 735) | func (t *ExportTask) ExportGalleries(ctx context.Context, workers int) { method exportGallery (line 779) | func (t *ExportTask) exportGallery(ctx context.Context, wg *sync.WaitG... method ExportPerformers (line 889) | func (t *ExportTask) ExportPerformers(ctx context.Context, workers int) { method exportPerformer (line 928) | func (t *ExportTask) exportPerformer(ctx context.Context, wg *sync.Wai... method ExportStudios (line 962) | func (t *ExportTask) ExportStudios(ctx context.Context, workers int) { method exportStudio (line 1002) | func (t *ExportTask) exportStudio(ctx context.Context, wg *sync.WaitGr... method ExportTags (line 1036) | func (t *ExportTask) ExportTags(ctx context.Context, workers int) { method exportTag (line 1096) | func (t *ExportTask) exportTag(ctx context.Context, wg *sync.WaitGroup... method ExportGroups (line 1126) | func (t *ExportTask) ExportGroups(ctx context.Context, workers int) { method exportGroup (line 1166) | func (t *ExportTask) exportGroup(ctx context.Context, wg *sync.WaitGro... method ExportSavedFilters (line 1232) | func (t *ExportTask) ExportSavedFilters(ctx context.Context, workers i... method exportSavedFilter (line 1272) | func (t *ExportTask) exportSavedFilter(ctx context.Context, wg *sync.W... type ExportObjectTypeInput (line 56) | type ExportObjectTypeInput struct type ExportObjectsInput (line 61) | type ExportObjectsInput struct type exportSpec (line 73) | type exportSpec struct function newExportSpec (line 78) | func newExportSpec(input *ExportObjectTypeInput) *exportSpec { function CreateExportTask (line 96) | func CreateExportTask(a models.HashAlgorithm, input ExportObjectsInput) ... function walkWarn (line 242) | func walkWarn(root string, fn filepath.WalkFunc) { function fileToJSON (line 407) | func fileToJSON(f models.File) jsonschema.DirEntry { function folderToJSON (line 471) | func folderToJSON(f models.Folder) jsonschema.DirEntry { FILE: internal/manager/task_generate.go type GenerateMetadataInput (line 19) | type GenerateMetadataInput struct type GeneratePreviewOptionsInput (line 50) | type GeneratePreviewOptionsInput struct constant generateQueueSize (line 63) | generateQueueSize = 200000 type GenerateJob (line 65) | type GenerateJob struct method Execute (line 91) | func (j *GenerateJob) Execute(ctx context.Context, progress *job.Progr... method queueTasks (line 291) | func (j *GenerateJob) queueTasks(ctx context.Context, g *generate.Gene... method queueScenesTasks (line 298) | func (j *GenerateJob) queueScenesTasks(ctx context.Context, g *generat... method queueImagesTasks (line 338) | func (j *GenerateJob) queueImagesTasks(ctx context.Context, g *generat... method queueSceneJobs (line 413) | func (j *GenerateJob) queueSceneJobs(ctx context.Context, g *generate.... method queueMarkerJob (line 545) | func (j *GenerateJob) queueMarkerJob(g *generate.Generator, marker *mo... method queueImageJob (line 561) | func (j *GenerateJob) queueImageJob(g *generate.Generator, image *mode... type totalsGenerate (line 75) | type totalsGenerate struct function getGeneratePreviewOptions (line 378) | func getGeneratePreviewOptions(optionsInput GeneratePreviewOptionsInput)... FILE: internal/manager/task_generate_clip_preview.go type GenerateClipPreviewTask (line 13) | type GenerateClipPreviewTask struct method GetDescription (line 18) | func (t *GenerateClipPreviewTask) GetDescription() string { method Start (line 22) | func (t *GenerateClipPreviewTask) Start(ctx context.Context) { method required (line 45) | func (t *GenerateClipPreviewTask) required() bool { FILE: internal/manager/task_generate_image_phash.go type GenerateImagePhashTask (line 12) | type GenerateImagePhashTask struct method GetDescription (line 18) | func (t *GenerateImagePhashTask) GetDescription() string { method Start (line 22) | func (t *GenerateImagePhashTask) Start(ctx context.Context) { method findExistingPhash (line 67) | func (t *GenerateImagePhashTask) findExistingPhash(ctx context.Context... method required (line 97) | func (t *GenerateImagePhashTask) required() bool { FILE: internal/manager/task_generate_image_thumbnail.go type GenerateImageThumbnailTask (line 15) | type GenerateImageThumbnailTask struct method GetDescription (line 20) | func (t *GenerateImageThumbnailTask) GetDescription() string { method logStderr (line 24) | func (t *GenerateImageThumbnailTask) logStderr(err error) { method Start (line 31) | func (t *GenerateImageThumbnailTask) Start(ctx context.Context) { method required (line 70) | func (t *GenerateImageThumbnailTask) required() bool { FILE: internal/manager/task_generate_interactive_heatmap_speed.go type GenerateInteractiveHeatmapSpeedTask (line 13) | type GenerateInteractiveHeatmapSpeedTask struct method GetDescription (line 20) | func (t *GenerateInteractiveHeatmapSpeedTask) GetDescription() string { method Start (line 24) | func (t *GenerateInteractiveHeatmapSpeedTask) Start(ctx context.Contex... method required (line 64) | func (t *GenerateInteractiveHeatmapSpeedTask) required() bool { method doesHeatmapExist (line 78) | func (t *GenerateInteractiveHeatmapSpeedTask) doesHeatmapExist(sceneCh... FILE: internal/manager/task_generate_markers.go type GenerateMarkersTask (line 14) | type GenerateMarkersTask struct method GetDescription (line 28) | func (t *GenerateMarkersTask) GetDescription() string { method Start (line 38) | func (t *GenerateMarkersTask) Start(ctx context.Context) { method generateSceneMarkers (line 73) | func (t *GenerateMarkersTask) generateSceneMarkers(ctx context.Context) { method generateMarker (line 107) | func (t *GenerateMarkersTask) generateMarker(videoFile *models.VideoFi... method markersNeeded (line 141) | func (t *GenerateMarkersTask) markersNeeded(ctx context.Context) int { method markerExists (line 165) | func (t *GenerateMarkersTask) markerExists(sceneChecksum string, secon... method videoExists (line 177) | func (t *GenerateMarkersTask) videoExists(sceneChecksum string, second... method imageExists (line 188) | func (t *GenerateMarkersTask) imageExists(sceneChecksum string, second... method screenshotExists (line 199) | func (t *GenerateMarkersTask) screenshotExists(sceneChecksum string, s... FILE: internal/manager/task_generate_phash.go type GeneratePhashTask (line 12) | type GeneratePhashTask struct method GetDescription (line 19) | func (t *GeneratePhashTask) GetDescription() string { method Start (line 23) | func (t *GeneratePhashTask) Start(ctx context.Context) { method findExistingPhash (line 68) | func (t *GeneratePhashTask) findExistingPhash(ctx context.Context) (in... method required (line 98) | func (t *GeneratePhashTask) required() bool { FILE: internal/manager/task_generate_preview.go type GeneratePreviewTask (line 13) | type GeneratePreviewTask struct method GetDescription (line 28) | func (t *GeneratePreviewTask) GetDescription() string { method Start (line 32) | func (t *GeneratePreviewTask) Start(ctx context.Context) { method generateVideo (line 58) | func (t *GeneratePreviewTask) generateVideo(videoChecksum string, vide... method generateWebp (line 77) | func (t *GeneratePreviewTask) generateWebp(videoChecksum string) error { method required (line 82) | func (t *GeneratePreviewTask) required() bool { method videoPreviewRequired (line 86) | func (t *GeneratePreviewTask) videoPreviewRequired() bool { method imagePreviewRequired (line 108) | func (t *GeneratePreviewTask) imagePreviewRequired() bool { FILE: internal/manager/task_generate_screenshot.go type GenerateCoverTask (line 12) | type GenerateCoverTask struct method GetDescription (line 19) | func (t *GenerateCoverTask) GetDescription() string { method Start (line 23) | func (t *GenerateCoverTask) Start(ctx context.Context) { method required (line 99) | func (t *GenerateCoverTask) required(ctx context.Context) bool { FILE: internal/manager/task_generate_sprite.go type GenerateSpriteTask (line 12) | type GenerateSpriteTask struct method GetDescription (line 18) | func (t *GenerateSpriteTask) GetDescription() string { method Start (line 22) | func (t *GenerateSpriteTask) Start(ctx context.Context) { method required (line 63) | func (t GenerateSpriteTask) required() bool { method doesSpriteExist (line 76) | func (t *GenerateSpriteTask) doesSpriteExist(sceneChecksum string) bool { FILE: internal/manager/task_identify.go type IdentifyJob (line 23) | type IdentifyJob struct method Execute (line 39) | func (j *IdentifyJob) Execute(ctx context.Context, progress *job.Progr... method identifyAllScenes (line 94) | func (j *IdentifyJob) identifyAllScenes(ctx context.Context, sources [... method identifyScene (line 133) | func (j *IdentifyJob) identifyScene(ctx context.Context, s *models.Sce... method getSources (line 163) | func (j *IdentifyJob) getSources() ([]identify.ScraperSource, error) { method getStashBox (line 213) | func (j *IdentifyJob) getStashBox(src *scraper.Source) (*models.StashB... function CreateIdentifyJob (line 31) | func CreateIdentifyJob(input identify.Options) *IdentifyJob { function resolveStashBox (line 226) | func resolveStashBox(sb []*models.StashBox, source scraper.Source) (*mod... type stashboxSource (line 257) | type stashboxSource struct method ScrapeScenes (line 270) | func (s stashboxSource) ScrapeScenes(ctx context.Context, sceneID int)... method String (line 303) | func (s stashboxSource) String() string { type sceneFingerprintGetter (line 266) | type sceneFingerprintGetter interface type scraperSource (line 307) | type scraperSource struct method ScrapeScenes (line 312) | func (s scraperSource) ScrapeScenes(ctx context.Context, sceneID int) ... method String (line 330) | func (s scraperSource) String() string { FILE: internal/manager/task_import.go type Resetter (line 29) | type Resetter interface type ImportTask (line 33) | type ImportTask struct method GetDescription (line 88) | func (t *ImportTask) GetDescription() string { method Start (line 92) | func (t *ImportTask) Start(ctx context.Context) { method unzipFile (line 140) | func (t *ImportTask) unzipFile() error { method ImportPerformers (line 193) | func (t *ImportTask) ImportPerformers(ctx context.Context) { method ImportStudios (line 234) | func (t *ImportTask) ImportStudios(ctx context.Context) { method importStudio (line 296) | func (t *ImportTask) importStudio(ctx context.Context, studioJSON *jso... method ImportGroups (line 330) | func (t *ImportTask) ImportGroups(ctx context.Context) { method importGroup (line 385) | func (t *ImportTask) importGroup(ctx context.Context, groupJSON *jsons... method ImportFiles (line 423) | func (t *ImportTask) ImportFiles(ctx context.Context) { method importFile (line 485) | func (t *ImportTask) importFile(ctx context.Context, fileJSON jsonsche... method ImportGalleries (line 514) | func (t *ImportTask) ImportGalleries(ctx context.Context) { method ImportTags (line 579) | func (t *ImportTask) ImportTags(ctx context.Context) { method importTag (line 633) | func (t *ImportTask) importTag(ctx context.Context, tagJSON *jsonschem... method ImportScenes (line 666) | func (t *ImportTask) ImportScenes(ctx context.Context) { method ImportImages (line 741) | func (t *ImportTask) ImportImages(ctx context.Context) { method ImportSavedFilters (line 790) | func (t *ImportTask) ImportSavedFilters(ctx context.Context) { method importSavedFilter (line 826) | func (t *ImportTask) importSavedFilter(ctx context.Context, savedFilte... type ImportObjectsInput (line 47) | type ImportObjectsInput struct function CreateImportTask (line 53) | func CreateImportTask(a models.HashAlgorithm, input ImportObjectsInput) ... FILE: internal/manager/task_migrate_hash.go type MigrateHashTask (line 10) | type MigrateHashTask struct method Start (line 16) | func (t *MigrateHashTask) Start() { FILE: internal/manager/task_optimise.go type Optimiser (line 12) | type Optimiser interface type OptimiseDatabaseJob (line 17) | type OptimiseDatabaseJob struct method Execute (line 21) | func (j *OptimiseDatabaseJob) Execute(ctx context.Context, progress *j... FILE: internal/manager/task_plugin.go method RunPluginTask (line 12) | func (s *Manager) RunPluginTask( FILE: internal/manager/task_scan.go type ScanJob (line 32) | type ScanJob struct method Execute (line 43) | func (j *ScanJob) Execute(ctx context.Context, progress *job.Progress)... method runJob (line 97) | func (j *ScanJob) runJob(ctx context.Context, paths []string, nTasks i... method queueFiles (line 133) | func (j *ScanJob) queueFiles(ctx context.Context, paths []string, prog... method queueFileFunc (line 156) | func (j *ScanJob) queueFileFunc(ctx context.Context, f models.FS, zipF... method processQueue (line 266) | func (j *ScanJob) processQueue(ctx context.Context, parallelTasks int,... method processQueueItem (line 300) | func (j *ScanJob) processQueueItem(ctx context.Context, f file.Scanned... method handleFolder (line 315) | func (j *ScanJob) handleFolder(ctx context.Context, f file.ScannedFile... method handleFile (line 328) | func (j *ScanJob) handleFile(ctx context.Context, f file.ScannedFile, ... method scanZipFile (line 403) | func (j *ScanJob) scanZipFile(ctx context.Context, f file.ScannedFile,... constant scanQueueSize (line 131) | scanQueueSize = 200000 type extensionConfig (line 421) | type extensionConfig struct function newExtensionConfig (line 427) | func newExtensionConfig(c *config.Config) extensionConfig { type fileCounter (line 435) | type fileCounter interface type galleryFinder (line 439) | type galleryFinder interface type sceneFinder (line 444) | type sceneFinder interface type handlerRequiredFilter (line 450) | type handlerRequiredFilter struct method Accept (line 476) | func (f *handlerRequiredFilter) Accept(ctx context.Context, ff models.... function newHandlerRequiredFilter (line 462) | func newHandlerRequiredFilter(c *config.Config, repo models.Repository) ... type scanFilter (line 548) | type scanFilter struct method Accept (line 573) | func (f *scanFilter) Accept(ctx context.Context, path string, info fs.... function newScanFilter (line 560) | func newScanFilter(c *config.Config, repo models.Repository, minModTime ... type scanConfig (line 630) | type scanConfig struct method GetCreateGalleriesFromFolders (line 637) | func (c *scanConfig) GetCreateGalleriesFromFolders() bool { function videoFileFilter (line 641) | func videoFileFilter(ctx context.Context, f models.File) bool { function imageFileFilter (line 645) | func imageFileFilter(ctx context.Context, f models.File) bool { function galleryFileFilter (line 649) | func galleryFileFilter(ctx context.Context, f models.File) bool { function getScanHandlers (line 653) | func getScanHandlers(options ScanMetadataInput, taskQueue *job.TaskQueue... type imageGenerators (line 713) | type imageGenerators struct method Generate (line 722) | func (g *imageGenerators) Generate(ctx context.Context, i *models.Imag... type sceneGenerators (line 791) | type sceneGenerators struct method Generate (line 801) | func (g *sceneGenerators) Generate(ctx context.Context, s *models.Scen... FILE: internal/manager/task_stash_box_tag.go type stashBoxBatchPerformerTagTask (line 23) | type stashBoxBatchPerformerTagTask struct method getName (line 31) | func (t *stashBoxBatchPerformerTagTask) getName() string { method Start (line 44) | func (t *stashBoxBatchPerformerTagTask) Start(ctx context.Context) { method GetDescription (line 63) | func (t *stashBoxBatchPerformerTagTask) GetDescription() string { method findStashBoxPerformer (line 67) | func (t *stashBoxBatchPerformerTagTask) findStashBoxPerformer(ctx cont... method handleMergedPerformer (line 144) | func (t *stashBoxBatchPerformerTagTask) handleMergedPerformer(ctx cont... method processMatchedPerformer (line 159) | func (t *stashBoxBatchPerformerTagTask) processMatchedPerformer(ctx co... type stashBoxBatchStudioTagTask (line 256) | type stashBoxBatchStudioTagTask struct method getName (line 265) | func (t *stashBoxBatchStudioTagTask) getName() string { method Start (line 278) | func (t *stashBoxBatchStudioTagTask) Start(ctx context.Context) { method GetDescription (line 303) | func (t *stashBoxBatchStudioTagTask) GetDescription() string { method findStashBoxStudio (line 307) | func (t *stashBoxBatchStudioTagTask) findStashBoxStudio(ctx context.Co... method processMatchedStudio (line 362) | func (t *stashBoxBatchStudioTagTask) processMatchedStudio(ctx context.... method processParentStudio (line 455) | func (t *stashBoxBatchStudioTagTask) processParentStudio(ctx context.C... type stashBoxBatchTagTagTask (line 539) | type stashBoxBatchTagTagTask struct method getName (line 548) | func (t *stashBoxBatchTagTagTask) getName() string { method Start (line 561) | func (t *stashBoxBatchTagTagTask) Start(ctx context.Context) { method GetDescription (line 580) | func (t *stashBoxBatchTagTagTask) GetDescription() string { method findStashBoxTag (line 584) | func (t *stashBoxBatchTagTagTask) findStashBoxTag(ctx context.Context)... method processParentTag (line 642) | func (t *stashBoxBatchTagTagTask) processParentTag(ctx context.Context... method processMatchedTag (line 675) | func (t *stashBoxBatchTagTagTask) processMatchedTag(ctx context.Contex... FILE: internal/manager/task_transcode.go type GenerateTranscodeTask (line 14) | type GenerateTranscodeTask struct method GetDescription (line 25) | func (t *GenerateTranscodeTask) GetDescription() string { method Start (line 29) | func (t *GenerateTranscodeTask) Start(ctx context.Context) { method required (line 107) | func (t *GenerateTranscodeTask) required() bool { FILE: internal/static/embed.go constant Performer (line 15) | Performer = "performer" constant PerformerMale (line 16) | PerformerMale = "performer_male" constant DefaultSFWPerformerImage (line 17) | DefaultSFWPerformerImage = "performer_sfw/performer.svg" constant Scene (line 19) | Scene = "scene" constant DefaultSceneImage (line 20) | DefaultSceneImage = "scene/scene.svg" constant Image (line 22) | Image = "image" constant DefaultImageImage (line 23) | DefaultImageImage = "image/image.svg" constant Gallery (line 25) | Gallery = "gallery" constant DefaultGalleryImage (line 26) | DefaultGalleryImage = "gallery/gallery.svg" constant Tag (line 28) | Tag = "tag" constant DefaultTagImage (line 29) | DefaultTagImage = "tag/tag.svg" constant Studio (line 31) | Studio = "studio" constant DefaultStudioImage (line 32) | DefaultStudioImage = "studio/studio.svg" constant Group (line 34) | Group = "group" constant DefaultGroupImage (line 35) | DefaultGroupImage = "group/group.svg" function Sub (line 40) | func Sub(path string) fs.FS { function Open (line 50) | func Open(path string) fs.File { function ReadAll (line 60) | func ReadAll(path string) []byte { FILE: pkg/exec/command.go function Command (line 10) | func Command(name string, arg ...string) *exec.Cmd { function CommandContext (line 17) | func CommandContext(ctx context.Context, name string, arg ...string) *ex... FILE: pkg/exec/shell_nonwindows.go function hideExecShell (line 9) | func hideExecShell(cmd *exec.Cmd) { FILE: pkg/exec/shell_windows.go function hideExecShell (line 14) | func hideExecShell(cmd *exec.Cmd) { FILE: pkg/ffmpeg/browser.go function IsStreamable (line 37) | func IsStreamable(videoCodec string, audioCodec ProbeAudioCodec, contain... function isValidCodec (line 56) | func isValidCodec(codecName string, supportedCodecs []string) bool { function isValidAudio (line 65) | func isValidAudio(audio ProbeAudioCodec, validCodecs []ProbeAudioCodec) ... function IsValidAudioForContainer (line 82) | func IsValidAudioForContainer(audio ProbeAudioCodec, format Container) b... function isValidCombo (line 96) | func isValidCombo(codecName string, format Container, supportedVideoCode... function isValidForContainer (line 129) | func isValidForContainer(format Container, validContainers []Container) ... FILE: pkg/ffmpeg/codec.go type VideoCodec (line 3) | type VideoCodec struct method Args (line 12) | func (c VideoCodec) Args() []string { function makeVideoCodec (line 8) | func makeVideoCodec(name string, codename string) VideoCodec { type AudioCodec (line 32) | type AudioCodec method Args (line 34) | func (c AudioCodec) Args() []string { FILE: pkg/ffmpeg/codec_hardware.go constant minHeight (line 35) | minHeight int = 480 method InitHWSupport (line 38) | func (f *FFMpeg) InitHWSupport(ctx context.Context) { method initHWSupport (line 64) | func (f *FFMpeg) initHWSupport(ctx context.Context) { method hwCanFullHWTranscode (line 147) | func (f *FFMpeg) hwCanFullHWTranscode(ctx context.Context, codec VideoCo... method hwDeviceInit (line 187) | func (f *FFMpeg) hwDeviceInit(args Args, toCodec VideoCodec, fullhw bool... method hwFilterInit (line 254) | func (f *FFMpeg) hwFilterInit(toCodec VideoCodec, fullhw bool) VideoFilt... function templateReplaceScale (line 295) | func templateReplaceScale(input string, template string, match []int, vf... method hwCodecFilter (line 339) | func (f *FFMpeg) hwCodecFilter(args VideoFilter, codec VideoCodec, vf *m... method hwApplyFullHWFilter (line 351) | func (f *FFMpeg) hwApplyFullHWFilter(args VideoFilter, codec VideoCodec,... method hwApplyScaleTemplate (line 377) | func (f *FFMpeg) hwApplyScaleTemplate(sargs string, codec VideoCodec, ma... method hwCodecMaxRes (line 419) | func (f *FFMpeg) hwCodecMaxRes(codec VideoCodec) (int, int) { method hwMaxResFilter (line 434) | func (f *FFMpeg) hwMaxResFilter(toCodec VideoCodec, vf *models.VideoFile... method hwCodecHLSCompatible (line 445) | func (f *FFMpeg) hwCodecHLSCompatible() *VideoCodec { method hwCodecMP4Compatible (line 463) | func (f *FFMpeg) hwCodecMP4Compatible() *VideoCodec { method hwCodecWEBMCompatible (line 479) | func (f *FFMpeg) hwCodecWEBMCompatible() *VideoCodec { FILE: pkg/ffmpeg/container.go type Container (line 3) | type Container type ProbeAudioCodec (line 4) | type ProbeAudioCodec constant Mp4 (line 7) | Mp4 Container = "mp4" constant M4v (line 8) | M4v Container = "m4v" constant Mov (line 9) | Mov Container = "mov" constant Wmv (line 10) | Wmv Container = "wmv" constant Webm (line 11) | Webm Container = "webm" constant Matroska (line 12) | Matroska Container = "matroska" constant Avi (line 13) | Avi Container = "avi" constant Flv (line 14) | Flv Container = "flv" constant Mpegts (line 15) | Mpegts Container = "mpegts" constant Aac (line 17) | Aac ProbeAudioCodec = "aac" constant Mp3 (line 18) | Mp3 ProbeAudioCodec = "mp3" constant Opus (line 19) | Opus ProbeAudioCodec = "opus" constant Vorbis (line 20) | Vorbis ProbeAudioCodec = "vorbis" constant MissingUnsupported (line 21) | MissingUnsupported ProbeAudioCodec = "" constant Mp4Ffmpeg (line 23) | Mp4Ffmpeg string = "mov,mp4,m4a,3gp,3g2,mj2" constant M4vFfmpeg (line 24) | M4vFfmpeg string = "mov,mp4,m4a,3gp,3g2,mj2" constant MovFfmpeg (line 25) | MovFfmpeg string = "mov,mp4,m4a,3gp,3g2,mj2" constant WmvFfmpeg (line 26) | WmvFfmpeg string = "asf" constant WebmFfmpeg (line 27) | WebmFfmpeg string = "matroska,webm" constant MatroskaFfmpeg (line 28) | MatroskaFfmpeg string = "matroska,webm" constant AviFfmpeg (line 29) | AviFfmpeg string = "avi" constant FlvFfmpeg (line 30) | FlvFfmpeg string = "flv" constant MpegtsFfmpeg (line 31) | MpegtsFfmpeg string = "mpegts" constant H264 (line 32) | H264 string = "h264" constant H265 (line 33) | H265 string = "h265" constant Hevc (line 34) | Hevc string = "hevc" constant Vp8 (line 35) | Vp8 string = "vp8" constant Vp9 (line 36) | Vp9 string = "vp9" constant Mkv (line 37) | Mkv string = "mkv" constant Hls (line 38) | Hls string = "hls" function MatchContainer (line 50) | func MatchContainer(format string, filePath string) (Container, error) {... FILE: pkg/ffmpeg/downloader.go function GetFFmpegURL (line 7) | func GetFFmpegURL() []string { function getFFMpegFilename (line 29) | func getFFMpegFilename() string { function getFFProbeFilename (line 36) | func getFFProbeFilename() string { FILE: pkg/ffmpeg/ffmpeg.go function ffmpegHelp (line 20) | func ffmpegHelp(ffmpegPath string) (string, error) { function ValidateFFMpeg (line 36) | func ValidateFFMpeg(ffmpegPath string) error { function ValidateFFMpegCodecSupport (line 41) | func ValidateFFMpegCodecSupport(ffmpegPath string) error { function LookPathFFMpeg (line 72) | func LookPathFFMpeg() string { function FindFFMpeg (line 86) | func FindFFMpeg(path string) string { function ResolveFFMpeg (line 104) | func ResolveFFMpeg(path string, fallbackPath string) string { type Version (line 194) | type Version struct method Gteq (line 201) | func (v Version) Gteq(other Version) bool { method String (line 214) | func (v Version) String() string { type FFMpeg (line 219) | type FFMpeg struct method getVersion (line 151) | func (f *FFMpeg) getVersion() error { method Command (line 239) | func (f *FFMpeg) Command(ctx context.Context, args []string) *exec.Cmd { method Path (line 243) | func (f *FFMpeg) Path() string { method getHWCodecSupport (line 247) | func (f *FFMpeg) getHWCodecSupport() []VideoCodec { function NewEncoder (line 227) | func NewEncoder(ffmpegPath string) *FFMpeg { FILE: pkg/ffmpeg/ffmpeg_test.go function TestFFMpegVersion_GreaterThan (line 6) | func TestFFMpegVersion_GreaterThan(t *testing.T) { FILE: pkg/ffmpeg/ffprobe.go constant minimumFFProbeVersion (line 21) | minimumFFProbeVersion = 5 function ValidateFFProbe (line 23) | func ValidateFFProbe(ffprobePath string) error { function LookPathFFProbe (line 39) | func LookPathFFProbe() string { function FindFFProbe (line 52) | func FindFFProbe(path string) string { function ResolveFFProbe (line 68) | func ResolveFFProbe(path string, fallbackPath string) string { type VideoFile (line 87) | type VideoFile struct method TranscodeScale (line 121) | func (v *VideoFile) TranscodeScale(maxSize int) (int, int) { method getAudioStream (line 368) | func (v *VideoFile) getAudioStream() *FFProbeStream { method getVideoStream (line 376) | func (v *VideoFile) getVideoStream() *FFProbeStream { method getStreamIndex (line 384) | func (v *VideoFile) getStreamIndex(fileType string, probeJSON FFProbeJ... type FFProbe (line 146) | type FFProbe struct method Path (line 151) | func (f *FFProbe) Path() string { method getVersion (line 157) | func (f *FFProbe) getVersion() error { method NewVideoFile (line 216) | func (f *FFProbe) NewVideoFile(videoPath string) (*VideoFile, error) { method GetReadFrameCount (line 250) | func (f *FFProbe) GetReadFrameCount(path string) (int64, error) { function NewFFProbe (line 200) | func NewFFProbe(path string) *FFProbe { function parse (line 267) | func parse(filePath string, probeJSON *FFProbeJSON) (*VideoFile, error) { function isRotated (line 349) | func isRotated(s *FFProbeStream) bool { FILE: pkg/ffmpeg/filter.go type VideoFilter (line 8) | type VideoFilter method Args (line 12) | func (f VideoFilter) Args() []string { method ScaleWidth (line 21) | func (f VideoFilter) ScaleWidth(w int) VideoFilter { method ScaleHeight (line 25) | func (f VideoFilter) ScaleHeight(h int) VideoFilter { method ScaleDimensions (line 30) | func (f VideoFilter) ScaleDimensions(w, h int) VideoFilter { method ScaleMaxSize (line 35) | func (f VideoFilter) ScaleMaxSize(maxDimensions int) VideoFilter { method ScaleMax (line 40) | func (f VideoFilter) ScaleMax(inputWidth, inputHeight, maxSize int) Vi... method ScaleMaxLM (line 63) | func (f VideoFilter) ScaleMaxLM(width int, height int, reqHeight int, ... method Fps (line 87) | func (f VideoFilter) Fps(fps int) VideoFilter { method Select (line 92) | func (f VideoFilter) Select(frame int) VideoFilter { method Append (line 97) | func (f VideoFilter) Append(s string) VideoFilter { FILE: pkg/ffmpeg/format.go type Format (line 4) | type Format method Args (line 7) | func (f Format) Args() []string { type ImageFormat (line 26) | type ImageFormat method Args (line 29) | func (f ImageFormat) Args() []string { FILE: pkg/ffmpeg/frame_rate.go type FrameInfo (line 12) | type FrameInfo struct method CalculateFrameRate (line 19) | func (f *FFMpeg) CalculateFrameRate(ctx context.Context, v *VideoFile) (... function getTimeFromRegex (line 49) | func getTimeFromRegex(str string) float64 { function getFrameFromRegex (line 66) | func getFrameFromRegex(str string) int { FILE: pkg/ffmpeg/generate.go method Generate (line 16) | func (f *FFMpeg) Generate(ctx context.Context, args Args) error { method GenerateOutput (line 39) | func (f *FFMpeg) GenerateOutput(ctx context.Context, args []string, stdi... FILE: pkg/ffmpeg/media_detection.go function mkv (line 11) | func mkv(buf []byte) bool { function webm (line 18) | func webm(buf []byte) bool { function containsMatroskaSignature (line 25) | func containsMatroskaSignature(buf, subType []byte) bool { function magicContainer (line 43) | func magicContainer(filePath string) (Container, error) { FILE: pkg/ffmpeg/options.go type Arger (line 9) | type Arger interface type Args (line 14) | type Args method LogLevel (line 17) | func (a Args) LogLevel(l LogLevel) Args { method XError (line 26) | func (a Args) XError() Args { method Overwrite (line 31) | func (a Args) Overwrite() Args { method Seek (line 36) | func (a Args) Seek(seconds float64) Args { method Duration (line 41) | func (a Args) Duration(seconds float64) Args { method Input (line 46) | func (a Args) Input(i string) Args { method Output (line 51) | func (a Args) Output(o string) Args { method NullOutput (line 57) | func (a Args) NullOutput() Args { method VideoFrames (line 69) | func (a Args) VideoFrames(f int) Args { method FixedQualityScaleVideo (line 74) | func (a Args) FixedQualityScaleVideo(q int) Args { method VideoFilter (line 79) | func (a Args) VideoFilter(vf VideoFilter) Args { method VSync (line 84) | func (a Args) VSync(m VSyncMethod) Args { method AudioBitrate (line 89) | func (a Args) AudioBitrate(b string) Args { method MaxMuxingQueueSize (line 94) | func (a Args) MaxMuxingQueueSize(s int) Args { method SkipAudio (line 100) | func (a Args) SkipAudio() Args { method VideoCodec (line 105) | func (a Args) VideoCodec(c VideoCodec) Args { method AudioCodec (line 110) | func (a Args) AudioCodec(c AudioCodec) Args { method Format (line 115) | func (a Args) Format(f Format) Args { method ImageFormat (line 120) | func (a Args) ImageFormat(f ImageFormat) Args { method AppendArgs (line 125) | func (a Args) AppendArgs(o Arger) Args { method Args (line 130) | func (a Args) Args() []string { type LogLevel (line 135) | type LogLevel method Args (line 138) | func (l LogLevel) Args() []string { type VSyncMethod (line 160) | type VSyncMethod method Args (line 163) | func (m VSyncMethod) Args() []string { FILE: pkg/ffmpeg/stream.go constant MimeWebmVideo (line 15) | MimeWebmVideo string = "video/webm" constant MimeWebmAudio (line 16) | MimeWebmAudio string = "audio/webm" constant MimeMkvVideo (line 17) | MimeMkvVideo string = "video/x-matroska" constant MimeMkvAudio (line 18) | MimeMkvAudio string = "audio/x-matroska" constant MimeMp4Video (line 19) | MimeMp4Video string = "video/mp4" constant MimeMp4Audio (line 20) | MimeMp4Audio string = "audio/mp4" type StreamManager (line 23) | type StreamManager struct method Shutdown (line 78) | func (sm *StreamManager) Shutdown() { type StreamManagerConfig (line 38) | type StreamManagerConfig interface function NewStreamManager (line 45) | func NewStreamManager(cacheDir string, encoder *FFMpeg, ffprobe *FFProbe... type StreamRequestContext (line 83) | type StreamRequestContext struct method Cancel (line 95) | func (c *StreamRequestContext) Cancel() { function NewStreamRequestContext (line 88) | func NewStreamRequestContext(w http.ResponseWriter, r *http.Request) *St... FILE: pkg/ffmpeg/stream_segmented.go constant MimeHLS (line 29) | MimeHLS string = "application/vnd.apple.mpegurl" constant MimeMpegTS (line 30) | MimeMpegTS string = "video/MP2T" constant MimeDASH (line 31) | MimeDASH string = "application/dash+xml" constant segmentLength (line 33) | segmentLength = 2 constant maxSegmentWait (line 35) | maxSegmentWait = 15 * time.Second constant monitorInterval (line 36) | monitorInterval = 200 * time.Millisecond constant maxSegmentGap (line 40) | maxSegmentGap = 5 constant maxSegmentBuffer (line 44) | maxSegmentBuffer = 15 constant maxIdleTime (line 48) | maxIdleTime = 30 * time.Second constant resolutionParamKey (line 50) | resolutionParamKey = "resolution" constant apiKeyParamKey (line 52) | apiKeyParamKey = "apikey" type StreamType (line 55) | type StreamType struct method String (line 298) | func (t StreamType) String() string { method FileDir (line 302) | func (t StreamType) FileDir(hash string, maxTranscodeSize int) string { type SegmentType (line 187) | type SegmentType struct type StreamOptions (line 257) | type StreamOptions struct type transcodeProcess (line 265) | type transcodeProcess struct method checkSegments (line 362) | func (tp *transcodeProcess) checkSegments() { type waitingSegment (line 275) | type waitingSegment struct method checkAvailable (line 813) | func (s *waitingSegment) checkAvailable(now time.Time) bool { type runningStream (line 285) | type runningStream struct method makeStreamArgs (line 329) | func (s *runningStream) makeStreamArgs(sm *StreamManager, segment int)... function HLSGetCodec (line 310) | func HLSGetCodec(sm *StreamManager, name string) (codec VideoCodec) { function lastSegment (line 404) | func lastSegment(vf *models.VideoFile) int { function segmentExists (line 408) | func segmentExists(path string) bool { function serveHLSManifest (line 415) | func serveHLSManifest(sm *StreamManager, w http.ResponseWriter, r *http.... function serveDASHManifest (line 484) | func serveDASHManifest(sm *StreamManager, w http.ResponseWriter, r *http... method ServeManifest (line 588) | func (sm *StreamManager) ServeManifest(w http.ResponseWriter, r *http.Re... method serveWaitingSegment (line 592) | func (sm *StreamManager) serveWaitingSegment(w http.ResponseWriter, r *h... method ServeSegment (line 608) | func (sm *StreamManager) ServeSegment(w http.ResponseWriter, r *http.Req... method startTranscode (line 679) | func (sm *StreamManager) startTranscode(stream *runningStream, segment i... method stopTranscode (line 778) | func (sm *StreamManager) stopTranscode(stream *runningStream) { method checkTranscode (line 786) | func (sm *StreamManager) checkTranscode(stream *runningStream, now time.... method ensureTranscode (line 828) | func (sm *StreamManager) ensureTranscode(stream *runningStream, segment ... method monitorStreams (line 844) | func (sm *StreamManager) monitorStreams() { method removeTranscodeFiles (line 877) | func (sm *StreamManager) removeTranscodeFiles(stream *runningStream) { method stopAndRemoveAll (line 885) | func (sm *StreamManager) stopAndRemoveAll() { FILE: pkg/ffmpeg/stream_transcode.go type StreamFormat (line 17) | type StreamFormat struct function CodecInit (line 22) | func CodecInit(codec VideoCodec) (args Args) { type TranscodeOptions (line 145) | type TranscodeOptions struct method FileGetCodec (line 152) | func (o TranscodeOptions) FileGetCodec(sm *StreamManager, maxTranscode... method makeStreamArgs (line 187) | func (o TranscodeOptions) makeStreamArgs(sm *StreamManager) Args { method ServeTranscode (line 223) | func (sm *StreamManager) ServeTranscode(w http.ResponseWriter, r *http.R... method getTranscodeStream (line 248) | func (sm *StreamManager) getTranscodeStream(ctx *fsutil.LockContext, opt... FILE: pkg/ffmpeg/transcoder/image.go type ImageThumbnailOptions (line 11) | type ImageThumbnailOptions struct function ImageThumbnail (line 19) | func ImageThumbnail(input string, options ImageThumbnailOptions) ffmpeg.... FILE: pkg/ffmpeg/transcoder/screenshot.go type ScreenshotOptions (line 5) | type ScreenshotOptions struct method setDefaults (line 24) | func (o *ScreenshotOptions) setDefaults() { type ScreenshotOutputType (line 30) | type ScreenshotOutputType struct method Args (line 35) | func (t ScreenshotOutputType) Args() []string { function ScreenshotTime (line 57) | func ScreenshotTime(input string, t float64, options ScreenshotOptions) ... function ScreenshotFrame (line 90) | func ScreenshotFrame(input string, frame int, options ScreenshotOptions)... FILE: pkg/ffmpeg/transcoder/splice.go type SpliceOptions (line 10) | type SpliceOptions struct method setDefaults (line 24) | func (o *SpliceOptions) setDefaults() { function fixWindowsPath (line 31) | func fixWindowsPath(str string) string { function Splice (line 38) | func Splice(concatFile string, options SpliceOptions) ffmpeg.Args { FILE: pkg/ffmpeg/transcoder/transcode.go type TranscodeOptions (line 5) | type TranscodeOptions struct method setDefaults (line 31) | func (o *TranscodeOptions) setDefaults() { function Transcode (line 37) | func Transcode(input string, options TranscodeOptions) ffmpeg.Args { FILE: pkg/ffmpeg/types.go type FFProbeJSON (line 8) | type FFProbeJSON struct type FFProbeStream (line 38) | type FFProbeStream struct FILE: pkg/file/clean.go type Cleaner (line 17) | type Cleaner struct method Clean (line 50) | func (s *Cleaner) Clean(ctx context.Context, options CleanOptions, pro... type cleanJob (line 25) | type cleanJob struct method execute (line 110) | func (j *cleanJob) execute(ctx context.Context) error { method assessFiles (line 175) | func (j *cleanJob) assessFiles(ctx context.Context, toDelete *deleteSe... method flagFileForDelete (line 235) | func (j *cleanJob) flagFileForDelete(ctx context.Context, toDelete *de... method assessFolders (line 264) | func (j *cleanJob) assessFolders(ctx context.Context, toDelete *delete... method flagFolderForDelete (line 324) | func (j *cleanJob) flagFolderForDelete(ctx context.Context, toDelete *... method shouldClean (line 343) | func (j *cleanJob) shouldClean(ctx context.Context, f models.File) bool { method shouldCleanFolder (line 371) | func (j *cleanJob) shouldCleanFolder(ctx context.Context, f *models.Fo... method deleteFile (line 416) | func (j *cleanJob) deleteFile(ctx context.Context, fileID models.FileI... method deleteFolder (line 434) | func (j *cleanJob) deleteFolder(ctx context.Context, folderID models.F... method fireHandlers (line 452) | func (j *cleanJob) fireHandlers(ctx context.Context, fileDeleter *Dele... method fireFolderHandlers (line 462) | func (j *cleanJob) fireFolderHandlers(ctx context.Context, fileDeleter... type CleanOptions (line 33) | type CleanOptions struct type fileOrFolder (line 63) | type fileOrFolder struct type deleteSet (line 68) | type deleteSet struct method add (line 82) | func (s *deleteSet) add(id models.FileID, path string) { method has (line 89) | func (s *deleteSet) has(id models.FileID) bool { method addFolder (line 94) | func (s *deleteSet) addFolder(id models.FolderID, path string) { method hasFolder (line 101) | func (s *deleteSet) hasFolder(id models.FolderID) bool { method len (line 106) | func (s *deleteSet) len() int { function newDeleteSet (line 75) | func newDeleteSet() deleteSet { function isNotFound (line 332) | func isNotFound(err error) bool { FILE: pkg/file/delete.go constant deleteFileSuffix (line 16) | deleteFileSuffix = ".delete" type RenamerRemover (line 19) | type RenamerRemover interface type renamerRemoverImpl (line 26) | type renamerRemoverImpl struct method Rename (line 33) | func (r renamerRemoverImpl) Rename(oldpath, newpath string) error { method Remove (line 37) | func (r renamerRemoverImpl) Remove(name string) error { method RemoveAll (line 41) | func (r renamerRemoverImpl) RemoveAll(path string) error { method Stat (line 45) | func (r renamerRemoverImpl) Stat(path string) (fs.FileInfo, error) { function newRenamerRemoverImpl (line 49) | func newRenamerRemoverImpl() renamerRemoverImpl { type Deleter (line 67) | type Deleter struct method RegisterHooks (line 92) | func (d *Deleter) RegisterHooks(ctx context.Context) { method Files (line 107) | func (d *Deleter) Files(paths []string) error { method FilesWithoutTrash (line 114) | func (d *Deleter) FilesWithoutTrash(paths []string) error { method filesInternal (line 118) | func (d *Deleter) filesInternal(paths []string, bypassTrash bool) error { method Dirs (line 144) | func (d *Deleter) Dirs(paths []string) error { method DirsWithoutTrash (line 151) | func (d *Deleter) DirsWithoutTrash(paths []string) error { method dirsInternal (line 155) | func (d *Deleter) dirsInternal(paths []string, bypassTrash bool) error { method Rollback (line 179) | func (d *Deleter) Rollback() { method Commit (line 196) | func (d *Deleter) Commit() { method renameForDelete (line 220) | func (d *Deleter) renameForDelete(path string, bypassTrash bool) error { method renameForRestore (line 236) | func (d *Deleter) renameForRestore(path string) error { function NewDeleter (line 75) | func NewDeleter() *Deleter { function NewDeleterWithTrash (line 83) | func NewDeleterWithTrash(trashPath string) *Deleter { function Destroy (line 250) | func Destroy(ctx context.Context, destroyer models.FileDestroyer, f mode... type ZipDestroyer (line 265) | type ZipDestroyer struct method DestroyZip (line 270) | func (d *ZipDestroyer) DestroyZip(ctx context.Context, f models.File, ... FILE: pkg/file/file.go type Repository (line 16) | type Repository struct method WithTxn (line 31) | func (r *Repository) WithTxn(ctx context.Context, fn txn.TxnFunc) error { method WithReadTxn (line 35) | func (r *Repository) WithReadTxn(ctx context.Context, fn txn.TxnFunc) ... method WithDB (line 39) | func (r *Repository) WithDB(ctx context.Context, fn txn.TxnFunc) error { function NewRepository (line 23) | func NewRepository(repo models.Repository) Repository { function ModTime (line 44) | func ModTime(info fs.FileInfo) time.Time { function GetFileSize (line 50) | func GetFileSize(f models.FS, path string, info fs.FileInfo) (int64, err... FILE: pkg/file/folder.go function GetOrCreateFolderHierarchy (line 18) | func GetOrCreateFolderHierarchy(ctx context.Context, fc models.FolderFin... type zipHierarchyMover (line 72) | type zipHierarchyMover struct method transferZipHierarchy (line 78) | func (m zipHierarchyMover) transferZipHierarchy(ctx context.Context, z... method transferZipFolderHierarchy (line 92) | func (m zipHierarchyMover) transferZipFolderHierarchy(ctx context.Cont... method transferZipFileEntries (line 135) | func (m zipHierarchyMover) transferZipFileEntries(ctx context.Context,... FILE: pkg/file/folder_rename_detect.go type folderRenameCandidate (line 12) | type folderRenameCandidate struct type folderRenameDetector (line 18) | type folderRenameDetector struct method isReject (line 25) | func (d *folderRenameDetector) isReject(id models.FolderID) bool { method getCandidate (line 30) | func (d *folderRenameDetector) getCandidate(id models.FolderID) *folde... method setCandidate (line 39) | func (d *folderRenameDetector) setCandidate(c folderRenameCandidate) { method reject (line 43) | func (d *folderRenameDetector) reject(id models.FolderID) { method bestCandidate (line 50) | func (d *folderRenameDetector) bestCandidate() *models.Folder { method detectFolderMove (line 77) | func (s *Scanner) detectFolderMove(ctx context.Context, file ScannedFile... FILE: pkg/file/fs.go type Opener (line 13) | type Opener interface type fsOpener (line 17) | type fsOpener struct method Open (line 22) | func (o *fsOpener) Open() (io.ReadCloser, error) { type OsFS (line 27) | type OsFS struct method Create (line 29) | func (f *OsFS) Create(name string) (*os.File, error) { method MkdirAll (line 33) | func (f *OsFS) MkdirAll(path string, perm fs.FileMode) error { method Remove (line 37) | func (f *OsFS) Remove(name string) error { method Rename (line 41) | func (f *OsFS) Rename(oldpath, newpath string) error { method RemoveAll (line 45) | func (f *OsFS) RemoveAll(path string) error { method Stat (line 49) | func (f *OsFS) Stat(name string) (fs.FileInfo, error) { method Lstat (line 53) | func (f *OsFS) Lstat(name string) (fs.FileInfo, error) { method Open (line 57) | func (f *OsFS) Open(name string) (fs.ReadDirFile, error) { method OpenZip (line 61) | func (f *OsFS) OpenZip(name string, size int64) (models.ZipFS, error) { method IsPathCaseSensitive (line 65) | func (f *OsFS) IsPathCaseSensitive(path string) (bool, error) { FILE: pkg/file/handler.go type PathFilter (line 11) | type PathFilter interface type PathFilterFunc (line 15) | type PathFilterFunc method Accept (line 17) | func (pff PathFilterFunc) Accept(path string) bool { type Filter (line 22) | type Filter interface type FilterFunc (line 26) | type FilterFunc method Accept (line 28) | func (ff FilterFunc) Accept(ctx context.Context, f models.File) bool { type Handler (line 33) | type Handler interface type FilteredHandler (line 38) | type FilteredHandler struct method Handle (line 44) | func (h *FilteredHandler) Handle(ctx context.Context, f models.File, o... type CleanHandler (line 52) | type CleanHandler interface FILE: pkg/file/image/orientation.go function adjustForOrientation (line 14) | func adjustForOrientation(fs models.FS, path string, f *models.ImageFile) { function areDimensionsFlipped (line 28) | func areDimensionsFlipped(fs models.FS, path string) (bool, error) { function isOrientationDimensionsFlipped (line 69) | func isOrientationDimensionsFlipped(o int) bool { FILE: pkg/file/image/scan.go type Decorator (line 26) | type Decorator struct method Decorate (line 30) | func (d *Decorator) Decorate(ctx context.Context, fs models.FS, f mode... method IsMissingMetadata (line 140) | func (d *Decorator) IsMissingMetadata(ctx context.Context, fs models.F... function decodeConfig (line 103) | func decodeConfig(fs models.FS, path string) (config image.Config, forma... function decorateFallback (line 119) | func decorateFallback(fs models.FS, f models.File) (models.File, error) { FILE: pkg/file/import.go type Importer (line 16) | type Importer struct method PreImport (line 25) | func (i *Importer) PreImport(ctx context.Context) error { method folderJSONToFolder (line 38) | func (i *Importer) folderJSONToFolder(ctx context.Context, baseJSON *j... method fileJSONToFile (line 57) | func (i *Importer) fileJSONToFile(ctx context.Context, fileJSON jsonsc... method baseFileJSONToBaseFile (line 95) | func (i *Importer) baseFileJSONToBaseFile(ctx context.Context, baseJSO... method populateZipFileID (line 120) | func (i *Importer) populateZipFileID(ctx context.Context, f *models.Di... method PostImport (line 139) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 143) | func (i *Importer) Name() string { method FindExistingID (line 147) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method createFolderHierarchy (line 162) | func (i *Importer) createFolderHierarchy(ctx context.Context, p string... method getOrCreateFolder (line 178) | func (i *Importer) getOrCreateFolder(ctx context.Context, path string,... method Create (line 208) | func (i *Importer) Create(ctx context.Context) (*int, error) { method createFile (line 224) | func (i *Importer) createFile(ctx context.Context, parentFolder *model... method createFolder (line 237) | func (i *Importer) createFolder(ctx context.Context, parentFolder *mod... method Update (line 250) | func (i *Importer) Update(ctx context.Context, id int) error { FILE: pkg/file/move.go type Renamer (line 17) | type Renamer interface type Statter (line 21) | type Statter interface type DirMakerStatRenamer (line 25) | type DirMakerStatRenamer interface type folderCreatorStatRenamerImpl (line 32) | type folderCreatorStatRenamerImpl struct method Mkdir (line 37) | func (r folderCreatorStatRenamerImpl) Mkdir(name string, perm os.FileM... type Mover (line 41) | type Mover struct method Move (line 67) | func (m *Mover) Move(ctx context.Context, f models.File, folder *model... method CreateFolderHierarchy (line 117) | func (m *Mover) CreateFolderHierarchy(path string) error { method moveFile (line 145) | func (m *Mover) moveFile(oldPath, newPath string) error { method RegisterHooks (line 159) | func (m *Mover) RegisterHooks(ctx context.Context) { method commit (line 169) | func (m *Mover) commit() { method rollback (line 174) | func (m *Mover) rollback() { function NewMover (line 53) | func NewMover(fileStore models.FileFinderUpdater, folderStore models.Fol... function correctSubFolderHierarchy (line 193) | func correctSubFolderHierarchy(ctx context.Context, rw models.FolderRead... FILE: pkg/file/scan.go type Scanner (line 43) | type Scanner struct method AcceptEntry (line 114) | func (s *Scanner) AcceptEntry(ctx context.Context, path string, info f... method getFolderID (line 128) | func (s *Scanner) getFolderID(ctx context.Context, path string) (*mode... method ScanFolder (line 153) | func (s *Scanner) ScanFolder(ctx context.Context, file ScannedFile) (*... method isRootPath (line 201) | func (s *Scanner) isRootPath(path string) bool { method onNewFolder (line 205) | func (s *Scanner) onNewFolder(ctx context.Context, file ScannedFile) (... method handleFolderRename (line 250) | func (s *Scanner) handleFolderRename(ctx context.Context, file Scanned... method onExistingFolder (line 291) | func (s *Scanner) onExistingFolder(ctx context.Context, f ScannedFile,... method ScanFile (line 358) | func (s *Scanner) ScanFile(ctx context.Context, f ScannedFile) (*ScanF... method IsZipFile (line 400) | func (s *Scanner) IsZipFile(path string) bool { method onNewFile (line 411) | func (s *Scanner) onNewFile(ctx context.Context, f ScannedFile) (*Scan... method fireDecorators (line 505) | func (s *Scanner) fireDecorators(ctx context.Context, fs models.FS, f ... method fireHandlers (line 517) | func (s *Scanner) fireHandlers(ctx context.Context, f models.File, old... method calculateFingerprints (line 527) | func (s *Scanner) calculateFingerprints(fs models.FS, f *models.BaseFi... method getFileFS (line 564) | func (s *Scanner) getFileFS(f *models.BaseFile) (models.FS, error) { method handleRename (line 579) | func (s *Scanner) handleRename(ctx context.Context, f models.File, fp ... method isHandlerRequired (line 683) | func (s *Scanner) isHandlerRequired(ctx context.Context, f models.File... method isMissingMetadata (line 704) | func (s *Scanner) isMissingMetadata(ctx context.Context, f ScannedFile... method setMissingMetadata (line 714) | func (s *Scanner) setMissingMetadata(ctx context.Context, f ScannedFil... method setMissingFingerprints (line 740) | func (s *Scanner) setMissingFingerprints(ctx context.Context, f Scanne... method onExistingFile (line 765) | func (s *Scanner) onExistingFile(ctx context.Context, f ScannedFile, e... method removeOutdatedFingerprints (line 831) | func (s *Scanner) removeOutdatedFingerprints(existing models.File, fp ... method onUnchangedFile (line 859) | func (s *Scanner) onUnchangedFile(ctx context.Context, f ScannedFile, ... type FingerprintCalculator (line 75) | type FingerprintCalculator interface type Decorator (line 80) | type Decorator interface type FilteredDecorator (line 85) | type FilteredDecorator struct method Decorate (line 91) | func (d *FilteredDecorator) Decorate(ctx context.Context, fs models.FS... method IsMissingMetadata (line 98) | func (d *FilteredDecorator) IsMissingMetadata(ctx context.Context, fs ... type ScannedFile (line 107) | type ScannedFile struct type ScanFileResult (line 345) | type ScanFileResult struct method IsUnchanged (line 353) | func (r ScanFileResult) IsUnchanged() bool { function appendFileUnique (line 545) | func appendFileUnique(v []models.File, toAdd []models.File) []models.File { FILE: pkg/file/stashignore.go constant stashIgnoreFilename (line 16) | stashIgnoreFilename = ".stashignore" constant entriesCacheSize (line 21) | entriesCacheSize = 500 type StashIgnoreFilter (line 25) | type StashIgnoreFilter struct method Accept (line 58) | func (f *StashIgnoreFilter) Accept(ctx context.Context, path string, i... method collectIgnoreEntries (line 106) | func (f *StashIgnoreFilter) collectIgnoreEntries(dir string, libraryRo... method getOrLoadIgnoreEntry (line 193) | func (f *StashIgnoreFilter) getOrLoadIgnoreEntry(dir string) *ignoreEn... method loadIgnoreFile (line 230) | func (f *StashIgnoreFilter) loadIgnoreFile(path string) (*ignore.GitIg... type ignoreEntry (line 34) | type ignoreEntry struct function NewStashIgnoreFilter (line 42) | func NewStashIgnoreFilter() *StashIgnoreFilter { function isPathInOrEqual (line 184) | func isPathInOrEqual(root, path string) bool { FILE: pkg/file/stashignore_test.go function createTestFile (line 13) | func createTestFile(t *testing.T, dir, name string) { function createTestFileWithContent (line 25) | func createTestFileWithContent(t *testing.T, dir, name, content string) { function createTestDir (line 37) | func createTestDir(t *testing.T, dir, name string) { function walkAndFilter (line 47) | func walkAndFilter(t *testing.T, root string, filter *StashIgnoreFilter)... function assertPathsEqual (line 87) | func assertPathsEqual(t *testing.T, expected, actual []string) { function TestStashIgnore_ExactFilename (line 103) | func TestStashIgnore_ExactFilename(t *testing.T) { function TestStashIgnore_WildcardPattern (line 126) | func TestStashIgnore_WildcardPattern(t *testing.T) { function TestStashIgnore_DirectoryExclusion (line 151) | func TestStashIgnore_DirectoryExclusion(t *testing.T) { function TestStashIgnore_NegationPattern (line 178) | func TestStashIgnore_NegationPattern(t *testing.T) { function TestStashIgnore_CommentsAndEmptyLines (line 200) | func TestStashIgnore_CommentsAndEmptyLines(t *testing.T) { function TestStashIgnore_NestedStashIgnoreFiles (line 227) | func TestStashIgnore_NestedStashIgnoreFiles(t *testing.T) { function TestStashIgnore_PathPattern (line 260) | func TestStashIgnore_PathPattern(t *testing.T) { function TestStashIgnore_DoubleStarPattern (line 285) | func TestStashIgnore_DoubleStarPattern(t *testing.T) { function TestStashIgnore_LeadingSlashPattern (line 315) | func TestStashIgnore_LeadingSlashPattern(t *testing.T) { function TestStashIgnore_NoStashIgnoreFile (line 339) | func TestStashIgnore_NoStashIgnoreFile(t *testing.T) { function TestStashIgnore_HiddenDirectories (line 362) | func TestStashIgnore_HiddenDirectories(t *testing.T) { function TestStashIgnore_MultiplePatternsSameLine (line 384) | func TestStashIgnore_MultiplePatternsSameLine(t *testing.T) { function TestStashIgnore_TrailingSpaces (line 407) | func TestStashIgnore_TrailingSpaces(t *testing.T) { function TestStashIgnore_EscapedHash (line 428) | func TestStashIgnore_EscapedHash(t *testing.T) { function TestStashIgnore_CaseSensitiveMatching (line 449) | func TestStashIgnore_CaseSensitiveMatching(t *testing.T) { function TestStashIgnore_ComplexScenario (line 473) | func TestStashIgnore_ComplexScenario(t *testing.T) { FILE: pkg/file/video/caption.go constant LangUnknown (line 23) | LangUnknown = "00" function GetCaptionPath (line 27) | func GetCaptionPath(path, lang, suffix string) string { function ReadSubs (line 40) | func ReadSubs(path string) (*astisub.Subtitles, error) { function IsValidLanguage (line 46) | func IsValidLanguage(lang string) bool { function IsLangInCaptions (line 53) | func IsLangInCaptions(lang string, ext string, captions []*models.VideoC... function getCaptionPrefix (line 63) | func getCaptionPrefix(captionPath string) string { function getCaptionsLangFromPath (line 78) | func getCaptionsLangFromPath(captionPath string) string { type CaptionUpdater (line 88) | type CaptionUpdater interface function MatchesCaption (line 94) | func MatchesCaption(videoPath, captionPath string) bool { function AssociateCaptions (line 102) | func AssociateCaptions(ctx context.Context, captionPath string, txnMgr t... function CleanCaptions (line 162) | func CleanCaptions(ctx context.Context, f *models.VideoFile, txnMgr txn.... FILE: pkg/file/video/caption_test.go type testCase (line 9) | type testCase struct function TestGenerateCaptionCandidates (line 43) | func TestGenerateCaptionCandidates(t *testing.T) { function TestGetCaptionsLangFromPath (line 49) | func TestGetCaptionsLangFromPath(t *testing.T) { FILE: pkg/file/video/funscript.go function GetFunscriptPath (line 10) | func GetFunscriptPath(path string) string { FILE: pkg/file/video/scan.go type Decorator (line 14) | type Decorator struct method Decorate (line 18) | func (d *Decorator) Decorate(ctx context.Context, fs models.FS, f mode... method IsMissingMetadata (line 60) | func (d *Decorator) IsMissingMetadata(ctx context.Context, fs models.F... FILE: pkg/file/walk.go function walkSym (line 53) | func walkSym(f models.FS, filename string, linkDirname string, walkFn fs... function SymWalk (line 85) | func SymWalk(fs models.FS, path string, walkFn fs.WalkDirFunc) error { type statDirEntry (line 89) | type statDirEntry struct method Name (line 93) | func (d *statDirEntry) Name() string { return d.info.Nam... method IsDir (line 94) | func (d *statDirEntry) IsDir() bool { return d.info.IsD... method Type (line 95) | func (d *statDirEntry) Type() fs.FileMode { return d.info.Mod... method Info (line 96) | func (d *statDirEntry) Info() (fs.FileInfo, error) { return d.info, nil } function fsWalk (line 98) | func fsWalk(f models.FS, root string, fn fs.WalkDirFunc) error { function walkDir (line 111) | func walkDir(f models.FS, path string, d fs.DirEntry, walkDirFn fs.WalkD... function readDir (line 148) | func readDir(fs models.FS, dirname string) ([]fs.DirEntry, error) { FILE: pkg/file/zip.go type zipFS (line 26) | type zipFS struct method rel (line 95) | func (f *zipFS) rel(name string) (string, error) { method Stat (line 114) | func (f *zipFS) Stat(name string) (fs.FileInfo, error) { method Lstat (line 124) | func (f *zipFS) Lstat(name string) (fs.FileInfo, error) { method OpenZip (line 128) | func (f *zipFS) OpenZip(name string, size int64) (models.ZipFS, error) { method IsPathCaseSensitive (line 132) | func (f *zipFS) IsPathCaseSensitive(path string) (bool, error) { method Open (line 149) | func (f *zipFS) Open(name string) (fs.ReadDirFile, error) { method Close (line 165) | func (f *zipFS) Close() error { method OpenOnly (line 170) | func (f *zipFS) OpenOnly(name string) (io.ReadCloser, error) { function newZipFS (line 32) | func newZipFS(fs models.FS, path string, size int64) (*zipFS, error) { type zipReadDirFile (line 136) | type zipReadDirFile struct method ReadDir (line 140) | func (f *zipReadDirFile) ReadDir(n int) ([]fs.DirEntry, error) { type wrappedReadCloser (line 182) | type wrappedReadCloser struct method Close (line 187) | func (f *wrappedReadCloser) Close() error { FILE: pkg/fsutil/dir.go function DirExists (line 13) | func DirExists(path string) (bool, error) { function IsPathInDir (line 25) | func IsPathInDir(dir, pathToCheck string) bool { function IsPathInDirs (line 38) | func IsPathInDirs(dirs []string, pathToCheck string) bool { function GetWorkingDirectory (line 49) | func GetWorkingDirectory() string { function GetHomeDirectory (line 59) | func GetHomeDirectory() string { function EnsureDir (line 68) | func EnsureDir(path string) error { function EnsureDirAll (line 78) | func EnsureDirAll(path string) error { function RemoveDir (line 83) | func RemoveDir(path string) error { function EmptyDir (line 88) | func EmptyDir(path string) error { function GetIntraDir (line 113) | func GetIntraDir(pattern string, depth, length int) string { FILE: pkg/fsutil/dir_test.go function TestIsPathInDir (line 11) | func TestIsPathInDir(t *testing.T) { function TestDirExists (line 46) | func TestDirExists(t *testing.T) { FILE: pkg/fsutil/file.go function CopyFile (line 18) | func CopyFile(srcpath, dstpath string) (err error) { function SafeMove (line 60) | func SafeMove(src, dst string) error { function MatchExtension (line 82) | func MatchExtension(path string, extensions []string) bool { function FindInPaths (line 94) | func FindInPaths(paths []string, baseName string) string { function FileExists (line 107) | func FileExists(path string) (bool, error) { function WriteFile (line 116) | func WriteFile(path string, file []byte) error { function GetNameFromPath (line 127) | func GetNameFromPath(path string, stripExtension bool) string { function Touch (line 137) | func Touch(path string) error { function SanitiseBasename (line 157) | func SanitiseBasename(v string) string { function GetExeName (line 178) | func GetExeName(base string) string { FILE: pkg/fsutil/file_test.go function TestSanitiseBasename (line 5) | func TestSanitiseBasename(t *testing.T) { FILE: pkg/fsutil/fs.go function IsFsPathCaseSensitive (line 13) | func IsFsPathCaseSensitive(path string) (bool, error) { function flipCaseSingle (line 45) | func flipCaseSingle(s string) (string, error) { FILE: pkg/fsutil/fs_test.go function TestIsFsPathCaseSensitive_UnicodeByteLength (line 9) | func TestIsFsPathCaseSensitive_UnicodeByteLength(t *testing.T) { FILE: pkg/fsutil/lock_manager.go type Cancellable (line 10) | type Cancellable interface type LockContext (line 14) | type LockContext struct method AttachCommand (line 21) | func (c *LockContext) AttachCommand(cmd *exec.Cmd) { method Cancel (line 25) | func (c *LockContext) Cancel() { type ReadLockManager (line 47) | type ReadLockManager struct method ReadLock (line 61) | func (m *ReadLockManager) ReadLock(ctx context.Context, fn string) *Lo... method waitAndUnlock (line 90) | func (m *ReadLockManager) waitAndUnlock(fn string, cc *LockContext) { method Cancel (line 106) | func (m *ReadLockManager) Cancel(fn string) { function NewReadLockManager (line 53) | func NewReadLockManager() *ReadLockManager { FILE: pkg/fsutil/symwalk.go function walk (line 48) | func walk(filename string, linkDirname string, walkFn filepath.WalkFunc)... function SymWalk (line 78) | func SymWalk(path string, walkFn filepath.WalkFunc) error { FILE: pkg/fsutil/trash.go function MoveToTrash (line 13) | func MoveToTrash(sourcePath string, trashPath string) (string, error) { FILE: pkg/gallery/chapter_import.go type ChapterImporterReaderWriter (line 11) | type ChapterImporterReaderWriter interface type ChapterImporter (line 16) | type ChapterImporter struct method PreImport (line 25) | func (i *ChapterImporter) PreImport(ctx context.Context) error { method Name (line 37) | func (i *ChapterImporter) Name() string { method PostImport (line 41) | func (i *ChapterImporter) PostImport(ctx context.Context, id int) error { method FindExistingID (line 45) | func (i *ChapterImporter) FindExistingID(ctx context.Context) (*int, e... method Create (line 62) | func (i *ChapterImporter) Create(ctx context.Context) (*int, error) { method Update (line 72) | func (i *ChapterImporter) Update(ctx context.Context, id int) error { FILE: pkg/gallery/delete.go method Destroy (line 11) | func (s *Service) Destroy(ctx context.Context, i *models.Gallery, fileDe... function DestroyChapter (line 44) | func DestroyChapter(ctx context.Context, galleryChapter *models.GalleryC... method destroyZipFileImages (line 48) | func (s *Service) destroyZipFileImages(ctx context.Context, i *models.Ga... FILE: pkg/gallery/export.go function ToBasicJSON (line 14) | func ToBasicJSON(gallery *models.Gallery) (*jsonschema.Gallery, error) { function GetStudioName (line 48) | func GetStudioName(ctx context.Context, reader models.StudioGetter, gall... function GetGalleryChaptersJSON (line 65) | func GetGalleryChaptersJSON(ctx context.Context, chapterReader models.Ga... function GetIDs (line 87) | func GetIDs(galleries []*models.Gallery) []int { function GetRefs (line 96) | func GetRefs(galleries []*models.Gallery) []jsonschema.GalleryRef { FILE: pkg/gallery/export_test.go constant galleryID (line 17) | galleryID = 1 constant studioID (line 19) | studioID = 4 constant missingStudioID (line 20) | missingStudioID = 5 constant errStudioID (line 21) | errStudioID = 6 constant noChaptersID (line 24) | noChaptersID = 7 constant errChaptersID (line 25) | errChaptersID = 8 constant errFindByChapterID (line 26) | errFindByChapterID = 9 constant studioName (line 40) | studioName = "studioName" constant path (line 41) | path = "path" function createFullGallery (line 49) | func createFullGallery(id int) models.Gallery { function createEmptyGallery (line 68) | func createEmptyGallery(id int) models.Gallery { function createFullJSONGallery (line 81) | func createFullJSONGallery() *jsonschema.Gallery { type basicTestScenario (line 99) | type basicTestScenario struct function TestToJSON (line 113) | func TestToJSON(t *testing.T) { function createStudioGallery (line 129) | func createStudioGallery(studioID int) models.Gallery { type stringTestScenario (line 135) | type stringTestScenario struct function TestGetStudioName (line 159) | func TestGetStudioName(t *testing.T) { constant validChapterID1 (line 188) | validChapterID1 = 1 constant validChapterID2 (line 189) | validChapterID2 = 2 constant chapterTitle1 (line 191) | chapterTitle1 = "chapterTitle1" constant chapterTitle2 (line 192) | chapterTitle2 = "chapterTitle2" constant chapterImageIndex1 (line 194) | chapterImageIndex1 = 10 constant chapterImageIndex2 (line 195) | chapterImageIndex2 = 50 type galleryChaptersTestScenario (line 198) | type galleryChaptersTestScenario struct function TestGetGalleryChaptersJSON (line 260) | func TestGetGalleryChaptersJSON(t *testing.T) { FILE: pkg/gallery/filter.go function PathsFilter (line 10) | func PathsFilter(paths []string) *models.GalleryFilterType { FILE: pkg/gallery/import.go type ImporterReaderWriter (line 14) | type ImporterReaderWriter interface type Importer (line 21) | type Importer struct method PreImport (line 36) | func (i *Importer) PreImport(ctx context.Context) error { method galleryJSONToGallery (line 60) | func (i *Importer) galleryJSONToGallery(galleryJSON jsonschema.Gallery... method populateStudio (line 100) | func (i *Importer) populateStudio(ctx context.Context) error { method createStudio (line 131) | func (i *Importer) createStudio(ctx context.Context, name string) (int... method populatePerformers (line 143) | func (i *Importer) populatePerformers(ctx context.Context) error { method createPerformers (line 188) | func (i *Importer) createPerformers(ctx context.Context, names []strin... method populateTags (line 207) | func (i *Importer) populateTags(ctx context.Context) error { method createTags (line 249) | func (i *Importer) createTags(ctx context.Context, names []string) ([]... method populateFilesFolder (line 268) | func (i *Importer) populateFilesFolder(ctx context.Context) error { method PostImport (line 304) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 308) | func (i *Importer) Name() string { method FindExistingID (line 324) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 357) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 375) | func (i *Importer) Update(ctx context.Context, id int) error { FILE: pkg/gallery/import_test.go function TestImporterPreImport (line 42) | func TestImporterPreImport(t *testing.T) { function TestImporterPreImportWithStudio (line 80) | func TestImporterPreImportWithStudio(t *testing.T) { function TestImporterPreImportWithMissingStudio (line 106) | func TestImporterPreImportWithMissingStudio(t *testing.T) { function TestImporterPreImportWithMissingStudioCreateErr (line 138) | func TestImporterPreImportWithMissingStudioCreateErr(t *testing.T) { function TestImporterPreImportWithPerformer (line 158) | func TestImporterPreImportWithPerformer(t *testing.T) { function TestImporterPreImportWithMissingPerformer (line 190) | func TestImporterPreImportWithMissingPerformer(t *testing.T) { function TestImporterPreImportWithMissingPerformerCreateErr (line 224) | func TestImporterPreImportWithMissingPerformerCreateErr(t *testing.T) { function TestImporterPreImportWithTag (line 246) | func TestImporterPreImportWithTag(t *testing.T) { function TestImporterPreImportWithMissingTag (line 278) | func TestImporterPreImportWithMissingTag(t *testing.T) { function TestImporterPreImportWithMissingTagCreateErr (line 312) | func TestImporterPreImportWithMissingTagCreateErr(t *testing.T) { FILE: pkg/gallery/query.go function CountByPerformerID (line 10) | func CountByPerformerID(ctx context.Context, r models.GalleryQueryer, id... function CountByStudioID (line 21) | func CountByStudioID(ctx context.Context, r models.GalleryQueryer, id in... function CountByTagID (line 33) | func CountByTagID(ctx context.Context, r models.GalleryQueryer, id int, ... FILE: pkg/gallery/scan.go type ScanCreatorUpdater (line 15) | type ScanCreatorUpdater interface type ScanSceneFinderUpdater (line 25) | type ScanSceneFinderUpdater interface type ScanImageFinderUpdater (line 30) | type ScanImageFinderUpdater interface type ScanHandler (line 35) | type ScanHandler struct method Handle (line 42) | func (h *ScanHandler) Handle(ctx context.Context, f models.File, oldFi... method associateExisting (line 117) | func (h *ScanHandler) associateExisting(ctx context.Context, existing ... method associateScene (line 152) | func (h *ScanHandler) associateScene(ctx context.Context, existing []*... FILE: pkg/gallery/scan_test.go function TestAssociateExisting_UpdatePartialOnContentChange (line 14) | func TestAssociateExisting_UpdatePartialOnContentChange(t *testing.T) { function TestAssociateExisting_UpdatePartialOnNewFile (line 75) | func TestAssociateExisting_UpdatePartialOnNewFile(t *testing.T) { FILE: pkg/gallery/service.go type ImageFinder (line 12) | type ImageFinder interface type ImageService (line 18) | type ImageService interface type Service (line 24) | type Service struct FILE: pkg/gallery/update.go type ImageUpdater (line 10) | type ImageUpdater interface method Updated (line 16) | func (s *Service) Updated(ctx context.Context, galleryID int) error { method AddImages (line 25) | func (s *Service) AddImages(ctx context.Context, g *models.Gallery, toAd... method RemoveImages (line 42) | func (s *Service) RemoveImages(ctx context.Context, g *models.Gallery, t... method SetCover (line 55) | func (s *Service) SetCover(ctx context.Context, g *models.Gallery, cover... method ResetCover (line 63) | func (s *Service) ResetCover(ctx context.Context, g *models.Gallery) err... function AddPerformer (line 71) | func AddPerformer(ctx context.Context, qb models.GalleryUpdater, o *mode... function AddTag (line 81) | func AddTag(ctx context.Context, qb models.GalleryUpdater, o *models.Gal... FILE: pkg/gallery/validation.go type ContentsChangedError (line 11) | type ContentsChangedError struct method Error (line 15) | func (e *ContentsChangedError) Error() string { function validateContentChange (line 26) | func validateContentChange(g *models.Gallery) error { method ValidateImageGalleryChange (line 36) | func (s *Service) ValidateImageGalleryChange(ctx context.Context, i *mod... FILE: pkg/group/create.go method Create (line 15) | func (s *Service) Create(ctx context.Context, input *models.CreateGroupI... FILE: pkg/group/export.go type GroupExportReader (line 14) | type GroupExportReader interface function ToJSON (line 21) | func ToJSON(ctx context.Context, reader GroupExportReader, studioReader ... FILE: pkg/group/export_test.go constant movieID (line 18) | movieID = iota + 1 constant emptyID (line 19) | emptyID constant errFrontImageID (line 20) | errFrontImageID constant errBackImageID (line 21) | errBackImageID constant errStudioMovieID (line 22) | errStudioMovieID constant missingStudioMovieID (line 23) | missingStudioMovieID constant errCustomFieldsID (line 24) | errCustomFieldsID constant studioID (line 28) | studioID = iota + 1 constant missingStudioID (line 29) | missingStudioID constant errStudioID (line 30) | errStudioID constant movieName (line 33) | movieName = "testMovie" constant movieAliases (line 34) | movieAliases = "aliases" constant studioName (line 46) | studioName = "studio" constant frontImage (line 49) | frontImage = "ZnJvbnRJbWFnZUJ5dGVz" constant backImage (line 50) | backImage = "YmFja0ltYWdlQnl0ZXM=" function createFullMovie (line 72) | func createFullMovie(id int, studioID int) models.Group { function createEmptyMovie (line 89) | func createEmptyMovie(id int) models.Group { function createFullJSONMovie (line 98) | func createFullJSONMovie(studio, frontImage, backImage string, customFie... function createEmptyJSONMovie (line 121) | func createEmptyJSONMovie() *jsonschema.Group { type testScenario (line 134) | type testScenario struct function initTestTable (line 143) | func initTestTable() { function TestToJSON (line 192) | func TestToJSON(t *testing.T) { FILE: pkg/group/import.go type ImporterReaderWriter (line 15) | type ImporterReaderWriter interface type SubGroupNotExistError (line 21) | type SubGroupNotExistError struct method Error (line 25) | func (e SubGroupNotExistError) Error() string { method MissingSubGroup (line 29) | func (e SubGroupNotExistError) MissingSubGroup() string { type Importer (line 33) | type Importer struct method PreImport (line 45) | func (i *Importer) PreImport(ctx context.Context) error { method populateTags (line 73) | func (i *Importer) populateTags(ctx context.Context) error { method groupJSONToGroup (line 143) | func (i *Importer) groupJSONToGroup(groupJSON jsonschema.Group) models... method populateStudio (line 177) | func (i *Importer) populateStudio(ctx context.Context) error { method createStudio (line 208) | func (i *Importer) createStudio(ctx context.Context, name string) (int... method PostImport (line 220) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 260) | func (i *Importer) Name() string { method FindExistingID (line 264) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 279) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 289) | func (i *Importer) Update(ctx context.Context, id int) error { method getSubGroups (line 300) | func (i *Importer) getSubGroups(ctx context.Context) ([]models.GroupID... method createSubGroup (line 338) | func (i *Importer) createSubGroup(ctx context.Context, name string) (i... function importTags (line 89) | func importTags(ctx context.Context, tagWriter models.TagFinderCreator, ... function createTags (line 124) | func createTags(ctx context.Context, tagWriter models.TagFinderCreator, ... FILE: pkg/group/import_test.go constant invalidImage (line 15) | invalidImage = "aW1hZ2VCeXRlcw&&" constant movieNameErr (line 18) | movieNameErr = "movieNameErr" constant existingMovieName (line 19) | existingMovieName = "existingMovieName" constant existingMovieID (line 21) | existingMovieID = 100 constant existingStudioID (line 22) | existingStudioID = 101 constant existingStudioName (line 24) | existingStudioName = "existingStudioName" constant existingStudioErr (line 25) | existingStudioErr = "existingStudioErr" constant missingStudioName (line 26) | missingStudioName = "existingStudioName" constant errImageID (line 28) | errImageID = 3 constant existingTagID (line 30) | existingTagID = 105 constant errTagsID (line 31) | errTagsID = 106 constant existingTagName (line 33) | existingTagName = "existingTagName" constant existingTagErr (line 34) | existingTagErr = "existingTagErr" constant missingTagName (line 35) | missingTagName = "missingTagName" function TestImporterName (line 40) | func TestImporterName(t *testing.T) { function TestImporterPreImport (line 50) | func TestImporterPreImport(t *testing.T) { function TestImporterPreImportWithStudio (line 78) | func TestImporterPreImportWithStudio(t *testing.T) { function TestImporterPreImportWithMissingStudio (line 109) | func TestImporterPreImportWithMissingStudio(t *testing.T) { function TestImporterPreImportWithMissingStudioCreateErr (line 144) | func TestImporterPreImportWithMissingStudioCreateErr(t *testing.T) { function TestImporterPreImportWithTag (line 167) | func TestImporterPreImportWithTag(t *testing.T) { function TestImporterPreImportWithMissingTag (line 200) | func TestImporterPreImportWithMissingTag(t *testing.T) { function TestImporterPreImportWithMissingTagCreateErr (line 235) | func TestImporterPreImportWithMissingTagCreateErr(t *testing.T) { function TestImporterPostImport (line 258) | func TestImporterPostImport(t *testing.T) { function TestImporterFindExistingID (line 298) | func TestImporterFindExistingID(t *testing.T) { function TestCreate (line 333) | func TestCreate(t *testing.T) { function TestUpdate (line 369) | func TestUpdate(t *testing.T) { FILE: pkg/group/query.go function CountByStudioID (line 10) | func CountByStudioID(ctx context.Context, r models.GroupQueryer, id int,... function CountByTagID (line 22) | func CountByTagID(ctx context.Context, r models.GroupQueryer, id int, de... function CountByContainingGroupID (line 34) | func CountByContainingGroupID(ctx context.Context, r models.GroupQueryer... FILE: pkg/group/reorder.go method ReorderSubGroups (line 12) | func (s *Service) ReorderSubGroups(ctx context.Context, groupID int, sub... FILE: pkg/group/service.go type CreatorUpdater (line 9) | type CreatorUpdater interface type AnscestorFinder (line 25) | type AnscestorFinder interface type SubGroupIDFinder (line 29) | type SubGroupIDFinder interface type SubGroupAdder (line 33) | type SubGroupAdder interface type SubGroupRemover (line 37) | type SubGroupRemover interface type SubGroupReorderer (line 41) | type SubGroupReorderer interface type Service (line 45) | type Service struct FILE: pkg/group/update.go type SubGroupAlreadyInGroupError (line 11) | type SubGroupAlreadyInGroupError struct method Error (line 15) | func (e *SubGroupAlreadyInGroupError) Error() string { type ImageInput (line 19) | type ImageInput struct method UpdatePartial (line 24) | func (s *Service) UpdatePartial(ctx context.Context, id int, updatedGrou... method AddSubGroups (line 52) | func (s *Service) AddSubGroups(ctx context.Context, groupID int, subGrou... method RemoveSubGroups (line 98) | func (s *Service) RemoveSubGroups(ctx context.Context, groupID int, subG... FILE: pkg/group/validate.go method validateCreate (line 12) | func (s *Service) validateCreate(ctx context.Context, group *models.Grou... method validateUpdate (line 27) | func (s *Service) validateUpdate(ctx context.Context, id int, partial mo... function validateName (line 51) | func validateName(n string) error { method validateGroupHierarchy (line 60) | func (s *Service) validateGroupHierarchy(ctx context.Context, containing... method validateUpdateGroupHierarchy (line 79) | func (s *Service) validateUpdateGroupHierarchy(ctx context.Context, exis... function idsFromGroupDescriptions (line 116) | func idsFromGroupDescriptions(v []models.GroupIDDescription) []int { FILE: pkg/hash/imagephash/phash.go function Generate (line 18) | func Generate(encoder *ffmpeg.FFMpeg, imageFile *models.ImageFile) (*uin... function loadImage (line 35) | func loadImage(encoder *ffmpeg.FFMpeg, imageFile *models.ImageFile) (ima... function loadImageFFmpeg (line 66) | func loadImageFFmpeg(encoder *ffmpeg.FFMpeg, path string) (image.Image, ... FILE: pkg/hash/key.go function GenerateRandomKey (line 12) | func GenerateRandomKey(l int) (string, error) { function IntFromString (line 23) | func IntFromString(str string) uint64 { FILE: pkg/hash/md5/md5.go function FromBytes (line 12) | func FromBytes(data []byte) string { function FromString (line 18) | func FromString(str string) string { function FromFilePath (line 25) | func FromFilePath(filePath string) (string, error) { function FromReader (line 37) | func FromReader(src io.Reader) (string, error) { FILE: pkg/hash/oshash/oshash.go constant chunkSize (line 15) | chunkSize int64 = 64 * 1024 function sumBytes (line 19) | func sumBytes(buf []byte) (uint64, error) { function oshash (line 33) | func oshash(size int64, head []byte, tail []byte) (string, error) { function FromReader (line 50) | func FromReader(src io.ReadSeeker, fileSize int64) (string, error) { function FromFilePath (line 86) | func FromFilePath(filePath string) (string, error) { FILE: pkg/hash/oshash/oshash_test.go function BenchmarkOsHash (line 9) | func BenchmarkOsHash(b *testing.B) { function TestFromReader (line 37) | func TestFromReader(t *testing.T) { FILE: pkg/hash/videophash/phash.go constant screenshotSize (line 21) | screenshotSize = 160 constant columns (line 22) | columns = 5 constant rows (line 23) | rows = 5 function Generate (line 26) | func Generate(encoder *ffmpeg.FFMpeg, videoFile *models.VideoFile) (*uin... function generateSpriteScreenshot (line 40) | func generateSpriteScreenshot(encoder *ffmpeg.FFMpeg, input string, t fl... function combineImages (line 63) | func combineImages(images []image.Image) image.Image { function generateSprite (line 79) | func generateSprite(encoder *ffmpeg.FFMpeg, videoFile *models.VideoFile)... FILE: pkg/image/delete.go type FileDeleter (line 15) | type FileDeleter struct method MarkGeneratedFiles (line 23) | func (d *FileDeleter) MarkGeneratedFiles(image *models.Image) error { method Destroy (line 40) | func (s *Service) Destroy(ctx context.Context, i *models.Image, fileDele... method DestroyZipImages (line 46) | func (s *Service) DestroyZipImages(ctx context.Context, zipFile models.F... method DestroyFolderImages (line 92) | func (s *Service) DestroyFolderImages(ctx context.Context, folderID mode... method destroyImage (line 151) | func (s *Service) destroyImage(ctx context.Context, i *models.Image, fil... method deleteFiles (line 172) | func (s *Service) deleteFiles(ctx context.Context, i *models.Image, file... method destroyFileEntries (line 204) | func (s *Service) destroyFileEntries(ctx context.Context, i *models.Imag... FILE: pkg/image/export.go type ExportReader (line 12) | type ExportReader interface function ToBasicJSON (line 19) | func ToBasicJSON(ctx context.Context, reader ExportReader, image *models... function GetStudioName (line 56) | func GetStudioName(ctx context.Context, reader models.StudioGetter, imag... FILE: pkg/image/export_test.go constant imageID (line 17) | imageID = 1 constant studioID (line 19) | studioID = 4 constant missingStudioID (line 20) | missingStudioID = 5 constant errStudioID (line 21) | errStudioID = 6 constant studioName (line 39) | studioName = "studioName" constant path (line 40) | path = "path" function createFullImage (line 48) | func createFullImage(id int) models.Image { function createFullJSONImage (line 67) | func createFullJSONImage(customFields map[string]interface{}) *jsonschem... type basicTestScenario (line 86) | type basicTestScenario struct function TestToJSON (line 100) | func TestToJSON(t *testing.T) { function createStudioImage (line 118) | func createStudioImage(studioID int) models.Image { type stringTestScenario (line 124) | type stringTestScenario struct function TestGetStudioName (line 148) | func TestGetStudioName(t *testing.T) { FILE: pkg/image/filter.go function PathsFilter (line 10) | func PathsFilter(paths []string) *models.ImageFilterType { FILE: pkg/image/import.go type GalleryFinder (line 14) | type GalleryFinder interface type ImporterReaderWriter (line 19) | type ImporterReaderWriter interface type Importer (line 24) | type Importer struct method PreImport (line 39) | func (i *Importer) PreImport(ctx context.Context) error { method imageJSONToImage (line 67) | func (i *Importer) imageJSONToImage(imageJSON jsonschema.Image) models... method populateFiles (line 111) | func (i *Importer) populateFiles(ctx context.Context) error { method populateStudio (line 133) | func (i *Importer) populateStudio(ctx context.Context) error { method createStudio (line 164) | func (i *Importer) createStudio(ctx context.Context, name string) (int... method locateGallery (line 176) | func (i *Importer) locateGallery(ctx context.Context, ref jsonschema.G... method populateGalleries (line 205) | func (i *Importer) populateGalleries(ctx context.Context) error { method populatePerformers (line 229) | func (i *Importer) populatePerformers(ctx context.Context) error { method createPerformers (line 274) | func (i *Importer) createPerformers(ctx context.Context, names []strin... method populateTags (line 293) | func (i *Importer) populateTags(ctx context.Context) error { method PostImport (line 309) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 313) | func (i *Importer) Name() string { method FindExistingID (line 325) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 344) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 364) | func (i *Importer) Update(ctx context.Context, id int) error { function importTags (line 376) | func importTags(ctx context.Context, tagWriter models.TagFinderCreator, ... function createTags (line 411) | func createTags(ctx context.Context, tagWriter models.TagCreator, names ... FILE: pkg/image/import_test.go function TestImporterPreImport (line 35) | func TestImporterPreImport(t *testing.T) { function TestImporterPreImportWithStudio (line 42) | func TestImporterPreImportWithStudio(t *testing.T) { function TestImporterPreImportWithMissingStudio (line 70) | func TestImporterPreImportWithMissingStudio(t *testing.T) { function TestImporterPreImportWithMissingStudioCreateErr (line 102) | func TestImporterPreImportWithMissingStudioCreateErr(t *testing.T) { function TestImporterPreImportWithPerformer (line 122) | func TestImporterPreImportWithPerformer(t *testing.T) { function TestImporterPreImportWithMissingPerformer (line 154) | func TestImporterPreImportWithMissingPerformer(t *testing.T) { function TestImporterPreImportWithMissingPerformerCreateErr (line 188) | func TestImporterPreImportWithMissingPerformerCreateErr(t *testing.T) { function TestImporterPreImportWithTag (line 210) | func TestImporterPreImportWithTag(t *testing.T) { function TestImporterPreImportWithMissingTag (line 242) | func TestImporterPreImportWithMissingTag(t *testing.T) { function TestImporterPreImportWithMissingTagCreateErr (line 276) | func TestImporterPreImportWithMissingTagCreateErr(t *testing.T) { FILE: pkg/image/query.go type Queryer (line 12) | type Queryer interface type CoverQueryer (line 16) | type CoverQueryer interface type QueryCounter (line 21) | type QueryCounter interface function QueryOptions (line 26) | func QueryOptions(imageFilter *models.ImageFilterType, findFilter *model... function Query (line 37) | func Query(ctx context.Context, qb Queryer, imageFilter *models.ImageFil... function FilterFromPaths (line 53) | func FilterFromPaths(paths []string) *models.ImageFilterType { function CountByPerformerID (line 80) | func CountByPerformerID(ctx context.Context, r QueryCounter, id int) (in... function CountByStudioID (line 91) | func CountByStudioID(ctx context.Context, r QueryCounter, id int, depth ... function CountByTagID (line 103) | func CountByTagID(ctx context.Context, r QueryCounter, id int, depth *in... function FindByGalleryID (line 115) | func FindByGalleryID(ctx context.Context, r Queryer, galleryID int, sort... function FindGalleryCover (line 138) | func FindGalleryCover(ctx context.Context, r CoverQueryer, galleryID int... function findGalleryCover (line 153) | func findGalleryCover(ctx context.Context, r CoverQueryer, galleryID int... FILE: pkg/image/scan.go type ScanCreatorUpdater (line 24) | type ScanCreatorUpdater interface type GalleryFinderCreator (line 36) | type GalleryFinderCreator interface type ScanSceneFinderUpdater (line 43) | type ScanSceneFinderUpdater interface type ScanConfig (line 48) | type ScanConfig interface type ScanGenerator (line 52) | type ScanGenerator interface type ScanHandler (line 56) | type ScanHandler struct method validate (line 70) | func (h *ScanHandler) validate() error { method Handle (line 90) | func (h *ScanHandler) Handle(ctx context.Context, f models.File, oldFi... method associateExisting (line 180) | func (h *ScanHandler) associateExisting(ctx context.Context, existing ... method getOrCreateFolderBasedGallery (line 247) | func (h *ScanHandler) getOrCreateFolderBasedGallery(ctx context.Contex... method associateFolderImages (line 284) | func (h *ScanHandler) associateFolderImages(ctx context.Context, g *mo... method getOrCreateZipBasedGallery (line 307) | func (h *ScanHandler) getOrCreateZipBasedGallery(ctx context.Context, ... method associateScene (line 342) | func (h *ScanHandler) associateScene(ctx context.Context, existing *mo... method getOrCreateGallery (line 365) | func (h *ScanHandler) getOrCreateGallery(ctx context.Context, f models... method getGalleryToAssociate (line 394) | func (h *ScanHandler) getGalleryToAssociate(ctx context.Context, newIm... FILE: pkg/image/scan_test.go type mockScanConfig (line 14) | type mockScanConfig struct method GetCreateGalleriesFromFolders (line 16) | func (m *mockScanConfig) GetCreateGalleriesFromFolders() bool { return... function TestAssociateExisting_UpdatePartialOnContentChange (line 18) | func TestAssociateExisting_UpdatePartialOnContentChange(t *testing.T) { function TestAssociateExisting_UpdatePartialOnNewFile (line 83) | func TestAssociateExisting_UpdatePartialOnNewFile(t *testing.T) { FILE: pkg/image/service.go type Service (line 9) | type Service struct FILE: pkg/image/thumbnail.go constant ffmpegImageQuality (line 20) | ffmpegImageQuality = 5 type ThumbnailEncoder (line 28) | type ThumbnailEncoder struct method GetThumbnail (line 68) | func (e *ThumbnailEncoder) GetThumbnail(f models.File, maxSize int) ([... method GetPreview (line 131) | func (e *ThumbnailEncoder) GetPreview(inPath string, outPath string, m... method ffmpegImageThumbnail (line 146) | func (e *ThumbnailEncoder) ffmpegImageThumbnail(image *bytes.Buffer, m... method ffmpegImageThumbnailPath (line 160) | func (e *ThumbnailEncoder) ffmpegImageThumbnailPath(inputPath string, ... method getClipPreview (line 173) | func (e *ThumbnailEncoder) getClipPreview(inPath string, outPath strin... type ClipPreviewOptions (line 35) | type ClipPreviewOptions struct function GetVipsPath (line 41) | func GetVipsPath() string { function NewThumbnailEncoder (line 48) | func NewThumbnailEncoder(ffmpegEncoder *ffmpeg.FFMpeg, ffProbe *ffmpeg.F... FILE: pkg/image/update.go function AddPerformer (line 9) | func AddPerformer(ctx context.Context, qb models.ImageUpdater, i *models... function AddTag (line 19) | func AddTag(ctx context.Context, qb models.ImageUpdater, i *models.Image... FILE: pkg/image/vips.go type vipsEncoder (line 12) | type vipsEncoder method ImageThumbnail (line 14) | func (e *vipsEncoder) ImageThumbnail(image *bytes.Buffer, maxSize int)... method ImageThumbnailPath (line 30) | func (e *vipsEncoder) ImageThumbnailPath(path string, maxSize int) ([]... method run (line 59) | func (e *vipsEncoder) run(args []string, stdin *bytes.Buffer) (string,... FILE: pkg/image/webp.go constant formatWebP (line 8) | formatWebP = "webp" constant formatGif (line 9) | formatGif = "gif" function isWebPAnimated (line 13) | func isWebPAnimated(buf []byte) bool { function containsAnimSignature (line 43) | func containsAnimSignature(buf []byte) bool { FILE: pkg/image/webp_internal_test.go function Test_isWebPAnimated (line 5) | func Test_isWebPAnimated(t *testing.T) { FILE: pkg/javascript/console.go type console (line 5) | type console struct method AddToVM (line 9) | func (c *console) AddToVM(globalName string, vm *VM) error { FILE: pkg/javascript/gql.go type responseWriter (line 14) | type responseWriter struct method Header (line 20) | func (w *responseWriter) Header() http.Header { method WriteHeader (line 24) | func (w *responseWriter) WriteHeader(statusCode int) { method Write (line 28) | func (w *responseWriter) Write(b []byte) (int, error) { type GQL (line 32) | type GQL struct method gqlRequestFunc (line 38) | func (g *GQL) gqlRequestFunc(vm *VM) func(query string, variables map[... method AddToVM (line 94) | func (g *GQL) AddToVM(globalName string, vm *VM) error { FILE: pkg/javascript/log.go type Log (line 14) | type Log struct method argToString (line 23) | func (l *Log) argToString(call goja.FunctionCall) string { method logTrace (line 39) | func (l *Log) logTrace(call goja.FunctionCall) goja.Value { method logDebug (line 44) | func (l *Log) logDebug(call goja.FunctionCall) goja.Value { method logInfo (line 49) | func (l *Log) logInfo(call goja.FunctionCall) goja.Value { method logWarn (line 54) | func (l *Log) logWarn(call goja.FunctionCall) goja.Value { method logError (line 59) | func (l *Log) logError(call goja.FunctionCall) goja.Value { method logProgress (line 67) | func (l *Log) logProgress(value float64) { method AddToVM (line 72) | func (l *Log) AddToVM(globalName string, vm *VM) error { FILE: pkg/javascript/util.go type Util (line 8) | type Util struct method sleepFunc (line 10) | func (u *Util) sleepFunc(ms int64) { method AddToVM (line 14) | func (u *Util) AddToVM(globalName string, vm *VM) error { FILE: pkg/javascript/vm.go type VM (line 14) | type VM struct method Throw (line 86) | func (v *VM) Throw(err error) { type optionalFieldNameMapper (line 19) | type optionalFieldNameMapper struct method FieldName (line 23) | func (tfm optionalFieldNameMapper) FieldName(t reflect.Type, f reflect... method MethodName (line 31) | func (tfm optionalFieldNameMapper) MethodName(t reflect.Type, m reflec... function NewVM (line 35) | func NewVM() *VM { type APIAdder (line 52) | type APIAdder interface type ObjectValueDef (line 56) | type ObjectValueDef struct type setter (line 61) | type setter interface function Compile (line 65) | func Compile(path string) (*goja.Program, error) { function CompileScript (line 73) | func CompileScript(name, script string) (*goja.Program, error) { function SetAll (line 77) | func SetAll(s setter, defs ...ObjectValueDef) error { FILE: pkg/job/job.go type JobExecFn (line 9) | type JobExecFn type JobExec (line 12) | type JobExec interface type jobExecImpl (line 16) | type jobExecImpl struct method Execute (line 20) | func (j *jobExecImpl) Execute(ctx context.Context, progress *Progress)... function MakeJobExec (line 26) | func MakeJobExec(fn JobExecFn) JobExec { type Status (line 33) | type Status constant StatusReady (line 37) | StatusReady Status = "READY" constant StatusRunning (line 39) | StatusRunning Status = "RUNNING" constant StatusStopping (line 41) | StatusStopping Status = "STOPPING" constant StatusFinished (line 43) | StatusFinished Status = "FINISHED" constant StatusCancelled (line 45) | StatusCancelled Status = "CANCELLED" constant StatusFailed (line 47) | StatusFailed Status = "FAILED" type Job (line 51) | type Job struct method TimeElapsed (line 71) | func (j *Job) TimeElapsed() time.Duration { method cancel (line 82) | func (j *Job) cancel() { method error (line 94) | func (j *Job) error(err error) { function IsCancelled (line 101) | func IsCancelled(ctx context.Context) bool { FILE: pkg/job/manager.go constant maxGraveyardSize (line 12) | maxGraveyardSize = 10 constant defaultThrottleLimit (line 13) | defaultThrottleLimit = 100 * time.Millisecond type Manager (line 16) | type Manager struct method Stop (line 46) | func (m *Manager) Stop() { method Add (line 52) | func (m *Manager) Add(ctx context.Context, description string, e JobEx... method Start (line 81) | func (m *Manager) Start(ctx context.Context, description string, e Job... method notifyNewJob (line 103) | func (m *Manager) notifyNewJob(j *Job) { method nextID (line 114) | func (m *Manager) nextID() int { method getReadyJob (line 119) | func (m *Manager) getReadyJob() *Job { method dispatcher (line 130) | func (m *Manager) dispatcher() { method newProgress (line 165) | func (m *Manager) newProgress(j *Job) *Progress { method dispatch (line 175) | func (m *Manager) dispatch(ctx context.Context, j *Job) (done chan str... method executeJob (line 193) | func (m *Manager) executeJob(ctx context.Context, j *Job, done chan st... method onJobFinish (line 215) | func (m *Manager) onJobFinish(job *Job) { method removeJob (line 228) | func (m *Manager) removeJob(job *Job) { method getJob (line 255) | func (m *Manager) getJob(list []*Job, id int) (index int, job *Job) { method CancelJob (line 272) | func (m *Manager) CancelJob(id int) { method CancelAll (line 289) | func (m *Manager) CancelAll() { method GetJob (line 306) | func (m *Manager) GetJob(id int) *Job { method GetQueue (line 322) | func (m *Manager) GetQueue() []Job { method Subscribe (line 337) | func (m *Manager) Subscribe(ctx context.Context) *ManagerSubscription { method notifyJobUpdate (line 364) | func (m *Manager) notifyJobUpdate(j *Job) { function NewManager (line 31) | func NewManager() *Manager { type updater (line 381) | type updater struct method notifyUpdate (line 388) | func (u *updater) notifyUpdate() { method updateProgress (line 395) | func (u *updater) updateProgress(progress float64, details []string) { FILE: pkg/job/manager_test.go constant sleepTime (line 11) | sleepTime time.Duration = 10 * time.Millisecond type testExec (line 13) | type testExec struct method Execute (line 27) | func (e *testExec) Execute(ctx context.Context, p *Progress) error { function newTestExec (line 20) | func newTestExec(finish chan struct{}) *testExec { function TestAdd (line 45) | func TestAdd(t *testing.T) { function TestCancel (line 129) | func TestCancel(t *testing.T) { function TestCancelAll (line 197) | func TestCancelAll(t *testing.T) { function TestSubscribe (line 239) | func TestSubscribe(t *testing.T) { FILE: pkg/job/progress.go constant ProgressIndefinite (line 7) | ProgressIndefinite float64 = -1 type Progress (line 11) | type Progress struct method updated (line 26) | func (p *Progress) updated() { method Indefinite (line 36) | func (p *Progress) Indefinite() { method Definite (line 46) | func (p *Progress) Definite() { method SetTotal (line 56) | func (p *Progress) SetTotal(total int) { method AddTotal (line 67) | func (p *Progress) AddTotal(total int) { method SetProcessed (line 77) | func (p *Progress) SetProcessed(processed int) { method calculatePercent (line 85) | func (p *Progress) calculatePercent() { method SetPercent (line 104) | func (p *Progress) SetPercent(percent float64) { method Increment (line 120) | func (p *Progress) Increment() { method AddProcessed (line 132) | func (p *Progress) AddProcessed(v int) { method addTask (line 145) | func (p *Progress) addTask(t *task) { method removeTask (line 153) | func (p *Progress) removeTask(t *task) { method ExecuteTask (line 168) | func (p *Progress) ExecuteTask(description string, fn func()) { type task (line 22) | type task struct FILE: pkg/job/progress_test.go function createProgress (line 10) | func createProgress(m *Manager, j *Job) Progress { function TestProgressIndefinite (line 23) | func TestProgressIndefinite(t *testing.T) { function TestProgressSetTotal (line 37) | func TestProgressSetTotal(t *testing.T) { function TestProgressSetProcessed (line 60) | func TestProgressSetProcessed(t *testing.T) { function TestProgressSetPercent (line 80) | func TestProgressSetPercent(t *testing.T) { function TestProgressIncrement (line 100) | func TestProgressIncrement(t *testing.T) { function TestExecuteTask (line 119) | func TestExecuteTask(t *testing.T) { FILE: pkg/job/subscribe.go type ManagerSubscription (line 5) | type ManagerSubscription struct method close (line 32) | func (s *ManagerSubscription) close() { function newSubscription (line 18) | func newSubscription() *ManagerSubscription { FILE: pkg/job/task.go type taskExec (line 9) | type taskExec struct type TaskQueue (line 14) | type TaskQueue struct method Add (line 34) | func (tq *TaskQueue) Add(description string, fn func(ctx context.Conte... method Close (line 43) | func (tq *TaskQueue) Close() { method executer (line 49) | func (tq *TaskQueue) executer(ctx context.Context) { function NewTaskQueue (line 21) | func NewTaskQueue(ctx context.Context, p *Progress, queueSize int, proce... FILE: pkg/logger/basic.go type BasicLogger (line 9) | type BasicLogger struct method print (line 13) | func (log *BasicLogger) print(level string, args ...interface{}) { method printf (line 18) | func (log *BasicLogger) printf(level string, format string, args ...in... method Progressf (line 22) | func (log *BasicLogger) Progressf(format string, args ...interface{}) { method Trace (line 26) | func (log *BasicLogger) Trace(args ...interface{}) { method Tracef (line 30) | func (log *BasicLogger) Tracef(format string, args ...interface{}) { method TraceFunc (line 34) | func (log *BasicLogger) TraceFunc(fn func() (string, []interface{})) { method Debug (line 39) | func (log *BasicLogger) Debug(args ...interface{}) { method Debugf (line 43) | func (log *BasicLogger) Debugf(format string, args ...interface{}) { method DebugFunc (line 47) | func (log *BasicLogger) DebugFunc(fn func() (string, []interface{})) { method Info (line 52) | func (log *BasicLogger) Info(args ...interface{}) { method Infof (line 56) | func (log *BasicLogger) Infof(format string, args ...interface{}) { method InfoFunc (line 60) | func (log *BasicLogger) InfoFunc(fn func() (string, []interface{})) { method Warn (line 65) | func (log *BasicLogger) Warn(args ...interface{}) { method Warnf (line 69) | func (log *BasicLogger) Warnf(format string, args ...interface{}) { method WarnFunc (line 73) | func (log *BasicLogger) WarnFunc(fn func() (string, []interface{})) { method Error (line 78) | func (log *BasicLogger) Error(args ...interface{}) { method Errorf (line 82) | func (log *BasicLogger) Errorf(format string, args ...interface{}) { method ErrorFunc (line 86) | func (log *BasicLogger) ErrorFunc(fn func() (string, []interface{})) { method Fatal (line 91) | func (log *BasicLogger) Fatal(args ...interface{}) { method Fatalf (line 96) | func (log *BasicLogger) Fatalf(format string, args ...interface{}) { FILE: pkg/logger/logger.go type LoggerImpl (line 14) | type LoggerImpl interface function Progressf (line 47) | func Progressf(format string, args ...interface{}) { function Trace (line 55) | func Trace(args ...interface{}) { function Tracef (line 63) | func Tracef(format string, args ...interface{}) { function TraceFunc (line 71) | func TraceFunc(fn func() (string, []interface{})) { function Debug (line 79) | func Debug(args ...interface{}) { function Debugf (line 87) | func Debugf(format string, args ...interface{}) { function DebugFunc (line 95) | func DebugFunc(fn func() (string, []interface{})) { function Info (line 103) | func Info(args ...interface{}) { function Infof (line 111) | func Infof(format string, args ...interface{}) { function InfoFunc (line 119) | func InfoFunc(fn func() (string, []interface{})) { function Warn (line 127) | func Warn(args ...interface{}) { function Warnf (line 135) | func Warnf(format string, args ...interface{}) { function WarnFunc (line 143) | func WarnFunc(fn func() (string, []interface{})) { function Error (line 151) | func Error(args ...interface{}) { function Errorf (line 159) | func Errorf(format string, args ...interface{}) { function ErrorFunc (line 167) | func ErrorFunc(fn func() (string, []interface{})) { function Fatal (line 175) | func Fatal(args ...interface{}) { function Fatalf (line 185) | func Fatalf(format string, args ...interface{}) { FILE: pkg/logger/plugin.go type PluginLogLevel (line 13) | type PluginLogLevel struct method prefix (line 62) | func (l PluginLogLevel) prefix() string { method Log (line 72) | func (l PluginLogLevel) Log(args ...interface{}) { method Logf (line 86) | func (l PluginLogLevel) Logf(format string, args ...interface{}) { constant startLevelChar (line 59) | startLevelChar byte = 1 constant endLevelChar (line 60) | endLevelChar byte = 2 function PluginLogLevelFromName (line 97) | func PluginLogLevelFromName(name string) *PluginLogLevel { function detectLogLevel (line 111) | func detectLogLevel(line string) (*PluginLogLevel, string) { type PluginLogger (line 136) | type PluginLogger struct method handleStderrLine (line 147) | func (log *PluginLogger) handleStderrLine(line string) { method ReadLogMessages (line 195) | func (log *PluginLogger) ReadLogMessages(src io.ReadCloser) { FILE: pkg/logger/progress_formatter.go type ProgressFormatter (line 7) | type ProgressFormatter struct method Format (line 9) | func (f *ProgressFormatter) Format(entry *logrus.Entry) ([]byte, error) { FILE: pkg/match/cache.go constant singleFirstCharacterRegex (line 9) | singleFirstCharacterRegex = `^[\p{L}][.\-_ ]` type Cache (line 12) | type Cache struct function getSingleLetterPerformers (line 23) | func getSingleLetterPerformers(ctx context.Context, c *Cache, reader mod... function getSingleLetterStudios (line 56) | func getSingleLetterStudios(ctx context.Context, c *Cache, reader models... function getSingleLetterTags (line 89) | func getSingleLetterTags(ctx context.Context, c *Cache, reader models.Ta... FILE: pkg/match/path.go constant separatorChars (line 21) | separatorChars = `.\-_ ` constant separatorPattern (line 22) | separatorPattern = `(?:_|[^\p{L}\w\d])+` constant reNotLetterWordUnicode (line 24) | reNotLetterWordUnicode = `[^\p{L}\w\d]` constant reNotLetterWord (line 25) | reNotLetterWord = `[^\w\d]` function getPathQueryRegex (line 30) | func getPathQueryRegex(name string) string { function getPathWords (line 43) | func getPathWords(path string, trimExt bool) []string { function allASCII (line 79) | func allASCII(s string) bool { function nameMatchesPath (line 90) | func nameMatchesPath(name, path string) int { function nameToRegexp (line 99) | func nameToRegexp(name string, useUnicode bool) *regexp.Regexp { function regexpMatchesPath (line 121) | func regexpMatchesPath(r *regexp.Regexp, path string) int { function getPerformers (line 130) | func getPerformers(ctx context.Context, words []string, performerReader ... function PathToPerformers (line 144) | func PathToPerformers(ctx context.Context, path string, reader models.Pe... function getStudios (line 182) | func getStudios(ctx context.Context, words []string, reader models.Studi... function PathToStudio (line 199) | func PathToStudio(ctx context.Context, path string, reader models.Studio... function getTags (line 233) | func getTags(ctx context.Context, words []string, reader models.TagAutoT... function PathToTags (line 247) | func PathToTags(ctx context.Context, path string, reader models.TagAutoT... function PathToScenesFn (line 283) | func PathToScenesFn(ctx context.Context, name string, paths []string, sc... function PathToImagesFn (line 342) | func PathToImagesFn(ctx context.Context, name string, paths []string, im... function PathToGalleriesFn (line 401) | func PathToGalleriesFn(ctx context.Context, name string, paths []string,... FILE: pkg/match/path_test.go function Test_nameMatchesPath (line 5) | func Test_nameMatchesPath(t *testing.T) { FILE: pkg/match/scraped.go type PerformerFinder (line 13) | type PerformerFinder interface type GroupNamesFinder (line 19) | type GroupNamesFinder interface type SceneRelationships (line 23) | type SceneRelationships struct method MatchRelationships (line 30) | func (r SceneRelationships) MatchRelationships(ctx context.Context, s ... function ScrapedPerformer (line 59) | func ScrapedPerformer(ctx context.Context, qb PerformerFinder, p *models... type StudioFinder (line 103) | type StudioFinder interface function ScrapedStudio (line 110) | func ScrapedStudio(ctx context.Context, qb StudioFinder, s *models.Scrap... function ScrapedStudioHierarchy (line 156) | func ScrapedStudioHierarchy(ctx context.Context, qb StudioFinder, s *mod... function ScrapedGroup (line 170) | func ScrapedGroup(ctx context.Context, qb GroupNamesFinder, storedID *st... function ScrapedTagHierarchy (line 192) | func ScrapedTagHierarchy(ctx context.Context, qb models.TagQueryer, s *m... function ScrapedTag (line 207) | func ScrapedTag(ctx context.Context, qb models.TagQueryer, s *models.Scr... FILE: pkg/models/custom_fields.go type CustomFieldMap (line 5) | type CustomFieldMap type CustomFieldsInput (line 7) | type CustomFieldsInput struct type CustomFieldsReader (line 16) | type CustomFieldsReader interface type CustomFieldsWriter (line 21) | type CustomFieldsWriter interface FILE: pkg/models/date.go type DatePrecision (line 11) | type DatePrecision constant DatePrecisionDay (line 15) | DatePrecisionDay DatePrecision = iota constant DatePrecisionMonth (line 16) | DatePrecisionMonth constant DatePrecisionYear (line 17) | DatePrecisionYear type Date (line 21) | type Date struct method String (line 32) | func (d Date) String() string { method After (line 36) | func (d Date) After(o Date) bool { function ParseDate (line 43) | func ParseDate(s string) (Date, error) { function DateFromYear (line 66) | func DateFromYear(year int) Date { function FormatYearRange (line 73) | func FormatYearRange(start *Date, end *Date) string { function FormatYearRangeString (line 98) | func FormatYearRangeString(start *string, end *string) string { function ParseYearRangeString (line 114) | func ParseYearRangeString(s string) (start *Date, end *Date, err error) { function parseYear (line 163) | func parseYear(s string) (*Date, error) { FILE: pkg/models/date_test.go function TestParseDateStringAsTime (line 10) | func TestParseDateStringAsTime(t *testing.T) { function TestFormatYearRange (line 54) | func TestFormatYearRange(t *testing.T) { function TestFormatYearRangeString (line 80) | func TestFormatYearRangeString(t *testing.T) { function TestParseYearRangeString (line 103) | func TestParseYearRangeString(t *testing.T) { FILE: pkg/models/file.go type FileQueryOptions (line 9) | type FileQueryOptions struct type FileFilterType (line 18) | type FileFilterType struct function PathsFileFilter (line 43) | func PathsFileFilter(paths []string) *FileFilterType { type FileQueryResult (line 75) | type FileQueryResult struct method Resolve (line 92) | func (r *FileQueryResult) Resolve(ctx context.Context) ([]File, error) { function NewFileQueryResult (line 86) | func NewFileQueryResult(fileGetter FileGetter) *FileQueryResult { FILE: pkg/models/filename_parser.go type SceneParserInput (line 3) | type SceneParserInput struct type SceneParserResult (line 10) | type SceneParserResult struct type SceneMovieID (line 27) | type SceneMovieID struct FILE: pkg/models/filter.go type OperatorFilter (line 9) | type OperatorFilter struct method SubFilter (line 17) | func (f *OperatorFilter[T]) SubFilter() *T { type CriterionModifier (line 30) | type CriterionModifier method IsValid (line 75) | func (e CriterionModifier) IsValid() bool { method String (line 83) | func (e CriterionModifier) String() string { method UnmarshalGQL (line 87) | func (e *CriterionModifier) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 100) | func (e CriterionModifier) MarshalGQL(w io.Writer) { constant CriterionModifierEquals (line 34) | CriterionModifierEquals CriterionModifier = "EQUALS" constant CriterionModifierNotEquals (line 36) | CriterionModifierNotEquals CriterionModifier = "NOT_EQUALS" constant CriterionModifierGreaterThan (line 38) | CriterionModifierGreaterThan CriterionModifier = "GREATER_THAN" constant CriterionModifierLessThan (line 40) | CriterionModifierLessThan CriterionModifier = "LESS_THAN" constant CriterionModifierIsNull (line 42) | CriterionModifierIsNull CriterionModifier = "IS_NULL" constant CriterionModifierNotNull (line 44) | CriterionModifierNotNull CriterionModifier = "NOT_NULL" constant CriterionModifierIncludesAll (line 46) | CriterionModifierIncludesAll CriterionModifier = "INCLUDES_ALL" constant CriterionModifierIncludes (line 47) | CriterionModifierIncludes CriterionModifier = "INCLUDES" constant CriterionModifierExcludes (line 48) | CriterionModifierExcludes CriterionModifier = "EXCLUDES" constant CriterionModifierMatchesRegex (line 50) | CriterionModifierMatchesRegex CriterionModifier = "MATCHES_REGEX" constant CriterionModifierNotMatchesRegex (line 52) | CriterionModifierNotMatchesRegex CriterionModifier = "NOT_MATCHES_REGEX" constant CriterionModifierBetween (line 54) | CriterionModifierBetween CriterionModifier = "BETWEEN" constant CriterionModifierNotBetween (line 56) | CriterionModifierNotBetween CriterionModifier = "NOT_BETWEEN" type StringCriterionInput (line 104) | type StringCriterionInput struct method ValidModifier (line 109) | func (i StringCriterionInput) ValidModifier() bool { type IntCriterionInput (line 119) | type IntCriterionInput struct method ValidModifier (line 125) | func (i IntCriterionInput) ValidModifier() bool { type FloatCriterionInput (line 133) | type FloatCriterionInput struct method ValidModifier (line 139) | func (i FloatCriterionInput) ValidModifier() bool { type ResolutionCriterionInput (line 147) | type ResolutionCriterionInput struct type HierarchicalMultiCriterionInput (line 152) | type HierarchicalMultiCriterionInput struct method CombineExcludes (line 159) | func (i HierarchicalMultiCriterionInput) CombineExcludes() Hierarchica... type MultiCriterionInput (line 170) | type MultiCriterionInput struct type DateCriterionInput (line 176) | type DateCriterionInput struct type TimestampCriterionInput (line 182) | type TimestampCriterionInput struct type PhashDistanceCriterionInput (line 188) | type PhashDistanceCriterionInput struct type OrientationCriterionInput (line 194) | type OrientationCriterionInput struct type CustomFieldCriterionInput (line 198) | type CustomFieldCriterionInput struct type FingerprintFilterInput (line 204) | type FingerprintFilterInput struct type VideoFileFilterInput (line 211) | type VideoFileFilterInput struct type ImageFileFilterInput (line 226) | type ImageFileFilterInput struct FILE: pkg/models/find_filter.go constant PerPageAll (line 11) | PerPageAll = -1 type SortDirectionEnum (line 13) | type SortDirectionEnum method IsValid (line 25) | func (e SortDirectionEnum) IsValid() bool { method String (line 33) | func (e SortDirectionEnum) String() string { method UnmarshalGQL (line 37) | func (e *SortDirectionEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 50) | func (e SortDirectionEnum) MarshalGQL(w io.Writer) { constant SortDirectionEnumAsc (line 16) | SortDirectionEnumAsc SortDirectionEnum = "ASC" constant SortDirectionEnumDesc (line 17) | SortDirectionEnumDesc SortDirectionEnum = "DESC" type FindFilterType (line 54) | type FindFilterType struct method GetSort (line 63) | func (ff FindFilterType) GetSort(defaultSort string) string { method GetDirection (line 73) | func (ff FindFilterType) GetDirection() string { method GetPage (line 87) | func (ff FindFilterType) GetPage() int { method GetPageSize (line 96) | func (ff FindFilterType) GetPageSize() int { method IsGetAll (line 117) | func (ff FindFilterType) IsGetAll() bool { function BatchFindFilter (line 123) | func BatchFindFilter(batchSize int) *FindFilterType { FILE: pkg/models/fingerprint.go type Fingerprint (line 15) | type Fingerprint struct method Value (line 20) | func (f *Fingerprint) Value() string { method String (line 31) | func (f Fingerprint) String() string { method Int64 (line 38) | func (f Fingerprint) Int64() int64 { type Fingerprints (line 43) | type Fingerprints method Remove (line 45) | func (f Fingerprints) Remove(type_ string) Fingerprints { method Filter (line 57) | func (f Fingerprints) Filter(types ...string) Fingerprints { method Equals (line 73) | func (f Fingerprints) Equals(other Fingerprints) bool { method ContentsChanged (line 96) | func (f Fingerprints) ContentsChanged(other Fingerprints) bool { method For (line 108) | func (f Fingerprints) For(type_ string) *Fingerprint { method Get (line 118) | func (f Fingerprints) Get(type_ string) interface{} { method GetString (line 126) | func (f Fingerprints) GetString(type_ string) string { method GetInt64 (line 134) | func (f Fingerprints) GetInt64(type_ string) int64 { method AppendUnique (line 143) | func (f Fingerprints) AppendUnique(o Fingerprint) Fingerprints { FILE: pkg/models/fingerprint_test.go function TestFingerprints_Equals (line 5) | func TestFingerprints_Equals(t *testing.T) { function TestFingerprints_ContentsChanged (line 88) | func TestFingerprints_ContentsChanged(t *testing.T) { FILE: pkg/models/folder.go type FolderQueryOptions (line 9) | type FolderQueryOptions struct type FolderFilterType (line 18) | type FolderFilterType struct function PathsFolderFilter (line 38) | func PathsFolderFilter(paths []string) *FileFilterType { type FolderQueryResult (line 70) | type FolderQueryResult struct method Resolve (line 84) | func (r *FolderQueryResult) Resolve(ctx context.Context) ([]*Folder, e... function NewFolderQueryResult (line 78) | func NewFolderQueryResult(folderGetter FolderGetter) *FolderQueryResult { FILE: pkg/models/fs.go type FileOpener (line 9) | type FileOpener interface type FS (line 14) | type FS interface type ZipFS (line 23) | type ZipFS interface FILE: pkg/models/gallery.go type GalleryFilterType (line 3) | type GalleryFilterType struct type GalleryUpdateInput (line 77) | type GalleryUpdateInput struct type GalleryDestroyInput (line 100) | type GalleryDestroyInput struct FILE: pkg/models/generate.go type GenerateMetadataOptions (line 9) | type GenerateMetadataOptions struct type GeneratePreviewOptions (line 25) | type GeneratePreviewOptions struct type PreviewPreset (line 38) | type PreviewPreset method IsValid (line 67) | func (e PreviewPreset) IsValid() bool { method String (line 75) | func (e PreviewPreset) String() string { method UnmarshalGQL (line 79) | func (e *PreviewPreset) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 92) | func (e PreviewPreset) MarshalGQL(w io.Writer) { constant PreviewPresetUltrafast (line 42) | PreviewPresetUltrafast PreviewPreset = "ultrafast" constant PreviewPresetVeryfast (line 44) | PreviewPresetVeryfast PreviewPreset = "veryfast" constant PreviewPresetFast (line 46) | PreviewPresetFast PreviewPreset = "fast" constant PreviewPresetMedium (line 48) | PreviewPresetMedium PreviewPreset = "medium" constant PreviewPresetSlow (line 50) | PreviewPresetSlow PreviewPreset = "slow" constant PreviewPresetSlower (line 52) | PreviewPresetSlower PreviewPreset = "slower" constant PreviewPresetVeryslow (line 54) | PreviewPresetVeryslow PreviewPreset = "veryslow" FILE: pkg/models/group.go type GroupFilterType (line 3) | type GroupFilterType struct FILE: pkg/models/image.go type ImageFilterType (line 7) | type ImageFilterType struct type ImageUpdateInput (line 74) | type ImageUpdateInput struct type ImageDestroyInput (line 97) | type ImageDestroyInput struct type ImagesDestroyInput (line 104) | type ImagesDestroyInput struct type ImageQueryOptions (line 111) | type ImageQueryOptions struct type ImageQueryResult (line 119) | type ImageQueryResult struct method Resolve (line 135) | func (r *ImageQueryResult) Resolve(ctx context.Context) ([]*Image, err... function NewImageQueryResult (line 129) | func NewImageQueryResult(getter ImageGetter) *ImageQueryResult { FILE: pkg/models/import.go type ImportMissingRefEnum (line 9) | type ImportMissingRefEnum method IsValid (line 23) | func (e ImportMissingRefEnum) IsValid() bool { method String (line 31) | func (e ImportMissingRefEnum) String() string { method UnmarshalGQL (line 35) | func (e *ImportMissingRefEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 48) | func (e ImportMissingRefEnum) MarshalGQL(w io.Writer) { constant ImportMissingRefEnumIgnore (line 12) | ImportMissingRefEnumIgnore ImportMissingRefEnum = "IGNORE" constant ImportMissingRefEnumFail (line 13) | ImportMissingRefEnumFail ImportMissingRefEnum = "FAIL" constant ImportMissingRefEnumCreate (line 14) | ImportMissingRefEnumCreate ImportMissingRefEnum = "CREATE" FILE: pkg/models/json/json_time.go type JSONTime (line 14) | type JSONTime struct method UnmarshalJSON (line 18) | func (jt *JSONTime) UnmarshalJSON(b []byte) error { method MarshalJSON (line 30) | func (jt *JSONTime) MarshalJSON() ([]byte, error) { method GetTime (line 37) | func (jt JSONTime) GetTime() time.Time { FILE: pkg/models/jsonschema/file_folder.go constant DirEntryTypeFolder (line 18) | DirEntryTypeFolder = "folder" constant DirEntryTypeVideo (line 19) | DirEntryTypeVideo = "video" constant DirEntryTypeImage (line 20) | DirEntryTypeImage = "image" constant DirEntryTypeFile (line 21) | DirEntryTypeFile = "file" type DirEntry (line 24) | type DirEntry interface type BaseDirEntry (line 30) | type BaseDirEntry struct method DirEntry (line 42) | func (f *BaseDirEntry) DirEntry() *BaseDirEntry { method IsFile (line 46) | func (f *BaseDirEntry) IsFile() bool { method Filename (line 50) | func (f *BaseDirEntry) Filename() string { type BaseFile (line 62) | type BaseFile struct method IsFile (line 69) | func (f *BaseFile) IsFile() bool { type Fingerprint (line 73) | type Fingerprint struct type VideoFile (line 78) | type VideoFile struct type ImageFile (line 93) | type ImageFile struct function LoadFileFile (line 100) | func LoadFileFile(filePath string) (DirEntry, error) { function SaveFileFile (line 151) | func SaveFileFile(filePath string, file DirEntry) error { FILE: pkg/models/jsonschema/folder.go type Folder (line 14) | type Folder struct method Filename (line 23) | func (f *Folder) Filename() string { function LoadFolderFile (line 35) | func LoadFolderFile(filePath string) (*Folder, error) { function SaveFolderFile (line 51) | func SaveFolderFile(filePath string, folder *Folder) error { FILE: pkg/models/jsonschema/gallery.go type GalleryChapter (line 13) | type GalleryChapter struct type Gallery (line 20) | type Gallery struct method Filename (line 43) | func (s Gallery) Filename(basename string, hash string) string { function LoadGalleryFile (line 54) | func LoadGalleryFile(filePath string) (*Gallery, error) { function SaveGalleryFile (line 70) | func SaveGalleryFile(filePath string, gallery *Gallery) error { type GalleryRef (line 79) | type GalleryRef struct method String (line 86) | func (r GalleryRef) String() string { FILE: pkg/models/jsonschema/group.go type SubGroupDescription (line 14) | type SubGroupDescription struct type Group (line 19) | type Group struct method Filename (line 42) | func (s Group) Filename() string { type MovieSynopsisBC (line 47) | type MovieSynopsisBC struct function LoadGroupFile (line 51) | func LoadGroupFile(filePath string) (*Group, error) { function SaveGroupFile (line 83) | func SaveGroupFile(filePath string, movie *Group) error { FILE: pkg/models/jsonschema/image.go type Image (line 12) | type Image struct method Filename (line 36) | func (s Image) Filename(basename string, hash string) string { function LoadImageFile (line 49) | func LoadImageFile(filePath string) (*Image, error) { function SaveImageFile (line 65) | func SaveImageFile(filePath string, image *Image) error { FILE: pkg/models/jsonschema/load.go function loadFile (line 10) | func loadFile[T any](filePath string) (*T, error) { function saveFile (line 26) | func saveFile[T any](filePath string, obj *T) error { FILE: pkg/models/jsonschema/performer.go type StringOrStringList (line 15) | type StringOrStringList method UnmarshalJSON (line 17) | func (s *StringOrStringList) UnmarshalJSON(data []byte) error { type Performer (line 36) | type Performer struct method Filename (line 78) | func (s Performer) Filename() string { function LoadPerformerFile (line 86) | func LoadPerformerFile(filePath string) (*Performer, error) { function loadPerformer (line 96) | func loadPerformer(r io.ReadSeeker) (*Performer, error) { function SavePerformerFile (line 108) | func SavePerformerFile(filePath string, performer *Performer) error { FILE: pkg/models/jsonschema/performer_test.go function Test_loadPerformer (line 10) | func Test_loadPerformer(t *testing.T) { FILE: pkg/models/jsonschema/saved_filter.go type SavedFilter (line 8) | type SavedFilter struct method Filename (line 16) | func (s SavedFilter) Filename() string { function LoadSavedFilterFile (line 21) | func LoadSavedFilterFile(filePath string) (*SavedFilter, error) { function SaveSavedFilterFile (line 25) | func SaveSavedFilterFile(filePath string, image *SavedFilter) error { FILE: pkg/models/jsonschema/scene.go type SceneMarker (line 14) | type SceneMarker struct type SceneFile (line 24) | type SceneFile struct type SceneGroup (line 37) | type SceneGroup struct type Scene (line 42) | type Scene struct method Filename (line 87) | func (s Scene) Filename(id int, basename string, hash string) string { function LoadSceneFile (line 103) | func LoadSceneFile(filePath string) (*Scene, error) { function SaveSceneFile (line 119) | func SaveSceneFile(filePath string, scene *Scene) error { FILE: pkg/models/jsonschema/studio.go type Studio (line 13) | type Studio struct method Filename (line 35) | func (s Studio) Filename() string { function LoadStudioFile (line 39) | func LoadStudioFile(filePath string) (*Studio, error) { function SaveStudioFile (line 55) | func SaveStudioFile(filePath string, studio *Studio) error { FILE: pkg/models/jsonschema/tag.go type Tag (line 13) | type Tag struct method Filename (line 28) | func (s Tag) Filename() string { function LoadTagFile (line 32) | func LoadTagFile(filePath string) (*Tag, error) { function SaveTagFile (line 48) | func SaveTagFile(filePath string, tag *Tag) error { FILE: pkg/models/jsonschema/utils.go function CompareJSON (line 10) | func CompareJSON(a interface{}, b interface{}) bool { function marshalToFile (line 16) | func marshalToFile(filePath string, j interface{}) error { function encode (line 24) | func encode(j interface{}) ([]byte, error) { FILE: pkg/models/mocks/FileReaderWriter.go type FileReaderWriter (line 15) | type FileReaderWriter struct method CountAllInPaths (line 20) | func (_m *FileReaderWriter) CountAllInPaths(ctx context.Context, p []s... method CountByFolderID (line 41) | func (_m *FileReaderWriter) CountByFolderID(ctx context.Context, folde... method Create (line 62) | func (_m *FileReaderWriter) Create(ctx context.Context, f models.File)... method Destroy (line 76) | func (_m *FileReaderWriter) Destroy(ctx context.Context, id models.Fil... method DestroyFingerprints (line 90) | func (_m *FileReaderWriter) DestroyFingerprints(ctx context.Context, f... method Find (line 104) | func (_m *FileReaderWriter) Find(ctx context.Context, id ...models.Fil... method FindAllByPath (line 134) | func (_m *FileReaderWriter) FindAllByPath(ctx context.Context, path st... method FindAllInPaths (line 157) | func (_m *FileReaderWriter) FindAllInPaths(ctx context.Context, p []st... method FindByFileInfo (line 180) | func (_m *FileReaderWriter) FindByFileInfo(ctx context.Context, info f... method FindByFingerprint (line 203) | func (_m *FileReaderWriter) FindByFingerprint(ctx context.Context, fp ... method FindByPath (line 226) | func (_m *FileReaderWriter) FindByPath(ctx context.Context, path strin... method FindByZipFileID (line 249) | func (_m *FileReaderWriter) FindByZipFileID(ctx context.Context, zipFi... method GetCaptions (line 272) | func (_m *FileReaderWriter) GetCaptions(ctx context.Context, fileID mo... method IsPrimary (line 295) | func (_m *FileReaderWriter) IsPrimary(ctx context.Context, fileID mode... method ModifyFingerprints (line 316) | func (_m *FileReaderWriter) ModifyFingerprints(ctx context.Context, fi... method Query (line 330) | func (_m *FileReaderWriter) Query(ctx context.Context, options models.... method Update (line 353) | func (_m *FileReaderWriter) Update(ctx context.Context, f models.File)... method UpdateCaptions (line 367) | func (_m *FileReaderWriter) UpdateCaptions(ctx context.Context, fileID... FILE: pkg/models/mocks/FolderReaderWriter.go type FolderReaderWriter (line 13) | type FolderReaderWriter struct method CountAllInPaths (line 18) | func (_m *FolderReaderWriter) CountAllInPaths(ctx context.Context, p [... method Create (line 39) | func (_m *FolderReaderWriter) Create(ctx context.Context, f *models.Fo... method Destroy (line 53) | func (_m *FolderReaderWriter) Destroy(ctx context.Context, id models.F... method Find (line 67) | func (_m *FolderReaderWriter) Find(ctx context.Context, id models.Fold... method FindAllInPaths (line 90) | func (_m *FolderReaderWriter) FindAllInPaths(ctx context.Context, p []... method FindByParentFolderID (line 113) | func (_m *FolderReaderWriter) FindByParentFolderID(ctx context.Context... method FindByPath (line 136) | func (_m *FolderReaderWriter) FindByPath(ctx context.Context, path str... method FindByZipFileID (line 159) | func (_m *FolderReaderWriter) FindByZipFileID(ctx context.Context, zip... method FindMany (line 182) | func (_m *FolderReaderWriter) FindMany(ctx context.Context, id []model... method GetManyParentFolderIDs (line 205) | func (_m *FolderReaderWriter) GetManyParentFolderIDs(ctx context.Conte... method Query (line 228) | func (_m *FolderReaderWriter) Query(ctx context.Context, options model... method Update (line 251) | func (_m *FolderReaderWriter) Update(ctx context.Context, f *models.Fo... FILE: pkg/models/mocks/GalleryChapterReaderWriter.go type GalleryChapterReaderWriter (line 13) | type GalleryChapterReaderWriter struct method Create (line 18) | func (_m *GalleryChapterReaderWriter) Create(ctx context.Context, newG... method Destroy (line 32) | func (_m *GalleryChapterReaderWriter) Destroy(ctx context.Context, id ... method Find (line 46) | func (_m *GalleryChapterReaderWriter) Find(ctx context.Context, id int... method FindByGalleryID (line 69) | func (_m *GalleryChapterReaderWriter) FindByGalleryID(ctx context.Cont... method FindMany (line 92) | func (_m *GalleryChapterReaderWriter) FindMany(ctx context.Context, id... method Update (line 115) | func (_m *GalleryChapterReaderWriter) Update(ctx context.Context, upda... method UpdatePartial (line 129) | func (_m *GalleryChapterReaderWriter) UpdatePartial(ctx context.Contex... FILE: pkg/models/mocks/GalleryReaderWriter.go type GalleryReaderWriter (line 13) | type GalleryReaderWriter struct method AddFileID (line 18) | func (_m *GalleryReaderWriter) AddFileID(ctx context.Context, id int, ... method AddImages (line 32) | func (_m *GalleryReaderWriter) AddImages(ctx context.Context, galleryI... method AddSceneIDs (line 53) | func (_m *GalleryReaderWriter) AddSceneIDs(ctx context.Context, galler... method All (line 67) | func (_m *GalleryReaderWriter) All(ctx context.Context) ([]*models.Gal... method Count (line 90) | func (_m *GalleryReaderWriter) Count(ctx context.Context) (int, error) { method CountByFileID (line 111) | func (_m *GalleryReaderWriter) CountByFileID(ctx context.Context, file... method Create (line 132) | func (_m *GalleryReaderWriter) Create(ctx context.Context, newGallery ... method Destroy (line 146) | func (_m *GalleryReaderWriter) Destroy(ctx context.Context, id int) er... method Find (line 160) | func (_m *GalleryReaderWriter) Find(ctx context.Context, id int) (*mod... method FindByChecksum (line 183) | func (_m *GalleryReaderWriter) FindByChecksum(ctx context.Context, che... method FindByChecksums (line 206) | func (_m *GalleryReaderWriter) FindByChecksums(ctx context.Context, ch... method FindByFileID (line 229) | func (_m *GalleryReaderWriter) FindByFileID(ctx context.Context, fileI... method FindByFingerprints (line 252) | func (_m *GalleryReaderWriter) FindByFingerprints(ctx context.Context,... method FindByFolderID (line 275) | func (_m *GalleryReaderWriter) FindByFolderID(ctx context.Context, fol... method FindByImageID (line 298) | func (_m *GalleryReaderWriter) FindByImageID(ctx context.Context, imag... method FindByPath (line 321) | func (_m *GalleryReaderWriter) FindByPath(ctx context.Context, path st... method FindBySceneID (line 344) | func (_m *GalleryReaderWriter) FindBySceneID(ctx context.Context, scen... method FindMany (line 367) | func (_m *GalleryReaderWriter) FindMany(ctx context.Context, ids []int... method FindUserGalleryByTitle (line 390) | func (_m *GalleryReaderWriter) FindUserGalleryByTitle(ctx context.Cont... method GetCustomFields (line 413) | func (_m *GalleryReaderWriter) GetCustomFields(ctx context.Context, id... method GetCustomFieldsBulk (line 436) | func (_m *GalleryReaderWriter) GetCustomFieldsBulk(ctx context.Context... method GetFiles (line 459) | func (_m *GalleryReaderWriter) GetFiles(ctx context.Context, relatedID... method GetImageIDs (line 482) | func (_m *GalleryReaderWriter) GetImageIDs(ctx context.Context, relate... method GetManyFileIDs (line 505) | func (_m *GalleryReaderWriter) GetManyFileIDs(ctx context.Context, ids... method GetPerformerIDs (line 528) | func (_m *GalleryReaderWriter) GetPerformerIDs(ctx context.Context, re... method GetSceneIDs (line 551) | func (_m *GalleryReaderWriter) GetSceneIDs(ctx context.Context, relate... method GetTagIDs (line 574) | func (_m *GalleryReaderWriter) GetTagIDs(ctx context.Context, relatedI... method GetURLs (line 597) | func (_m *GalleryReaderWriter) GetURLs(ctx context.Context, relatedID ... method Query (line 620) | func (_m *GalleryReaderWriter) Query(ctx context.Context, galleryFilte... method QueryCount (line 650) | func (_m *GalleryReaderWriter) QueryCount(ctx context.Context, gallery... method RemoveImages (line 671) | func (_m *GalleryReaderWriter) RemoveImages(ctx context.Context, galle... method ResetCover (line 692) | func (_m *GalleryReaderWriter) ResetCover(ctx context.Context, gallery... method SetCover (line 706) | func (_m *GalleryReaderWriter) SetCover(ctx context.Context, galleryID... method SetCustomFields (line 720) | func (_m *GalleryReaderWriter) SetCustomFields(ctx context.Context, id... method Update (line 734) | func (_m *GalleryReaderWriter) Update(ctx context.Context, updatedGall... method UpdateImages (line 748) | func (_m *GalleryReaderWriter) UpdateImages(ctx context.Context, galle... method UpdatePartial (line 762) | func (_m *GalleryReaderWriter) UpdatePartial(ctx context.Context, id i... FILE: pkg/models/mocks/GroupReaderWriter.go type GroupReaderWriter (line 13) | type GroupReaderWriter struct method All (line 18) | func (_m *GroupReaderWriter) All(ctx context.Context) ([]*models.Group... method Count (line 41) | func (_m *GroupReaderWriter) Count(ctx context.Context) (int, error) { method CountByPerformerID (line 62) | func (_m *GroupReaderWriter) CountByPerformerID(ctx context.Context, p... method CountByStudioID (line 83) | func (_m *GroupReaderWriter) CountByStudioID(ctx context.Context, stud... method Create (line 104) | func (_m *GroupReaderWriter) Create(ctx context.Context, newGroup *mod... method Destroy (line 118) | func (_m *GroupReaderWriter) Destroy(ctx context.Context, id int) error { method Find (line 132) | func (_m *GroupReaderWriter) Find(ctx context.Context, id int) (*model... method FindByName (line 155) | func (_m *GroupReaderWriter) FindByName(ctx context.Context, name stri... method FindByNames (line 178) | func (_m *GroupReaderWriter) FindByNames(ctx context.Context, names []... method FindByPerformerID (line 201) | func (_m *GroupReaderWriter) FindByPerformerID(ctx context.Context, pe... method FindByStudioID (line 224) | func (_m *GroupReaderWriter) FindByStudioID(ctx context.Context, studi... method FindMany (line 247) | func (_m *GroupReaderWriter) FindMany(ctx context.Context, ids []int) ... method GetBackImage (line 270) | func (_m *GroupReaderWriter) GetBackImage(ctx context.Context, groupID... method GetContainingGroupDescriptions (line 293) | func (_m *GroupReaderWriter) GetContainingGroupDescriptions(ctx contex... method GetCustomFields (line 316) | func (_m *GroupReaderWriter) GetCustomFields(ctx context.Context, id i... method GetCustomFieldsBulk (line 339) | func (_m *GroupReaderWriter) GetCustomFieldsBulk(ctx context.Context, ... method GetFrontImage (line 362) | func (_m *GroupReaderWriter) GetFrontImage(ctx context.Context, groupI... method GetSubGroupDescriptions (line 385) | func (_m *GroupReaderWriter) GetSubGroupDescriptions(ctx context.Conte... method GetTagIDs (line 408) | func (_m *GroupReaderWriter) GetTagIDs(ctx context.Context, relatedID ... method GetURLs (line 431) | func (_m *GroupReaderWriter) GetURLs(ctx context.Context, relatedID in... method HasBackImage (line 454) | func (_m *GroupReaderWriter) HasBackImage(ctx context.Context, groupID... method HasFrontImage (line 475) | func (_m *GroupReaderWriter) HasFrontImage(ctx context.Context, groupI... method Query (line 496) | func (_m *GroupReaderWriter) Query(ctx context.Context, groupFilter *m... method QueryCount (line 526) | func (_m *GroupReaderWriter) QueryCount(ctx context.Context, groupFilt... method SetCustomFields (line 547) | func (_m *GroupReaderWriter) SetCustomFields(ctx context.Context, id i... method Update (line 561) | func (_m *GroupReaderWriter) Update(ctx context.Context, updatedGroup ... method UpdateBackImage (line 575) | func (_m *GroupReaderWriter) UpdateBackImage(ctx context.Context, grou... method UpdateFrontImage (line 589) | func (_m *GroupReaderWriter) UpdateFrontImage(ctx context.Context, gro... method UpdatePartial (line 603) | func (_m *GroupReaderWriter) UpdatePartial(ctx context.Context, id int... FILE: pkg/models/mocks/ImageReaderWriter.go type ImageReaderWriter (line 13) | type ImageReaderWriter struct method AddFileID (line 18) | func (_m *ImageReaderWriter) AddFileID(ctx context.Context, id int, fi... method All (line 32) | func (_m *ImageReaderWriter) All(ctx context.Context) ([]*models.Image... method Count (line 55) | func (_m *ImageReaderWriter) Count(ctx context.Context) (int, error) { method CountByFileID (line 76) | func (_m *ImageReaderWriter) CountByFileID(ctx context.Context, fileID... method CountByGalleryID (line 97) | func (_m *ImageReaderWriter) CountByGalleryID(ctx context.Context, gal... method CoverByGalleryID (line 118) | func (_m *ImageReaderWriter) CoverByGalleryID(ctx context.Context, gal... method Create (line 141) | func (_m *ImageReaderWriter) Create(ctx context.Context, newImage *mod... method DecrementOCounter (line 155) | func (_m *ImageReaderWriter) DecrementOCounter(ctx context.Context, id... method Destroy (line 176) | func (_m *ImageReaderWriter) Destroy(ctx context.Context, id int) error { method Find (line 190) | func (_m *ImageReaderWriter) Find(ctx context.Context, id int) (*model... method FindByChecksum (line 213) | func (_m *ImageReaderWriter) FindByChecksum(ctx context.Context, check... method FindByFileID (line 236) | func (_m *ImageReaderWriter) FindByFileID(ctx context.Context, fileID ... method FindByFingerprints (line 259) | func (_m *ImageReaderWriter) FindByFingerprints(ctx context.Context, f... method FindByFolderID (line 282) | func (_m *ImageReaderWriter) FindByFolderID(ctx context.Context, fileI... method FindByGalleryID (line 305) | func (_m *ImageReaderWriter) FindByGalleryID(ctx context.Context, gall... method FindByGalleryIDIndex (line 328) | func (_m *ImageReaderWriter) FindByGalleryIDIndex(ctx context.Context,... method FindByZipFileID (line 351) | func (_m *ImageReaderWriter) FindByZipFileID(ctx context.Context, zipF... method FindMany (line 374) | func (_m *ImageReaderWriter) FindMany(ctx context.Context, ids []int) ... method GetCustomFields (line 397) | func (_m *ImageReaderWriter) GetCustomFields(ctx context.Context, id i... method GetCustomFieldsBulk (line 420) | func (_m *ImageReaderWriter) GetCustomFieldsBulk(ctx context.Context, ... method GetFiles (line 443) | func (_m *ImageReaderWriter) GetFiles(ctx context.Context, relatedID i... method GetGalleryIDs (line 466) | func (_m *ImageReaderWriter) GetGalleryIDs(ctx context.Context, relate... method GetManyFileIDs (line 489) | func (_m *ImageReaderWriter) GetManyFileIDs(ctx context.Context, ids [... method GetPerformerIDs (line 512) | func (_m *ImageReaderWriter) GetPerformerIDs(ctx context.Context, rela... method GetTagIDs (line 535) | func (_m *ImageReaderWriter) GetTagIDs(ctx context.Context, relatedID ... method GetURLs (line 558) | func (_m *ImageReaderWriter) GetURLs(ctx context.Context, relatedID in... method IncrementOCounter (line 581) | func (_m *ImageReaderWriter) IncrementOCounter(ctx context.Context, id... method OCount (line 602) | func (_m *ImageReaderWriter) OCount(ctx context.Context) (int, error) { method OCountByPerformerID (line 623) | func (_m *ImageReaderWriter) OCountByPerformerID(ctx context.Context, ... method OCountByStudioID (line 644) | func (_m *ImageReaderWriter) OCountByStudioID(ctx context.Context, stu... method Query (line 665) | func (_m *ImageReaderWriter) Query(ctx context.Context, options models... method QueryCount (line 688) | func (_m *ImageReaderWriter) QueryCount(ctx context.Context, imageFilt... method RemoveFileID (line 709) | func (_m *ImageReaderWriter) RemoveFileID(ctx context.Context, id int,... method ResetOCounter (line 723) | func (_m *ImageReaderWriter) ResetOCounter(ctx context.Context, id int... method SetCustomFields (line 744) | func (_m *ImageReaderWriter) SetCustomFields(ctx context.Context, id i... method Size (line 758) | func (_m *ImageReaderWriter) Size(ctx context.Context) (float64, error) { method Update (line 779) | func (_m *ImageReaderWriter) Update(ctx context.Context, updatedImage ... method UpdatePartial (line 793) | func (_m *ImageReaderWriter) UpdatePartial(ctx context.Context, id int... method UpdatePerformers (line 816) | func (_m *ImageReaderWriter) UpdatePerformers(ctx context.Context, ima... method UpdateTags (line 830) | func (_m *ImageReaderWriter) UpdateTags(ctx context.Context, imageID i... FILE: pkg/models/mocks/PerformerReaderWriter.go type PerformerReaderWriter (line 13) | type PerformerReaderWriter struct method All (line 18) | func (_m *PerformerReaderWriter) All(ctx context.Context) ([]*models.P... method Count (line 41) | func (_m *PerformerReaderWriter) Count(ctx context.Context) (int, erro... method CountByTagID (line 62) | func (_m *PerformerReaderWriter) CountByTagID(ctx context.Context, tag... method Create (line 83) | func (_m *PerformerReaderWriter) Create(ctx context.Context, newPerfor... method Destroy (line 97) | func (_m *PerformerReaderWriter) Destroy(ctx context.Context, id int) ... method Find (line 111) | func (_m *PerformerReaderWriter) Find(ctx context.Context, id int) (*m... method FindByGalleryID (line 134) | func (_m *PerformerReaderWriter) FindByGalleryID(ctx context.Context, ... method FindByImageID (line 157) | func (_m *PerformerReaderWriter) FindByImageID(ctx context.Context, im... method FindByNames (line 180) | func (_m *PerformerReaderWriter) FindByNames(ctx context.Context, name... method FindBySceneID (line 203) | func (_m *PerformerReaderWriter) FindBySceneID(ctx context.Context, sc... method FindByStashID (line 226) | func (_m *PerformerReaderWriter) FindByStashID(ctx context.Context, st... method FindByStashIDStatus (line 249) | func (_m *PerformerReaderWriter) FindByStashIDStatus(ctx context.Conte... method FindMany (line 272) | func (_m *PerformerReaderWriter) FindMany(ctx context.Context, ids []i... method GetAliases (line 295) | func (_m *PerformerReaderWriter) GetAliases(ctx context.Context, relat... method GetCustomFields (line 318) | func (_m *PerformerReaderWriter) GetCustomFields(ctx context.Context, ... method GetCustomFieldsBulk (line 341) | func (_m *PerformerReaderWriter) GetCustomFieldsBulk(ctx context.Conte... method GetImage (line 364) | func (_m *PerformerReaderWriter) GetImage(ctx context.Context, perform... method GetStashIDs (line 387) | func (_m *PerformerReaderWriter) GetStashIDs(ctx context.Context, rela... method GetTagIDs (line 410) | func (_m *PerformerReaderWriter) GetTagIDs(ctx context.Context, relate... method GetURLs (line 433) | func (_m *PerformerReaderWriter) GetURLs(ctx context.Context, relatedI... method HasImage (line 456) | func (_m *PerformerReaderWriter) HasImage(ctx context.Context, perform... method Merge (line 477) | func (_m *PerformerReaderWriter) Merge(ctx context.Context, source []i... method Query (line 491) | func (_m *PerformerReaderWriter) Query(ctx context.Context, performerF... method QueryCount (line 521) | func (_m *PerformerReaderWriter) QueryCount(ctx context.Context, perfo... method QueryForAutoTag (line 542) | func (_m *PerformerReaderWriter) QueryForAutoTag(ctx context.Context, ... method Update (line 565) | func (_m *PerformerReaderWriter) Update(ctx context.Context, updatedPe... method UpdateImage (line 579) | func (_m *PerformerReaderWriter) UpdateImage(ctx context.Context, perf... method UpdatePartial (line 593) | func (_m *PerformerReaderWriter) UpdatePartial(ctx context.Context, id... FILE: pkg/models/mocks/SavedFilterReaderWriter.go type SavedFilterReaderWriter (line 13) | type SavedFilterReaderWriter struct method All (line 18) | func (_m *SavedFilterReaderWriter) All(ctx context.Context) ([]*models... method Create (line 41) | func (_m *SavedFilterReaderWriter) Create(ctx context.Context, obj *mo... method Destroy (line 55) | func (_m *SavedFilterReaderWriter) Destroy(ctx context.Context, id int... method Find (line 69) | func (_m *SavedFilterReaderWriter) Find(ctx context.Context, id int) (... method FindByMode (line 92) | func (_m *SavedFilterReaderWriter) FindByMode(ctx context.Context, mod... method FindMany (line 115) | func (_m *SavedFilterReaderWriter) FindMany(ctx context.Context, ids [... method Update (line 138) | func (_m *SavedFilterReaderWriter) Update(ctx context.Context, obj *mo... FILE: pkg/models/mocks/SceneMarkerReaderWriter.go type SceneMarkerReaderWriter (line 13) | type SceneMarkerReaderWriter struct method All (line 18) | func (_m *SceneMarkerReaderWriter) All(ctx context.Context) ([]*models... method Count (line 41) | func (_m *SceneMarkerReaderWriter) Count(ctx context.Context) (int, er... method CountByTagID (line 62) | func (_m *SceneMarkerReaderWriter) CountByTagID(ctx context.Context, t... method Create (line 83) | func (_m *SceneMarkerReaderWriter) Create(ctx context.Context, newScen... method Destroy (line 97) | func (_m *SceneMarkerReaderWriter) Destroy(ctx context.Context, id int... method Find (line 111) | func (_m *SceneMarkerReaderWriter) Find(ctx context.Context, id int) (... method FindBySceneID (line 134) | func (_m *SceneMarkerReaderWriter) FindBySceneID(ctx context.Context, ... method FindMany (line 157) | func (_m *SceneMarkerReaderWriter) FindMany(ctx context.Context, ids [... method GetMarkerStrings (line 180) | func (_m *SceneMarkerReaderWriter) GetMarkerStrings(ctx context.Contex... method GetTagIDs (line 203) | func (_m *SceneMarkerReaderWriter) GetTagIDs(ctx context.Context, rela... method Query (line 226) | func (_m *SceneMarkerReaderWriter) Query(ctx context.Context, sceneMar... method QueryCount (line 256) | func (_m *SceneMarkerReaderWriter) QueryCount(ctx context.Context, sce... method Update (line 277) | func (_m *SceneMarkerReaderWriter) Update(ctx context.Context, updated... method UpdatePartial (line 291) | func (_m *SceneMarkerReaderWriter) UpdatePartial(ctx context.Context, ... method UpdateTags (line 314) | func (_m *SceneMarkerReaderWriter) UpdateTags(ctx context.Context, mar... method Wall (line 328) | func (_m *SceneMarkerReaderWriter) Wall(ctx context.Context, q *string... FILE: pkg/models/mocks/SceneReaderWriter.go type SceneReaderWriter (line 15) | type SceneReaderWriter struct method AddFileID (line 20) | func (_m *SceneReaderWriter) AddFileID(ctx context.Context, id int, fi... method AddGalleryIDs (line 34) | func (_m *SceneReaderWriter) AddGalleryIDs(ctx context.Context, sceneI... method AddO (line 48) | func (_m *SceneReaderWriter) AddO(ctx context.Context, id int, dates [... method AddViews (line 71) | func (_m *SceneReaderWriter) AddViews(ctx context.Context, sceneID int... method All (line 94) | func (_m *SceneReaderWriter) All(ctx context.Context) ([]*models.Scene... method AssignFiles (line 117) | func (_m *SceneReaderWriter) AssignFiles(ctx context.Context, sceneID ... method Count (line 131) | func (_m *SceneReaderWriter) Count(ctx context.Context) (int, error) { method CountAllViews (line 152) | func (_m *SceneReaderWriter) CountAllViews(ctx context.Context) (int, ... method CountByFileID (line 173) | func (_m *SceneReaderWriter) CountByFileID(ctx context.Context, fileID... method CountByPerformerID (line 194) | func (_m *SceneReaderWriter) CountByPerformerID(ctx context.Context, p... method CountMissingChecksum (line 215) | func (_m *SceneReaderWriter) CountMissingChecksum(ctx context.Context)... method CountMissingOSHash (line 236) | func (_m *SceneReaderWriter) CountMissingOSHash(ctx context.Context) (... method CountUniqueViews (line 257) | func (_m *SceneReaderWriter) CountUniqueViews(ctx context.Context) (in... method CountViews (line 278) | func (_m *SceneReaderWriter) CountViews(ctx context.Context, id int) (... method Create (line 299) | func (_m *SceneReaderWriter) Create(ctx context.Context, newScene *mod... method DeleteAllViews (line 313) | func (_m *SceneReaderWriter) DeleteAllViews(ctx context.Context, id in... method DeleteO (line 334) | func (_m *SceneReaderWriter) DeleteO(ctx context.Context, id int, date... method DeleteViews (line 357) | func (_m *SceneReaderWriter) DeleteViews(ctx context.Context, id int, ... method Destroy (line 380) | func (_m *SceneReaderWriter) Destroy(ctx context.Context, id int) error { method Duration (line 394) | func (_m *SceneReaderWriter) Duration(ctx context.Context) (float64, e... method Find (line 415) | func (_m *SceneReaderWriter) Find(ctx context.Context, id int) (*model... method FindByChecksum (line 438) | func (_m *SceneReaderWriter) FindByChecksum(ctx context.Context, check... method FindByFileID (line 461) | func (_m *SceneReaderWriter) FindByFileID(ctx context.Context, fileID ... method FindByFingerprints (line 484) | func (_m *SceneReaderWriter) FindByFingerprints(ctx context.Context, f... method FindByGalleryID (line 507) | func (_m *SceneReaderWriter) FindByGalleryID(ctx context.Context, perf... method FindByGroupID (line 530) | func (_m *SceneReaderWriter) FindByGroupID(ctx context.Context, groupI... method FindByIDs (line 553) | func (_m *SceneReaderWriter) FindByIDs(ctx context.Context, ids []int)... method FindByOSHash (line 576) | func (_m *SceneReaderWriter) FindByOSHash(ctx context.Context, oshash ... method FindByPath (line 599) | func (_m *SceneReaderWriter) FindByPath(ctx context.Context, path stri... method FindByPerformerID (line 622) | func (_m *SceneReaderWriter) FindByPerformerID(ctx context.Context, pe... method FindByPrimaryFileID (line 645) | func (_m *SceneReaderWriter) FindByPrimaryFileID(ctx context.Context, ... method FindDuplicates (line 668) | func (_m *SceneReaderWriter) FindDuplicates(ctx context.Context, dista... method FindMany (line 691) | func (_m *SceneReaderWriter) FindMany(ctx context.Context, ids []int) ... method GetAllOCount (line 714) | func (_m *SceneReaderWriter) GetAllOCount(ctx context.Context) (int, e... method GetCover (line 735) | func (_m *SceneReaderWriter) GetCover(ctx context.Context, sceneID int... method GetCustomFields (line 758) | func (_m *SceneReaderWriter) GetCustomFields(ctx context.Context, id i... method GetCustomFieldsBulk (line 781) | func (_m *SceneReaderWriter) GetCustomFieldsBulk(ctx context.Context, ... method GetFiles (line 804) | func (_m *SceneReaderWriter) GetFiles(ctx context.Context, relatedID i... method GetGalleryIDs (line 827) | func (_m *SceneReaderWriter) GetGalleryIDs(ctx context.Context, relate... method GetGroups (line 850) | func (_m *SceneReaderWriter) GetGroups(ctx context.Context, id int) ([... method GetManyFileIDs (line 873) | func (_m *SceneReaderWriter) GetManyFileIDs(ctx context.Context, ids [... method GetManyLastViewed (line 896) | func (_m *SceneReaderWriter) GetManyLastViewed(ctx context.Context, id... method GetManyOCount (line 919) | func (_m *SceneReaderWriter) GetManyOCount(ctx context.Context, ids []... method GetManyODates (line 942) | func (_m *SceneReaderWriter) GetManyODates(ctx context.Context, ids []... method GetManyViewCount (line 965) | func (_m *SceneReaderWriter) GetManyViewCount(ctx context.Context, ids... method GetManyViewDates (line 988) | func (_m *SceneReaderWriter) GetManyViewDates(ctx context.Context, ids... method GetOCount (line 1011) | func (_m *SceneReaderWriter) GetOCount(ctx context.Context, id int) (i... method GetODates (line 1032) | func (_m *SceneReaderWriter) GetODates(ctx context.Context, relatedID ... method GetPerformerIDs (line 1055) | func (_m *SceneReaderWriter) GetPerformerIDs(ctx context.Context, rela... method GetStashIDs (line 1078) | func (_m *SceneReaderWriter) GetStashIDs(ctx context.Context, relatedI... method GetTagIDs (line 1101) | func (_m *SceneReaderWriter) GetTagIDs(ctx context.Context, relatedID ... method GetURLs (line 1124) | func (_m *SceneReaderWriter) GetURLs(ctx context.Context, relatedID in... method GetViewDates (line 1147) | func (_m *SceneReaderWriter) GetViewDates(ctx context.Context, related... method HasCover (line 1170) | func (_m *SceneReaderWriter) HasCover(ctx context.Context, sceneID int... method OCountByGroupID (line 1191) | func (_m *SceneReaderWriter) OCountByGroupID(ctx context.Context, grou... method OCountByPerformerID (line 1212) | func (_m *SceneReaderWriter) OCountByPerformerID(ctx context.Context, ... method OCountByStudioID (line 1233) | func (_m *SceneReaderWriter) OCountByStudioID(ctx context.Context, stu... method PlayDuration (line 1254) | func (_m *SceneReaderWriter) PlayDuration(ctx context.Context) (float6... method Query (line 1275) | func (_m *SceneReaderWriter) Query(ctx context.Context, options models... method QueryCount (line 1298) | func (_m *SceneReaderWriter) QueryCount(ctx context.Context, sceneFilt... method ResetActivity (line 1319) | func (_m *SceneReaderWriter) ResetActivity(ctx context.Context, sceneI... method ResetO (line 1340) | func (_m *SceneReaderWriter) ResetO(ctx context.Context, id int) (int,... method SaveActivity (line 1361) | func (_m *SceneReaderWriter) SaveActivity(ctx context.Context, sceneID... method SetCustomFields (line 1382) | func (_m *SceneReaderWriter) SetCustomFields(ctx context.Context, id i... method Size (line 1396) | func (_m *SceneReaderWriter) Size(ctx context.Context) (float64, error) { method Update (line 1417) | func (_m *SceneReaderWriter) Update(ctx context.Context, updatedScene ... method UpdateCover (line 1431) | func (_m *SceneReaderWriter) UpdateCover(ctx context.Context, sceneID ... method UpdatePartial (line 1445) | func (_m *SceneReaderWriter) UpdatePartial(ctx context.Context, id int... method Wall (line 1468) | func (_m *SceneReaderWriter) Wall(ctx context.Context, q *string) ([]*... FILE: pkg/models/mocks/StudioReaderWriter.go type StudioReaderWriter (line 13) | type StudioReaderWriter struct method All (line 18) | func (_m *StudioReaderWriter) All(ctx context.Context) ([]*models.Stud... method Count (line 41) | func (_m *StudioReaderWriter) Count(ctx context.Context) (int, error) { method CountByTagID (line 62) | func (_m *StudioReaderWriter) CountByTagID(ctx context.Context, tagID ... method Create (line 83) | func (_m *StudioReaderWriter) Create(ctx context.Context, newStudio *m... method Destroy (line 97) | func (_m *StudioReaderWriter) Destroy(ctx context.Context, id int) err... method Find (line 111) | func (_m *StudioReaderWriter) Find(ctx context.Context, id int) (*mode... method FindByName (line 134) | func (_m *StudioReaderWriter) FindByName(ctx context.Context, name str... method FindBySceneID (line 157) | func (_m *StudioReaderWriter) FindBySceneID(ctx context.Context, scene... method FindByStashID (line 180) | func (_m *StudioReaderWriter) FindByStashID(ctx context.Context, stash... method FindByStashIDStatus (line 203) | func (_m *StudioReaderWriter) FindByStashIDStatus(ctx context.Context,... method FindChildren (line 226) | func (_m *StudioReaderWriter) FindChildren(ctx context.Context, id int... method FindMany (line 249) | func (_m *StudioReaderWriter) FindMany(ctx context.Context, ids []int)... method GetAliases (line 272) | func (_m *StudioReaderWriter) GetAliases(ctx context.Context, relatedI... method GetCustomFields (line 295) | func (_m *StudioReaderWriter) GetCustomFields(ctx context.Context, id ... method GetCustomFieldsBulk (line 318) | func (_m *StudioReaderWriter) GetCustomFieldsBulk(ctx context.Context,... method GetImage (line 341) | func (_m *StudioReaderWriter) GetImage(ctx context.Context, studioID i... method GetStashIDs (line 364) | func (_m *StudioReaderWriter) GetStashIDs(ctx context.Context, related... method GetTagIDs (line 387) | func (_m *StudioReaderWriter) GetTagIDs(ctx context.Context, relatedID... method GetURLs (line 410) | func (_m *StudioReaderWriter) GetURLs(ctx context.Context, relatedID i... method HasImage (line 433) | func (_m *StudioReaderWriter) HasImage(ctx context.Context, studioID i... method Query (line 454) | func (_m *StudioReaderWriter) Query(ctx context.Context, studioFilter ... method QueryCount (line 484) | func (_m *StudioReaderWriter) QueryCount(ctx context.Context, studioFi... method QueryForAutoTag (line 505) | func (_m *StudioReaderWriter) QueryForAutoTag(ctx context.Context, wor... method Update (line 528) | func (_m *StudioReaderWriter) Update(ctx context.Context, updatedStudi... method UpdateImage (line 542) | func (_m *StudioReaderWriter) UpdateImage(ctx context.Context, studioI... method UpdatePartial (line 556) | func (_m *StudioReaderWriter) UpdatePartial(ctx context.Context, updat... FILE: pkg/models/mocks/TagReaderWriter.go type TagReaderWriter (line 13) | type TagReaderWriter struct method All (line 18) | func (_m *TagReaderWriter) All(ctx context.Context) ([]*models.Tag, er... method Count (line 41) | func (_m *TagReaderWriter) Count(ctx context.Context) (int, error) { method CountByChildTagID (line 62) | func (_m *TagReaderWriter) CountByChildTagID(ctx context.Context, chil... method CountByParentTagID (line 83) | func (_m *TagReaderWriter) CountByParentTagID(ctx context.Context, par... method Create (line 104) | func (_m *TagReaderWriter) Create(ctx context.Context, newTag *models.... method Destroy (line 118) | func (_m *TagReaderWriter) Destroy(ctx context.Context, id int) error { method Find (line 132) | func (_m *TagReaderWriter) Find(ctx context.Context, id int) (*models.... method FindAllAncestors (line 155) | func (_m *TagReaderWriter) FindAllAncestors(ctx context.Context, tagID... method FindAllDescendants (line 178) | func (_m *TagReaderWriter) FindAllDescendants(ctx context.Context, tag... method FindByChildTagID (line 201) | func (_m *TagReaderWriter) FindByChildTagID(ctx context.Context, child... method FindByGalleryID (line 224) | func (_m *TagReaderWriter) FindByGalleryID(ctx context.Context, galler... method FindByGroupID (line 247) | func (_m *TagReaderWriter) FindByGroupID(ctx context.Context, groupID ... method FindByImageID (line 270) | func (_m *TagReaderWriter) FindByImageID(ctx context.Context, imageID ... method FindByName (line 293) | func (_m *TagReaderWriter) FindByName(ctx context.Context, name string... method FindByNames (line 316) | func (_m *TagReaderWriter) FindByNames(ctx context.Context, names []st... method FindByParentTagID (line 339) | func (_m *TagReaderWriter) FindByParentTagID(ctx context.Context, pare... method FindByPerformerID (line 362) | func (_m *TagReaderWriter) FindByPerformerID(ctx context.Context, perf... method FindBySceneID (line 385) | func (_m *TagReaderWriter) FindBySceneID(ctx context.Context, sceneID ... method FindBySceneMarkerID (line 408) | func (_m *TagReaderWriter) FindBySceneMarkerID(ctx context.Context, sc... method FindByStashID (line 431) | func (_m *TagReaderWriter) FindByStashID(ctx context.Context, stashID ... method FindByStashIDStatus (line 454) | func (_m *TagReaderWriter) FindByStashIDStatus(ctx context.Context, ha... method FindByStudioID (line 477) | func (_m *TagReaderWriter) FindByStudioID(ctx context.Context, studioI... method FindMany (line 500) | func (_m *TagReaderWriter) FindMany(ctx context.Context, ids []int) ([... method GetAliases (line 523) | func (_m *TagReaderWriter) GetAliases(ctx context.Context, relatedID i... method GetChildIDs (line 546) | func (_m *TagReaderWriter) GetChildIDs(ctx context.Context, relatedID ... method GetCustomFields (line 569) | func (_m *TagReaderWriter) GetCustomFields(ctx context.Context, id int... method GetCustomFieldsBulk (line 592) | func (_m *TagReaderWriter) GetCustomFieldsBulk(ctx context.Context, id... method GetImage (line 615) | func (_m *TagReaderWriter) GetImage(ctx context.Context, tagID int) ([... method GetParentIDs (line 638) | func (_m *TagReaderWriter) GetParentIDs(ctx context.Context, relatedID... method GetStashIDs (line 661) | func (_m *TagReaderWriter) GetStashIDs(ctx context.Context, relatedID ... method HasImage (line 684) | func (_m *TagReaderWriter) HasImage(ctx context.Context, tagID int) (b... method Merge (line 705) | func (_m *TagReaderWriter) Merge(ctx context.Context, source []int, de... method Query (line 719) | func (_m *TagReaderWriter) Query(ctx context.Context, tagFilter *model... method QueryForAutoTag (line 749) | func (_m *TagReaderWriter) QueryForAutoTag(ctx context.Context, words ... method SetCustomFields (line 772) | func (_m *TagReaderWriter) SetCustomFields(ctx context.Context, id int... method Update (line 786) | func (_m *TagReaderWriter) Update(ctx context.Context, updatedTag *mod... method UpdateAliases (line 800) | func (_m *TagReaderWriter) UpdateAliases(ctx context.Context, tagID in... method UpdateChildTags (line 814) | func (_m *TagReaderWriter) UpdateChildTags(ctx context.Context, tagID ... method UpdateImage (line 828) | func (_m *TagReaderWriter) UpdateImage(ctx context.Context, tagID int,... method UpdateParentTags (line 842) | func (_m *TagReaderWriter) UpdateParentTags(ctx context.Context, tagID... method UpdatePartial (line 856) | func (_m *TagReaderWriter) UpdatePartial(ctx context.Context, id int, ... FILE: pkg/models/mocks/database.go type Database (line 13) | type Database struct method Begin (line 28) | func (*Database) Begin(ctx context.Context, exclusive bool) (context.C... method WithDatabase (line 32) | func (*Database) WithDatabase(ctx context.Context) (context.Context, e... method Commit (line 36) | func (*Database) Commit(ctx context.Context) error { method Rollback (line 40) | func (*Database) Rollback(ctx context.Context) error { method Complete (line 44) | func (*Database) Complete(ctx context.Context) { method AddPostCommitHook (line 47) | func (*Database) AddPostCommitHook(ctx context.Context, hook txn.TxnFu... method AddPostRollbackHook (line 50) | func (*Database) AddPostRollbackHook(ctx context.Context, hook txn.Txn... method IsLocked (line 53) | func (*Database) IsLocked(err error) bool { method Reset (line 57) | func (*Database) Reset() error { method AssertExpectations (line 78) | func (db *Database) AssertExpectations(t mock.TestingT) { method WithTxnCtx (line 96) | func (db *Database) WithTxnCtx(fn func(ctx context.Context)) { method Repository (line 103) | func (db *Database) Repository() models.Repository { function NewDatabase (line 61) | func NewDatabase() *Database { FILE: pkg/models/mocks/query.go type sceneResolver (line 9) | type sceneResolver struct method Find (line 13) | func (s *sceneResolver) Find(ctx context.Context, id int) (*models.Sce... method FindMany (line 17) | func (s *sceneResolver) FindMany(ctx context.Context, ids []int) ([]*m... method FindByIDs (line 21) | func (s *sceneResolver) FindByIDs(ctx context.Context, ids []int) ([]*... function SceneQueryResult (line 25) | func SceneQueryResult(scenes []*models.Scene, count int) *models.SceneQu... type imageResolver (line 34) | type imageResolver struct method Find (line 38) | func (s *imageResolver) Find(ctx context.Context, id int) (*models.Ima... method FindMany (line 42) | func (s *imageResolver) FindMany(ctx context.Context, ids []int) ([]*m... function ImageQueryResult (line 46) | func ImageQueryResult(images []*models.Image, count int) *models.ImageQu... FILE: pkg/models/model_file.go type HashAlgorithm (line 14) | type HashAlgorithm method IsValid (line 27) | func (e HashAlgorithm) IsValid() bool { method String (line 35) | func (e HashAlgorithm) String() string { method UnmarshalGQL (line 39) | func (e *HashAlgorithm) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 52) | func (e HashAlgorithm) MarshalGQL(w io.Writer) { constant HashAlgorithmMd5 (line 17) | HashAlgorithmMd5 HashAlgorithm = "MD5" constant HashAlgorithmOshash (line 19) | HashAlgorithmOshash HashAlgorithm = "OSHASH" type FileID (line 57) | type FileID method String (line 59) | func (i FileID) String() string { method UnmarshalGQL (line 63) | func (i *FileID) UnmarshalGQL(v interface{}) (err error) { method MarshalGQL (line 78) | func (i FileID) MarshalGQL(w io.Writer) { function FileIDsFromInts (line 82) | func FileIDsFromInts(ids []int) []FileID { type DirEntry (line 91) | type DirEntry struct method info (line 101) | func (e *DirEntry) info(fs FS, path string) (fs.FileInfo, error) { type File (line 118) | type File interface type BaseFile (line 126) | type BaseFile struct method SetFingerprints (line 147) | func (f *BaseFile) SetFingerprints(fp Fingerprints) { method SetFingerprint (line 155) | func (f *BaseFile) SetFingerprint(fp Fingerprint) { method Base (line 167) | func (f *BaseFile) Base() *BaseFile { method Open (line 171) | func (f *BaseFile) Open(fs FS) (io.ReadCloser, error) { method Clone (line 185) | func (f *BaseFile) Clone() (ret File) { method Info (line 191) | func (f *BaseFile) Info(fs FS) (fs.FileInfo, error) { method Serve (line 195) | func (f *BaseFile) Serve(fs FS, w http.ResponseWriter, r *http.Request... type VisualFile (line 229) | type VisualFile interface function GetMinResolution (line 236) | func GetMinResolution(f VisualFile) int { type ImageFile (line 248) | type ImageFile struct method GetWidth (line 255) | func (f ImageFile) GetWidth() int { method GetHeight (line 259) | func (f ImageFile) GetHeight() int { method Megapixels (line 263) | func (f ImageFile) Megapixels() float64 { method GetFormat (line 267) | func (f ImageFile) GetFormat() string { method Clone (line 271) | func (f ImageFile) Clone() (ret File) { type VideoFile (line 279) | type VideoFile struct method GetWidth (line 294) | func (f VideoFile) GetWidth() int { method GetHeight (line 298) | func (f VideoFile) GetHeight() int { method GetFormat (line 302) | func (f VideoFile) GetFormat() string { method Clone (line 306) | func (f VideoFile) Clone() (ret File) { method DurationFinite (line 316) | func (f VideoFile) DurationFinite() float64 { method FrameRateFinite (line 324) | func (f VideoFile) FrameRateFinite() float64 { FILE: pkg/models/model_folder.go type FolderID (line 12) | type FolderID method String (line 15) | func (i FolderID) String() string { method UnmarshalGQL (line 19) | func (i *FolderID) UnmarshalGQL(v interface{}) (err error) { method MarshalGQL (line 34) | func (i FolderID) MarshalGQL(w io.Writer) { function FolderIDsFromInts (line 38) | func FolderIDsFromInts(ids []int) []FolderID { type Folder (line 47) | type Folder struct method Info (line 57) | func (f *Folder) Info(fs FS) (fs.FileInfo, error) { FILE: pkg/models/model_gallery.go type Gallery (line 10) | type Gallery struct method IsUserCreated (line 100) | func (g *Gallery) IsUserCreated() bool { method LoadURLs (line 104) | func (g *Gallery) LoadURLs(ctx context.Context, l URLLoader) error { method LoadFiles (line 110) | func (g *Gallery) LoadFiles(ctx context.Context, l FileLoader) error { method LoadPrimaryFile (line 116) | func (g *Gallery) LoadPrimaryFile(ctx context.Context, l FileGetter) e... method LoadSceneIDs (line 134) | func (g *Gallery) LoadSceneIDs(ctx context.Context, l SceneIDLoader) e... method LoadPerformerIDs (line 140) | func (g *Gallery) LoadPerformerIDs(ctx context.Context, l PerformerIDL... method LoadTagIDs (line 146) | func (g *Gallery) LoadTagIDs(ctx context.Context, l TagIDLoader) error { method PrimaryChecksum (line 152) | func (g Gallery) PrimaryChecksum() string { method GetTitle (line 167) | func (g Gallery) GetTitle() string { method DisplayName (line 177) | func (g Gallery) DisplayName() string { function NewGallery (line 41) | func NewGallery() Gallery { type CreateGalleryInput (line 49) | type CreateGalleryInput struct type UpdateGalleryInput (line 56) | type UpdateGalleryInput struct type GalleryPartial (line 65) | type GalleryPartial struct function NewGalleryPartial (line 91) | func NewGalleryPartial() GalleryPartial { constant DefaultGthumbWidth (line 189) | DefaultGthumbWidth int = 640 FILE: pkg/models/model_gallery_chapter.go type GalleryChapter (line 7) | type GalleryChapter struct function NewGalleryChapter (line 16) | func NewGalleryChapter() GalleryChapter { type GalleryChapterPartial (line 26) | type GalleryChapterPartial struct function NewGalleryChapterPartial (line 34) | func NewGalleryChapterPartial() GalleryChapterPartial { FILE: pkg/models/model_group.go type Group (line 8) | type Group struct method LoadURLs (line 45) | func (m *Group) LoadURLs(ctx context.Context, l URLLoader) error { method LoadTagIDs (line 51) | func (m *Group) LoadTagIDs(ctx context.Context, l TagIDLoader) error { method LoadContainingGroupIDs (line 57) | func (m *Group) LoadContainingGroupIDs(ctx context.Context, l Containi... method LoadSubGroupIDs (line 63) | func (m *Group) LoadSubGroupIDs(ctx context.Context, l SubGroupLoader)... function NewGroup (line 29) | func NewGroup() Group { type CreateGroupInput (line 37) | type CreateGroupInput struct type GroupPartial (line 69) | type GroupPartial struct function NewGroupPartial (line 89) | func NewGroupPartial() GroupPartial { FILE: pkg/models/model_image.go type Image (line 11) | type Image struct method LoadURLs (line 86) | func (i *Image) LoadURLs(ctx context.Context, l URLLoader) error { method LoadFiles (line 92) | func (i *Image) LoadFiles(ctx context.Context, l FileLoader) error { method LoadPrimaryFile (line 98) | func (i *Image) LoadPrimaryFile(ctx context.Context, l FileGetter) err... method LoadGalleryIDs (line 117) | func (i *Image) LoadGalleryIDs(ctx context.Context, l GalleryIDLoader)... method LoadPerformerIDs (line 123) | func (i *Image) LoadPerformerIDs(ctx context.Context, l PerformerIDLoa... method LoadTagIDs (line 129) | func (i *Image) LoadTagIDs(ctx context.Context, l TagIDLoader) error { method GetTitle (line 137) | func (i Image) GetTitle() string { method DisplayName (line 151) | func (i Image) DisplayName() string { function NewImage (line 42) | func NewImage() Image { type CreateImageInput (line 50) | type CreateImageInput struct type ImagePartial (line 57) | type ImagePartial struct function NewImagePartial (line 79) | func NewImagePartial() ImagePartial { FILE: pkg/models/model_joins.go type GroupsScenes (line 8) | type GroupsScenes struct method SceneMovieInput (line 14) | func (s GroupsScenes) SceneMovieInput() SceneMovieInput { method Equal (line 21) | func (s GroupsScenes) Equal(o GroupsScenes) bool { type UpdateGroupIDs (line 26) | type UpdateGroupIDs struct method SceneMovieInputs (line 31) | func (u *UpdateGroupIDs) SceneMovieInputs() []SceneMovieInput { method AddUnique (line 44) | func (u *UpdateGroupIDs) AddUnique(v GroupsScenes) { function GroupsScenesFromInput (line 54) | func GroupsScenesFromInput(input []SceneMovieInput) ([]GroupsScenes, err... type GroupIDDescription (line 72) | type GroupIDDescription struct FILE: pkg/models/model_performer.go type Performer (line 8) | type Performer struct method LoadAliases (line 108) | func (s *Performer) LoadAliases(ctx context.Context, l AliasLoader) er... method LoadURLs (line 114) | func (s *Performer) LoadURLs(ctx context.Context, l URLLoader) error { method LoadTagIDs (line 120) | func (s *Performer) LoadTagIDs(ctx context.Context, l TagIDLoader) err... method LoadStashIDs (line 126) | func (s *Performer) LoadStashIDs(ctx context.Context, l StashIDLoader)... method LoadRelationships (line 132) | func (s *Performer) LoadRelationships(ctx context.Context, l Performer... type CreatePerformerInput (line 43) | type CreatePerformerInput struct type UpdatePerformerInput (line 49) | type UpdatePerformerInput struct function NewPerformer (line 55) | func NewPerformer() Performer { type PerformerPartial (line 65) | type PerformerPartial struct function NewPerformerPartial (line 101) | func NewPerformerPartial() PerformerPartial { FILE: pkg/models/model_saved_filter.go type FilterMode (line 9) | type FilterMode method IsValid (line 35) | func (e FilterMode) IsValid() bool { method String (line 43) | func (e FilterMode) String() string { method UnmarshalGQL (line 47) | func (e *FilterMode) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 60) | func (e FilterMode) MarshalGQL(w io.Writer) { constant FilterModeScenes (line 12) | FilterModeScenes FilterMode = "SCENES" constant FilterModePerformers (line 13) | FilterModePerformers FilterMode = "PERFORMERS" constant FilterModeStudios (line 14) | FilterModeStudios FilterMode = "STUDIOS" constant FilterModeGalleries (line 15) | FilterModeGalleries FilterMode = "GALLERIES" constant FilterModeSceneMarkers (line 16) | FilterModeSceneMarkers FilterMode = "SCENE_MARKERS" constant FilterModeMovies (line 17) | FilterModeMovies FilterMode = "MOVIES" constant FilterModeGroups (line 18) | FilterModeGroups FilterMode = "GROUPS" constant FilterModeTags (line 19) | FilterModeTags FilterMode = "TAGS" constant FilterModeImages (line 20) | FilterModeImages FilterMode = "IMAGES" type SavedFilter (line 64) | type SavedFilter struct FILE: pkg/models/model_scene.go type Scene (line 12) | type Scene struct method LoadURLs (line 103) | func (s *Scene) LoadURLs(ctx context.Context, l URLLoader) error { method LoadFiles (line 109) | func (s *Scene) LoadFiles(ctx context.Context, l VideoFileLoader) error { method LoadPrimaryFile (line 115) | func (s *Scene) LoadPrimaryFile(ctx context.Context, l FileGetter) err... method LoadGalleryIDs (line 138) | func (s *Scene) LoadGalleryIDs(ctx context.Context, l GalleryIDLoader)... method LoadPerformerIDs (line 144) | func (s *Scene) LoadPerformerIDs(ctx context.Context, l PerformerIDLoa... method LoadTagIDs (line 150) | func (s *Scene) LoadTagIDs(ctx context.Context, l TagIDLoader) error { method LoadGroups (line 156) | func (s *Scene) LoadGroups(ctx context.Context, l SceneGroupLoader) er... method LoadStashIDs (line 162) | func (s *Scene) LoadStashIDs(ctx context.Context, l StashIDLoader) err... method LoadRelationships (line 168) | func (s *Scene) LoadRelationships(ctx context.Context, l SceneReader) ... method GetTitle (line 237) | func (s Scene) GetTitle() string { method DisplayName (line 247) | func (s Scene) DisplayName() string { method GetHash (line 257) | func (s Scene) GetHash(hashAlgorithm HashAlgorithm) string { function NewScene (line 48) | func NewScene() Scene { type CreateSceneInput (line 56) | type CreateSceneInput struct type UpdateSceneInput (line 64) | type UpdateSceneInput struct type ScenePartial (line 72) | type ScenePartial struct method UpdateInput (line 201) | func (s ScenePartial) UpdateInput(id int) SceneUpdateInput { function NewScenePartial (line 96) | func NewScenePartial() ScenePartial { type SceneFileType (line 269) | type SceneFileType struct type VideoCaption (line 280) | type VideoCaption struct method Path (line 286) | func (c VideoCaption) Path(filePath string) string { FILE: pkg/models/model_scene_marker.go type SceneMarker (line 7) | type SceneMarker struct function NewSceneMarker (line 18) | func NewSceneMarker() SceneMarker { type SceneMarkerPartial (line 28) | type SceneMarkerPartial struct function NewSceneMarkerPartial (line 39) | func NewSceneMarkerPartial() SceneMarkerPartial { FILE: pkg/models/model_scene_test.go function TestScenePartial_UpdateInput (line 8) | func TestScenePartial_UpdateInput(t *testing.T) { FILE: pkg/models/model_scraped_item.go type ScrapedStudio (line 13) | type ScrapedStudio struct method IsScrapedContent (line 28) | func (ScrapedStudio) IsScrapedContent() {} method ToStudio (line 30) | func (s *ScrapedStudio) ToStudio(endpoint string, excluded map[string]... method GetImage (line 77) | func (s *ScrapedStudio) GetImage(ctx context.Context, excluded map[str... method ToPartial (line 92) | func (s *ScrapedStudio) ToPartial(id string, endpoint string, excluded... type ScrapedPerformer (line 160) | type ScrapedPerformer struct method IsScrapedContent (line 198) | func (ScrapedPerformer) IsScrapedContent() {} method ToPerformer (line 200) | func (p *ScrapedPerformer) ToPerformer(endpoint string, excluded map[s... method GetImage (line 336) | func (p *ScrapedPerformer) GetImage(ctx context.Context, excluded map[... method ToPartial (line 351) | func (p *ScrapedPerformer) ToPartial(endpoint string, excluded map[str... type ScrapedTag (line 476) | type ScrapedTag struct method IsScrapedContent (line 486) | func (ScrapedTag) IsScrapedContent() {} method ToTag (line 488) | func (t *ScrapedTag) ToTag(endpoint string, excluded map[string]bool) ... method ToPartial (line 524) | func (t *ScrapedTag) ToPartial(storedID string, endpoint string, exclu... function ScrapedTagSortFunction (line 567) | func ScrapedTagSortFunction(a, b *ScrapedTag) int { type ScrapedMovie (line 572) | type ScrapedMovie struct method IsScrapedContent (line 593) | func (ScrapedMovie) IsScrapedContent() {} method ScrapedGroup (line 595) | func (m ScrapedMovie) ScrapedGroup() ScrapedGroup { type ScrapedGroup (line 620) | type ScrapedGroup struct method IsScrapedContent (line 639) | func (ScrapedGroup) IsScrapedContent() {} method ScrapedMovie (line 641) | func (g ScrapedGroup) ScrapedMovie() ScrapedMovie { type ScrapedScene (line 665) | type ScrapedScene struct method IsScrapedContent (line 686) | func (ScrapedScene) IsScrapedContent() {} type ScrapedSceneInput (line 688) | type ScrapedSceneInput struct type ScrapedImage (line 699) | type ScrapedImage struct method IsScrapedContent (line 711) | func (ScrapedImage) IsScrapedContent() {} type ScrapedImageInput (line 713) | type ScrapedImageInput struct type ScrapedGallery (line 721) | type ScrapedGallery struct method IsScrapedContent (line 736) | func (ScrapedGallery) IsScrapedContent() {} type ScrapedGalleryInput (line 738) | type ScrapedGalleryInput struct FILE: pkg/models/model_scraped_item_test.go function Test_scrapedToStudioInput (line 11) | func Test_scrapedToStudioInput(t *testing.T) { function Test_scrapedToPerformerInput (line 121) | func Test_scrapedToPerformerInput(t *testing.T) { function TestScrapedStudio_ToPartial (line 286) | func TestScrapedStudio_ToPartial(t *testing.T) { FILE: pkg/models/model_studio.go type Studio (line 8) | type Studio struct method LoadAliases (line 83) | func (s *Studio) LoadAliases(ctx context.Context, l AliasLoader) error { method LoadURLs (line 89) | func (s *Studio) LoadURLs(ctx context.Context, l URLLoader) error { method LoadTagIDs (line 95) | func (s *Studio) LoadTagIDs(ctx context.Context, l TagIDLoader) error { method LoadStashIDs (line 101) | func (s *Studio) LoadStashIDs(ctx context.Context, l StashIDLoader) er... method LoadRelationships (line 107) | func (s *Studio) LoadRelationships(ctx context.Context, l PerformerRea... type CreateStudioInput (line 27) | type CreateStudioInput struct type UpdateStudioInput (line 33) | type UpdateStudioInput struct function NewStudio (line 39) | func NewStudio() Studio { function NewCreateStudioInput (line 47) | func NewCreateStudioInput() CreateStudioInput { type StudioPartial (line 55) | type StudioPartial struct function NewStudioPartial (line 76) | func NewStudioPartial() StudioPartial { FILE: pkg/models/model_tag.go type Tag (line 8) | type Tag struct method LoadAliases (line 44) | func (s *Tag) LoadAliases(ctx context.Context, l AliasLoader) error { method LoadParentIDs (line 50) | func (s *Tag) LoadParentIDs(ctx context.Context, l TagRelationLoader) ... method LoadChildIDs (line 56) | func (s *Tag) LoadChildIDs(ctx context.Context, l TagRelationLoader) e... method LoadStashIDs (line 62) | func (s *Tag) LoadStashIDs(ctx context.Context, l StashIDLoader) error { function NewTag (line 24) | func NewTag() Tag { type CreateTagInput (line 32) | type CreateTagInput struct type UpdateTagInput (line 38) | type UpdateTagInput struct type TagPartial (line 68) | type TagPartial struct function NewTagPartial (line 85) | func NewTagPartial() TagPartial { type TagPath (line 92) | type TagPath struct FILE: pkg/models/orientation.go type OrientationEnum (line 3) | type OrientationEnum method IsValid (line 11) | func (e OrientationEnum) IsValid() bool { constant OrientationLandscape (line 6) | OrientationLandscape OrientationEnum = "LANDSCAPE" constant OrientationPortrait (line 7) | OrientationPortrait OrientationEnum = "PORTRAIT" constant OrientationSquare (line 8) | OrientationSquare OrientationEnum = "SQUARE" FILE: pkg/models/package.go type PackageSpecInput (line 3) | type PackageSpecInput struct type PackageSource (line 8) | type PackageSource struct FILE: pkg/models/paths/paths.go type Paths (line 10) | type Paths struct function NewPaths (line 18) | func NewPaths(generatedPath string, blobsPath string) Paths { function GetStashHomeDirectory (line 29) | func GetStashHomeDirectory() string { function GetDefaultDatabaseFilePath (line 33) | func GetDefaultDatabaseFilePath() string { FILE: pkg/models/paths/paths_generated.go constant thumbDirDepth (line 12) | thumbDirDepth int = 2 constant thumbDirLength (line 13) | thumbDirLength int = 2 type generatedPaths (line 15) | type generatedPaths struct method GetTmpPath (line 39) | func (gp *generatedPaths) GetTmpPath(fileName string) string { method TempFile (line 45) | func (gp *generatedPaths) TempFile(pattern string) (*os.File, error) { method EnsureTmpDir (line 52) | func (gp *generatedPaths) EnsureTmpDir() error { method EmptyTmpDir (line 56) | func (gp *generatedPaths) EmptyTmpDir() error { method RemoveTmpDir (line 60) | func (gp *generatedPaths) RemoveTmpDir() error { method TempDir (line 64) | func (gp *generatedPaths) TempDir(pattern string) (string, error) { method GetThumbnailPath (line 80) | func (gp *generatedPaths) GetThumbnailPath(checksum string, width int)... method GetClipPreviewPath (line 85) | func (gp *generatedPaths) GetClipPreviewPath(checksum string, width in... function newGeneratedPaths (line 26) | func newGeneratedPaths(path string) *generatedPaths { FILE: pkg/models/paths/paths_json.go type JSONPaths (line 10) | type JSONPaths struct function newJSONPaths (line 26) | func newJSONPaths(baseDir string) *JSONPaths { function GetJSONPaths (line 42) | func GetJSONPaths(baseDir string) *JSONPaths { function EmptyJSONDirs (line 47) | func EmptyJSONDirs(baseDir string) { function EnsureJSONDirs (line 60) | func EnsureJSONDirs(baseDir string) { FILE: pkg/models/paths/paths_scene_markers.go type sceneMarkerPaths (line 8) | type sceneMarkerPaths struct method GetFolderPath (line 19) | func (sp *sceneMarkerPaths) GetFolderPath(checksum string) string { method GetVideoPreviewPath (line 23) | func (sp *sceneMarkerPaths) GetVideoPreviewPath(checksum string, secon... method GetWebpPreviewPath (line 27) | func (sp *sceneMarkerPaths) GetWebpPreviewPath(checksum string, second... method GetScreenshotPath (line 31) | func (sp *sceneMarkerPaths) GetScreenshotPath(checksum string, seconds... function newSceneMarkerPaths (line 12) | func newSceneMarkerPaths(p Paths) *sceneMarkerPaths { FILE: pkg/models/paths/paths_scenes.go type scenePaths (line 9) | type scenePaths struct method GetLegacyScreenshotPath (line 20) | func (sp *scenePaths) GetLegacyScreenshotPath(checksum string) string { method GetTranscodePath (line 24) | func (sp *scenePaths) GetTranscodePath(checksum string) string { method GetStreamPath (line 28) | func (sp *scenePaths) GetStreamPath(scenePath string, checksum string)... method GetVideoPreviewPath (line 37) | func (sp *scenePaths) GetVideoPreviewPath(checksum string) string { method GetWebpPreviewPath (line 41) | func (sp *scenePaths) GetWebpPreviewPath(checksum string) string { method GetSpriteImageFilePath (line 45) | func (sp *scenePaths) GetSpriteImageFilePath(checksum string) string { method GetSpriteVttFilePath (line 49) | func (sp *scenePaths) GetSpriteVttFilePath(checksum string) string { method GetInteractiveHeatmapPath (line 53) | func (sp *scenePaths) GetInteractiveHeatmapPath(checksum string) string { function newScenePaths (line 13) | func newScenePaths(p Paths) *scenePaths { FILE: pkg/models/performer.go type GenderEnum (line 9) | type GenderEnum method IsValid (line 29) | func (e GenderEnum) IsValid() bool { method String (line 37) | func (e GenderEnum) String() string { method UnmarshalGQL (line 41) | func (e *GenderEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 54) | func (e GenderEnum) MarshalGQL(w io.Writer) { constant GenderEnumMale (line 12) | GenderEnumMale GenderEnum = "MALE" constant GenderEnumFemale (line 13) | GenderEnumFemale GenderEnum = "FEMALE" constant GenderEnumTransgenderMale (line 14) | GenderEnumTransgenderMale GenderEnum = "TRANSGENDER_MALE" constant GenderEnumTransgenderFemale (line 15) | GenderEnumTransgenderFemale GenderEnum = "TRANSGENDER_FEMALE" constant GenderEnumIntersex (line 16) | GenderEnumIntersex GenderEnum = "INTERSEX" constant GenderEnumNonBinary (line 17) | GenderEnumNonBinary GenderEnum = "NON_BINARY" type GenderCriterionInput (line 58) | type GenderCriterionInput struct type CircumcisedEnum (line 64) | type CircumcisedEnum method IsValid (line 76) | func (e CircumcisedEnum) IsValid() bool { method String (line 84) | func (e CircumcisedEnum) String() string { method UnmarshalGQL (line 88) | func (e *CircumcisedEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 101) | func (e CircumcisedEnum) MarshalGQL(w io.Writer) { constant CircumcisedEnumCut (line 67) | CircumcisedEnumCut CircumcisedEnum = "CUT" constant CircumcisedEnumUncut (line 68) | CircumcisedEnumUncut CircumcisedEnum = "UNCUT" type CircumcisionCriterionInput (line 105) | type CircumcisionCriterionInput struct type PerformerFilterType (line 110) | type PerformerFilterType struct type PerformerCreateInput (line 218) | type PerformerCreateInput struct type PerformerUpdateInput (line 258) | type PerformerUpdateInput struct FILE: pkg/models/query.go type QueryOptions (line 3) | type QueryOptions struct type QueryResult (line 8) | type QueryResult struct FILE: pkg/models/rating.go type RatingSystem (line 10) | type RatingSystem method IsValid (line 22) | func (e RatingSystem) IsValid() bool { method String (line 31) | func (e RatingSystem) String() string { method UnmarshalGQL (line 35) | func (e *RatingSystem) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 48) | func (e RatingSystem) MarshalGQL(w io.Writer) { constant FiveStar (line 13) | FiveStar = "FiveStar" constant FivePointFiveStar (line 14) | FivePointFiveStar = "FivePointFiveStar" constant FivePointTwoFiveStar (line 15) | FivePointTwoFiveStar = "FivePointTwoFiveStar" constant TenPointDecimal (line 19) | TenPointDecimal = "TenPointDecimal" constant maxRating100 (line 53) | maxRating100 = 100 constant maxRating5 (line 54) | maxRating5 = 5 constant minRating5 (line 55) | minRating5 = 1 constant minRating100 (line 56) | minRating100 = 20 function Rating100To5 (line 61) | func Rating100To5(rating100 int) int { function Rating5To100 (line 67) | func Rating5To100(rating5 int) int { FILE: pkg/models/rating_test.go function TestRating100To5 (line 7) | func TestRating100To5(t *testing.T) { function TestRating5To100 (line 33) | func TestRating5To100(t *testing.T) { FILE: pkg/models/relationships.go type SceneIDLoader (line 9) | type SceneIDLoader interface type ImageIDLoader (line 13) | type ImageIDLoader interface type GalleryIDLoader (line 17) | type GalleryIDLoader interface type PerformerIDLoader (line 21) | type PerformerIDLoader interface type TagIDLoader (line 25) | type TagIDLoader interface type TagRelationLoader (line 29) | type TagRelationLoader interface type FileIDLoader (line 34) | type FileIDLoader interface type SceneGroupLoader (line 38) | type SceneGroupLoader interface type ContainingGroupLoader (line 42) | type ContainingGroupLoader interface type SubGroupLoader (line 46) | type SubGroupLoader interface type StashIDLoader (line 50) | type StashIDLoader interface type VideoFileLoader (line 54) | type VideoFileLoader interface type FileLoader (line 58) | type FileLoader interface type AliasLoader (line 62) | type AliasLoader interface type URLLoader (line 66) | type URLLoader interface type RelatedIDs (line 72) | type RelatedIDs struct method Loaded (line 85) | func (r RelatedIDs) Loaded() bool { method mustLoaded (line 89) | func (r RelatedIDs) mustLoaded() { method List (line 96) | func (r RelatedIDs) List() []int { method Add (line 103) | func (r *RelatedIDs) Add(ids ...int) { method load (line 109) | func (r *RelatedIDs) load(fn func() ([]int, error)) error { function NewRelatedIDs (line 78) | func NewRelatedIDs(ids []int) RelatedIDs { type RelatedGroups (line 129) | type RelatedGroups struct method Loaded (line 142) | func (r RelatedGroups) Loaded() bool { method mustLoaded (line 146) | func (r RelatedGroups) mustLoaded() { method List (line 153) | func (r RelatedGroups) List() []GroupsScenes { method Add (line 160) | func (r *RelatedGroups) Add(groups ...GroupsScenes) { method ForID (line 167) | func (r *RelatedGroups) ForID(id int) *GroupsScenes { method load (line 179) | func (r *RelatedGroups) load(fn func() ([]GroupsScenes, error)) error { function NewRelatedGroups (line 135) | func NewRelatedGroups(list []GroupsScenes) RelatedGroups { type RelatedGroupDescriptions (line 198) | type RelatedGroupDescriptions struct method Loaded (line 211) | func (r RelatedGroupDescriptions) Loaded() bool { method mustLoaded (line 215) | func (r RelatedGroupDescriptions) mustLoaded() { method List (line 222) | func (r RelatedGroupDescriptions) List() []GroupIDDescription { method IDs (line 229) | func (r RelatedGroupDescriptions) IDs() []int { method Add (line 236) | func (r *RelatedGroupDescriptions) Add(groups ...GroupIDDescription) { method ForID (line 243) | func (r *RelatedGroupDescriptions) ForID(id int) *GroupIDDescription { method load (line 255) | func (r *RelatedGroupDescriptions) load(fn func() ([]GroupIDDescriptio... function NewRelatedGroupDescriptions (line 204) | func NewRelatedGroupDescriptions(list []GroupIDDescription) RelatedGroup... type RelatedStashIDs (line 274) | type RelatedStashIDs struct method mustLoaded (line 286) | func (r RelatedStashIDs) mustLoaded() { method Loaded (line 293) | func (r RelatedStashIDs) Loaded() bool { method List (line 298) | func (r RelatedStashIDs) List() []StashID { method ForEndpoint (line 305) | func (r *RelatedStashIDs) ForEndpoint(endpoint string) *StashID { method load (line 317) | func (r *RelatedStashIDs) load(fn func() ([]StashID, error)) error { function NewRelatedStashIDs (line 280) | func NewRelatedStashIDs(list []StashID) RelatedStashIDs { type RelatedVideoFiles (line 336) | type RelatedVideoFiles struct method SetPrimary (line 355) | func (r *RelatedVideoFiles) SetPrimary(f *VideoFile) { method Set (line 360) | func (r *RelatedVideoFiles) Set(f []*VideoFile) { method Loaded (line 370) | func (r RelatedVideoFiles) Loaded() bool { method PrimaryLoaded (line 375) | func (r RelatedVideoFiles) PrimaryLoaded() bool { method List (line 380) | func (r RelatedVideoFiles) List() []*VideoFile { method Primary (line 389) | func (r RelatedVideoFiles) Primary() *VideoFile { method load (line 397) | func (r *RelatedVideoFiles) load(fn func() ([]*VideoFile, error)) error { method loadPrimary (line 417) | func (r *RelatedVideoFiles) loadPrimary(fn func() (*VideoFile, error))... function NewRelatedVideoFiles (line 342) | func NewRelatedVideoFiles(files []*VideoFile) RelatedVideoFiles { type RelatedFiles (line 433) | type RelatedFiles struct method Loaded (line 453) | func (r RelatedFiles) Loaded() bool { method PrimaryLoaded (line 458) | func (r RelatedFiles) PrimaryLoaded() bool { method List (line 463) | func (r RelatedFiles) List() []File { method Primary (line 472) | func (r RelatedFiles) Primary() File { method load (line 480) | func (r *RelatedFiles) load(fn func() ([]File, error)) error { method loadPrimary (line 500) | func (r *RelatedFiles) loadPrimary(fn func() (File, error)) error { function NewRelatedFiles (line 439) | func NewRelatedFiles(files []File) RelatedFiles { type RelatedStrings (line 518) | type RelatedStrings struct method Loaded (line 531) | func (r RelatedStrings) Loaded() bool { method mustLoaded (line 535) | func (r RelatedStrings) mustLoaded() { method List (line 542) | func (r RelatedStrings) List() []string { method Add (line 549) | func (r *RelatedStrings) Add(values ...string) { method load (line 555) | func (r *RelatedStrings) load(fn func() ([]string, error)) error { function NewRelatedStrings (line 524) | func NewRelatedStrings(values []string) RelatedStrings { FILE: pkg/models/repository.go type TxnManager (line 9) | type TxnManager interface type Repository (line 14) | type Repository struct method WithTxn (line 32) | func (r *Repository) WithTxn(ctx context.Context, fn txn.TxnFunc) error { method WithReadTxn (line 36) | func (r *Repository) WithReadTxn(ctx context.Context, fn txn.TxnFunc) ... method WithDB (line 40) | func (r *Repository) WithDB(ctx context.Context, fn txn.TxnFunc) error { FILE: pkg/models/repository_blob.go type BlobReader (line 6) | type BlobReader interface FILE: pkg/models/repository_file.go type FileGetter (line 9) | type FileGetter interface type FileFinder (line 14) | type FileFinder interface type FileQueryer (line 25) | type FileQueryer interface type FileCounter (line 30) | type FileCounter interface type FileCreator (line 36) | type FileCreator interface type FileUpdater (line 41) | type FileUpdater interface type FileDestroyer (line 46) | type FileDestroyer interface type FileFinderCreator (line 50) | type FileFinderCreator interface type FileFinderUpdater (line 55) | type FileFinderUpdater interface type FileFinderDestroyer (line 60) | type FileFinderDestroyer interface type FileReader (line 66) | type FileReader interface type FileFingerprintWriter (line 75) | type FileFingerprintWriter interface type FileWriter (line 81) | type FileWriter interface type FileReaderWriter (line 91) | type FileReaderWriter interface FILE: pkg/models/repository_folder.go type FolderGetter (line 6) | type FolderGetter interface type FolderFinder (line 12) | type FolderFinder interface type FolderQueryer (line 21) | type FolderQueryer interface type FolderCounter (line 25) | type FolderCounter interface type FolderCreator (line 30) | type FolderCreator interface type FolderUpdater (line 35) | type FolderUpdater interface type FolderDestroyer (line 39) | type FolderDestroyer interface type FolderFinderCreator (line 43) | type FolderFinderCreator interface type FolderFinderDestroyer (line 48) | type FolderFinderDestroyer interface type FolderReader (line 54) | type FolderReader interface type FolderWriter (line 61) | type FolderWriter interface type FolderReaderWriter (line 68) | type FolderReaderWriter interface FILE: pkg/models/repository_gallery.go type GalleryGetter (line 6) | type GalleryGetter interface type GalleryFinder (line 13) | type GalleryFinder interface type GalleryQueryer (line 27) | type GalleryQueryer interface type GalleryCounter (line 33) | type GalleryCounter interface type GalleryCreator (line 39) | type GalleryCreator interface type GalleryUpdater (line 44) | type GalleryUpdater interface type GalleryDestroyer (line 51) | type GalleryDestroyer interface type GalleryCreatorUpdater (line 55) | type GalleryCreatorUpdater interface type GalleryReader (line 61) | type GalleryReader interface type GalleryWriter (line 79) | type GalleryWriter interface type GalleryReaderWriter (line 95) | type GalleryReaderWriter interface FILE: pkg/models/repository_gallery_chapter.go type GalleryChapterGetter (line 6) | type GalleryChapterGetter interface type GalleryChapterFinder (line 13) | type GalleryChapterFinder interface type GalleryChapterCreator (line 19) | type GalleryChapterCreator interface type GalleryChapterUpdater (line 24) | type GalleryChapterUpdater interface type GalleryChapterDestroyer (line 30) | type GalleryChapterDestroyer interface type GalleryChapterCreatorUpdater (line 34) | type GalleryChapterCreatorUpdater interface type GalleryChapterReader (line 40) | type GalleryChapterReader interface type GalleryChapterWriter (line 45) | type GalleryChapterWriter interface type GalleryChapterReaderWriter (line 52) | type GalleryChapterReaderWriter interface FILE: pkg/models/repository_group.go type GroupGetter (line 6) | type GroupGetter interface type GroupFinder (line 13) | type GroupFinder interface type GroupQueryer (line 22) | type GroupQueryer interface type GroupCounter (line 28) | type GroupCounter interface type GroupCreator (line 35) | type GroupCreator interface type GroupUpdater (line 40) | type GroupUpdater interface type GroupDestroyer (line 48) | type GroupDestroyer interface type GroupCreatorUpdater (line 52) | type GroupCreatorUpdater interface type GroupFinderCreator (line 57) | type GroupFinderCreator interface type GroupReader (line 63) | type GroupReader interface type GroupWriter (line 81) | type GroupWriter interface type GroupReaderWriter (line 89) | type GroupReaderWriter interface FILE: pkg/models/repository_image.go type ImageGetter (line 6) | type ImageGetter interface type ImageFinder (line 13) | type ImageFinder interface type ImageQueryer (line 25) | type ImageQueryer interface type GalleryCoverFinder (line 30) | type GalleryCoverFinder interface type ImageCounter (line 35) | type ImageCounter interface type ImageCreator (line 45) | type ImageCreator interface type ImageUpdater (line 50) | type ImageUpdater interface type ImageDestroyer (line 58) | type ImageDestroyer interface type ImageCreatorUpdater (line 62) | type ImageCreatorUpdater interface type ImageReader (line 68) | type ImageReader interface type ImageWriter (line 88) | type ImageWriter interface type ImageReaderWriter (line 102) | type ImageReaderWriter interface FILE: pkg/models/repository_performer.go type PerformerGetter (line 6) | type PerformerGetter interface type PerformerFinder (line 13) | type PerformerFinder interface type PerformerQueryer (line 24) | type PerformerQueryer interface type PerformerAutoTagQueryer (line 29) | type PerformerAutoTagQueryer interface type PerformerCounter (line 39) | type PerformerCounter interface type PerformerCreator (line 45) | type PerformerCreator interface type PerformerUpdater (line 50) | type PerformerUpdater interface type PerformerDestroyer (line 57) | type PerformerDestroyer interface type PerformerFinderCreator (line 61) | type PerformerFinderCreator interface type PerformerCreatorUpdater (line 66) | type PerformerCreatorUpdater interface type PerformerReader (line 72) | type PerformerReader interface type PerformerWriter (line 91) | type PerformerWriter interface type PerformerReaderWriter (line 100) | type PerformerReaderWriter interface FILE: pkg/models/repository_scene.go type SceneGetter (line 9) | type SceneGetter interface type SceneFinder (line 19) | type SceneFinder interface type SceneQueryer (line 34) | type SceneQueryer interface type SceneCounter (line 40) | type SceneCounter interface type SceneCreator (line 52) | type SceneCreator interface type SceneUpdater (line 57) | type SceneUpdater interface type SceneDestroyer (line 64) | type SceneDestroyer interface type SceneCreatorUpdater (line 68) | type SceneCreatorUpdater interface type ViewDateReader (line 73) | type ViewDateReader interface type ODateReader (line 83) | type ODateReader interface type SceneReader (line 92) | type SceneReader interface type OHistoryWriter (line 118) | type OHistoryWriter interface type ViewHistoryWriter (line 124) | type ViewHistoryWriter interface type SceneWriter (line 131) | type SceneWriter interface type SceneReaderWriter (line 148) | type SceneReaderWriter interface FILE: pkg/models/repository_scene_marker.go type SceneMarkerGetter (line 6) | type SceneMarkerGetter interface type SceneMarkerFinder (line 13) | type SceneMarkerFinder interface type SceneMarkerQueryer (line 19) | type SceneMarkerQueryer interface type SceneMarkerCounter (line 25) | type SceneMarkerCounter interface type SceneMarkerCreator (line 31) | type SceneMarkerCreator interface type SceneMarkerUpdater (line 36) | type SceneMarkerUpdater interface type SceneMarkerDestroyer (line 43) | type SceneMarkerDestroyer interface type SceneMarkerCreatorUpdater (line 47) | type SceneMarkerCreatorUpdater interface type SceneMarkerReader (line 53) | type SceneMarkerReader interface type SceneMarkerWriter (line 66) | type SceneMarkerWriter interface type SceneMarkerReaderWriter (line 73) | type SceneMarkerReaderWriter interface FILE: pkg/models/repository_studio.go type StudioGetter (line 6) | type StudioGetter interface type StudioFinder (line 13) | type StudioFinder interface type StudioQueryer (line 23) | type StudioQueryer interface type StudioAutoTagQueryer (line 28) | type StudioAutoTagQueryer interface type StudioCounter (line 38) | type StudioCounter interface type StudioCreator (line 44) | type StudioCreator interface type StudioUpdater (line 49) | type StudioUpdater interface type StudioDestroyer (line 56) | type StudioDestroyer interface type StudioFinderCreator (line 60) | type StudioFinderCreator interface type StudioCreatorUpdater (line 65) | type StudioCreatorUpdater interface type StudioReader (line 71) | type StudioReader interface type StudioWriter (line 90) | type StudioWriter interface type StudioReaderWriter (line 97) | type StudioReaderWriter interface FILE: pkg/models/repository_tag.go type TagGetter (line 6) | type TagGetter interface type TagFinder (line 13) | type TagFinder interface type TagQueryer (line 33) | type TagQueryer interface type TagAutoTagQueryer (line 37) | type TagAutoTagQueryer interface type TagCounter (line 47) | type TagCounter interface type TagCreator (line 54) | type TagCreator interface type TagUpdater (line 59) | type TagUpdater interface type TagDestroyer (line 69) | type TagDestroyer interface type TagFinderCreator (line 73) | type TagFinderCreator interface type TagCreatorUpdater (line 78) | type TagCreatorUpdater interface type TagReader (line 85) | type TagReader interface type TagWriter (line 102) | type TagWriter interface type TagReaderWriter (line 112) | type TagReaderWriter interface FILE: pkg/models/resolution.go type ResolutionRange (line 9) | type ResolutionRange struct type ResolutionEnum (line 31) | type ResolutionEnum method IsValid (line 84) | func (e ResolutionEnum) IsValid() bool { method String (line 92) | func (e ResolutionEnum) String() string { method UnmarshalGQL (line 96) | func (e *ResolutionEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 109) | func (e ResolutionEnum) MarshalGQL(w io.Writer) { method GetMaxResolution (line 115) | func (e *ResolutionEnum) GetMaxResolution() int { method GetMinResolution (line 121) | func (e *ResolutionEnum) GetMinResolution() int { constant ResolutionEnumVeryLow (line 35) | ResolutionEnumVeryLow ResolutionEnum = "VERY_LOW" constant ResolutionEnumLow (line 37) | ResolutionEnumLow ResolutionEnum = "LOW" constant ResolutionEnumR360p (line 39) | ResolutionEnumR360p ResolutionEnum = "R360P" constant ResolutionEnumStandard (line 41) | ResolutionEnumStandard ResolutionEnum = "STANDARD" constant ResolutionEnumWebHd (line 43) | ResolutionEnumWebHd ResolutionEnum = "WEB_HD" constant ResolutionEnumStandardHd (line 45) | ResolutionEnumStandardHd ResolutionEnum = "STANDARD_HD" constant ResolutionEnumFullHd (line 47) | ResolutionEnumFullHd ResolutionEnum = "FULL_HD" constant ResolutionEnumQuadHd (line 49) | ResolutionEnumQuadHd ResolutionEnum = "QUAD_HD" constant ResolutionEnumVrHd (line 51) | ResolutionEnumVrHd ResolutionEnum = "VR_HD" constant ResolutionEnumFourK (line 53) | ResolutionEnumFourK ResolutionEnum = "FOUR_K" constant ResolutionEnumFiveK (line 55) | ResolutionEnumFiveK ResolutionEnum = "FIVE_K" constant ResolutionEnumSixK (line 57) | ResolutionEnumSixK ResolutionEnum = "SIX_K" constant ResolutionEnumSevenK (line 59) | ResolutionEnumSevenK ResolutionEnum = "SEVEN_K" constant ResolutionEnumEightK (line 61) | ResolutionEnumEightK ResolutionEnum = "EIGHT_K" constant ResolutionEnumHuge (line 63) | ResolutionEnumHuge ResolutionEnum = "HUGE" type StreamingResolutionEnum (line 125) | type StreamingResolutionEnum method IsValid (line 151) | func (e StreamingResolutionEnum) IsValid() bool { method String (line 159) | func (e StreamingResolutionEnum) String() string { method UnmarshalGQL (line 163) | func (e *StreamingResolutionEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 176) | func (e StreamingResolutionEnum) MarshalGQL(w io.Writer) { method GetMaxResolution (line 189) | func (e StreamingResolutionEnum) GetMaxResolution() int { constant StreamingResolutionEnumLow (line 129) | StreamingResolutionEnumLow StreamingResolutionEnum = "LOW" constant StreamingResolutionEnumStandard (line 131) | StreamingResolutionEnumStandard StreamingResolutionEnum = "STANDARD" constant StreamingResolutionEnumStandardHd (line 133) | StreamingResolutionEnumStandardHd StreamingResolutionEnum = "STANDARD_HD" constant StreamingResolutionEnumFullHd (line 135) | StreamingResolutionEnumFullHd StreamingResolutionEnum = "FULL_HD" constant StreamingResolutionEnumFourK (line 137) | StreamingResolutionEnumFourK StreamingResolutionEnum = "FOUR_K" constant StreamingResolutionEnumOriginal (line 139) | StreamingResolutionEnumOriginal StreamingResolutionEnum = "ORIGINAL" FILE: pkg/models/saved_filter.go type SavedFilterReader (line 5) | type SavedFilterReader interface type SavedFilterWriter (line 12) | type SavedFilterWriter interface type SavedFilterReaderWriter (line 18) | type SavedFilterReaderWriter interface FILE: pkg/models/scene.go type DuplicationCriterionInput (line 5) | type DuplicationCriterionInput struct type FileDuplicationCriterionInput (line 20) | type FileDuplicationCriterionInput struct type SceneFilterType (line 29) | type SceneFilterType struct type SceneQueryOptions (line 147) | type SceneQueryOptions struct type SceneQueryResult (line 155) | type SceneQueryResult struct method Resolve (line 251) | func (r *SceneQueryResult) Resolve(ctx context.Context) ([]*Scene, err... type SceneMovieInput (line 166) | type SceneMovieInput struct type SceneGroupInput (line 171) | type SceneGroupInput struct type SceneCreateInput (line 176) | type SceneCreateInput struct type SceneUpdateInput (line 202) | type SceneUpdateInput struct type SceneDestroyInput (line 231) | type SceneDestroyInput struct type ScenesDestroyInput (line 238) | type ScenesDestroyInput struct function NewSceneQueryResult (line 245) | func NewSceneQueryResult(getter SceneGetter) *SceneQueryResult { FILE: pkg/models/scene_marker.go type SceneMarkerFilterType (line 3) | type SceneMarkerFilterType struct type MarkerStringsResultType (line 30) | type MarkerStringsResultType struct FILE: pkg/models/search.go constant or (line 6) | or = "OR" constant orSymbol (line 7) | orSymbol = "|" constant notPrefix (line 8) | notPrefix = '-' constant phraseChar (line 9) | phraseChar = '"' type SearchSpecs (line 13) | type SearchSpecs struct function combinePhrases (line 26) | func combinePhrases(words []string) []string { function extractOrConditions (line 60) | func extractOrConditions(words []string, searchSpec *SearchSpecs) []stri... function extractNotConditions (line 105) | func extractNotConditions(words []string, searchSpec *SearchSpecs) []str... function extractPhrase (line 123) | func extractPhrase(w string) string { function ParseSearchString (line 140) | func ParseSearchString(s string) SearchSpecs { FILE: pkg/models/search_test.go function TestParseSearchString (line 8) | func TestParseSearchString(t *testing.T) { FILE: pkg/models/stash_box.go type StashBoxFingerprint (line 3) | type StashBoxFingerprint struct type StashBox (line 9) | type StashBox struct FILE: pkg/models/stash_ids.go type StashID (line 8) | type StashID struct method ToStashIDInput (line 14) | func (s StashID) ToStashIDInput() StashIDInput { type StashIDs (line 23) | type StashIDs method ToStashIDInputs (line 25) | func (s StashIDs) ToStashIDInputs() StashIDInputs { method HasSameStashIDs (line 38) | func (s StashIDs) HasSameStashIDs(other StashIDs) bool { type StashIDInput (line 54) | type StashIDInput struct method ToStashID (line 60) | func (s StashIDInput) ToStashID() StashID { type StashIDInputs (line 75) | type StashIDInputs method ToStashIDs (line 77) | func (s StashIDInputs) ToStashIDs() StashIDs { type UpdateStashIDs (line 102) | type UpdateStashIDs struct method AddUnique (line 108) | func (u *UpdateStashIDs) AddUnique(v StashID) { method Set (line 119) | func (u *UpdateStashIDs) Set(v StashID) { type StashIDCriterionInput (line 130) | type StashIDCriterionInput struct type StashIDsCriterionInput (line 138) | type StashIDsCriterionInput struct FILE: pkg/models/studio.go type StudioFilterType (line 3) | type StudioFilterType struct type StudioCreateInput (line 60) | type StudioCreateInput struct type StudioUpdateInput (line 79) | type StudioUpdateInput struct FILE: pkg/models/tag.go type TagFilterType (line 3) | type TagFilterType struct FILE: pkg/models/update.go type RelationshipUpdateMode (line 12) | type RelationshipUpdateMode method IsValid (line 26) | func (e RelationshipUpdateMode) IsValid() bool { method String (line 34) | func (e RelationshipUpdateMode) String() string { method UnmarshalGQL (line 38) | func (e *RelationshipUpdateMode) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 51) | func (e RelationshipUpdateMode) MarshalGQL(w io.Writer) { constant RelationshipUpdateModeSet (line 15) | RelationshipUpdateModeSet RelationshipUpdateMode = "SET" constant RelationshipUpdateModeAdd (line 16) | RelationshipUpdateModeAdd RelationshipUpdateMode = "ADD" constant RelationshipUpdateModeRemove (line 17) | RelationshipUpdateModeRemove RelationshipUpdateMode = "REMOVE" type UpdateIDs (line 55) | type UpdateIDs struct method IDStrings (line 60) | func (u *UpdateIDs) IDStrings() []string { method ImpactedIDs (line 74) | func (u *UpdateIDs) ImpactedIDs(existing []int) []int { method Apply (line 93) | func (u *UpdateIDs) Apply(existing []int) []int { type UpdateStrings (line 101) | type UpdateStrings struct method Strings (line 106) | func (u *UpdateStrings) Strings() []string { method Apply (line 115) | func (u *UpdateStrings) Apply(existing []string) []string { function applyUpdate (line 124) | func applyUpdate[T comparable](values []T, mode RelationshipUpdateMode, ... type UpdateGroupDescriptions (line 137) | type UpdateGroupDescriptions struct method Apply (line 143) | func (u *UpdateGroupDescriptions) Apply(existing []GroupIDDescription)... method applyAdd (line 160) | func (u *UpdateGroupDescriptions) applyAdd(existing []GroupIDDescripti... method applyRemove (line 181) | func (u *UpdateGroupDescriptions) applyRemove(existing []GroupIDDescri... FILE: pkg/models/update_test.go function TestUpdateIDs_ImpactedIDs (line 10) | func TestUpdateIDs_ImpactedIDs(t *testing.T) { function TestApplyUpdate (line 53) | func TestApplyUpdate(t *testing.T) { FILE: pkg/models/value.go type OptionalString (line 10) | type OptionalString struct method Ptr (line 17) | func (o *OptionalString) Ptr() *string { method Merge (line 27) | func (o *OptionalString) Merge(destVal string, srcVal string) { function NewOptionalString (line 34) | func NewOptionalString(v string) OptionalString { function NewOptionalStringPtr (line 40) | func NewOptionalStringPtr(v *string) OptionalString { type OptionalInt (line 52) | type OptionalInt struct method Ptr (line 59) | func (o *OptionalInt) Ptr() *int { method MergePtr (line 69) | func (o *OptionalInt) MergePtr(destVal *int, srcVal *int) { method StringPtr (line 95) | func (o *OptionalInt) StringPtr() *string { function NewOptionalInt (line 76) | func NewOptionalInt(v int) OptionalInt { function NewOptionalIntPtr (line 82) | func NewOptionalIntPtr(v *int) OptionalInt { type OptionalInt64 (line 105) | type OptionalInt64 struct method Ptr (line 112) | func (o *OptionalInt64) Ptr() *int64 { function NewOptionalInt64 (line 122) | func NewOptionalInt64(v int64) OptionalInt64 { function NewOptionalInt64Ptr (line 128) | func NewOptionalInt64Ptr(v *int64) OptionalInt64 { type OptionalBool (line 140) | type OptionalBool struct method Ptr (line 146) | func (o *OptionalBool) Ptr() *bool { method Merge (line 156) | func (o *OptionalBool) Merge(destVal bool, srcVal bool) { function NewOptionalBool (line 163) | func NewOptionalBool(v bool) OptionalBool { function NewOptionalBoolPtr (line 169) | func NewOptionalBoolPtr(v *bool) OptionalBool { type OptionalFloat64 (line 181) | type OptionalFloat64 struct method Ptr (line 188) | func (o *OptionalFloat64) Ptr() *float64 { function NewOptionalFloat64 (line 198) | func NewOptionalFloat64(v float64) OptionalFloat64 { function NewOptionalFloat64Ptr (line 203) | func NewOptionalFloat64Ptr(v *float64) OptionalFloat64 { type OptionalDate (line 215) | type OptionalDate struct method Ptr (line 222) | func (o *OptionalDate) Ptr() *Date { method MergePtr (line 237) | func (o *OptionalDate) MergePtr(destVal *Date, srcVal *Date) { function NewOptionalDate (line 232) | func NewOptionalDate(v Date) OptionalDate { function NewOptionalDatePtr (line 245) | func NewOptionalDatePtr(v *Date) OptionalDate { type OptionalTime (line 257) | type OptionalTime struct method Ptr (line 282) | func (o *OptionalTime) Ptr() *time.Time { function NewOptionalTime (line 264) | func NewOptionalTime(v time.Time) OptionalTime { function NewOptionalTimePtr (line 270) | func NewOptionalTimePtr(v *time.Time) OptionalTime { FILE: pkg/performer/export.go type ImageAliasStashIDGetter (line 15) | type ImageAliasStashIDGetter interface function ToJSON (line 24) | func ToJSON(ctx context.Context, reader ImageAliasStashIDGetter, perform... function GetIDs (line 115) | func GetIDs(performers []*models.Performer) []int { function GetNames (line 124) | func GetNames(performers []*models.Performer) []string { FILE: pkg/performer/export_test.go constant performerID (line 18) | performerID = 1 constant noImageID (line 19) | noImageID = 2 constant errImageID (line 20) | errImageID = 3 constant customFieldsID (line 21) | customFieldsID = 4 constant errCustomFieldsID (line 22) | errCustomFieldsID = 5 constant performerName (line 26) | performerName = "testPerformer" constant disambiguation (line 27) | disambiguation = "disambiguation" constant url (line 28) | url = "url" constant country (line 29) | country = "country" constant ethnicity (line 30) | ethnicity = "ethnicity" constant eyeColor (line 31) | eyeColor = "eyeColor" constant fakeTits (line 32) | fakeTits = "fakeTits" constant instagram (line 33) | instagram = "instagram" constant measurements (line 34) | measurements = "measurements" constant piercings (line 35) | piercings = "piercings" constant tattoos (line 36) | tattoos = "tattoos" constant twitter (line 37) | twitter = "twitter" constant details (line 38) | details = "details" constant hairColor (line 39) | hairColor = "hairColor" constant autoTagIgnored (line 41) | autoTagIgnored = true constant image (line 73) | image = "aW1hZ2VCeXRlcw==" function createFullPerformer (line 83) | func createFullPerformer(id int, name string) *models.Performer { function createEmptyPerformer (line 118) | func createEmptyPerformer(id int) models.Performer { function createFullJSONPerformer (line 130) | func createFullJSONPerformer(name string, image string, withCustomFields... function createEmptyJSONPerformer (line 174) | func createEmptyJSONPerformer() *jsonschema.Performer { type testScenario (line 189) | type testScenario struct function initTestTable (line 198) | func initTestTable() { function TestToJSON (line 235) | func TestToJSON(t *testing.T) { FILE: pkg/performer/import.go type ImporterReaderWriter (line 17) | type ImporterReaderWriter interface type Importer (line 22) | type Importer struct method PreImport (line 34) | func (i *Importer) PreImport(ctx context.Context) error { method populateTags (line 56) | func (i *Importer) populateTags(ctx context.Context) error { method PostImport (line 126) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 136) | func (i *Importer) Name() string { method FindExistingID (line 140) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 174) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 187) | func (i *Importer) Update(ctx context.Context, id int) error { function importTags (line 72) | func importTags(ctx context.Context, tagWriter models.TagFinderCreator, ... function createTags (line 107) | func createTags(ctx context.Context, tagWriter models.TagFinderCreator, ... function performerJSONToPerformer (line 202) | func performerJSONToPerformer(performerJSON jsonschema.Performer) (model... FILE: pkg/performer/import_test.go constant invalidImage (line 17) | invalidImage = "aW1hZ2VCeXRlcw&&" constant existingPerformerID (line 20) | existingPerformerID = 100 constant existingTagID (line 21) | existingTagID = 105 constant errTagsID (line 22) | errTagsID = 106 constant existingPerformerName (line 24) | existingPerformerName = "existingPerformerName" constant performerNameErr (line 25) | performerNameErr = "performerNameErr" constant existingTagName (line 27) | existingTagName = "existingTagName" constant existingTagErr (line 28) | existingTagErr = "existingTagErr" constant missingTagName (line 29) | missingTagName = "missingTagName" function TestImporterName (line 34) | func TestImporterName(t *testing.T) { function TestImporterPreImport (line 44) | func TestImporterPreImport(t *testing.T) { function TestImporterPreImportWithTag (line 66) | func TestImporterPreImportWithTag(t *testing.T) { function TestImporterPreImportWithMissingTag (line 99) | func TestImporterPreImportWithMissingTag(t *testing.T) { function TestImporterPreImportWithMissingTagCreateErr (line 134) | func TestImporterPreImportWithMissingTagCreateErr(t *testing.T) { function TestImporterPostImport (line 157) | func TestImporterPostImport(t *testing.T) { function TestImporterFindExistingID (line 180) | func TestImporterFindExistingID(t *testing.T) { function TestCreate (line 231) | func TestCreate(t *testing.T) { function TestUpdate (line 275) | func TestUpdate(t *testing.T) { function TestImportCareerFields (line 319) | func TestImportCareerFields(t *testing.T) { FILE: pkg/performer/query.go function CountByStudioID (line 10) | func CountByStudioID(ctx context.Context, r models.PerformerQueryer, id ... function CountByGroupID (line 22) | func CountByGroupID(ctx context.Context, r models.PerformerQueryer, id i... function CountByTagID (line 34) | func CountByTagID(ctx context.Context, r models.PerformerQueryer, id int... function CountByAppearsWith (line 46) | func CountByAppearsWith(ctx context.Context, r models.PerformerQueryer, ... function ByAlias (line 57) | func ByAlias(ctx context.Context, r models.PerformerQueryer, alias strin... FILE: pkg/performer/url.go function IsTwitterURL (line 12) | func IsTwitterURL(url string) bool { function IsInstagramURL (line 16) | func IsInstagramURL(url string) bool { FILE: pkg/performer/validate.go type NotFoundError (line 16) | type NotFoundError struct method Error (line 20) | func (e *NotFoundError) Error() string { type NameExistsError (line 24) | type NameExistsError struct method Error (line 29) | func (e *NameExistsError) Error() string { type DuplicateAliasError (line 36) | type DuplicateAliasError struct method Error (line 40) | func (e *DuplicateAliasError) Error() string { type DeathDateError (line 44) | type DeathDateError struct method Error (line 49) | func (e *DeathDateError) Error() string { function ValidateCreate (line 53) | func ValidateCreate(ctx context.Context, performer models.Performer, qb ... function ValidateUpdate (line 69) | func ValidateUpdate(ctx context.Context, id int, partial models.Performe... function validateName (line 97) | func validateName(ctx context.Context, name string, disambig string, exi... function ValidateName (line 165) | func ValidateName(ctx context.Context, name string, disambig string, qb ... function ValidateUpdateName (line 174) | func ValidateUpdateName(ctx context.Context, existing models.Performer, ... function ValidateAliases (line 197) | func ValidateAliases(name string, aliases models.RelatedStrings) error { function ValidateUpdateAliases (line 217) | func ValidateUpdateAliases(existing models.Performer, name models.Option... function ValidateDeathDate (line 239) | func ValidateDeathDate(birthdate *models.Date, deathDate *models.Date) e... function ValidateUpdateDeathDate (line 252) | func ValidateUpdateDeathDate(existing models.Performer, birthdate models... FILE: pkg/performer/validate_test.go function nameFilter (line 12) | func nameFilter(n string) *models.PerformerFilterType { function disambigFilter (line 24) | func disambigFilter(n string, d string) *models.PerformerFilterType { function TestValidateName (line 37) | func TestValidateName(t *testing.T) { function TestValidateUpdateName (line 82) | func TestValidateUpdateName(t *testing.T) { function TestValidateAliases (line 158) | func TestValidateAliases(t *testing.T) { function TestValidateUpdateAliases (line 189) | func TestValidateUpdateAliases(t *testing.T) { function TestValidateDeathDate (line 240) | func TestValidateDeathDate(t *testing.T) { function TestValidateUpdateDeathDate (line 268) | func TestValidateUpdateDeathDate(t *testing.T) { FILE: pkg/pkg/cache.go type cacheEntry (line 7) | type cacheEntry struct type repositoryCache (line 12) | type repositoryCache struct method ensureCache (line 17) | func (c *repositoryCache) ensureCache() { method lastModified (line 23) | func (c *repositoryCache) lastModified(url string) *time.Time { method getPackageList (line 38) | func (c *repositoryCache) getPackageList(url string) []RemotePackage { method cacheList (line 49) | func (c *repositoryCache) cacheList(url string, lastModified time.Time... FILE: pkg/pkg/manager.go type SourcePathGetter (line 19) | type SourcePathGetter interface type Manager (line 28) | type Manager struct method getCache (line 37) | func (m *Manager) getCache() *repositoryCache { method remoteFromURL (line 45) | func (m *Manager) remoteFromURL(path string) (*httpRepository, error) { method ListInstalled (line 54) | func (m *Manager) ListInstalled(ctx context.Context) (LocalPackageInde... method ListRemote (line 73) | func (m *Manager) ListRemote(ctx context.Context, remoteURL string) (R... method ListInstalledRemotes (line 94) | func (m *Manager) ListInstalledRemotes(ctx context.Context, installed ... method InstalledStatus (line 112) | func (m *Manager) InstalledStatus(ctx context.Context) (PackageStatusI... method packageByID (line 130) | func (m *Manager) packageByID(ctx context.Context, spec models.Package... method getStore (line 144) | func (m *Manager) getStore(remoteURL string) *Store { method Install (line 151) | func (m *Manager) Install(ctx context.Context, spec models.PackageSpec... method installPackage (line 200) | func (m *Manager) installPackage(pkg RemotePackage, store *Store, zr *... method Uninstall (line 237) | func (m *Manager) Uninstall(ctx context.Context, spec models.PackageSp... method deletePackageFiles (line 251) | func (m *Manager) deletePackageFiles(ctx context.Context, store *Store... FILE: pkg/pkg/pkg.go constant TimeFormat (line 15) | TimeFormat = "2006-01-02 15:04:05" constant timeFormatLegacy (line 18) | timeFormatLegacy = "2006-01-02 15:04:05 -0700" type Time (line 22) | type Time struct method UnmarshalYAML (line 26) | func (t *Time) UnmarshalYAML(unmarshal func(interface{}) error) error { method MarshalYAML (line 51) | func (t Time) MarshalYAML() (interface{}, error) { type PackageMetadata (line 55) | type PackageMetadata type PackageVersion (line 57) | type PackageVersion struct method Upgradable (line 62) | func (v PackageVersion) Upgradable(o PackageVersion) bool { method String (line 66) | func (v PackageVersion) String() string { type PackageLocation (line 80) | type PackageLocation struct type RemotePackage (line 87) | type RemotePackage struct method PackageSpecInput (line 97) | func (p RemotePackage) PackageSpecInput() models.PackageSpecInput { type Manifest (line 104) | type Manifest struct method PackageSpecInput (line 115) | func (m Manifest) PackageSpecInput() models.PackageSpecInput { type RemotePackageIndex (line 123) | type RemotePackageIndex method merge (line 125) | func (i RemotePackageIndex) merge(o RemotePackageIndex) { function remotePackageIndexFromList (line 137) | func remotePackageIndexFromList(packages []RemotePackage) RemotePackageI... type LocalPackageIndex (line 155) | type LocalPackageIndex method remoteURLs (line 157) | func (i LocalPackageIndex) remoteURLs() []string { function localPackageIndexFromList (line 167) | func localPackageIndexFromList(packages []Manifest) LocalPackageIndex { type PackageStatus (line 175) | type PackageStatus struct method Upgradable (line 180) | func (s PackageStatus) Upgradable() bool { type PackageStatusIndex (line 188) | type PackageStatusIndex method Upgradable (line 209) | func (i PackageStatusIndex) Upgradable() []PackageStatus { function MakePackageStatusIndex (line 190) | func MakePackageStatusIndex(installed LocalPackageIndex, remote RemotePa... FILE: pkg/pkg/repository.go type remoteRepository (line 9) | type remoteRepository interface type RemotePackageLister (line 15) | type RemotePackageLister interface type RemotePackageGetter (line 20) | type RemotePackageGetter interface FILE: pkg/pkg/repository_http.go type httpRepository (line 23) | type httpRepository struct method Path (line 42) | func (r *httpRepository) Path() string { method List (line 46) | func (r *httpRepository) List(ctx context.Context) ([]RemotePackage, e... method resolvePath (line 104) | func (r *httpRepository) resolvePath(p string) url.URL { method GetPackageZip (line 125) | func (r *httpRepository) GetPackageZip(ctx context.Context, pkg Remote... method getCachedList (line 156) | func (r *httpRepository) getCachedList(ctx context.Context, u url.URL)... method getFile (line 194) | func (r *httpRepository) getFile(ctx context.Context, u url.URL) (io.R... method getLocalFile (line 220) | func (r *httpRepository) getLocalFile(ctx context.Context, path string... function newHttpRepository (line 31) | func newHttpRepository(packageListURL url.URL, client *http.Client, cach... function isURL (line 99) | func isURL(s string) bool { FILE: pkg/pkg/repository_http_test.go function TestHttpRepository_resolvePath (line 10) | func TestHttpRepository_resolvePath(t *testing.T) { FILE: pkg/pkg/store.go constant ManifestFile (line 16) | ManifestFile = "manifest" type Store (line 21) | type Store struct method sub (line 28) | func (r *Store) sub(path string) *Store { method List (line 39) | func (r *Store) List(ctx context.Context) ([]Manifest, error) { method packageDir (line 70) | func (r *Store) packageDir(id string) string { method manifestPath (line 74) | func (r *Store) manifestPath(id string) string { method getManifest (line 78) | func (r *Store) getManifest(ctx context.Context, packageID string) (*M... method ensurePackageExists (line 94) | func (r *Store) ensurePackageExists(packageID string) error { method writeFile (line 105) | func (r *Store) writeFile(packageID string, name string, mode fs.FileM... method writeManifest (line 126) | func (r *Store) writeManifest(packageID string, m Manifest) error { method deleteFile (line 140) | func (r *Store) deleteFile(packageID string, name string) error { method deleteManifest (line 152) | func (r *Store) deleteManifest(packageID string) error { method deletePackageDir (line 156) | func (r *Store) deletePackageDir(packageID string) error { FILE: pkg/plugin/args.go type OperationInput (line 3) | type OperationInput type PluginArgInput (line 5) | type PluginArgInput struct type PluginValueInput (line 10) | type PluginValueInput struct function applyDefaultArgs (line 19) | func applyDefaultArgs(args OperationInput, defaultArgs map[string]string) { FILE: pkg/plugin/common/log/log.go type Level (line 25) | type Level struct function Trace (line 56) | func Trace(args ...interface{}) { function Tracef (line 61) | func Tracef(format string, args ...interface{}) { function Debug (line 67) | func Debug(args ...interface{}) { function Debugf (line 72) | func Debugf(format string, args ...interface{}) { function Info (line 78) | func Info(args ...interface{}) { function Infof (line 83) | func Infof(format string, args ...interface{}) { function Warn (line 89) | func Warn(args ...interface{}) { function Warnf (line 94) | func Warnf(format string, args ...interface{}) { function Error (line 100) | func Error(args ...interface{}) { function Errorf (line 105) | func Errorf(format string, args ...interface{}) { function Progress (line 112) | func Progress(progress float64) { function LevelFromName (line 119) | func LevelFromName(name string) *Level { FILE: pkg/plugin/common/msg.go constant HookContextKey (line 6) | HookContextKey = "hookContext" type StashServerConnection (line 11) | type StashServerConnection struct type PluginArgValue (line 30) | type PluginArgValue interface type ArgsMap (line 33) | type ArgsMap method String (line 37) | func (m ArgsMap) String(key string) string { method Int (line 48) | func (m ArgsMap) Int(key string) int { method Bool (line 59) | func (m ArgsMap) Bool(key string) bool { method Float (line 70) | func (m ArgsMap) Float(key string) float64 { method ToMap (line 80) | func (m ArgsMap) ToMap() map[string]interface{} { type PluginInput (line 90) | type PluginInput struct type PluginOutput (line 101) | type PluginOutput struct method SetError (line 108) | func (o *PluginOutput) SetError(err error) { type HookContext (line 115) | type HookContext struct FILE: pkg/plugin/common/rpc.go type RPCRunner (line 10) | type RPCRunner interface function ServePlugin (line 22) | func ServePlugin(iface RPCRunner) error { FILE: pkg/plugin/config.go type Config (line 19) | type Config struct method getPluginTasks (line 163) | func (c Config) getPluginTasks(includePlugin bool) []*PluginTask { method getPluginHooks (line 181) | func (c Config) getPluginHooks(includePlugin bool) []*PluginHook { method getPluginSettings (line 209) | func (c Config) getPluginSettings() []PluginSetting { method getName (line 239) | func (c Config) getName() string { method toPlugin (line 247) | func (c Config) toPlugin() *Plugin { method getTask (line 270) | func (c Config) getTask(name string) *OperationConfig { method getHooks (line 280) | func (c Config) getHooks(hookType hook.TriggerEnum) []*HookConfig { method getConfigPath (line 293) | func (c Config) getConfigPath() string { method getExecCommand (line 297) | func (c Config) getExecCommand(task *OperationConfig) []string { method valid (line 328) | func (c Config) valid() error { type PluginCSP (line 71) | type PluginCSP struct type UIConfig (line 77) | type UIConfig struct method getCSSFiles (line 111) | func (c UIConfig) getCSSFiles(parent Config) []string { method getExternalCSS (line 122) | func (c UIConfig) getExternalCSS() []string { method getJavascriptFiles (line 133) | func (c UIConfig) getJavascriptFiles(parent Config) []string { method getExternalScripts (line 144) | func (c UIConfig) getExternalScripts() []string { function isURL (line 107) | func isURL(s string) bool { type SettingConfig (line 155) | type SettingConfig struct function convertHooks (line 200) | func convertHooks(hooks []hook.TriggerEnum) []string { type interfaceEnum (line 342) | type interfaceEnum method Valid (line 359) | func (i interfaceEnum) Valid() bool { method getTaskBuilder (line 363) | func (i *interfaceEnum) getTaskBuilder() taskBuilder { constant InterfaceEnumRPC (line 348) | InterfaceEnumRPC interfaceEnum = "rpc" constant InterfaceEnumRaw (line 354) | InterfaceEnumRaw interfaceEnum = "raw" constant InterfaceEnumJS (line 356) | InterfaceEnumJS interfaceEnum = "js" type OperationConfig (line 382) | type OperationConfig struct type HookConfig (line 402) | type HookConfig struct function loadPluginFromYAML (line 409) | func loadPluginFromYAML(reader io.Reader) (*Config, error) { function loadPluginFromYAMLFile (line 430) | func loadPluginFromYAMLFile(path string) (*Config, error) { FILE: pkg/plugin/convert.go function toPluginArgs (line 7) | func toPluginArgs(args OperationInput) common.ArgsMap { FILE: pkg/plugin/examples/common/graphql.go constant tagName (line 15) | tagName = "Hawwwwt" type TagCreate (line 18) | type TagCreate struct type TagCreateInput (line 22) | type TagCreateInput struct type TagDestroyInput (line 26) | type TagDestroyInput struct type FindScenesResultType (line 30) | type FindScenesResultType struct type Tag (line 37) | type Tag struct type Scene (line 42) | type Scene struct method getTagIds (line 47) | func (s Scene) getTagIds() []graphql.ID { type FindFilterType (line 57) | type FindFilterType struct type SceneUpdate (line 62) | type SceneUpdate struct type SceneUpdateInput (line 66) | type SceneUpdateInput struct function getTagID (line 71) | func getTagID(ctx context.Context, client *graphql.Client, create bool) ... function findRandomScene (line 119) | func findRandomScene(ctx context.Context, client *graphql.Client) (*Scen... function addTagId (line 149) | func addTagId(tagIds []graphql.ID, tagId graphql.ID) []graphql.ID { function AddTag (line 160) | func AddTag(ctx context.Context, client *graphql.Client) error { function RemoveTag (line 201) | func RemoveTag(ctx context.Context, client *graphql.Client) error { FILE: pkg/plugin/examples/goraw/main.go function main (line 23) | func main() { function Run (line 56) | func Run(input common.PluginInput, output *common.PluginOutput) error { function doLongTask (line 88) | func doLongTask() error { function doIndefiniteTask (line 103) | func doIndefiniteTask() error { FILE: pkg/plugin/examples/gorpc/main.go function main (line 17) | func main() { type api (line 26) | type api struct method Stop (line 30) | func (a *api) Stop(input struct{}, output *bool) error { method Run (line 39) | func (a *api) Run(input common.PluginInput, output *common.PluginOutpu... method doLongTask (line 72) | func (a *api) doLongTask() error { method doIndefiniteTask (line 90) | func (a *api) doIndefiniteTask() error { FILE: pkg/plugin/examples/js/js.js function main (line 3) | function main() { function getResult (line 42) | function getResult(result) { function getTagID (line 50) | function getTagID(create) { function addTag (line 103) | function addTag() { function removeTag (line 148) | function removeTag() { function findRandomScene (line 172) | function findRandomScene() { function doLongTask (line 206) | function doLongTask() { function doIndefiniteTask (line 219) | function doIndefiniteTask() { function doHookTask (line 226) | function doHookTask() { FILE: pkg/plugin/examples/python/log.py function __prefix (line 14) | def __prefix(levelChar): function __log (line 21) | def __log(levelChar, s): function LogTrace (line 27) | def LogTrace(s): function LogDebug (line 30) | def LogDebug(s): function LogInfo (line 33) | def LogInfo(s): function LogWarning (line 36) | def LogWarning(s): function LogError (line 39) | def LogError(s): function LogProgress (line 42) | def LogProgress(p): FILE: pkg/plugin/examples/python/pyplugin.py function main (line 11) | def main(): function readJSONInput (line 39) | def readJSONInput(): function run (line 43) | def run(input, output): function doLongTask (line 64) | def doLongTask(): function doIndefiniteTask (line 75) | def doIndefiniteTask(): function addTag (line 80) | def addTag(client): function removeTag (line 112) | def removeTag(client): FILE: pkg/plugin/examples/python/stash_interface.py class StashInterface (line 3) | class StashInterface: method __init__ (line 14) | def __init__(self, conn): method __callGraphQL (line 25) | def __callGraphQL(self, query, variables = None): method findTagIdWithName (line 44) | def findTagIdWithName(self, name): method createTagWithName (line 61) | def createTagWithName(self, name): method destroyTag (line 76) | def destroyTag(self, id): method findRandomSceneId (line 88) | def findRandomSceneId(self): method updateScene (line 115) | def updateScene(self, sceneData): FILE: pkg/plugin/examples/react-component/src/testReact.tsx type IPluginApi (line 1) | interface IPluginApi { function SceneDetails (line 101) | function SceneDetails(props: any) { function Overlays (line 139) | function Overlays() { FILE: pkg/plugin/hook/hooks.go type TriggerEnum (line 3) | type TriggerEnum method IsValid (line 92) | func (e TriggerEnum) IsValid() bool { method String (line 135) | func (e TriggerEnum) String() string { constant SceneMarkerCreatePost (line 9) | SceneMarkerCreatePost TriggerEnum = "SceneMarker.Create.Post" constant SceneMarkerUpdatePost (line 10) | SceneMarkerUpdatePost TriggerEnum = "SceneMarker.Update.Post" constant SceneMarkerDestroyPost (line 11) | SceneMarkerDestroyPost TriggerEnum = "SceneMarker.Destroy.Post" constant SceneCreatePost (line 13) | SceneCreatePost TriggerEnum = "Scene.Create.Post" constant SceneUpdatePost (line 14) | SceneUpdatePost TriggerEnum = "Scene.Update.Post" constant SceneDestroyPost (line 15) | SceneDestroyPost TriggerEnum = "Scene.Destroy.Post" constant ImageCreatePost (line 17) | ImageCreatePost TriggerEnum = "Image.Create.Post" constant ImageUpdatePost (line 18) | ImageUpdatePost TriggerEnum = "Image.Update.Post" constant ImageDestroyPost (line 19) | ImageDestroyPost TriggerEnum = "Image.Destroy.Post" constant GalleryCreatePost (line 21) | GalleryCreatePost TriggerEnum = "Gallery.Create.Post" constant GalleryUpdatePost (line 22) | GalleryUpdatePost TriggerEnum = "Gallery.Update.Post" constant GalleryDestroyPost (line 23) | GalleryDestroyPost TriggerEnum = "Gallery.Destroy.Post" constant GalleryChapterCreatePost (line 25) | GalleryChapterCreatePost TriggerEnum = "GalleryChapter.Create.Post" constant GalleryChapterUpdatePost (line 26) | GalleryChapterUpdatePost TriggerEnum = "GalleryChapter.Update.Post" constant GalleryChapterDestroyPost (line 27) | GalleryChapterDestroyPost TriggerEnum = "GalleryChapter.Destroy.Post" constant MovieCreatePost (line 31) | MovieCreatePost TriggerEnum = "Movie.Create.Post" constant MovieUpdatePost (line 32) | MovieUpdatePost TriggerEnum = "Movie.Update.Post" constant MovieDestroyPost (line 33) | MovieDestroyPost TriggerEnum = "Movie.Destroy.Post" constant GroupCreatePost (line 35) | GroupCreatePost TriggerEnum = "Group.Create.Post" constant GroupUpdatePost (line 36) | GroupUpdatePost TriggerEnum = "Group.Update.Post" constant GroupDestroyPost (line 37) | GroupDestroyPost TriggerEnum = "Group.Destroy.Post" constant PerformerCreatePost (line 39) | PerformerCreatePost TriggerEnum = "Performer.Create.Post" constant PerformerUpdatePost (line 40) | PerformerUpdatePost TriggerEnum = "Performer.Update.Post" constant PerformerDestroyPost (line 41) | PerformerDestroyPost TriggerEnum = "Performer.Destroy.Post" constant StudioCreatePost (line 43) | StudioCreatePost TriggerEnum = "Studio.Create.Post" constant StudioUpdatePost (line 44) | StudioUpdatePost TriggerEnum = "Studio.Update.Post" constant StudioDestroyPost (line 45) | StudioDestroyPost TriggerEnum = "Studio.Destroy.Post" constant TagCreatePost (line 47) | TagCreatePost TriggerEnum = "Tag.Create.Post" constant TagUpdatePost (line 48) | TagUpdatePost TriggerEnum = "Tag.Update.Post" constant TagMergePost (line 49) | TagMergePost TriggerEnum = "Tag.Merge.Post" constant TagDestroyPost (line 50) | TagDestroyPost TriggerEnum = "Tag.Destroy.Post" FILE: pkg/plugin/hooks.go type PluginHook (line 8) | type PluginHook struct function addHookContext (line 15) | func addHookContext(argsMap common.ArgsMap, hookContext common.HookConte... type SceneDestroyInput (line 20) | type SceneDestroyInput struct type ScenesDestroyInput (line 27) | type ScenesDestroyInput struct type GalleryDestroyInput (line 34) | type GalleryDestroyInput struct type ImageDestroyInput (line 40) | type ImageDestroyInput struct type ImagesDestroyInput (line 46) | type ImagesDestroyInput struct FILE: pkg/plugin/js.go type jsTaskBuilder (line 18) | type jsTaskBuilder struct method build (line 20) | func (*jsTaskBuilder) build(task pluginTask) Task { type jsPluginTask (line 26) | type jsPluginTask struct method onError (line 34) | func (t *jsPluginTask) onError(err error) { method makeOutput (line 41) | func (t *jsPluginTask) makeOutput(o goja.Value) { method initVM (line 57) | func (t *jsPluginTask) initVM() error { method Start (line 108) | func (t *jsPluginTask) Start() error { method Wait (line 158) | func (t *jsPluginTask) Wait() { method Stop (line 162) | func (t *jsPluginTask) Stop() error { FILE: pkg/plugin/log.go method handlePluginStderr (line 10) | func (t *pluginTask) handlePluginStderr(name string, pluginOutputReader ... FILE: pkg/plugin/plugins.go type Plugin (line 31) | type Plugin struct type PluginUI (line 48) | type PluginUI struct type PluginSetting (line 82) | type PluginSetting struct type ServerConfig (line 91) | type ServerConfig interface type Cache (line 102) | type Cache struct method RegisterGQLHandler (line 122) | func (c *Cache) RegisterGQLHandler(handler http.Handler) { method RegisterSessionStore (line 126) | func (c *Cache) RegisterSessionStore(sessionStore *session.Store) { method ReloadPlugins (line 132) | func (c *Cache) ReloadPlugins() { method enabledPlugins (line 166) | func (c Cache) enabledPlugins() []Config { method pluginDisabled (line 181) | func (c Cache) pluginDisabled(id string) bool { method ListPlugins (line 188) | func (c Cache) ListPlugins() []*Plugin { method GetPlugin (line 206) | func (c Cache) GetPlugin(id string) *Plugin { method ListPluginTasks (line 221) | func (c Cache) ListPluginTasks() []*PluginTask { method makeServerConnection (line 244) | func (c Cache) makeServerConnection(ctx context.Context) common.StashS... method CreateTask (line 265) | func (c Cache) CreateTask(ctx context.Context, pluginID string, operat... method RunPlugin (line 298) | func (c Cache) RunPlugin(ctx context.Context, pluginID string, args Op... method ExecutePostHooks (line 360) | func (c Cache) ExecutePostHooks(ctx context.Context, id int, hookType ... method RegisterPostHooks (line 371) | func (c Cache) RegisterPostHooks(ctx context.Context, id int, hookType... method ExecuteSceneUpdatePostHooks (line 377) | func (c Cache) ExecuteSceneUpdatePostHooks(ctx context.Context, input ... method executePostHooks (line 391) | func (c Cache) executePostHooks(ctx context.Context, hookType hook.Tri... method getPlugin (line 483) | func (c Cache) getPlugin(pluginID string) *Config { function NewCache (line 116) | func NewCache(config ServerConfig) *Cache { function buildPluginInput (line 230) | func buildPluginInput(plugin *Config, operation *OperationConfig, server... function waitForTask (line 339) | func waitForTask(ctx context.Context, task Task) error { constant maxCyclicLoopDepth (line 389) | maxCyclicLoopDepth = 10 type visitedPluginHookCount (line 443) | type visitedPluginHookCount struct type visitedPluginHookCounts (line 448) | type visitedPluginHookCounts method For (line 450) | func (v visitedPluginHookCounts) For(pluginID string, hookType hook.Tr... function getVisitedPluginHookCounts (line 459) | func getVisitedPluginHookCounts(ctx context.Context) visitedPluginHookCo... FILE: pkg/plugin/raw.go type rawTaskBuilder (line 20) | type rawTaskBuilder struct method build (line 22) | func (*rawTaskBuilder) build(task pluginTask) Task { type rawPluginTask (line 28) | type rawPluginTask struct method Start (line 37) | func (t *rawPluginTask) Start() error { method getOutput (line 128) | func (t *rawPluginTask) getOutput(output string) common.PluginOutput { method Wait (line 141) | func (t *rawPluginTask) Wait() { method Stop (line 145) | func (t *rawPluginTask) Stop() error { FILE: pkg/plugin/rpc.go type rpcTaskBuilder (line 15) | type rpcTaskBuilder struct method build (line 17) | func (*rpcTaskBuilder) build(task pluginTask) Task { type rpcPluginClient (line 23) | type rpcPluginClient struct method Run (line 27) | func (p rpcPluginClient) Run(input common.PluginInput, output *common.... method RunAsync (line 31) | func (p rpcPluginClient) RunAsync(input common.PluginInput, output *co... method Stop (line 35) | func (p rpcPluginClient) Stop() error { type rpcPluginTask (line 40) | type rpcPluginTask struct method Start (line 49) | func (t *rpcPluginTask) Start() error { method waitToFinish (line 83) | func (t *rpcPluginTask) waitToFinish(result *common.PluginOutput) { method Wait (line 91) | func (t *rpcPluginTask) Wait() { method Stop (line 95) | func (t *rpcPluginTask) Stop() error { FILE: pkg/plugin/setting.go type PluginSettingTypeEnum (line 9) | type PluginSettingTypeEnum method IsValid (line 23) | func (e PluginSettingTypeEnum) IsValid() bool { method String (line 31) | func (e PluginSettingTypeEnum) String() string { method UnmarshalGQL (line 35) | func (e *PluginSettingTypeEnum) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 48) | func (e PluginSettingTypeEnum) MarshalGQL(w io.Writer) { constant PluginSettingTypeEnumString (line 12) | PluginSettingTypeEnumString PluginSettingTypeEnum = "STRING" constant PluginSettingTypeEnumNumber (line 13) | PluginSettingTypeEnumNumber PluginSettingTypeEnum = "NUMBER" constant PluginSettingTypeEnumBoolean (line 14) | PluginSettingTypeEnumBoolean PluginSettingTypeEnum = "BOOLEAN" FILE: pkg/plugin/task.go type PluginTask (line 9) | type PluginTask struct type Task (line 16) | type Task interface type taskBuilder (line 34) | type taskBuilder interface type pluginTask (line 38) | type pluginTask struct method GetResult (line 49) | func (t *pluginTask) GetResult() *common.PluginOutput { method createTask (line 53) | func (t *pluginTask) createTask() Task { FILE: pkg/plugin/util/client.go function NewClient (line 19) | func NewClient(provider common.StashServerConnection) *graphql.Client { FILE: pkg/python/env.go function AppendPythonPath (line 9) | func AppendPythonPath(cmd *exec.Cmd, path string) { FILE: pkg/python/exec.go type Python (line 14) | type Python method Command (line 16) | func (p *Python) Command(ctx context.Context, args []string) *exec.Cmd { function New (line 21) | func New(path string) *Python { function Resolve (line 29) | func Resolve(configuredPythonPath string) (*Python, error) { function IsPythonCommand (line 59) | func IsPythonCommand(arg string) bool { FILE: pkg/savedfilter/export.go function ToJSON (line 11) | func ToJSON(ctx context.Context, filter *models.SavedFilter) (*jsonschem... FILE: pkg/savedfilter/export_test.go constant savedFilterID (line 13) | savedFilterID = 1 constant noImageID (line 14) | noImageID = 2 constant errImageID (line 15) | errImageID = 3 constant errAliasID (line 16) | errAliasID = 4 constant withParentsID (line 17) | withParentsID = 5 constant errParentsID (line 18) | errParentsID = 6 constant filterName (line 22) | filterName = "testFilter" constant mode (line 23) | mode = models.FilterModeGalleries function createSavedFilter (line 32) | func createSavedFilter(id int) models.SavedFilter { function createJSONSavedFilter (line 43) | func createJSONSavedFilter() *jsonschema.SavedFilter { type testScenario (line 53) | type testScenario struct function initTestTable (line 61) | func initTestTable() { function TestToJSON (line 71) | func TestToJSON(t *testing.T) { FILE: pkg/savedfilter/import.go type ImporterReaderWriter (line 11) | type ImporterReaderWriter interface type Importer (line 15) | type Importer struct method PreImport (line 23) | func (i *Importer) PreImport(ctx context.Context) error { method PostImport (line 35) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 39) | func (i *Importer) Name() string { method FindExistingID (line 43) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 48) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 58) | func (i *Importer) Update(ctx context.Context, id int) error { FILE: pkg/savedfilter/import_test.go constant savedFilterNameErr (line 16) | savedFilterNameErr = "savedFilterNameErr" constant existingSavedFilterName (line 17) | existingSavedFilterName = "existingSavedFilterName" constant existingFilterID (line 19) | existingFilterID = 100 function TestImporterName (line 24) | func TestImporterName(t *testing.T) { function TestImporterPreImport (line 34) | func TestImporterPreImport(t *testing.T) { function TestImporterPostImport (line 45) | func TestImporterPostImport(t *testing.T) { function TestImporterFindExistingID (line 59) | func TestImporterFindExistingID(t *testing.T) { function TestCreate (line 74) | func TestCreate(t *testing.T) { function TestUpdate (line 109) | func TestUpdate(t *testing.T) { FILE: pkg/scene/create.go method Create (line 13) | func (s *Service) Create(ctx context.Context, input models.CreateSceneIn... FILE: pkg/scene/delete.go type FileDeleter (line 16) | type FileDeleter struct method MarkGeneratedFiles (line 25) | func (d *FileDeleter) MarkGeneratedFiles(scene *models.Scene) error { method MarkMarkerFiles (line 85) | func (d *FileDeleter) MarkMarkerFiles(scene *models.Scene, seconds int... method Destroy (line 112) | func (s *Service) Destroy(ctx context.Context, scene *models.Scene, file... method deleteFiles (line 149) | func (s *Service) deleteFiles(ctx context.Context, scene *models.Scene, ... method destroyFileEntries (line 189) | func (s *Service) destroyFileEntries(ctx context.Context, scene *models.... function DestroyMarker (line 219) | func DestroyMarker(ctx context.Context, scene *models.Scene, sceneMarker... FILE: pkg/scene/export.go type ExportGetter (line 17) | type ExportGetter interface type TagFinder (line 24) | type TagFinder interface function ToBasicJSON (line 33) | func ToBasicJSON(ctx context.Context, reader ExportGetter, scene *models... function GetStudioName (line 106) | func GetStudioName(ctx context.Context, reader models.StudioGetter, scen... function GetTagNames (line 123) | func GetTagNames(ctx context.Context, reader TagFinder, scene *models.Sc... function getTagNames (line 132) | func getTagNames(tags []*models.Tag) []string { function GetDependentTagIDs (line 144) | func GetDependentTagIDs(ctx context.Context, tags TagFinder, markerReade... function GetSceneGroupsJSON (line 178) | func GetSceneGroupsJSON(ctx context.Context, groupReader models.GroupGet... function GetDependentGroupIDs (line 203) | func GetDependentGroupIDs(ctx context.Context, scene *models.Scene) ([]i... function GetSceneMarkersJSON (line 216) | func GetSceneMarkersJSON(ctx context.Context, markerReader models.SceneM... function getDecimalString (line 254) | func getDecimalString(num float64) string { function getPrecision (line 266) | func getPrecision(num float64) int { FILE: pkg/scene/export_test.go constant sceneID (line 18) | sceneID = 1 constant noImageID (line 19) | noImageID = 2 constant errImageID (line 20) | errImageID = 3 constant studioID (line 22) | studioID = 4 constant missingStudioID (line 23) | missingStudioID = 5 constant errStudioID (line 24) | errStudioID = 6 constant customFieldsID (line 25) | customFieldsID = 7 constant noTagsID (line 27) | noTagsID = 11 constant errTagsID (line 28) | errTagsID = 12 constant noGroupsID (line 30) | noGroupsID = 13 constant errFindGroupID (line 31) | errFindGroupID = 15 constant noMarkersID (line 33) | noMarkersID = 16 constant errMarkersID (line 34) | errMarkersID = 17 constant errFindPrimaryTagID (line 35) | errFindPrimaryTagID = 18 constant errFindByMarkerID (line 36) | errFindByMarkerID = 19 constant errCustomFieldsID (line 37) | errCustomFieldsID = 20 constant path (line 78) | path = "path" constant imageBase64 (line 79) | imageBase64 = "aW1hZ2VCeXRlcw==" function createFullScene (line 94) | func createFullScene(id int) models.Scene { function createEmptyScene (line 118) | func createEmptyScene(id int) models.Scene { function createFullJSONScene (line 135) | func createFullJSONScene(image string, customFields map[string]interface... function createEmptyJSONScene (line 158) | func createEmptyJSONScene() *jsonschema.Scene { type basicTestScenario (line 172) | type basicTestScenario struct function TestToJSON (line 213) | func TestToJSON(t *testing.T) { function createStudioScene (line 247) | func createStudioScene(studioID int) models.Scene { type stringTestScenario (line 253) | type stringTestScenario struct function TestGetStudioName (line 277) | func TestGetStudioName(t *testing.T) { type stringSliceTestScenario (line 305) | type stringSliceTestScenario struct function getTags (line 329) | func getTags(names []string) []*models.Tag { function TestGetTagNames (line 340) | func TestGetTagNames(t *testing.T) { type sceneGroupsTestScenario (line 366) | type sceneGroupsTestScenario struct function TestGetSceneGroupsJSON (line 426) | func TestGetSceneGroupsJSON(t *testing.T) { constant validMarkerID1 (line 457) | validMarkerID1 = 1 constant validMarkerID2 (line 458) | validMarkerID2 = 2 constant invalidMarkerID1 (line 460) | invalidMarkerID1 = 3 constant invalidMarkerID2 (line 461) | invalidMarkerID2 = 4 constant validTagID1 (line 463) | validTagID1 = 1 constant validTagID2 (line 464) | validTagID2 = 2 constant validTagName1 (line 466) | validTagName1 = "validTagName1" constant validTagName2 (line 467) | validTagName2 = "validTagName2" constant invalidTagID (line 469) | invalidTagID = 3 constant markerTitle1 (line 471) | markerTitle1 = "markerTitle1" constant markerTitle2 (line 472) | markerTitle2 = "markerTitle2" constant markerSeconds1 (line 474) | markerSeconds1 = 1.0 constant markerSeconds2 (line 475) | markerSeconds2 = 2.3 constant markerSeconds1Str (line 477) | markerSeconds1Str = "1.0" constant markerSeconds2Str (line 478) | markerSeconds2Str = "2.3" type sceneMarkersTestScenario (line 481) | type sceneMarkersTestScenario struct function TestGetSceneMarkersJSON (line 578) | func TestGetSceneMarkersJSON(t *testing.T) { FILE: pkg/scene/filename_parser.go type parserField (line 18) | type parserField struct method replaceInPattern (line 51) | func (f parserField) replaceInPattern(pattern string) string { function newParserField (line 26) | func newParserField(field string, regex string, captured bool) parserFie... function newFullDateParserField (line 45) | func newFullDateParserField(field string, regex string) parserField { function compileREs (line 61) | func compileREs() { function initParserFields (line 75) | func initParserFields() { function replacePatternWithRegex (line 110) | func replacePatternWithRegex(pattern string, ignoreWords []string) string { type parseMapper (line 124) | type parseMapper struct method parse (line 369) | func (m parseMapper) parse(scene *models.Scene) *sceneHolder { function getIgnoreClause (line 130) | func getIgnoreClause(ignoreFields []string) string { function newParseMapper (line 147) | func newParseMapper(pattern string, ignoreFields []string) (*parseMapper... type sceneHolder (line 200) | type sceneHolder struct method setDate (line 267) | func (h *sceneHolder) setDate(field *parserField, value string) { method setField (line 313) | func (h *sceneHolder) setField(field parserField, value interface{}) { method postParse (line 361) | func (h *sceneHolder) postParse() { function newSceneHolder (line 212) | func newSceneHolder(scene *models.Scene) *sceneHolder { function validateRating (line 227) | func validateRating(rating int) bool { function validateRating100 (line 231) | func validateRating100(rating100 int) bool { function parseDate (line 236) | func parseDate(dateStr string) *models.Date { function mmmToMonth (line 299) | func mmmToMonth(mmm string) string { type FilenameParser (line 408) | type FilenameParser struct method initWhiteSpaceRegex (line 438) | func (p *FilenameParser) initWhiteSpaceRegex() { method Parse (line 472) | func (p *FilenameParser) Parse(ctx context.Context) ([]*models.ScenePa... method parseScenes (line 504) | func (p *FilenameParser) parseScenes(ctx context.Context, scenes []*mo... method replaceWhitespaceCharacters (line 522) | func (p FilenameParser) replaceWhitespaceCharacters(value string) stri... method queryPerformer (line 536) | func (p *FilenameParser) queryPerformer(ctx context.Context, qb Perfor... method queryStudio (line 559) | func (p *FilenameParser) queryStudio(ctx context.Context, qb models.St... method queryGroup (line 585) | func (p *FilenameParser) queryGroup(ctx context.Context, qb GroupNameF... method queryTag (line 602) | func (p *FilenameParser) queryTag(ctx context.Context, qb models.TagQu... method setPerformers (line 625) | func (p *FilenameParser) setPerformers(ctx context.Context, qb Perform... method setTags (line 641) | func (p *FilenameParser) setTags(ctx context.Context, qb models.TagQue... method setStudio (line 657) | func (p *FilenameParser) setStudio(ctx context.Context, qb models.Stud... method setGroups (line 668) | func (p *FilenameParser) setGroups(ctx context.Context, qb GroupNameFi... method setParserResult (line 686) | func (p *FilenameParser) setParserResult(ctx context.Context, h sceneH... function NewFilenameParser (line 420) | func NewFilenameParser(filter *models.FindFilterType, config models.Scen... type FilenameParserRepository (line 454) | type FilenameParserRepository struct function NewFilenameParserRepository (line 462) | func NewFilenameParserRepository(repo models.Repository) FilenameParserR... type PerformerNamesFinder (line 532) | type PerformerNamesFinder interface type GroupNameFinder (line 581) | type GroupNameFinder interface FILE: pkg/scene/filter.go function PathsFilter (line 10) | func PathsFilter(paths []string) *models.SceneFilterType { FILE: pkg/scene/find.go type LoadRelationshipOption (line 10) | type LoadRelationshipOption function LoadURLs (line 12) | func LoadURLs(ctx context.Context, scene *models.Scene, r models.SceneRe... function LoadStashIDs (line 20) | func LoadStashIDs(ctx context.Context, scene *models.Scene, r models.Sce... function LoadFiles (line 28) | func LoadFiles(ctx context.Context, scene *models.Scene, r models.SceneR... method FindByIDs (line 39) | func (s *Service) FindByIDs(ctx context.Context, ids []int, load ...Load... method FindMany (line 62) | func (s *Service) FindMany(ctx context.Context, ids []int, load ...LoadR... method LoadRelationships (line 82) | func (s *Service) LoadRelationships(ctx context.Context, scene *models.S... FILE: pkg/scene/fingerprints.go method GetScenesFingerprints (line 11) | func (s *Service) GetScenesFingerprints(ctx context.Context, ids []int) ... FILE: pkg/scene/generate/generator.go constant mp4Pattern (line 17) | mp4Pattern = "*.mp4" constant webpPattern (line 18) | webpPattern = "*.webp" constant jpgPattern (line 19) | jpgPattern = "*.jpg" constant txtPattern (line 20) | txtPattern = "*.txt" constant vttPattern (line 21) | vttPattern = "*.vtt" type Paths (line 24) | type Paths interface type MarkerPaths (line 28) | type MarkerPaths interface type ScenePaths (line 36) | type ScenePaths interface type FFMpegConfig (line 48) | type FFMpegConfig interface type Generator (line 53) | type Generator struct method tempFile (line 64) | func (g Generator) tempFile(p Paths, pattern string) (*os.File, error) { method generateFile (line 75) | func (g Generator) generateFile(lockCtx *fsutil.LockContext, p Paths, ... method generateBytes (line 108) | func (g Generator) generateBytes(lockCtx *fsutil.LockContext, p Paths,... method generate (line 130) | func (g Generator) generate(ctx *fsutil.LockContext, args []string) er... method generateOutput (line 155) | func (g Generator) generateOutput(lockCtx *fsutil.LockContext, args []... type generateFn (line 62) | type generateFn FILE: pkg/scene/generate/marker_preview.go constant markerPreviewWidth (line 13) | markerPreviewWidth = 640 constant maxMarkerPreviewDuration (line 14) | maxMarkerPreviewDuration = 20 constant markerPreviewAudioBitrate (line 15) | markerPreviewAudioBitrate = "64k" constant markerImageDuration (line 17) | markerImageDuration = 5 constant markerWebpFPS (line 18) | markerWebpFPS = 12 constant markerScreenshotQuality (line 20) | markerScreenshotQuality = 2 method MarkerPreviewVideo (line 23) | func (g Generator) MarkerPreviewVideo(ctx context.Context, input string,... type sceneMarkerOptions (line 54) | type sceneMarkerOptions struct method markerPreviewVideo (line 60) | func (g Generator) markerPreviewVideo(input string, options sceneMarkerO... method SceneMarkerWebp (line 102) | func (g Generator) SceneMarkerWebp(ctx context.Context, input string, ha... method sceneMarkerWebp (line 124) | func (g Generator) sceneMarkerWebp(input string, options sceneMarkerOpti... method SceneMarkerScreenshot (line 155) | func (g Generator) SceneMarkerScreenshot(ctx context.Context, input stri... type SceneMarkerScreenshotOptions (line 178) | type SceneMarkerScreenshotOptions struct method sceneMarkerScreenshot (line 183) | func (g Generator) sceneMarkerScreenshot(input string, options SceneMark... FILE: pkg/scene/generate/preview.go constant scenePreviewWidth (line 19) | scenePreviewWidth = 640 constant scenePreviewAudioBitrate (line 20) | scenePreviewAudioBitrate = "128k" constant scenePreviewImageFPS (line 22) | scenePreviewImageFPS = 12 constant minSegmentDuration (line 24) | minSegmentDuration = 0.75 type PreviewOptions (line 27) | type PreviewOptions struct method getStepSizeAndOffset (line 57) | func (g PreviewOptions) getStepSizeAndOffset(videoDuration float64) (s... function getExcludeValue (line 38) | func getExcludeValue(videoDuration float64, v string) float64 { method PreviewVideo (line 71) | func (g Generator) PreviewVideo(ctx context.Context, input string, video... method previewVideo (line 93) | func (g *Generator) previewVideo(input string, videoDuration float64, op... method previewVideoSingle (line 153) | func (g *Generator) previewVideoSingle(input string, videoDuration float... type previewChunkOptions (line 167) | type previewChunkOptions struct method previewVideoChunk (line 175) | func (g Generator) previewVideoChunk(lockCtx *fsutil.LockContext, fn str... method generateConcatFile (line 224) | func (g Generator) generateConcatFile(chunkFiles []string) (fn string, e... method previewVideoChunkCombine (line 242) | func (g Generator) previewVideoChunkCombine(lockCtx *fsutil.LockContext,... function removeFiles (line 252) | func removeFiles(list []string) { method PreviewWebp (line 262) | func (g Generator) PreviewWebp(ctx context.Context, input string, hash s... method previewVideoToImage (line 286) | func (g Generator) previewVideoToImage(input string) generateFn { FILE: pkg/scene/generate/screenshot.go constant screenshotQuality (line 15) | screenshotQuality = 2 constant screenshotDurationProportion (line 17) | screenshotDurationProportion = 0.2 type ScreenshotOptions (line 20) | type ScreenshotOptions struct method Screenshot (line 24) | func (g Generator) Screenshot(ctx context.Context, input string, videoWi... type screenshotOptions (line 47) | type screenshotOptions struct method screenshot (line 53) | func (g Generator) screenshot(input string, options screenshotOptions) g... FILE: pkg/scene/generate/sprite.go method SpriteScreenshot (line 21) | func (g Generator) SpriteScreenshot(ctx context.Context, input string, s... method SpriteScreenshotSlow (line 41) | func (g Generator) SpriteScreenshotSlow(ctx context.Context, input strin... method generateImage (line 56) | func (g Generator) generateImage(lockCtx *fsutil.LockContext, args ffmpe... method CombineSpriteImages (line 70) | func (g Generator) CombineSpriteImages(images []image.Image) image.Image { function GetSpriteGridSize (line 90) | func GetSpriteGridSize(imageCount int) int { method SpriteVTT (line 94) | func (g Generator) SpriteVTT(ctx context.Context, output string, spriteP... method spriteVTT (line 100) | func (g Generator) spriteVTT(spritePath string, stepSize float64, sprite... FILE: pkg/scene/generate/transcode.go type TranscodeOptions (line 12) | type TranscodeOptions struct method Transcode (line 17) | func (g Generator) Transcode(ctx context.Context, input string, hash str... method TranscodeVideo (line 27) | func (g Generator) TranscodeVideo(ctx context.Context, input string, has... method TranscodeAudio (line 35) | func (g Generator) TranscodeAudio(ctx context.Context, input string, has... method TranscodeCopyVideo (line 43) | func (g Generator) TranscodeCopyVideo(ctx context.Context, input string,... method makeTranscode (line 50) | func (g Generator) makeTranscode(lockCtx *fsutil.LockContext, hash strin... method transcode (line 67) | func (g Generator) transcode(input string, options TranscodeOptions) gen... method transcodeVideo (line 98) | func (g Generator) transcodeVideo(input string, options TranscodeOptions... method transcodeAudio (line 132) | func (g Generator) transcodeAudio(input string) generateFn { method transcodeCopyVideo (line 144) | func (g Generator) transcodeCopyVideo(input string) generateFn { FILE: pkg/scene/hash.go function GetHash (line 9) | func GetHash(f models.File, hashAlgorithm models.HashAlgorithm) string { FILE: pkg/scene/import.go type ImporterReaderWriter (line 17) | type ImporterReaderWriter interface type Importer (line 25) | type Importer struct method PreImport (line 45) | func (i *Importer) PreImport(ctx context.Context) error { method sceneJSONToScene (line 88) | func (i *Importer) sceneJSONToScene(sceneJSON jsonschema.Scene) models... method populateViewHistory (line 148) | func (i *Importer) populateViewHistory() { method populateOHistory (line 157) | func (i *Importer) populateOHistory() { method populateFiles (line 166) | func (i *Importer) populateFiles(ctx context.Context) error { method populateStudio (line 188) | func (i *Importer) populateStudio(ctx context.Context) error { method createStudio (line 219) | func (i *Importer) createStudio(ctx context.Context, name string) (int... method locateGallery (line 231) | func (i *Importer) locateGallery(ctx context.Context, ref jsonschema.G... method populateGalleries (line 260) | func (i *Importer) populateGalleries(ctx context.Context) error { method populatePerformers (line 281) | func (i *Importer) populatePerformers(ctx context.Context) error { method createPerformers (line 326) | func (i *Importer) createPerformers(ctx context.Context, names []strin... method populateGroups (line 345) | func (i *Importer) populateGroups(ctx context.Context) error { method createGroup (line 390) | func (i *Importer) createGroup(ctx context.Context, name string) (int,... method populateTags (line 402) | func (i *Importer) populateTags(ctx context.Context) error { method addViewHistory (line 418) | func (i *Importer) addViewHistory(ctx context.Context) error { method addOHistory (line 429) | func (i *Importer) addOHistory(ctx context.Context) error { method PostImport (line 440) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 467) | func (i *Importer) Name() string { method FindExistingID (line 479) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 498) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 512) | func (i *Importer) Update(ctx context.Context, id int) error { function getHistory (line 126) | func getHistory(historyJSON []json.JSONTime, count int, last json.JSONTi... function importTags (line 523) | func importTags(ctx context.Context, tagWriter models.TagFinderCreator, ... function createTags (line 558) | func createTags(ctx context.Context, tagWriter models.TagCreator, names ... FILE: pkg/scene/import_test.go constant invalidImage (line 18) | invalidImage = "aW1hZ2VCeXRlcw&&" function TestImporterPreImport (line 45) | func TestImporterPreImport(t *testing.T) { function truncateTimes (line 132) | func truncateTimes(t []time.Time) []time.Time { function TestImporterPreImportHistory (line 136) | func TestImporterPreImportHistory(t *testing.T) { function TestImporterPreImportCoverImage (line 190) | func TestImporterPreImportCoverImage(t *testing.T) { function TestImporterPreImportWithStudio (line 206) | func TestImporterPreImportWithStudio(t *testing.T) { function TestImporterPreImportWithMissingStudio (line 232) | func TestImporterPreImportWithMissingStudio(t *testing.T) { function TestImporterPreImportWithMissingStudioCreateErr (line 264) | func TestImporterPreImportWithMissingStudioCreateErr(t *testing.T) { function TestImporterPreImportWithPerformer (line 284) | func TestImporterPreImportWithPerformer(t *testing.T) { function TestImporterPreImportWithMissingPerformer (line 316) | func TestImporterPreImportWithMissingPerformer(t *testing.T) { function TestImporterPreImportWithMissingPerformerCreateErr (line 350) | func TestImporterPreImportWithMissingPerformerCreateErr(t *testing.T) { function TestImporterPreImportWithGroup (line 372) | func TestImporterPreImportWithGroup(t *testing.T) { function TestImporterPreImportWithMissingGroup (line 405) | func TestImporterPreImportWithMissingGroup(t *testing.T) { function TestImporterPreImportWithMissingGroupCreateErr (line 441) | func TestImporterPreImportWithMissingGroupCreateErr(t *testing.T) { function TestImporterPreImportWithTag (line 465) | func TestImporterPreImportWithTag(t *testing.T) { function TestImporterPreImportWithMissingTag (line 497) | func TestImporterPreImportWithMissingTag(t *testing.T) { function TestImporterPreImportWithMissingTagCreateErr (line 531) | func TestImporterPreImportWithMissingTagCreateErr(t *testing.T) { function TestImporterPostImport (line 553) | func TestImporterPostImport(t *testing.T) { FILE: pkg/scene/marker_import.go type MarkerCreatorUpdater (line 12) | type MarkerCreatorUpdater interface type MarkerImporter (line 17) | type MarkerImporter struct method PreImport (line 28) | func (i *MarkerImporter) PreImport(ctx context.Context) error { method populateTags (line 53) | func (i *MarkerImporter) populateTags(ctx context.Context) error { method PostImport (line 79) | func (i *MarkerImporter) PostImport(ctx context.Context, id int) error { method Name (line 93) | func (i *MarkerImporter) Name() string { method FindExistingID (line 97) | func (i *MarkerImporter) FindExistingID(ctx context.Context) (*int, er... method Create (line 114) | func (i *MarkerImporter) Create(ctx context.Context) (*int, error) { method Update (line 124) | func (i *MarkerImporter) Update(ctx context.Context, id int) error { FILE: pkg/scene/marker_query.go function MarkerCountByTagID (line 10) | func MarkerCountByTagID(ctx context.Context, r models.SceneMarkerQueryer... FILE: pkg/scene/merge.go type MergeOptions (line 19) | type MergeOptions struct method Merge (line 25) | func (s *Service) Merge(ctx context.Context, sourceIDs []int, destinatio... method mergeSceneMarkers (line 132) | func (s *Service) mergeSceneMarkers(ctx context.Context, dest *models.Sc... FILE: pkg/scene/migrate_hash.go function MigrateHash (line 13) | func MigrateHash(p *paths.Paths, oldHash string, newHash string) { function migrateSceneFiles (line 51) | func migrateSceneFiles(oldName, newName string) { function migrateVttFile (line 67) | func migrateVttFile(vttPath, oldSpritePath, newSpritePath string) { function migrateSceneFolder (line 96) | func migrateSceneFolder(oldName, newName string) { FILE: pkg/scene/migrate_screenshots.go type MigrateSceneScreenshotsInput (line 15) | type MigrateSceneScreenshotsInput struct type HashFinderCoverUpdater (line 20) | type HashFinderCoverUpdater interface type ScreenshotMigrator (line 27) | type ScreenshotMigrator struct method MigrateScreenshots (line 33) | func (m *ScreenshotMigrator) MigrateScreenshots(ctx context.Context, s... method findScenes (line 69) | func (m *ScreenshotMigrator) findScenes(ctx context.Context, screensho... method getHashType (line 101) | func (m *ScreenshotMigrator) getHashType(basename string) models.HashA... method migrateSceneScreenshot (line 116) | func (m *ScreenshotMigrator) migrateSceneScreenshot(ctx context.Contex... FILE: pkg/scene/query.go function QueryOptions (line 15) | func QueryOptions(sceneFilter *models.SceneFilterType, findFilter *model... function QueryWithCount (line 26) | func QueryWithCount(ctx context.Context, qb models.SceneQueryer, sceneFi... function Query (line 43) | func Query(ctx context.Context, qb models.SceneQueryer, sceneFilter *mod... function BatchProcess (line 57) | func BatchProcess(ctx context.Context, reader models.SceneQueryer, scene... function FilterFromPaths (line 97) | func FilterFromPaths(paths []string) *models.SceneFilterType { function CountByStudioID (line 124) | func CountByStudioID(ctx context.Context, r models.SceneQueryer, id int,... function CountByTagID (line 136) | func CountByTagID(ctx context.Context, r models.SceneQueryer, id int, de... function CountByGroupID (line 148) | func CountByGroupID(ctx context.Context, r models.SceneQueryer, id int, ... FILE: pkg/scene/scan.go type ScanCreatorUpdater (line 27) | type ScanCreatorUpdater interface type ScanGalleryFinderUpdater (line 37) | type ScanGalleryFinderUpdater interface type ScanGenerator (line 42) | type ScanGenerator interface type ScanHandler (line 46) | type ScanHandler struct method validate (line 58) | func (h *ScanHandler) validate() error { method Handle (line 78) | func (h *ScanHandler) Handle(ctx context.Context, f models.File, oldFi... method associateExisting (line 155) | func (h *ScanHandler) associateExisting(ctx context.Context, existing ... method associateGallery (line 191) | func (h *ScanHandler) associateGallery(ctx context.Context, existing [... FILE: pkg/scene/scan_test.go function TestAssociateExisting_UpdatePartialOnContentChange (line 14) | func TestAssociateExisting_UpdatePartialOnContentChange(t *testing.T) { function TestAssociateExisting_UpdatePartialOnNewFile (line 77) | func TestAssociateExisting_UpdatePartialOnNewFile(t *testing.T) { FILE: pkg/scene/service.go type Config (line 11) | type Config interface type Service (line 15) | type Service struct FILE: pkg/scene/update.go type UpdateSet (line 16) | type UpdateSet struct method IsEmpty (line 29) | func (u *UpdateSet) IsEmpty() bool { method Update (line 39) | func (u *UpdateSet) Update(ctx context.Context, qb models.SceneUpdater... method UpdateInput (line 63) | func (u UpdateSet) UpdateInput() models.SceneUpdateInput { function AddPerformer (line 76) | func AddPerformer(ctx context.Context, qb models.SceneUpdater, o *models... function AddTag (line 86) | func AddTag(ctx context.Context, qb models.SceneUpdater, o *models.Scene... function AddGallery (line 96) | func AddGallery(ctx context.Context, qb models.SceneUpdater, o *models.S... method AssignFile (line 106) | func (s *Service) AssignFile(ctx context.Context, sceneID int, fileID mo... FILE: pkg/scene/update_test.go function TestUpdater_IsEmpty (line 16) | func TestUpdater_IsEmpty(t *testing.T) { function TestUpdater_Update (line 96) | func TestUpdater_Update(t *testing.T) { function TestUpdateSet_UpdateInput (line 220) | func TestUpdateSet_UpdateInput(t *testing.T) { FILE: pkg/scraper/action.go type scraperAction (line 10) | type scraperAction method IsValid (line 19) | func (e scraperAction) IsValid() bool { constant scraperActionScript (line 13) | scraperActionScript scraperAction = "script" constant scraperActionStash (line 14) | scraperActionStash scraperAction = "stash" constant scraperActionXPath (line 15) | scraperActionXPath scraperAction = "scrapeXPath" constant scraperActionJson (line 16) | scraperActionJson scraperAction = "scrapeJson" type urlScraperActionImpl (line 27) | type urlScraperActionImpl interface method getURLScraper (line 31) | func (c Definition) getURLScraper(def ByURLDefinition, client *http.Clie... type nameScraperActionImpl (line 66) | type nameScraperActionImpl interface method getNameScraper (line 70) | func (c Definition) getNameScraper(def ByNameDefinition, client *http.Cl... type fragmentScraperActionImpl (line 105) | type fragmentScraperActionImpl interface method getFragmentScraper (line 113) | func (c Definition) getFragmentScraper(actionDef ByFragmentDefinition, c... FILE: pkg/scraper/autotag.go constant autoTagScraperID (line 16) | autoTagScraperID = "builtin_autotag" constant autoTagScraperName (line 17) | autoTagScraperName = "Auto Tag" type autotagScraper (line 20) | type autotagScraper struct method viaScene (line 92) | func (s autotagScraper) viaScene(ctx context.Context, _client *http.Cl... method viaGallery (line 133) | func (s autotagScraper) viaGallery(ctx context.Context, _client *http.... method supports (line 178) | func (s autotagScraper) supports(ty ScrapeContentType) bool { method supportsURL (line 189) | func (s autotagScraper) supportsURL(url string, ty ScrapeContentType) ... method spec (line 193) | func (s autotagScraper) spec() Scraper { function autotagMatchPerformers (line 29) | func autotagMatchPerformers(ctx context.Context, path string, performerR... function autotagMatchStudio (line 54) | func autotagMatchStudio(ctx context.Context, path string, studioReader m... function autotagMatchTags (line 71) | func autotagMatchTags(ctx context.Context, path string, tagReader models... function getAutoTagScraper (line 210) | func getAutoTagScraper(repo Repository, globalConfig GlobalConfig) scrap... FILE: pkg/scraper/cache.go constant scrapeGetTimeout (line 26) | scrapeGetTimeout = time.Second * 60 constant maxIdleConnsPerHost (line 30) | maxIdleConnsPerHost = 8 constant maxRedirects (line 33) | maxRedirects = 20 type GlobalConfig (line 37) | type GlobalConfig interface function isCDPPathHTTP (line 47) | func isCDPPathHTTP(c GlobalConfig) bool { function isCDPPathWS (line 51) | func isCDPPathWS(c GlobalConfig) bool { type SceneFinder (line 55) | type SceneFinder interface type PerformerFinder (line 61) | type PerformerFinder interface type StudioFinder (line 66) | type StudioFinder interface type TagFinder (line 71) | type TagFinder interface type GalleryFinder (line 76) | type GalleryFinder interface type ImageFinder (line 82) | type ImageFinder interface type Repository (line 88) | type Repository struct method WithReadTxn (line 113) | func (r *Repository) WithReadTxn(ctx context.Context, fn txn.TxnFunc) ... function NewRepository (line 100) | func NewRepository(repo models.Repository) Repository { type Cache (line 118) | type Cache struct method ReloadScrapers (line 167) | func (c *Cache) ReloadScrapers() { method ListScrapers (line 201) | func (c Cache) ListScrapers(tys []ScrapeContentType) []*Scraper { method GetScraper (line 221) | func (c Cache) GetScraper(scraperID string) *Scraper { method findScraper (line 231) | func (c Cache) findScraper(scraperID string) scraper { method compileExcludeTagPatterns (line 240) | func (c Cache) compileExcludeTagPatterns() []*regexp.Regexp { method ScrapeName (line 244) | func (c Cache) ScrapeName(ctx context.Context, id, query string, ty Sc... method ScrapeFragment (line 286) | func (c Cache) ScrapeFragment(ctx context.Context, id string, input In... method ScrapeURL (line 311) | func (c Cache) ScrapeURL(ctx context.Context, url string, ty ScrapeCon... method ScrapeID (line 334) | func (c Cache) ScrapeID(ctx context.Context, scraperID string, id int,... method getScene (line 415) | func (c Cache) getScene(ctx context.Context, sceneID int) (*models.Sce... method getGallery (line 446) | func (c Cache) getGallery(ctx context.Context, galleryID int) (*models... method getImage (line 477) | func (c Cache) getImage(ctx context.Context, imageID int) (*models.Ima... function newClient (line 127) | func newClient(gc GlobalConfig) *http.Client { function NewCache (line 154) | func NewCache(globalConfig GlobalConfig, repo Repository) *Cache { FILE: pkg/scraper/cookies.go method jar (line 21) | func (c Definition) jar() (*cookiejar.Jar, error) { function getCookieValue (line 61) | func getCookieValue(cookie *scraperCookies) string { function randomSequence (line 70) | func randomSequence(n int) string { function printCookies (line 80) | func printCookies(jar *cookiejar.Jar, scraperConfig Definition, msg stri... function printJarCookies (line 100) | func printJarCookies(jar *cookiejar.Jar, urls []*url.URL) { function setCDPCookies (line 110) | func setCDPCookies(driverOptions scraperDriverOptions) chromedp.Tasks { function printCDPCookies (line 136) | func printCDPCookies(driverOptions scraperDriverOptions, msg string) chr... FILE: pkg/scraper/country.go function resolveCountryName (line 274) | func resolveCountryName(name *string) *string { FILE: pkg/scraper/defined_scraper.go type definedScraper (line 12) | type definedScraper struct method spec (line 25) | func (g definedScraper) spec() Scraper { method fragmentScraper (line 30) | func (g definedScraper) fragmentScraper(input Input) *ByFragmentDefini... method viaFragment (line 47) | func (g definedScraper) viaFragment(ctx context.Context, client *http.... method viaScene (line 64) | func (g definedScraper) viaScene(ctx context.Context, client *http.Cli... method viaGallery (line 73) | func (g definedScraper) viaGallery(ctx context.Context, client *http.C... method viaImage (line 82) | func (g definedScraper) viaImage(ctx context.Context, client *http.Cli... method viaURL (line 108) | func (g definedScraper) viaURL(ctx context.Context, client *http.Clien... method viaName (line 128) | func (g definedScraper) viaName(ctx context.Context, client *http.Clie... method supports (line 149) | func (g definedScraper) supports(ty ScrapeContentType) bool { method supportsURL (line 153) | func (g definedScraper) supportsURL(url string, ty ScrapeContentType) ... function scraperFromDefinition (line 18) | func scraperFromDefinition(c Definition, globalConfig GlobalConfig) defi... function loadUrlCandidates (line 91) | func loadUrlCandidates(c Definition, ty ScrapeContentType) []*ByURLDefin... FILE: pkg/scraper/definition.go type Definition (line 15) | type Definition struct method validate (line 77) | func (c Definition) validate() error { method spec (line 260) | func (c Definition) spec() Scraper { method supports (line 348) | func (c Definition) supports(ty ScrapeContentType) bool { method matchesURL (line 365) | func (c Definition) matchesURL(url string, ty ScrapeContentType) bool { type stashServer (line 125) | type stashServer struct type ActionDefinition (line 130) | type ActionDefinition struct method validate (line 136) | func (c ActionDefinition) validate() error { type ByURLDefinition (line 148) | type ByURLDefinition struct method validate (line 155) | func (c ByURLDefinition) validate() error { method matchesURL (line 163) | func (c ByURLDefinition) matchesURL(url string) bool { type ByFragmentDefinition (line 173) | type ByFragmentDefinition struct type ByNameDefinition (line 180) | type ByNameDefinition struct type scraperDebugOptions (line 185) | type scraperDebugOptions struct type scraperCookies (line 189) | type scraperCookies struct type cookieOptions (line 197) | type cookieOptions struct type clickOptions (line 202) | type clickOptions struct type header (line 207) | type header struct type scraperDriverOptions (line 212) | type scraperDriverOptions struct function loadConfigFromYAML (line 220) | func loadConfigFromYAML(id string, reader io.Reader) (*Definition, error) { function loadConfigFromYAMLFile (line 239) | func loadConfigFromYAMLFile(path string) (*Definition, error) { FILE: pkg/scraper/freeones.go constant FreeonesScraperID (line 10) | FreeonesScraperID = "builtin_freeones" constant freeonesScraperConfig (line 13) | freeonesScraperConfig = ` function getFreeonesScraper (line 134) | func getFreeonesScraper(globalConfig GlobalConfig) scraper { FILE: pkg/scraper/graphql.go type graphqlErrors (line 10) | type graphqlErrors method Error (line 12) | func (e graphqlErrors) Error() string { type graphqlError (line 20) | type graphqlError struct method Error (line 24) | func (e graphqlError) Error() string { function convertGraphqlError (line 39) | func convertGraphqlError(err error) error { FILE: pkg/scraper/image.go function setPerformerImage (line 14) | func setPerformerImage(ctx context.Context, client *http.Client, p *mode... function setStudioImage (line 40) | func setStudioImage(ctx context.Context, client *http.Client, p *models.... function processImageField (line 66) | func processImageField(ctx context.Context, imageField *string, client *... type imageGetter (line 86) | type imageGetter struct method getImage (line 92) | func (i *imageGetter) getImage(ctx context.Context, url string) (*stri... function getImage (line 141) | func getImage(ctx context.Context, url string, client *http.Client, glob... function getStashPerformerImage (line 150) | func getStashPerformerImage(ctx context.Context, stashURL string, perfor... function getStashSceneImage (line 154) | func getStashSceneImage(ctx context.Context, stashURL string, sceneID st... FILE: pkg/scraper/json.go type jsonScraper (line 17) | type jsonScraper struct method getJsonScraper (line 23) | func (s *jsonScraper) getJsonScraper(name string) (*mappedScraper, err... method loadURL (line 32) | func (s *jsonScraper) loadURL(ctx context.Context, url string) (string... method getJsonQuery (line 275) | func (s *jsonScraper) getJsonQuery(doc string, url string) *jsonQuery { type jsonURLScraper (line 55) | type jsonURLScraper struct method scrapeByURL (line 60) | func (s *jsonURLScraper) scrapeByURL(ctx context.Context, url string, ... type jsonNameScraper (line 110) | type jsonNameScraper struct method scrapeByName (line 115) | func (s *jsonNameScraper) scrapeByName(ctx context.Context, name strin... type jsonFragmentScraper (line 167) | type jsonFragmentScraper struct method scrapeSceneByScene (line 172) | func (s *jsonFragmentScraper) scrapeSceneByScene(ctx context.Context, ... method scrapeByFragment (line 195) | func (s *jsonFragmentScraper) scrapeByFragment(ctx context.Context, in... method scrapeImageByImage (line 229) | func (s *jsonFragmentScraper) scrapeImageByImage(ctx context.Context, ... method scrapeGalleryByGallery (line 252) | func (s *jsonFragmentScraper) scrapeGalleryByGallery(ctx context.Conte... type jsonQuery (line 283) | type jsonQuery struct method getType (line 290) | func (q *jsonQuery) getType() QueryType { method setType (line 294) | func (q *jsonQuery) setType(t QueryType) { method getURL (line 298) | func (q *jsonQuery) getURL() string { method runQuery (line 302) | func (q *jsonQuery) runQuery(selector string) ([]string, error) { method subScrape (line 325) | func (q *jsonQuery) subScrape(ctx context.Context, value string) mappe... FILE: pkg/scraper/json_test.go function TestJsonPerformerScraper (line 10) | func TestJsonPerformerScraper(t *testing.T) { FILE: pkg/scraper/mapped.go type mappedQuery (line 10) | type mappedQuery interface type mappedScrapers (line 18) | type mappedScrapers type mappedScraper (line 20) | type mappedScraper struct method scrapePerformer (line 36) | func (s mappedScraper) scrapePerformer(ctx context.Context, q mappedQu... method scrapePerformers (line 68) | func (s mappedScraper) scrapePerformers(ctx context.Context, q mappedQ... method processSceneRelationships (line 80) | func (s mappedScraper) processSceneRelationships(ctx context.Context, ... method processPerformers (line 121) | func (s mappedScraper) processPerformers(ctx context.Context, performe... method scrapeScenes (line 153) | func (s mappedScraper) scrapeScenes(ctx context.Context, q mappedQuery... method scrapeScene (line 176) | func (s mappedScraper) scrapeScene(ctx context.Context, q mappedQuery)... method scrapeImage (line 203) | func (s mappedScraper) scrapeImage(ctx context.Context, q mappedQuery)... method scrapeGallery (line 252) | func (s mappedScraper) scrapeGallery(ctx context.Context, q mappedQuer... method scrapeGroup (line 304) | func (s mappedScraper) scrapeGroup(ctx context.Context, q mappedQuery)... function urlsIsMulti (line 32) | func urlsIsMulti(key string) bool { FILE: pkg/scraper/mapped_config.go type commonMappedConfig (line 14) | type commonMappedConfig type mappedConfig (line 16) | type mappedConfig method applyCommon (line 18) | func (s mappedConfig) applyCommon(c commonMappedConfig, src string) st... method process (line 49) | func (s mappedConfig) process(ctx context.Context, q mappedQuery, comm... method postProcess (line 92) | func (s mappedConfig) postProcess(ctx context.Context, q mappedQuery, ... function extractHostname (line 33) | func extractHostname(urlStr string) string { type isMultiFunc (line 47) | type isMultiFunc type mappedSceneScraperConfig (line 129) | type mappedSceneScraperConfig struct method UnmarshalYAML (line 148) | func (s *mappedSceneScraperConfig) UnmarshalYAML(unmarshal func(interf... type _mappedSceneScraperConfig (line 138) | type _mappedSceneScraperConfig constant mappedScraperConfigSceneTags (line 141) | mappedScraperConfigSceneTags = "Tags" constant mappedScraperConfigScenePerformers (line 142) | mappedScraperConfigScenePerformers = "Performers" constant mappedScraperConfigSceneStudio (line 143) | mappedScraperConfigSceneStudio = "Studio" constant mappedScraperConfigSceneMovies (line 144) | mappedScraperConfigSceneMovies = "Movies" constant mappedScraperConfigSceneGroups (line 145) | mappedScraperConfigSceneGroups = "Groups" type mappedGalleryScraperConfig (line 197) | type mappedGalleryScraperConfig struct method UnmarshalYAML (line 207) | func (s *mappedGalleryScraperConfig) UnmarshalYAML(unmarshal func(inte... type _mappedGalleryScraperConfig (line 205) | type _mappedGalleryScraperConfig type mappedImageScraperConfig (line 252) | type mappedImageScraperConfig struct method UnmarshalYAML (line 261) | func (s *mappedImageScraperConfig) UnmarshalYAML(unmarshal func(interf... type _mappedImageScraperConfig (line 259) | type _mappedImageScraperConfig type mappedPerformerScraperConfig (line 306) | type mappedPerformerScraperConfig struct method UnmarshalYAML (line 317) | func (s *mappedPerformerScraperConfig) UnmarshalYAML(unmarshal func(in... type _mappedPerformerScraperConfig (line 311) | type _mappedPerformerScraperConfig constant mappedScraperConfigPerformerTags (line 314) | mappedScraperConfigPerformerTags = "Tags" type mappedMovieScraperConfig (line 358) | type mappedMovieScraperConfig struct method UnmarshalYAML (line 371) | func (s *mappedMovieScraperConfig) UnmarshalYAML(unmarshal func(interf... type _mappedMovieScraperConfig (line 364) | type _mappedMovieScraperConfig constant mappedScraperConfigMovieStudio (line 367) | mappedScraperConfigMovieStudio = "Studio" constant mappedScraperConfigMovieTags (line 368) | mappedScraperConfigMovieTags = "Tags" type mappedScraperAttrConfig (line 414) | type mappedScraperAttrConfig struct method UnmarshalYAML (line 431) | func (c *mappedScraperAttrConfig) UnmarshalYAML(unmarshal func(interfa... method convertPostProcessActions (line 453) | func (c *mappedScraperAttrConfig) convertPostProcessActions() error { method hasConcat (line 495) | func (c mappedScraperAttrConfig) hasConcat() bool { method hasSplit (line 499) | func (c mappedScraperAttrConfig) hasSplit() bool { method concatenateResults (line 503) | func (c mappedScraperAttrConfig) concatenateResults(nodes []string) st... method cleanResults (line 508) | func (c mappedScraperAttrConfig) cleanResults(nodes []string) []string { method splitString (line 514) | func (c mappedScraperAttrConfig) splitString(value string) []string { method postProcess (line 531) | func (c mappedScraperAttrConfig) postProcess(ctx context.Context, valu... type _mappedScraperAttrConfig (line 429) | type _mappedScraperAttrConfig FILE: pkg/scraper/mapped_postprocessing.go type mappedRegexConfig (line 17) | type mappedRegexConfig struct method apply (line 24) | func (c mappedRegexConfig) apply(value string) string { type mappedRegexConfigs (line 22) | type mappedRegexConfigs method apply (line 48) | func (c mappedRegexConfigs) apply(value string) string { type postProcessAction (line 57) | type postProcessAction interface type postProcessParseDate (line 61) | type postProcessParseDate method Apply (line 63) | func (p *postProcessParseDate) Apply(ctx context.Context, value string... type postProcessSubtractDays (line 106) | type postProcessSubtractDays method Apply (line 108) | func (p *postProcessSubtractDays) Apply(ctx context.Context, value str... type postProcessReplace (line 122) | type postProcessReplace method Apply (line 124) | func (c *postProcessReplace) Apply(ctx context.Context, value string, ... type postProcessSubScraper (line 129) | type postProcessSubScraper method Apply (line 131) | func (p *postProcessSubScraper) Apply(ctx context.Context, value strin... type postProcessMap (line 160) | type postProcessMap method Apply (line 162) | func (p *postProcessMap) Apply(ctx context.Context, value string, q ma... type postProcessFeetToCm (line 174) | type postProcessFeetToCm method Apply (line 176) | func (p *postProcessFeetToCm) Apply(ctx context.Context, value string,... type postProcessLbToKg (line 198) | type postProcessLbToKg method Apply (line 200) | func (p *postProcessLbToKg) Apply(ctx context.Context, value string, q... type postProcessJavascript (line 210) | type postProcessJavascript method Apply (line 212) | func (p *postProcessJavascript) Apply(ctx context.Context, value strin... type mappedPostProcessAction (line 250) | type mappedPostProcessAction struct method ToPostProcessAction (line 261) | func (a mappedPostProcessAction) ToPostProcessAction() (postProcessAct... FILE: pkg/scraper/mapped_result.go type mappedResult (line 8) | type mappedResult method string (line 11) | func (r mappedResult) string(key string) (string, bool) { method mustString (line 25) | func (r mappedResult) mustString(key string) string { method stringPtr (line 40) | func (r mappedResult) stringPtr(key string) *string { method stringSlice (line 48) | func (r mappedResult) stringSlice(key string) []string { method IntPtr (line 71) | func (r mappedResult) IntPtr(key string) *int { method scrapedTag (line 119) | func (r mappedResult) scrapedTag() *models.ScrapedTag { method scrapedPerformer (line 125) | func (r mappedResult) scrapedPerformer() *models.ScrapedPerformer { method scrapedScene (line 171) | func (r mappedResult) scrapedScene() *models.ScrapedScene { method scrapedImage (line 186) | func (r mappedResult) scrapedImage() *models.ScrapedImage { method scrapedGallery (line 198) | func (r mappedResult) scrapedGallery() *models.ScrapedGallery { method scrapedStudio (line 211) | func (r mappedResult) scrapedStudio() *models.ScrapedStudio { method scrapedMovie (line 223) | func (r mappedResult) scrapedMovie() *models.ScrapedMovie { method scrapedGroup (line 239) | func (r mappedResult) scrapedGroup() *models.ScrapedGroup { type mappedResults (line 9) | type mappedResults method setSingleValue (line 86) | func (r mappedResults) setSingleValue(index int, key string, value str... method setMultiValue (line 96) | func (r mappedResults) setMultiValue(index int, key string, value []st... method scrapedTags (line 106) | func (r mappedResults) scrapedTags() []*models.ScrapedTag { method scrapedPerformers (line 158) | func (r mappedResults) scrapedPerformers() []*models.ScrapedPerformer { method scrapedMovies (line 256) | func (r mappedResults) scrapedMovies() []*models.ScrapedMovie { method scrapedGroups (line 268) | func (r mappedResults) scrapedGroups() []*models.ScrapedGroup { FILE: pkg/scraper/mapped_result_test.go function TestMappedResultString (line 11) | func TestMappedResultString(t *testing.T) { function TestMappedResultMustString (line 52) | func TestMappedResultMustString(t *testing.T) { function TestMappedResultStringPtr (line 88) | func TestMappedResultStringPtr(t *testing.T) { function TestMappedResultStringSlice (line 129) | func TestMappedResultStringSlice(t *testing.T) { function TestMappedResultIntPtr (line 177) | func TestMappedResultIntPtr(t *testing.T) { function TestMappedResultsSetSingleValue (line 219) | func TestMappedResultsSetSingleValue(t *testing.T) { function TestMappedResultsSetMultiValue (line 283) | func TestMappedResultsSetMultiValue(t *testing.T) { function TestMappedResultScrapedTag (line 328) | func TestMappedResultScrapedTag(t *testing.T) { function TestMappedResultsScrapedTags (line 356) | func TestMappedResultsScrapedTags(t *testing.T) { function TestMappedResultScrapedPerformer (line 405) | func TestMappedResultScrapedPerformer(t *testing.T) { function TestMappedResultsScrapedPerformers (line 473) | func TestMappedResultsScrapedPerformers(t *testing.T) { function TestMappedResultScrapedScene (line 516) | func TestMappedResultScrapedScene(t *testing.T) { function TestMappedResultScrapedImage (line 569) | func TestMappedResultScrapedImage(t *testing.T) { function TestMappedResultScrapedGallery (line 615) | func TestMappedResultScrapedGallery(t *testing.T) { function TestMappedResultScrapedStudio (line 663) | func TestMappedResultScrapedStudio(t *testing.T) { function TestMappedResultScrapedMovie (line 710) | func TestMappedResultScrapedMovie(t *testing.T) { function TestMappedResultsScrapedMovies (line 762) | func TestMappedResultsScrapedMovies(t *testing.T) { function TestMappedResultScrapedGroup (line 805) | func TestMappedResultScrapedGroup(t *testing.T) { function TestMappedResultsScrapedGroups (line 859) | func TestMappedResultsScrapedGroups(t *testing.T) { function strPtr (line 902) | func strPtr(s string) *string { function intPtr (line 906) | func intPtr(i int) *int { FILE: pkg/scraper/mapped_test.go function TestInvalidPostProcessAction (line 13) | func TestInvalidPostProcessAction(t *testing.T) { type feetToCMTest (line 37) | type feetToCMTest struct function TestFeetToCM (line 55) | func TestFeetToCM(t *testing.T) { function Test_postProcessParseDate_Apply (line 65) | func Test_postProcessParseDate_Apply(t *testing.T) { FILE: pkg/scraper/movie.go type ScrapedMovieInput (line 3) | type ScrapedMovieInput struct FILE: pkg/scraper/performer.go type ScrapedPerformerInput (line 3) | type ScrapedPerformerInput struct FILE: pkg/scraper/post_processing_test.go function TestPostScrapePerformerCareerLength (line 10) | func TestPostScrapePerformerCareerLength(t *testing.T) { FILE: pkg/scraper/postprocessing.go type postScraper (line 14) | type postScraper struct method postScrape (line 26) | func (c *postScraper) postScrape(ctx context.Context, content ScrapedC... method filterTags (line 73) | func (c *postScraper) filterTags(tags []*models.ScrapedTag) []*models.... method postScrapePerformer (line 82) | func (c *postScraper) postScrapePerformer(ctx context.Context, p model... method postProcessCareerLength (line 133) | func (c *postScraper) postProcessCareerLength(p *models.ScrapedPerform... method postScrapeMovie (line 186) | func (c *postScraper) postScrapeMovie(ctx context.Context, m models.Sc... method postScrapeGroup (line 230) | func (c *postScraper) postScrapeGroup(ctx context.Context, m models.Sc... method postScrapeRelatedPerformers (line 276) | func (c *postScraper) postScrapeRelatedPerformers(ctx context.Context,... method postScrapeRelatedMovies (line 297) | func (c *postScraper) postScrapeRelatedMovies(ctx context.Context, ite... method postScrapeRelatedGroups (line 320) | func (c *postScraper) postScrapeRelatedGroups(ctx context.Context, ite... method postScrapeStudio (line 343) | func (c *postScraper) postScrapeStudio(ctx context.Context, s models.S... method postScrapeRelatedStudio (line 380) | func (c *postScraper) postScrapeRelatedStudio(ctx context.Context, s *... method postScrapeScene (line 400) | func (c *postScraper) postScrapeScene(ctx context.Context, scene model... method postScrapeGallery (line 456) | func (c *postScraper) postScrapeGallery(ctx context.Context, g models.... method postScrapeImage (line 485) | func (c *postScraper) postScrapeImage(ctx context.Context, image model... method postScrapeSingle (line 509) | func (c Cache) postScrapeSingle(ctx context.Context, content ScrapedCont... FILE: pkg/scraper/query_url.go type queryURLReplacements (line 10) | type queryURLReplacements type queryURLParameters (line 12) | type queryURLParameters method applyReplacements (line 100) | func (p queryURLParameters) applyReplacements(r queryURLReplacements) { method constructURL (line 109) | func (p queryURLParameters) constructURL(url string) string { function queryURLParametersFromScene (line 14) | func queryURLParametersFromScene(scene *models.Scene) queryURLParameters { function queryURLParametersFromScrapedScene (line 35) | func queryURLParametersFromScrapedScene(scene models.ScrapedSceneInput) ... function queryURLParameterFromURL (line 58) | func queryURLParameterFromURL(url string) queryURLParameters { function queryURLParametersFromGallery (line 64) | func queryURLParametersFromGallery(gallery *models.Gallery) queryURLPara... function queryURLParametersFromImage (line 82) | func queryURLParametersFromImage(image *models.Image) queryURLParameters { function replaceURL (line 119) | func replaceURL(url string, scraperConfig ByURLDefinition) string { FILE: pkg/scraper/scraper.go type Source (line 16) | type Source struct type ScrapedContent (line 26) | type ScrapedContent interface type ScrapeContentType (line 31) | type ScrapeContentType method IsValid (line 51) | func (e ScrapeContentType) IsValid() bool { method String (line 59) | func (e ScrapeContentType) String() string { method UnmarshalGQL (line 63) | func (e *ScrapeContentType) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 76) | func (e ScrapeContentType) MarshalGQL(w io.Writer) { constant ScrapeContentTypeGallery (line 34) | ScrapeContentTypeGallery ScrapeContentType = "GALLERY" constant ScrapeContentTypeMovie (line 35) | ScrapeContentTypeMovie ScrapeContentType = "MOVIE" constant ScrapeContentTypeGroup (line 36) | ScrapeContentTypeGroup ScrapeContentType = "GROUP" constant ScrapeContentTypePerformer (line 37) | ScrapeContentTypePerformer ScrapeContentType = "PERFORMER" constant ScrapeContentTypeScene (line 38) | ScrapeContentTypeScene ScrapeContentType = "SCENE" constant ScrapeContentTypeImage (line 39) | ScrapeContentTypeImage ScrapeContentType = "IMAGE" type Scraper (line 80) | type Scraper struct type ScraperSpec (line 97) | type ScraperSpec struct type ScrapeType (line 103) | type ScrapeType method IsValid (line 120) | func (e ScrapeType) IsValid() bool { method String (line 128) | func (e ScrapeType) String() string { method UnmarshalGQL (line 132) | func (e *ScrapeType) UnmarshalGQL(v interface{}) error { method MarshalGQL (line 145) | func (e ScrapeType) MarshalGQL(w io.Writer) { constant ScrapeTypeName (line 107) | ScrapeTypeName ScrapeType = "NAME" constant ScrapeTypeFragment (line 109) | ScrapeTypeFragment ScrapeType = "FRAGMENT" constant ScrapeTypeURL (line 111) | ScrapeTypeURL ScrapeType = "URL" type Input (line 164) | type Input struct method populateURL (line 173) | func (i *Input) populateURL() { type QueryType (line 187) | type QueryType constant SearchQuery (line 191) | SearchQuery QueryType = iota + 1 type scraper (line 195) | type scraper interface type urlScraper (line 205) | type urlScraper interface type nameScraper (line 212) | type nameScraper interface type fragmentScraper (line 219) | type fragmentScraper interface type sceneScraper (line 227) | type sceneScraper interface type imageScraper (line 235) | type imageScraper interface type galleryScraper (line 243) | type galleryScraper interface FILE: pkg/scraper/script.go type fingerprintInput (line 23) | type fingerprintInput struct type fileInput (line 28) | type fileInput struct type videoFileInput (line 39) | type videoFileInput struct type sceneInput (line 55) | type sceneInput struct function fileInputFromFile (line 73) | func fileInputFromFile(f models.BaseFile) fileInput { function videoFileInputFromVideoFile (line 99) | func videoFileInputFromVideoFile(vf *models.VideoFile) videoFileInput { function sceneInputFromScene (line 115) | func sceneInputFromScene(scene *models.Scene) sceneInput { type galleryInput (line 154) | type galleryInput struct function galleryInputFromGallery (line 170) | func galleryInputFromGallery(gallery *models.Gallery) galleryInput { type scriptScraper (line 210) | type scriptScraper struct method runScraperScript (line 215) | func (s *scriptScraper) runScraperScript(ctx context.Context, command ... method scrape (line 304) | func (s *scriptScraper) scrape(ctx context.Context, command []string, ... type scriptNameScraper (line 331) | type scriptNameScraper struct method scrapeByName (line 336) | func (s *scriptNameScraper) scrapeByName(ctx context.Context, name str... type scriptURLScraper (line 367) | type scriptURLScraper struct method scrapeByURL (line 372) | func (s *scriptURLScraper) scrapeByURL(ctx context.Context, url string... type scriptFragmentScraper (line 376) | type scriptFragmentScraper struct method scrapeByFragment (line 381) | func (s *scriptFragmentScraper) scrapeByFragment(ctx context.Context, ... method scrapeSceneByScene (line 404) | func (s *scriptFragmentScraper) scrapeSceneByScene(ctx context.Context... method scrapeGalleryByGallery (line 418) | func (s *scriptFragmentScraper) scrapeGalleryByGallery(ctx context.Con... method scrapeImageByImage (line 432) | func (s *scriptFragmentScraper) scrapeImageByImage(ctx context.Context... function handleScraperStderr (line 446) | func handleScraperStderr(name string, scraperOutputReader io.ReadCloser) { FILE: pkg/scraper/stash.go type stashScraper (line 16) | type stashScraper struct method getStashClient (line 36) | func (s *stashScraper) getStashClient() *graphql.Client { method imageGetter (line 94) | func (s *stashScraper) imageGetter() imageGetter { method scrapeByFragment (line 107) | func (s *stashScraper) scrapeByFragment(ctx context.Context, input Inp... method scrapeByPerformerFragment (line 119) | func (s *stashScraper) scrapeByPerformerFragment(ctx context.Context, ... method scrapeBySceneFragment (line 171) | func (s *stashScraper) scrapeBySceneFragment(ctx context.Context, scra... method scrapedStashSceneToScrapedScene (line 220) | func (s *stashScraper) scrapedStashSceneToScrapedScene(ctx context.Con... method scrapeByName (line 243) | func (s *stashScraper) scrapeByName(ctx context.Context, name string, ... method scrapeSceneByScene (line 342) | func (s *stashScraper) scrapeSceneByScene(ctx context.Context, scene *... method scrapeGalleryByGallery (line 402) | func (s *stashScraper) scrapeGalleryByGallery(ctx context.Context, gal... method scrapeImageByImage (line 434) | func (s *stashScraper) scrapeImageByImage(ctx context.Context, image *... method scrapeByURL (line 438) | func (s *stashScraper) scrapeByURL(_ context.Context, _ string, _ Scra... function newStashScraper (line 22) | func newStashScraper(client *http.Client, config Definition, globalConfi... function setApiKeyHeader (line 30) | func setApiKeyHeader(apiKey string) func(req *http.Request) { type stashFindPerformerNamePerformer (line 47) | type stashFindPerformerNamePerformer struct method toPerformer (line 52) | func (p stashFindPerformerNamePerformer) toPerformer() *models.Scraped... type stashFindPerformerNamesResultType (line 60) | type stashFindPerformerNamesResultType struct type scrapedTagStash (line 66) | type scrapedTagStash struct type scrapedPerformerStash (line 70) | type scrapedPerformerStash struct type scrapedStudioStash (line 210) | type scrapedStudioStash struct type stashFindSceneNamesResultType (line 215) | type stashFindSceneNamesResultType struct type stashVideoFile (line 302) | type stashVideoFile struct method SceneFileType (line 313) | func (f stashVideoFile) SceneFileType() models.SceneFileType { type scrapedSceneStash (line 330) | type scrapedSceneStash struct type scrapedGalleryStash (line 390) | type scrapedGalleryStash struct function imageToUpdateInput (line 442) | func imageToUpdateInput(gallery *models.Image) models.ImageUpdateInput { FILE: pkg/scraper/tag.go function postProcessTags (line 14) | func postProcessTags(ctx context.Context, tqb models.TagQueryer, scraped... function FilterTags (line 31) | func FilterTags(excludeRegexps []*regexp.Regexp, tags []*models.ScrapedT... function CompileExclusionRegexps (line 57) | func CompileExclusionRegexps(patterns []string) []*regexp.Regexp { function LogIgnoredTags (line 74) | func LogIgnoredTags(ignoredTags []string) { FILE: pkg/scraper/url.go constant scrapeDefaultSleep (line 26) | scrapeDefaultSleep = time.Second * 2 function loadURL (line 28) | func loadURL(ctx context.Context, loadURL string, client *http.Client, d... function urlFromCDP (line 93) | func urlFromCDP(ctx context.Context, urlCDP string, driverOptions scrape... function setCDPClicks (line 236) | func setCDPClicks(driverOptions scraperDriverOptions) chromedp.Tasks { function getRemoteCDPWSAddress (line 269) | func getRemoteCDPWSAddress(ctx context.Context, url string) (string, err... function cdpHeaders (line 291) | func cdpHeaders(driverOptions scraperDriverOptions) map[string]interface... function proxyUsesAuth (line 304) | func proxyUsesAuth(proxyUrl string) bool { function splitProxyAuth (line 318) | func splitProxyAuth(proxyUrl string) (string, string, string) { FILE: pkg/scraper/xpath.go type xpathScraper (line 20) | type xpathScraper struct method getXpathScraper (line 26) | func (s *xpathScraper) getXpathScraper(name string) (*mappedScraper, e... method loadURL (line 252) | func (s *xpathScraper) loadURL(ctx context.Context, url string) (*html... method getXPathQuery (line 271) | func (s *xpathScraper) getXPathQuery(doc *html.Node, url string) *xpat... type xpathURLScraper (line 34) | type xpathURLScraper struct method scrapeByURL (line 39) | func (s *xpathURLScraper) scrapeByURL(ctx context.Context, url string,... type xpathNameScraper (line 89) | type xpathNameScraper struct method scrapeByName (line 94) | func (s *xpathNameScraper) scrapeByName(ctx context.Context, name stri... type xpathFragmentScraper (line 144) | type xpathFragmentScraper struct method scrapeSceneByScene (line 149) | func (s *xpathFragmentScraper) scrapeSceneByScene(ctx context.Context,... method scrapeByFragment (line 172) | func (s *xpathFragmentScraper) scrapeByFragment(ctx context.Context, i... method scrapeGalleryByGallery (line 206) | func (s *xpathFragmentScraper) scrapeGalleryByGallery(ctx context.Cont... method scrapeImageByImage (line 229) | func (s *xpathFragmentScraper) scrapeImageByImage(ctx context.Context,... type xpathQuery (line 279) | type xpathQuery struct method getType (line 286) | func (q *xpathQuery) getType() QueryType { method setType (line 290) | func (q *xpathQuery) setType(t QueryType) { method getURL (line 294) | func (q *xpathQuery) getURL() string { method runQuery (line 298) | func (q *xpathQuery) runQuery(selector string) ([]string, error) { method nodeText (line 316) | func (q *xpathQuery) nodeText(n *html.Node) string { method subScrape (line 338) | func (q *xpathQuery) subScrape(ctx context.Context, value string) mapp... FILE: pkg/scraper/xpath_test.go constant htmlDoc1 (line 18) | htmlDoc1 = ` function makeCommonXPath (line 185) | func makeCommonXPath(attr string) string { function makeSimpleAttrConfig (line 189) | func makeSimpleAttrConfig(str string) mappedScraperAttrConfig { function makeReplaceRegex (line 195) | func makeReplaceRegex(regex string, with string) mappedRegexConfig { function makeXPathConfig (line 204) | func makeXPathConfig() mappedPerformerScraperConfig { function verifyField (line 288) | func verifyField(t *testing.T, expected string, actual *string, field st... function TestScrapePerformerXPath (line 300) | func TestScrapePerformerXPath(t *testing.T) { function TestConcatXPath (line 387) | func TestConcatXPath(t *testing.T) { constant sceneHTML (line 439) | sceneHTML = ` function makeSceneXPathConfig (line 567) | func makeSceneXPathConfig() mappedScraper { function verifyTags (line 612) | func verifyTags(t *testing.T, expectedTagNames []string, actualTags []*m... function verifyMovies (line 633) | func verifyMovies(t *testing.T, expectedMovieNames []string, actualMovie... function verifyPerformers (line 654) | func verifyPerformers(t *testing.T, expectedNames []string, expectedURLs... function TestApplySceneXPathConfig (line 686) | func TestApplySceneXPathConfig(t *testing.T) { function TestLoadXPathScraperFromYAML (line 756) | func TestLoadXPathScraperFromYAML(t *testing.T) { function TestLoadInvalidXPath (line 806) | func TestLoadInvalidXPath(t *testing.T) { type mockGlobalConfig (line 826) | type mockGlobalConfig struct method GetScraperUserAgent (line 828) | func (mockGlobalConfig) GetScraperUserAgent() string { method GetScrapersPath (line 832) | func (mockGlobalConfig) GetScrapersPath() string { method GetScraperCDPPath (line 836) | func (mockGlobalConfig) GetScraperCDPPath() string { method GetScraperCertCheck (line 840) | func (mockGlobalConfig) GetScraperCertCheck() bool { method GetScraperExcludeTagPatterns (line 844) | func (mockGlobalConfig) GetScraperExcludeTagPatterns() []string { method GetPythonPath (line 848) | func (mockGlobalConfig) GetPythonPath() string { method GetProxy (line 852) | func (mockGlobalConfig) GetProxy() string { function TestSubScrape (line 856) | func TestSubScrape(t *testing.T) { FILE: pkg/session/authentication.go type ExternalAccessError (line 12) | type ExternalAccessError method Error (line 14) | func (e ExternalAccessError) Error() string { function CheckAllowPublicWithoutAuth (line 18) | func CheckAllowPublicWithoutAuth(c ExternalAccessConfig, r *http.Request... function CheckExternalAccessTripwire (line 62) | func CheckExternalAccessTripwire(c ExternalAccessConfig) *ExternalAccess... function isLocalIP (line 73) | func isLocalIP(requestIP net.IP) bool { function LogExternalAccessError (line 78) | func LogExternalAccessError(err ExternalAccessError) { FILE: pkg/session/authentication_test.go type config (line 9) | type config struct method HasCredentials (line 16) | func (c *config) HasCredentials() bool { method GetDangerousAllowPublicWithoutAuth (line 20) | func (c *config) GetDangerousAllowPublicWithoutAuth() bool { method GetSecurityTripwireAccessedFromPublicInternet (line 24) | func (c *config) GetSecurityTripwireAccessedFromPublicInternet() string { method IsNewSystem (line 28) | func (c *config) IsNewSystem() bool { function TestCheckAllowPublicWithoutAuth (line 32) | func TestCheckAllowPublicWithoutAuth(t *testing.T) { function TestCheckExternalAccessTripwire (line 155) | func TestCheckExternalAccessTripwire(t *testing.T) { FILE: pkg/session/config.go type ExternalAccessConfig (line 3) | type ExternalAccessConfig interface type SessionConfig (line 10) | type SessionConfig interface FILE: pkg/session/local.go function SetLocalRequest (line 14) | func SetLocalRequest(r *http.Request) *http.Request { function IsLocalRequest (line 38) | func IsLocalRequest(ctx context.Context) bool { FILE: pkg/session/plugin.go type VisitedPluginHook (line 14) | type VisitedPluginHook struct function init (line 19) | func init() { method VisitedPluginHandler (line 23) | func (s *Store) VisitedPluginHandler() func(http.Handler) http.Handler { function GetVisitedPluginHooks (line 44) | func GetVisitedPluginHooks(ctx context.Context) []VisitedPluginHook { function AddVisitedPluginHook (line 53) | func AddVisitedPluginHook(ctx context.Context, pluginID string, hookType... function setVisitedPluginHooks (line 59) | func setVisitedPluginHooks(ctx context.Context, visitedPlugins []Visited... method MakePluginCookie (line 63) | func (s *Store) MakePluginCookie(ctx context.Context) *http.Cookie { FILE: pkg/session/session.go type key (line 13) | type key constant contextUser (line 16) | contextUser key = iota constant contextVisitedPlugins (line 17) | contextVisitedPlugins constant contextLocalRequest (line 18) | contextLocalRequest constant userIDKey (line 22) | userIDKey = "userID" constant visitedPluginHooksKey (line 23) | visitedPluginHooksKey = "visitedPluginsHooks" constant ApiKeyHeader (line 27) | ApiKeyHeader = "ApiKey" constant ApiKeyParameter (line 28) | ApiKeyParameter = "apikey" constant cookieName (line 32) | cookieName = "session" constant usernameFormKey (line 33) | usernameFormKey = "username" constant passwordFormKey (line 34) | passwordFormKey = "password" type InvalidCredentialsError (line 37) | type InvalidCredentialsError struct method Error (line 41) | func (e InvalidCredentialsError) Error() string { type Store (line 48) | type Store struct method Login (line 65) | func (s *Store) Login(w http.ResponseWriter, r *http.Request) error { method Logout (line 90) | func (s *Store) Logout(w http.ResponseWriter, r *http.Request) error { method GetSessionUserID (line 110) | func (s *Store) GetSessionUserID(w http.ResponseWriter, r *http.Reques... method Authenticate (line 150) | func (s *Store) Authenticate(w http.ResponseWriter, r *http.Request) (... function NewStore (line 53) | func NewStore(c SessionConfig) *Store { function SetCurrentUserID (line 135) | func SetCurrentUserID(ctx context.Context, userID string) context.Context { function GetCurrentUserID (line 140) | func GetCurrentUserID(ctx context.Context) *string { FILE: pkg/sliceutil/collections.go function AppendUnique (line 10) | func AppendUnique[T comparable](vs []T, toAdd T) []T { function AppendUniques (line 21) | func AppendUniques[T comparable](vs []T, toAdd []T) []T { function Exclude (line 38) | func Exclude[T comparable](vs []T, toExclude []T) []T { function Unique (line 50) | func Unique[T comparable](vs []T) []T { function Delete (line 63) | func Delete[T comparable](vs []T, toDel T) []T { function Intersect (line 74) | func Intersect[T comparable](a []T, b []T) []T { function NotIntersect (line 86) | func NotIntersect[T comparable](a []T, b []T) []T { function SliceSame (line 105) | func SliceSame[T comparable](a []T, b []T) bool { function Filter (line 134) | func Filter[T any](vs []T, f func(T) bool) []T { function Map (line 145) | func Map[T any, V any](vs []T, f func(T) V) []V { function PtrsToValues (line 153) | func PtrsToValues[T any](vs []*T) []T { function ValuesToPtrs (line 161) | func ValuesToPtrs[T any](vs []T) []*T { function Flatten (line 173) | func Flatten[T any](vs [][]T) []T { FILE: pkg/sliceutil/collections_test.go function TestSliceSame (line 10) | func TestSliceSame(t *testing.T) { function TestAppendUniques (line 71) | func TestAppendUniques(t *testing.T) { function BenchmarkAppendUniques (line 147) | func BenchmarkAppendUniques(b *testing.B) { FILE: pkg/sliceutil/intslice/int_collections.go function IntSliceToStringSlice (line 6) | func IntSliceToStringSlice(ss []int) []string { FILE: pkg/sliceutil/stringslice/string_collections.go function StringSliceToIntSlice (line 10) | func StringSliceToIntSlice(ss []string) ([]int, error) { function FromString (line 25) | func FromString(s string, sep string) []string { function UniqueFold (line 35) | func UniqueFold(s []string) []string { function UniqueExcludeFold (line 50) | func UniqueExcludeFold(values []string, exclude string) []string { function TrimSpace (line 66) | func TrimSpace(s []string) []string { FILE: pkg/sqlite/anonymise.go constant letters (line 22) | letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" constant hex (line 23) | hex = "0123456789abcdef" type Anonymiser (line 26) | type Anonymiser struct method Anonymise (line 43) | func (db *Anonymiser) Anonymise(ctx context.Context) error { method truncateColumn (line 77) | func (db *Anonymiser) truncateColumn(tableName string, column string) ... method truncateTable (line 82) | func (db *Anonymiser) truncateTable(tableName string) error { method deleteBlobs (line 87) | func (db *Anonymiser) deleteBlobs() error { method deleteStashIDs (line 100) | func (db *Anonymiser) deleteStashIDs() error { method clearOHistory (line 109) | func (db *Anonymiser) clearOHistory() error { method clearWatchHistory (line 115) | func (db *Anonymiser) clearWatchHistory() error { method anonymiseFolders (line 121) | func (db *Anonymiser) anonymiseFolders(ctx context.Context) error { method anonymiseFoldersRecurse (line 128) | func (db *Anonymiser) anonymiseFoldersRecurse(ctx context.Context, par... method anonymiseFiles (line 165) | func (db *Anonymiser) anonymiseFiles(ctx context.Context) error { method anonymiseCaptions (line 179) | func (db *Anonymiser) anonymiseCaptions(ctx context.Context) error { method anonymiseFingerprints (line 193) | func (db *Anonymiser) anonymiseFingerprints(ctx context.Context) error { method anonymiseScenes (line 251) | func (db *Anonymiser) anonymiseScenes(ctx context.Context) error { method anonymiseMarkers (line 342) | func (db *Anonymiser) anonymiseMarkers(ctx context.Context) error { method anonymiseImages (line 394) | func (db *Anonymiser) anonymiseImages(ctx context.Context) error { method anonymiseGalleries (line 457) | func (db *Anonymiser) anonymiseGalleries(ctx context.Context) error { method anonymisePerformers (line 532) | func (db *Anonymiser) anonymisePerformers(ctx context.Context) error { method anonymiseStudios (line 619) | func (db *Anonymiser) anonymiseStudios(ctx context.Context) error { method anonymiseAliases (line 696) | func (db *Anonymiser) anonymiseAliases(ctx context.Context, table exp.... method anonymiseURLs (line 758) | func (db *Anonymiser) anonymiseURLs(ctx context.Context, table exp.Ide... method anonymiseTags (line 820) | func (db *Anonymiser) anonymiseTags(ctx context.Context) error { method anonymiseGroups (line 895) | func (db *Anonymiser) anonymiseGroups(ctx context.Context) error { method anonymiseSavedFilters (line 974) | func (db *Anonymiser) anonymiseSavedFilters(ctx context.Context) error { method anonymiseText (line 1033) | func (db *Anonymiser) anonymiseText(ctx context.Context, table exp.Ide... method anonymiseFingerprint (line 1046) | func (db *Anonymiser) anonymiseFingerprint(ctx context.Context, table ... method obfuscateNullString (line 1059) | func (db *Anonymiser) obfuscateNullString(out goqu.Record, column stri... method obfuscateString (line 1065) | func (db *Anonymiser) obfuscateString(in string, dict string) string { method anonymiseCustomFields (line 1083) | func (db *Anonymiser) anonymiseCustomFields(ctx context.Context, table... function NewAnonymiser (line 30) | func NewAnonymiser(db *Database, outPath string) (*Anonymiser, error) { FILE: pkg/sqlite/anonymise_test.go function TestAnonymiser_Anonymise (line 14) | func TestAnonymiser_Anonymise(t *testing.T) { FILE: pkg/sqlite/batch.go constant defaultBatchSize (line 3) | defaultBatchSize = 1000 function batchExec (line 6) | func batchExec[T any](ids []T, batchSize int, fn func(batch []T) error) ... FILE: pkg/sqlite/blob.go constant blobTable (line 23) | blobTable = "blobs" constant blobChecksumColumn (line 24) | blobChecksumColumn = "checksum" type BlobStoreOptions (line 27) | type BlobStoreOptions struct type BlobStore (line 39) | type BlobStore struct method table (line 77) | func (qb *BlobStore) table() exp.IdentifierExpression { method Count (line 81) | func (qb *BlobStore) Count(ctx context.Context) (int, error) { method Write (line 95) | func (qb *BlobStore) Write(ctx context.Context, data []byte) (string, ... method write (line 126) | func (qb *BlobStore) write(ctx context.Context, checksum string, data ... method update (line 141) | func (qb *BlobStore) update(ctx context.Context, checksum string, data... method readSQL (line 171) | func (qb *BlobStore) readSQL(ctx context.Context, querySQL string, arg... method readFromFilesystem (line 217) | func (qb *BlobStore) readFromFilesystem(ctx context.Context, checksum ... method EntryExists (line 238) | func (qb *BlobStore) EntryExists(ctx context.Context, checksum string)... method Read (line 250) | func (qb *BlobStore) Read(ctx context.Context, checksum string) ([]byt... method readFromDatabase (line 283) | func (qb *BlobStore) readFromDatabase(ctx context.Context, checksum st... method Delete (line 303) | func (qb *BlobStore) Delete(ctx context.Context, checksum string) error { method isConstraintError (line 327) | func (qb *BlobStore) isConstraintError(err error) bool { method delete (line 335) | func (qb *BlobStore) delete(ctx context.Context, checksum string) error { function NewBlobStore (line 50) | func NewBlobStore(options BlobStoreOptions) *BlobStore { type blobRow (line 72) | type blobRow struct type ChecksumNotFoundError (line 155) | type ChecksumNotFoundError struct method Error (line 159) | func (e *ChecksumNotFoundError) Error() string { type ChecksumBlobNotExistError (line 163) | type ChecksumBlobNotExistError struct method Error (line 167) | func (e *ChecksumBlobNotExistError) Error() string { type blobJoinQueryBuilder (line 348) | type blobJoinQueryBuilder struct method GetImage (line 355) | func (qb *blobJoinQueryBuilder) GetImage(ctx context.Context, id int, ... method UpdateImage (line 368) | func (qb *blobJoinQueryBuilder) UpdateImage(ctx context.Context, id in... method getChecksum (line 398) | func (qb *blobJoinQueryBuilder) getChecksum(ctx context.Context, id in... method DestroyImage (line 419) | func (qb *blobJoinQueryBuilder) DestroyImage(ctx context.Context, id i... method HasImage (line 438) | func (qb *blobJoinQueryBuilder) HasImage(ctx context.Context, id int, ... FILE: pkg/sqlite/blob/fs.go constant blobsDirDepth (line 18) | blobsDirDepth int = 2 constant blobsDirLength (line 19) | blobsDirLength int = 2 type FSReader (line 22) | type FSReader interface type FSWriter (line 26) | type FSWriter interface type FS (line 35) | type FS interface type FilesystemReader (line 40) | type FilesystemReader struct method checksumToPath (line 45) | func (s *FilesystemReader) checksumToPath(checksum string) string { method Read (line 49) | func (s *FilesystemReader) Read(ctx context.Context, checksum string) ... type FilesystemStore (line 65) | type FilesystemStore struct method Write (line 88) | func (s *FilesystemStore) Write(ctx context.Context, checksum string, ... method Delete (line 120) | func (s *FilesystemStore) Delete(ctx context.Context, checksum string)... function NewFilesystemStore (line 70) | func NewFilesystemStore(path string, fs FS) *FilesystemStore { function NewReadonlyFilesystemStore (line 81) | func NewReadonlyFilesystemStore(path string, fs FSReader) *FilesystemRea... FILE: pkg/sqlite/blob_migrate.go method FindBlobs (line 10) | func (qb *BlobStore) FindBlobs(ctx context.Context, n uint, lastChecksum... method MigrateBlob (line 37) | func (qb *BlobStore) MigrateBlob(ctx context.Context, checksum string, d... method migrateBlobDatabase (line 58) | func (qb *BlobStore) migrateBlobDatabase(ctx context.Context, checksum s... method migrateBlobFilesystem (line 90) | func (qb *BlobStore) migrateBlobFilesystem(ctx context.Context, checksum... FILE: pkg/sqlite/blob_test.go type updateImageFunc (line 14) | type updateImageFunc type getImageFunc (line 15) | type getImageFunc function testUpdateImage (line 17) | func testUpdateImage(t *testing.T, ctx context.Context, id int, updateFn... FILE: pkg/sqlite/common.go type oCounterManager (line 11) | type oCounterManager struct method getOCounter (line 15) | func (qb *oCounterManager) getOCounter(ctx context.Context, id int) (i... method IncrementOCounter (line 32) | func (qb *oCounterManager) IncrementOCounter(ctx context.Context, id i... method DecrementOCounter (line 46) | func (qb *oCounterManager) DecrementOCounter(ctx context.Context, id i... method ResetOCounter (line 63) | func (qb *oCounterManager) ResetOCounter(ctx context.Context, id int) ... FILE: pkg/sqlite/criterion_handlers.go type criterionHandler (line 16) | type criterionHandler interface type criterionHandlerFunc (line 20) | type criterionHandlerFunc method handle (line 22) | func (h criterionHandlerFunc) handle(ctx context.Context, f *filterBui... type compoundHandler (line 26) | type compoundHandler method handle (line 28) | func (h compoundHandler) handle(ctx context.Context, f *filterBuilder) { function stringCriterionHandler (line 36) | func stringCriterionHandler(c *models.StringCriterionInput, column strin... function joinedStringCriterionHandler (line 73) | func joinedStringCriterionHandler(c *models.StringCriterionInput, column... function enumCriterionHandler (line 84) | func enumCriterionHandler(modifier models.CriterionModifier, values []st... function pathCriterionHandler (line 107) | func pathCriterionHandler(c *models.StringCriterionInput, pathColumn str... function getPathSearchClause (line 156) | func getPathSearchClause(pathColumn, basenameColumn, p string, addWildca... function getPathSearchClauseMany (line 173) | func getPathSearchClauseMany(pathColumn, basenameColumn, p string, addWi... function intCriterionHandler (line 197) | func intCriterionHandler(c *models.IntCriterionInput, column string, add... function floatCriterionHandler (line 209) | func floatCriterionHandler(c *models.FloatCriterionInput, column string,... function floatIntCriterionHandler (line 221) | func floatIntCriterionHandler(durationFilter *models.IntCriterionInput, ... function boolCriterionHandler (line 233) | func boolCriterionHandler(c *bool, column string, addJoinFn func(f *filt... type dateCriterionHandler (line 251) | type dateCriterionHandler struct method handle (line 257) | func (h *dateCriterionHandler) handle(ctx context.Context, f *filterBu... type timestampCriterionHandler (line 267) | type timestampCriterionHandler struct method handle (line 273) | func (h *timestampCriterionHandler) handle(ctx context.Context, f *fil... function yearFilterCriterionHandler (line 283) | func yearFilterCriterionHandler(year *models.IntCriterionInput, col stri... function resolutionCriterionHandler (line 292) | func resolutionCriterionHandler(resolution *models.ResolutionCriterionIn... function orientationCriterionHandler (line 318) | func orientationCriterionHandler(orientation *models.OrientationCriterio... type joinedMultiCriterionHandlerBuilder (line 353) | type joinedMultiCriterionHandlerBuilder struct method handler (line 368) | func (m *joinedMultiCriterionHandlerBuilder) handler(c *models.MultiCr... type multiCriterionHandlerBuilder (line 463) | type multiCriterionHandlerBuilder struct method handler (line 474) | func (m *multiCriterionHandlerBuilder) handler(criterion *models.Multi... type countCriterionHandlerBuilder (line 513) | type countCriterionHandlerBuilder struct method handler (line 519) | func (m *countCriterionHandlerBuilder) handler(criterion *models.IntCr... type stringListCriterionHandlerBuilder (line 530) | type stringListCriterionHandlerBuilder struct method handler (line 543) | func (m *stringListCriterionHandlerBuilder) handler(criterion *models.... function studioCriterionHandler (line 580) | func studioCriterionHandler(primaryTable string, studios *models.Hierarc... type hierarchicalMultiCriterionHandlerBuilder (line 605) | type hierarchicalMultiCriterionHandlerBuilder struct method handler (line 724) | func (m *hierarchicalMultiCriterionHandlerBuilder) handler(c *models.H... function getHierarchicalValues (line 615) | func getHierarchicalValues(ctx context.Context, values []string, table, ... function addHierarchicalConditionClauses (line 712) | func addHierarchicalConditionClauses(f *filterBuilder, criterion models.... type joinedHierarchicalMultiCriterionHandlerBuilder (line 790) | type joinedHierarchicalMultiCriterionHandlerBuilder struct method addHierarchicalConditionClauses (line 805) | func (m *joinedHierarchicalMultiCriterionHandlerBuilder) addHierarchic... method handler (line 829) | func (m *joinedHierarchicalMultiCriterionHandlerBuilder) handler(c *mo... type joinedPerformerTagsHandler (line 926) | type joinedPerformerTagsHandler struct method handle (line 934) | func (h *joinedPerformerTagsHandler) handle(ctx context.Context, f *fi... type stashIDCriterionHandler (line 1003) | type stashIDCriterionHandler struct method handle (line 1010) | func (h *stashIDCriterionHandler) handle(ctx context.Context, f *filte... type stashIDsCriterionHandler (line 1044) | type stashIDsCriterionHandler struct method handle (line 1051) | func (h *stashIDsCriterionHandler) handle(ctx context.Context, f *filt... type relatedFilterHandler (line 1091) | type relatedFilterHandler struct method handle (line 1104) | func (h *relatedFilterHandler) handle(ctx context.Context, f *filterBu... type phashDistanceCriterionHandler (line 1135) | type phashDistanceCriterionHandler struct method handle (line 1141) | func (h *phashDistanceCriterionHandler) handle(ctx context.Context, f ... FILE: pkg/sqlite/custom_fields.go constant maxCustomFieldNameLength (line 15) | maxCustomFieldNameLength = 64 type customFieldsStore (line 17) | type customFieldsStore struct method deleteForID (line 22) | func (s *customFieldsStore) deleteForID(ctx context.Context, id int) e... method SetCustomFields (line 33) | func (s *customFieldsStore) SetCustomFields(ctx context.Context, id in... method validateCustomFields (line 63) | func (s *customFieldsStore) validateCustomFields(values map[string]int... method validateCustomFieldName (line 87) | func (s *customFieldsStore) validateCustomFieldName(fieldName string) ... method sqlValueToValue (line 114) | func (s *customFieldsStore) sqlValueToValue(value interface{}) interfa... method setCustomFields (line 119) | func (s *customFieldsStore) setCustomFields(ctx context.Context, id in... method deleteCustomFields (line 153) | func (s *customFieldsStore) deleteCustomFields(ctx context.Context, id... method GetCustomFields (line 169) | func (s *customFieldsStore) GetCustomFields(ctx context.Context, id in... method GetCustomFieldsBulk (line 190) | func (s *customFieldsStore) GetCustomFieldsBulk(ctx context.Context, i... function getSQLValueFromCustomFieldInput (line 102) | func getSQLValueFromCustomFieldInput(input interface{}) (interface{}, er... type customFieldsFilterHandler (line 230) | type customFieldsFilterHandler struct method innerJoin (line 237) | func (h *customFieldsFilterHandler) innerJoin(f *filterBuilder, as str... method leftJoin (line 242) | func (h *customFieldsFilterHandler) leftJoin(f *filterBuilder, as stri... method handleCriterion (line 247) | func (h *customFieldsFilterHandler) handleCriterion(f *filterBuilder, ... method handle (line 339) | func (h *customFieldsFilterHandler) handle(ctx context.Context, f *fil... FILE: pkg/sqlite/custom_fields_test.go type customFieldsReaderWriter (line 14) | type customFieldsReaderWriter interface function testSetCustomFields (line 19) | func testSetCustomFields(t *testing.T, namePrefix string, store customFi... function TestPerformerSetCustomFields (line 220) | func TestPerformerSetCustomFields(t *testing.T) { function TestTagSetCustomFields (line 226) | func TestTagSetCustomFields(t *testing.T) { function TestStudioSetCustomFields (line 232) | func TestStudioSetCustomFields(t *testing.T) { function TestSceneSetCustomFields (line 238) | func TestSceneSetCustomFields(t *testing.T) { function TestGallerySetCustomFields (line 244) | func TestGallerySetCustomFields(t *testing.T) { function TestImageSetCustomFields (line 250) | func TestImageSetCustomFields(t *testing.T) { function TestGroupSetCustomFields (line 256) | func TestGroupSetCustomFields(t *testing.T) { FILE: pkg/sqlite/custom_migrations.go type customMigrationFunc (line 9) | type customMigrationFunc function RegisterPostMigration (line 11) | func RegisterPostMigration(schemaVersion uint, fn customMigrationFunc) { function RegisterPreMigration (line 17) | func RegisterPreMigration(schemaVersion uint, fn customMigrationFunc) { FILE: pkg/sqlite/database.go constant maxWriteConnections (line 20) | maxWriteConnections = 1 constant maxReadConnections (line 27) | maxReadConnections = 10 constant dbConnTimeout (line 31) | dbConnTimeout = 30 * time.Second constant cacheSizeEnv (line 34) | cacheSizeEnv = "STASH_SQLITE_CACHE_SIZE" type MigrationNeededError (line 50) | type MigrationNeededError struct method Error (line 55) | func (e *MigrationNeededError) Error() string { type MismatchedSchemaVersionError (line 59) | type MismatchedSchemaVersionError struct method Error (line 64) | func (e *MismatchedSchemaVersionError) Error() string { type storeRepository (line 68) | type storeRepository struct type Database (line 84) | type Database struct method SetBlobStoreOptions (line 130) | func (db *Database) SetBlobStoreOptions(options BlobStoreOptions) { method Ready (line 135) | func (db *Database) Ready() error { method Open (line 147) | func (db *Database) Open(dbPath string) error { method lock (line 200) | func (db *Database) lock() { method unlock (line 205) | func (db *Database) unlock() { method Close (line 215) | func (db *Database) Close() error { method open (line 237) | func (db *Database) open(disableForeignKeys bool, writable bool) (*sql... method initialise (line 264) | func (db *Database) initialise() error { method openReadDB (line 275) | func (db *Database) openReadDB() error { method openWriteDB (line 288) | func (db *Database) openWriteDB() error { method Remove (line 301) | func (db *Database) Remove() error { method Reset (line 328) | func (db *Database) Reset() error { method Backup (line 343) | func (db *Database) Backup(backupPath string) (err error) { method Anonymise (line 380) | func (db *Database) Anonymise(outPath string) error { method RestoreFromBackup (line 390) | func (db *Database) RestoreFromBackup(backupPath string) error { method AppSchemaVersion (line 395) | func (db *Database) AppSchemaVersion() uint { method DatabasePath (line 399) | func (db *Database) DatabasePath() string { method DatabaseBackupPath (line 403) | func (db *Database) DatabaseBackupPath(backupDirectoryPath string) str... method AnonymousDatabasePath (line 413) | func (db *Database) AnonymousDatabasePath(backupDirectoryPath string) ... method Version (line 423) | func (db *Database) Version() uint { method Optimise (line 427) | func (db *Database) Optimise(ctx context.Context) error { method Vacuum (line 444) | func (db *Database) Vacuum(ctx context.Context) error { method Analyze (line 450) | func (db *Database) Analyze(ctx context.Context) error { method ExecSQL (line 467) | func (db *Database) ExecSQL(ctx context.Context, query string, args []... method QuerySQL (line 490) | func (db *Database) QuerySQL(ctx context.Context, query string, args [... function NewDatabase (line 96) | func NewDatabase() *Database { function analyze (line 455) | func analyze(ctx context.Context, db *sqlx.DB) error { function flushWAL (line 462) | func flushWAL(ctx context.Context, db *sqlx.DB) error { FILE: pkg/sqlite/date.go constant sqliteDateLayout (line 11) | sqliteDateLayout = "2006-01-02" type Date (line 14) | type Date struct method Scan (line 19) | func (d *Date) Scan(value interface{}) error { method Value (line 25) | func (d Date) Value() (driver.Value, error) { type NullDate (line 30) | type NullDate struct method Scan (line 36) | func (d *NullDate) Scan(value interface{}) error { method Value (line 50) | func (d NullDate) Value() (driver.Value, error) { method DatePtr (line 58) | func (d *NullDate) DatePtr(precision null.Int) *models.Date { function NullDateFromDatePtr (line 66) | func NullDateFromDatePtr(d *models.Date) NullDate { function datePrecisionFromDatePtr (line 73) | func datePrecisionFromDatePtr(d *models.Date) null.Int { FILE: pkg/sqlite/driver.go constant sqlite3Driver (line 12) | sqlite3Driver = "sqlite3ex" function init (line 14) | func init() { type CustomSQLiteDriver (line 19) | type CustomSQLiteDriver struct method Open (line 25) | func (d *CustomSQLiteDriver) Open(dsn string) (driver.Conn, error) { type CustomSQLiteConn (line 21) | type CustomSQLiteConn struct method Close (line 66) | func (c *CustomSQLiteConn) Close() error { FILE: pkg/sqlite/file.go constant fileTable (line 21) | fileTable = "files" constant videoFileTable (line 22) | videoFileTable = "video_files" constant imageFileTable (line 23) | imageFileTable = "image_files" constant fileIDColumn (line 24) | fileIDColumn = "file_id" constant videoCaptionsTable (line 26) | videoCaptionsTable = "video_captions" constant captionCodeColumn (line 27) | captionCodeColumn = "language_code" constant captionFilenameColumn (line 28) | captionFilenameColumn = "filename" constant captionTypeColumn (line 29) | captionTypeColumn = "caption_type" type basicFileRow (line 32) | type basicFileRow struct method fromBasicFile (line 43) | func (r *basicFileRow) fromBasicFile(o models.BaseFile) { type videoFileRow (line 54) | type videoFileRow struct method fromVideoFile (line 68) | func (f *videoFileRow) fromVideoFile(ff models.VideoFile) { type imageFileRow (line 82) | type imageFileRow struct method fromImageFile (line 89) | func (f *imageFileRow) fromImageFile(ff models.ImageFile) { type videoFileQueryRow (line 98) | type videoFileQueryRow struct method resolve (line 112) | func (f *videoFileQueryRow) resolve() *models.VideoFile { function videoFileQueryColumns (line 127) | func videoFileQueryColumns() []interface{} { type imageFileQueryRow (line 146) | type imageFileQueryRow struct method columns (line 152) | func (imageFileQueryRow) columns(table *table) []interface{} { method resolve (line 161) | func (f *imageFileQueryRow) resolve() *models.ImageFile { type fileQueryRow (line 169) | type fileQueryRow struct method resolve (line 189) | func (r *fileQueryRow) resolve() models.File { method appendRelationships (line 249) | func (r *fileQueryRow) appendRelationships(i *models.BaseFile) { function appendFingerprintsUnique (line 232) | func appendFingerprintsUnique(vs []models.Fingerprint, v ...models.Finge... type fileQueryRows (line 255) | type fileQueryRows method resolve (line 257) | func (r fileQueryRows) resolve() []models.File { type fileRepositoryType (line 278) | type fileRepositoryType struct type FileStore (line 315) | type FileStore struct method table (line 332) | func (qb *FileStore) table() exp.IdentifierExpression { method Create (line 336) | func (qb *FileStore) Create(ctx context.Context, f models.File) error { method Update (line 374) | func (qb *FileStore) Update(ctx context.Context, f models.File) error { method ModifyFingerprints (line 404) | func (qb *FileStore) ModifyFingerprints(ctx context.Context, fileID mo... method DestroyFingerprints (line 408) | func (qb *FileStore) DestroyFingerprints(ctx context.Context, fileID m... method Destroy (line 412) | func (qb *FileStore) Destroy(ctx context.Context, id models.FileID) er... method createVideoFile (line 416) | func (qb *FileStore) createVideoFile(ctx context.Context, id models.Fi... method updateOrCreateVideoFile (line 427) | func (qb *FileStore) updateOrCreateVideoFile(ctx context.Context, id m... method createImageFile (line 447) | func (qb *FileStore) createImageFile(ctx context.Context, id models.Fi... method updateOrCreateImageFile (line 458) | func (qb *FileStore) updateOrCreateImageFile(ctx context.Context, id m... method selectDataset (line 478) | func (qb *FileStore) selectDataset() *goqu.SelectDataset { method countDataset (line 533) | func (qb *FileStore) countDataset() *goqu.SelectDataset { method get (line 567) | func (qb *FileStore) get(ctx context.Context, q *goqu.SelectDataset) (... method getMany (line 580) | func (qb *FileStore) getMany(ctx context.Context, q *goqu.SelectDatase... method Find (line 598) | func (qb *FileStore) Find(ctx context.Context, ids ...models.FileID) (... method find (line 616) | func (qb *FileStore) find(ctx context.Context, id models.FileID) (mode... method FindByPath (line 628) | func (qb *FileStore) FindByPath(ctx context.Context, p string, caseSen... method FindAllByPath (line 645) | func (qb *FileStore) FindAllByPath(ctx context.Context, p string, case... method allInPaths (line 680) | func (qb *FileStore) allInPaths(q *goqu.SelectDataset, p []string) *go... method FindAllInPaths (line 698) | func (qb *FileStore) FindAllInPaths(ctx context.Context, p []string, i... method CountAllInPaths (line 729) | func (qb *FileStore) CountAllInPaths(ctx context.Context, p []string) ... method findBySubquery (line 736) | func (qb *FileStore) findBySubquery(ctx context.Context, sq *goqu.Sele... method FindByFingerprint (line 748) | func (qb *FileStore) FindByFingerprint(ctx context.Context, fp models.... method FindByZipFileID (line 761) | func (qb *FileStore) FindByZipFileID(ctx context.Context, zipFileID mo... method FindByFileInfo (line 772) | func (qb *FileStore) FindByFileInfo(ctx context.Context, info fs.FileI... method CountByFolderID (line 786) | func (qb *FileStore) CountByFolderID(ctx context.Context, folderID mod... method IsPrimary (line 796) | func (qb *FileStore) IsPrimary(ctx context.Context, fileID models.File... method validateFilter (line 830) | func (qb *FileStore) validateFilter(fileFilter *models.FileFilterType)... method makeFilter (line 861) | func (qb *FileStore) makeFilter(ctx context.Context, fileFilter *model... method Query (line 881) | func (qb *FileStore) Query(ctx context.Context, options models.FileQue... method queryGroupedFields (line 935) | func (qb *FileStore) queryGroupedFields(ctx context.Context, options m... method setQuerySort (line 1003) | func (qb *FileStore) setQuerySort(query *queryBuilder, findFilter *mod... method captionRepository (line 1026) | func (qb *FileStore) captionRepository() *captionRepository { method GetCaptions (line 1035) | func (qb *FileStore) GetCaptions(ctx context.Context, fileID models.Fi... method UpdateCaptions (line 1039) | func (qb *FileStore) UpdateCaptions(ctx context.Context, fileID models... function NewFileStore (line 321) | func NewFileStore() *FileStore { FILE: pkg/sqlite/file_filter.go type fileFilterHandler (line 11) | type fileFilterHandler struct method validate (line 17) | func (qb *fileFilterHandler) validate() error { method handle (line 41) | func (qb *fileFilterHandler) handle(ctx context.Context, f *filterBuil... method criterionHandler (line 61) | func (qb *fileFilterHandler) criterionHandler() criterionHandler { method zipFileCriterionHandler (line 116) | func (qb *fileFilterHandler) zipFileCriterionHandler(criterion *models... method parentFolderCriterionHandler (line 153) | func (qb *fileFilterHandler) parentFolderCriterionHandler(folder *mode... method sceneCountCriterionHandler (line 178) | func (qb *fileFilterHandler) sceneCountCriterionHandler(c *models.IntC... method imageCountCriterionHandler (line 188) | func (qb *fileFilterHandler) imageCountCriterionHandler(c *models.IntC... method galleryCountCriterionHandler (line 198) | func (qb *fileFilterHandler) galleryCountCriterionHandler(c *models.In... method duplicatedCriterionHandler (line 208) | func (qb *fileFilterHandler) duplicatedCriterionHandler(duplicatedFilt... method hashesCriterionHandler (line 234) | func (qb *fileFilterHandler) hashesCriterionHandler(hashes []*models.F... type videoFileFilterHandler (line 272) | type videoFileFilterHandler struct method handle (line 276) | func (qb *videoFileFilterHandler) handle(ctx context.Context, f *filte... method criterionHandler (line 284) | func (qb *videoFileFilterHandler) criterionHandler() criterionHandler { method addVideoFilesTable (line 303) | func (qb *videoFileFilterHandler) addVideoFilesTable(f *filterBuilder) { method codecCriterionHandler (line 307) | func (qb *videoFileFilterHandler) codecCriterionHandler(codec *models.... method captionCriterionHandler (line 319) | func (qb *videoFileFilterHandler) captionCriterionHandler(captions *mo... type imageFileFilterHandler (line 343) | type imageFileFilterHandler struct method handle (line 347) | func (qb *imageFileFilterHandler) handle(ctx context.Context, f *filte... method criterionHandler (line 355) | func (qb *imageFileFilterHandler) criterionHandler() criterionHandler { method addImageFilesTable (line 364) | func (qb *imageFileFilterHandler) addImageFilesTable(f *filterBuilder) { FILE: pkg/sqlite/file_filter_test.go function TestFileQuery (line 16) | func TestFileQuery(t *testing.T) { FILE: pkg/sqlite/file_test.go function getFilePath (line 16) | func getFilePath(folderIdx int, basename string) string { function makeZipFileWithID (line 20) | func makeZipFileWithID(index int) models.File { function Test_fileFileStore_Create (line 30) | func Test_fileFileStore_Create(t *testing.T) { function Test_fileStore_Update (line 247) | func Test_fileStore_Update(t *testing.T) { function makeFileWithID (line 453) | func makeFileWithID(index int) models.File { function Test_fileStore_Find (line 461) | func Test_fileStore_Find(t *testing.T) { function Test_FileStore_FindByPath (line 519) | func Test_FileStore_FindByPath(t *testing.T) { function TestFileStore_FindByFingerprint (line 565) | func TestFileStore_FindByFingerprint(t *testing.T) { function TestFileStore_IsPrimary (line 617) | func TestFileStore_IsPrimary(t *testing.T) { FILE: pkg/sqlite/filter.go function illegalFilterCombination (line 12) | func illegalFilterCombination(type1, type2 string) error { function validateFilterCombination (line 16) | func validateFilterCombination[T any](sf models.OperatorFilter[T]) error { function handleSubFilter (line 39) | func handleSubFilter[T any](ctx context.Context, handler criterionHandle... type sqlClause (line 54) | type sqlClause struct method not (line 59) | func (c sqlClause) not() sqlClause { function makeClause (line 66) | func makeClause(sql string, args ...interface{}) sqlClause { function joinClauses (line 73) | func joinClauses(joinType string, clauses ...sqlClause) sqlClause { function orClauses (line 85) | func orClauses(clauses ...sqlClause) sqlClause { function andClauses (line 89) | func andClauses(clauses ...sqlClause) sqlClause { type join (line 93) | type join struct method equals (line 105) | func (j join) equals(o join) bool { method alias (line 110) | func (j join) alias() string { method toSQL (line 118) | func (j join) toSQL() string { type joins (line 131) | type joins method addUnique (line 135) | func (j *joins) addUnique(newJoin join) bool { method add (line 154) | func (j *joins) add(newJoins ...join) { method toSQL (line 161) | func (j *joins) toSQL(includeSortPagination bool) string { type filterBuilder (line 178) | type filterBuilder struct method empty (line 191) | func (f *filterBuilder) empty() bool { method and (line 212) | func (f *filterBuilder) and(a *filterBuilder) { method or (line 224) | func (f *filterBuilder) or(o *filterBuilder) { method not (line 236) | func (f *filterBuilder) not(n *filterBuilder) { method addLeftJoin (line 251) | func (f *filterBuilder) addLeftJoin(table, as, onClause string, args .... method addInnerJoin (line 268) | func (f *filterBuilder) addInnerJoin(table, as, onClause string, args ... method addWhere (line 282) | func (f *filterBuilder) addWhere(sql string, args ...interface{}) { method addHaving (line 291) | func (f *filterBuilder) addHaving(sql string, args ...interface{}) { method addWith (line 299) | func (f *filterBuilder) addWith(sql string, args ...interface{}) { method addRecursiveWith (line 310) | func (f *filterBuilder) addRecursiveWith(sql string, args ...interface... method getSubFilterClause (line 319) | func (f *filterBuilder) getSubFilterClause(clause, subFilterClause str... method generateWhereClauses (line 339) | func (f *filterBuilder) generateWhereClauses() (clause string, args []... method generateHavingClauses (line 358) | func (f *filterBuilder) generateHavingClauses() (string, []interface{}) { method generateWithClauses (line 374) | func (f *filterBuilder) generateWithClauses() (string, []interface{}) { method getAllJoins (line 391) | func (f *filterBuilder) getAllJoins() joins { method getError (line 406) | func (f *filterBuilder) getError() error { method handleCriterion (line 420) | func (f *filterBuilder) handleCriterion(ctx context.Context, handler c... method setError (line 424) | func (f *filterBuilder) setError(e error) { method andClauses (line 430) | func (f *filterBuilder) andClauses(input []sqlClause) (string, []inter... function filterBuilderFromHandler (line 195) | func filterBuilderFromHandler(ctx context.Context, handler criterionHand... FILE: pkg/sqlite/filter_hierarchical.go type hierarchicalRelationshipHandler (line 12) | type hierarchicalRelationshipHandler struct method validateModifier (line 20) | func (h hierarchicalRelationshipHandler) validateModifier(m models.Cri... method handleNullNotNull (line 30) | func (h hierarchicalRelationshipHandler) handleNullNotNull(f *filterBu... method parentsAlias (line 51) | func (h hierarchicalRelationshipHandler) parentsAlias() string { method childrenAlias (line 55) | func (h hierarchicalRelationshipHandler) childrenAlias() string { method valueQuery (line 59) | func (h hierarchicalRelationshipHandler) valueQuery(value []string, de... method handleValues (line 90) | func (h hierarchicalRelationshipHandler) handleValues(f *filterBuilder... method handleValuesSimple (line 118) | func (h hierarchicalRelationshipHandler) handleValuesSimple(f *filterB... method hierarchicalCriterionHandler (line 135) | func (h hierarchicalRelationshipHandler) hierarchicalCriterionHandler(... method ParentsCriterionHandler (line 183) | func (h hierarchicalRelationshipHandler) ParentsCriterionHandler(crite... method ChildrenCriterionHandler (line 188) | func (h hierarchicalRelationshipHandler) ChildrenCriterionHandler(crit... method countCriterionHandler (line 193) | func (h hierarchicalRelationshipHandler) countCriterionHandler(c *mode... method ParentCountCriterionHandler (line 214) | func (h hierarchicalRelationshipHandler) ParentCountCriterionHandler(p... method ChildCountCriterionHandler (line 219) | func (h hierarchicalRelationshipHandler) ChildCountCriterionHandler(ch... FILE: pkg/sqlite/filter_internal_test.go function TestJoinsAddJoin (line 15) | func TestJoinsAddJoin(t *testing.T) { function TestFilterBuilderAnd (line 40) | func TestFilterBuilderAnd(t *testing.T) { function TestFilterBuilderOr (line 74) | func TestFilterBuilderOr(t *testing.T) { function TestFilterBuilderNot (line 108) | func TestFilterBuilderNot(t *testing.T) { function TestAddJoin (line 143) | func TestAddJoin(t *testing.T) { function TestAddWhere (line 192) | func TestAddWhere(t *testing.T) { function TestAddHaving (line 217) | func TestAddHaving(t *testing.T) { function TestGenerateWhereClauses (line 242) | func TestGenerateWhereClauses(t *testing.T) { function TestGenerateHavingClauses (line 338) | func TestGenerateHavingClauses(t *testing.T) { function TestGetAllJoins (line 399) | func TestGetAllJoins(t *testing.T) { function TestGetError (line 435) | func TestGetError(t *testing.T) { function TestStringCriterionHandlerIncludes (line 460) | func TestStringCriterionHandlerIncludes(t *testing.T) { function TestStringCriterionHandlerExcludes (line 491) | func TestStringCriterionHandlerExcludes(t *testing.T) { function TestStringCriterionHandlerEquals (line 522) | func TestStringCriterionHandlerEquals(t *testing.T) { function TestStringCriterionHandlerNotEquals (line 540) | func TestStringCriterionHandlerNotEquals(t *testing.T) { function TestStringCriterionHandlerMatchesRegex (line 558) | func TestStringCriterionHandlerMatchesRegex(t *testing.T) { function TestStringCriterionHandlerNotMatchesRegex (line 586) | func TestStringCriterionHandlerNotMatchesRegex(t *testing.T) { function TestStringCriterionHandlerIsNull (line 614) | func TestStringCriterionHandlerIsNull(t *testing.T) { function TestStringCriterionHandlerNotNull (line 629) | func TestStringCriterionHandlerNotNull(t *testing.T) { FILE: pkg/sqlite/fingerprint.go constant fingerprintTable (line 14) | fingerprintTable = "files_fingerprints" type fingerprintQueryRow (line 17) | type fingerprintQueryRow struct method valid (line 22) | func (r fingerprintQueryRow) valid() bool { method resolve (line 26) | func (r *fingerprintQueryRow) resolve() models.Fingerprint { type fingerprintQueryBuilder (line 33) | type fingerprintQueryBuilder struct method insert (line 48) | func (qb *fingerprintQueryBuilder) insert(ctx context.Context, fileID ... method insertJoins (line 61) | func (qb *fingerprintQueryBuilder) insertJoins(ctx context.Context, fi... method upsertJoins (line 71) | func (qb *fingerprintQueryBuilder) upsertJoins(ctx context.Context, fi... method replaceJoins (line 90) | func (qb *fingerprintQueryBuilder) replaceJoins(ctx context.Context, f... method destroyJoins (line 98) | func (qb *fingerprintQueryBuilder) destroyJoins(ctx context.Context, f... method table (line 113) | func (qb *fingerprintQueryBuilder) table() exp.IdentifierExpression { FILE: pkg/sqlite/folder.go constant folderTable (line 18) | folderTable = "folders" constant folderIDColumn (line 19) | folderIDColumn = "folder_id" type folderRow (line 21) | type folderRow struct method fromFolder (line 32) | func (r *folderRow) fromFolder(o models.Folder) { type folderQueryRow (line 44) | type folderQueryRow struct method resolve (line 52) | func (r *folderQueryRow) resolve() *models.Folder { type folderQueryRows (line 77) | type folderQueryRows method resolve (line 79) | func (r folderQueryRows) resolve() []*models.Folder { type folderRepositoryType (line 90) | type folderRepositoryType struct type FolderStore (line 109) | type FolderStore struct method Create (line 126) | func (qb *FolderStore) Create(ctx context.Context, f *models.Folder) e... method Update (line 141) | func (qb *FolderStore) Update(ctx context.Context, updatedObject *mode... method Destroy (line 152) | func (qb *FolderStore) Destroy(ctx context.Context, id models.FolderID... method table (line 156) | func (qb *FolderStore) table() exp.IdentifierExpression { method selectDataset (line 160) | func (qb *FolderStore) selectDataset() *goqu.SelectDataset { method countDataset (line 192) | func (qb *FolderStore) countDataset() *goqu.SelectDataset { method get (line 210) | func (qb *FolderStore) get(ctx context.Context, q *goqu.SelectDataset)... method getMany (line 223) | func (qb *FolderStore) getMany(ctx context.Context, q *goqu.SelectData... method Find (line 241) | func (qb *FolderStore) Find(ctx context.Context, id models.FolderID) (... method FindByIDs (line 255) | func (qb *FolderStore) FindByIDs(ctx context.Context, ids []models.Fol... method FindMany (line 276) | func (qb *FolderStore) FindMany(ctx context.Context, ids []models.Fold... method FindByPath (line 298) | func (qb *FolderStore) FindByPath(ctx context.Context, p string, caseS... method FindByParentFolderID (line 317) | func (qb *FolderStore) FindByParentFolderID(ctx context.Context, paren... method GetManyParentFolderIDs (line 328) | func (qb *FolderStore) GetManyParentFolderIDs(ctx context.Context, fol... method allInPaths (line 412) | func (qb *FolderStore) allInPaths(q *goqu.SelectDataset, p []string) *... method FindAllInPaths (line 430) | func (qb *FolderStore) FindAllInPaths(ctx context.Context, p []string,... method CountAllInPaths (line 454) | func (qb *FolderStore) CountAllInPaths(ctx context.Context, p []string... method FindByZipFileID (line 473) | func (qb *FolderStore) FindByZipFileID(ctx context.Context, zipFileID ... method validateFilter (line 483) | func (qb *FolderStore) validateFilter(fileFilter *models.FolderFilterT... method makeFilter (line 514) | func (qb *FolderStore) makeFilter(ctx context.Context, folderFilter *m... method Query (line 534) | func (qb *FolderStore) Query(ctx context.Context, options models.Folde... method queryGroupedFields (line 586) | func (qb *FolderStore) queryGroupedFields(ctx context.Context, options... method setQuerySort (line 626) | func (qb *FolderStore) setQuerySort(query *queryBuilder, findFilter *m... function NewFolderStore (line 115) | func NewFolderStore() *FolderStore { FILE: pkg/sqlite/folder_filter.go type folderFilterHandler (line 10) | type folderFilterHandler struct method validate (line 16) | func (qb *folderFilterHandler) validate() error { method handle (line 40) | func (qb *folderFilterHandler) handle(ctx context.Context, f *filterBu... method criterionHandler (line 60) | func (qb *folderFilterHandler) criterionHandler() criterionHandler { method zipFileCriterionHandler (line 90) | func (qb *folderFilterHandler) zipFileCriterionHandler(criterion *mode... method parentFolderCriterionHandler (line 127) | func (qb *folderFilterHandler) parentFolderCriterionHandler(folder *mo... method galleryCountCriterionHandler (line 152) | func (qb *folderFilterHandler) galleryCountCriterionHandler(galleryCou... FILE: pkg/sqlite/folder_filter_test.go function TestFolderQuery (line 15) | func TestFolderQuery(t *testing.T) { FILE: pkg/sqlite/folder_test.go function Test_FolderStore_Create (line 21) | func Test_FolderStore_Create(t *testing.T) { function Test_FolderStore_Update (line 102) | func Test_FolderStore_Update(t *testing.T) { function makeFolderWithID (line 193) | func makeFolderWithID(index int) *models.Folder { function Test_FolderStore_FindByPath (line 200) | func Test_FolderStore_FindByPath(t *testing.T) { function Test_FolderStore_GetManyParentFolderIDs (line 241) | func Test_FolderStore_GetManyParentFolderIDs(t *testing.T) { FILE: pkg/sqlite/functions.go function durationToTinyIntFn (line 9) | func durationToTinyIntFn(str string) (int64, error) { function basenameFn (line 35) | func basenameFn(str string) (string, error) { FILE: pkg/sqlite/gallery.go constant galleryTable (line 20) | galleryTable = "galleries" constant galleriesFilesTable (line 22) | galleriesFilesTable = "galleries_files" constant performersGalleriesTable (line 23) | performersGalleriesTable = "performers_galleries" constant galleriesTagsTable (line 24) | galleriesTagsTable = "galleries_tags" constant galleriesImagesTable (line 25) | galleriesImagesTable = "galleries_images" constant galleriesScenesTable (line 26) | galleriesScenesTable = "scenes_galleries" constant galleryIDColumn (line 27) | galleryIDColumn = "gallery_id" constant galleriesURLsTable (line 28) | galleriesURLsTable = "gallery_urls" constant galleriesURLColumn (line 29) | galleriesURLColumn = "url" type galleryRow (line 32) | type galleryRow struct method fromGallery (line 49) | func (r *galleryRow) fromGallery(o models.Gallery) { type galleryQueryRow (line 65) | type galleryQueryRow struct method resolve (line 74) | func (r *galleryQueryRow) resolve() *models.Gallery { type galleryRowRecord (line 100) | type galleryRowRecord struct method fromPartial (line 104) | func (r *galleryRowRecord) fromPartial(o models.GalleryPartial) { type galleryRepositoryType (line 117) | type galleryRepositoryType struct method addGalleriesFilesTable (line 126) | func (r *galleryRepositoryType) addGalleriesFilesTable(f *filterBuilde... method addFilesTable (line 130) | func (r *galleryRepositoryType) addFilesTable(f *filterBuilder) { method addFoldersTable (line 135) | func (r *galleryRepositoryType) addFoldersTable(f *filterBuilder) { type GalleryStore (line 185) | type GalleryStore struct method table (line 206) | func (qb *GalleryStore) table() exp.IdentifierExpression { method selectDataset (line 210) | func (qb *GalleryStore) selectDataset() *goqu.SelectDataset { method Create (line 240) | func (qb *GalleryStore) Create(ctx context.Context, newObject *models.... method Update (line 293) | func (qb *GalleryStore) Update(ctx context.Context, updatedObject *mod... method UpdatePartial (line 340) | func (qb *GalleryStore) UpdatePartial(ctx context.Context, id int, par... method Destroy (line 389) | func (qb *GalleryStore) Destroy(ctx context.Context, id int) error { method GetFiles (line 393) | func (qb *GalleryStore) GetFiles(ctx context.Context, id int) ([]model... method GetManyFileIDs (line 411) | func (qb *GalleryStore) GetManyFileIDs(ctx context.Context, ids []int)... method Find (line 417) | func (qb *GalleryStore) Find(ctx context.Context, id int) (*models.Gal... method FindMany (line 425) | func (qb *GalleryStore) FindMany(ctx context.Context, ids []int) ([]*m... method find (line 455) | func (qb *GalleryStore) find(ctx context.Context, id int) (*models.Gal... method findBySubquery (line 466) | func (qb *GalleryStore) findBySubquery(ctx context.Context, sq *goqu.S... method get (line 479) | func (qb *GalleryStore) get(ctx context.Context, q *goqu.SelectDataset... method getMany (line 492) | func (qb *GalleryStore) getMany(ctx context.Context, q *goqu.SelectDat... method FindByFileID (line 518) | func (qb *GalleryStore) FindByFileID(ctx context.Context, fileID model... method CountByFileID (line 531) | func (qb *GalleryStore) CountByFileID(ctx context.Context, fileID mode... method FindByFingerprints (line 538) | func (qb *GalleryStore) FindByFingerprints(ctx context.Context, fp []m... method FindByChecksum (line 565) | func (qb *GalleryStore) FindByChecksum(ctx context.Context, checksum s... method FindByChecksums (line 574) | func (qb *GalleryStore) FindByChecksums(ctx context.Context, checksums... method FindByPath (line 586) | func (qb *GalleryStore) FindByPath(ctx context.Context, p string) ([]*... method FindByFolderID (line 625) | func (qb *GalleryStore) FindByFolderID(ctx context.Context, folderID m... method FindBySceneID (line 640) | func (qb *GalleryStore) FindBySceneID(ctx context.Context, sceneID int... method FindByImageID (line 653) | func (qb *GalleryStore) FindByImageID(ctx context.Context, imageID int... method CountByImageID (line 666) | func (qb *GalleryStore) CountByImageID(ctx context.Context, imageID in... method FindUserGalleryByTitle (line 673) | func (qb *GalleryStore) FindUserGalleryByTitle(ctx context.Context, ti... method Count (line 693) | func (qb *GalleryStore) Count(ctx context.Context) (int, error) { method All (line 698) | func (qb *GalleryStore) All(ctx context.Context) ([]*models.Gallery, e... method makeQuery (line 702) | func (qb *GalleryStore) makeQuery(ctx context.Context, galleryFilter *... method Query (line 764) | func (qb *GalleryStore) Query(ctx context.Context, galleryFilter *mode... method QueryCount (line 783) | func (qb *GalleryStore) QueryCount(ctx context.Context, galleryFilter ... method setGallerySort (line 808) | func (qb *GalleryStore) setGallerySort(query *queryBuilder, findFilter... method GetURLs (line 884) | func (qb *GalleryStore) GetURLs(ctx context.Context, galleryID int) ([... method AddFileID (line 888) | func (qb *GalleryStore) AddFileID(ctx context.Context, id int, fileID ... method GetPerformerIDs (line 893) | func (qb *GalleryStore) GetPerformerIDs(ctx context.Context, id int) (... method GetTagIDs (line 897) | func (qb *GalleryStore) GetTagIDs(ctx context.Context, id int) ([]int,... method GetImageIDs (line 901) | func (qb *GalleryStore) GetImageIDs(ctx context.Context, galleryID int... method AddImages (line 905) | func (qb *GalleryStore) AddImages(ctx context.Context, galleryID int, ... method RemoveImages (line 909) | func (qb *GalleryStore) RemoveImages(ctx context.Context, galleryID in... method UpdateImages (line 913) | func (qb *GalleryStore) UpdateImages(ctx context.Context, galleryID in... method SetCover (line 918) | func (qb *GalleryStore) SetCover(ctx context.Context, galleryID int, c... method ResetCover (line 922) | func (qb *GalleryStore) ResetCover(ctx context.Context, galleryID int)... method GetSceneIDs (line 926) | func (qb *GalleryStore) GetSceneIDs(ctx context.Context, id int) ([]in... method AddSceneIDs (line 930) | func (qb *GalleryStore) AddSceneIDs(ctx context.Context, galleryID int... function NewGalleryStore (line 194) | func NewGalleryStore(fileStore *FileStore, folderStore *FolderStore) *Ga... FILE: pkg/sqlite/gallery_chapter.go constant galleriesChaptersTable (line 18) | galleriesChaptersTable = "galleries_chapters" type galleryChapterRow (line 21) | type galleryChapterRow struct method fromGalleryChapter (line 30) | func (r *galleryChapterRow) fromGalleryChapter(o models.GalleryChapter) { method resolve (line 39) | func (r *galleryChapterRow) resolve() *models.GalleryChapter { type galleryChapterRowRecord (line 52) | type galleryChapterRowRecord struct method fromPartial (line 56) | func (r *galleryChapterRowRecord) fromPartial(o models.GalleryChapterP... type GalleryChapterStore (line 69) | type GalleryChapterStore struct method table (line 85) | func (qb *GalleryChapterStore) table() exp.IdentifierExpression { method selectDataset (line 89) | func (qb *GalleryChapterStore) selectDataset() *goqu.SelectDataset { method Create (line 93) | func (qb *GalleryChapterStore) Create(ctx context.Context, newObject *... method Update (line 112) | func (qb *GalleryChapterStore) Update(ctx context.Context, updatedObje... method UpdatePartial (line 123) | func (qb *GalleryChapterStore) UpdatePartial(ctx context.Context, id i... method Destroy (line 141) | func (qb *GalleryChapterStore) Destroy(ctx context.Context, id int) er... method Find (line 146) | func (qb *GalleryChapterStore) Find(ctx context.Context, id int) (*mod... method FindMany (line 154) | func (qb *GalleryChapterStore) FindMany(ctx context.Context, ids []int... method find (line 179) | func (qb *GalleryChapterStore) find(ctx context.Context, id int) (*mod... method get (line 191) | func (qb *GalleryChapterStore) get(ctx context.Context, q *goqu.Select... method getMany (line 204) | func (qb *GalleryChapterStore) getMany(ctx context.Context, q *goqu.Se... method FindByGalleryID (line 224) | func (qb *GalleryChapterStore) FindByGalleryID(ctx context.Context, ga... method queryGalleryChapters (line 235) | func (qb *GalleryChapterStore) queryGalleryChapters(ctx context.Contex... function NewGalleryChapterStore (line 75) | func NewGalleryChapterStore() *GalleryChapterStore { FILE: pkg/sqlite/gallery_chapter_test.go function TestChapterFindByGalleryID (line 13) | func TestChapterFindByGalleryID(t *testing.T) { FILE: pkg/sqlite/gallery_filter.go type galleryFilterHandler (line 12) | type galleryFilterHandler struct method validate (line 16) | func (qb *galleryFilterHandler) validate() error { method handle (line 36) | func (qb *galleryFilterHandler) handle(ctx context.Context, f *filterB... method criterionHandler (line 56) | func (qb *galleryFilterHandler) criterionHandler() criterionHandler { method urlsCriterionHandler (line 190) | func (qb *galleryFilterHandler) urlsCriterionHandler(url *models.Strin... method getMultiCriterionHandlerBuilder (line 204) | func (qb *galleryFilterHandler) getMultiCriterionHandlerBuilder(foreig... method pathCriterionHandler (line 215) | func (qb *galleryFilterHandler) pathCriterionHandler(c *models.StringC... method parentFolderCriterionHandler (line 282) | func (qb *galleryFilterHandler) parentFolderCriterionHandler(folder *m... method fileCountCriterionHandler (line 341) | func (qb *galleryFilterHandler) fileCountCriterionHandler(fileCount *m... method missingCriterionHandler (line 351) | func (qb *galleryFilterHandler) missingCriterionHandler(isMissing *str... method tagsCriterionHandler (line 387) | func (qb *galleryFilterHandler) tagsCriterionHandler(tags *models.Hier... method tagCountCriterionHandler (line 402) | func (qb *galleryFilterHandler) tagCountCriterionHandler(tagCount *mod... method scenesCriterionHandler (line 412) | func (qb *galleryFilterHandler) scenesCriterionHandler(scenes *models.... method performersCriterionHandler (line 421) | func (qb *galleryFilterHandler) performersCriterionHandler(performers ... method performerCountCriterionHandler (line 437) | func (qb *galleryFilterHandler) performerCountCriterionHandler(perform... method imageCountCriterionHandler (line 447) | func (qb *galleryFilterHandler) imageCountCriterionHandler(imageCount ... method hasChaptersCriterionHandler (line 457) | func (qb *galleryFilterHandler) hasChaptersCriterionHandler(hasChapter... method performerTagsCriterionHandler (line 470) | func (qb *galleryFilterHandler) performerTagsCriterionHandler(tags *mo... method performerFavoriteCriterionHandler (line 479) | func (qb *galleryFilterHandler) performerFavoriteCriterionHandler(perf... method performerAgeCriterionHandler (line 499) | func (qb *galleryFilterHandler) performerAgeCriterionHandler(performer... method averageResolutionCriterionHandler (line 515) | func (qb *galleryFilterHandler) averageResolutionCriterionHandler(reso... FILE: pkg/sqlite/gallery_test.go function loadGalleryRelationships (line 19) | func loadGalleryRelationships(ctx context.Context, expected models.Galle... function Test_galleryQueryBuilder_Create (line 57) | func Test_galleryQueryBuilder_Create(t *testing.T) { function makeGalleryFileWithID (line 211) | func makeGalleryFileWithID(i int) *models.BaseFile { function Test_galleryQueryBuilder_Update (line 217) | func Test_galleryQueryBuilder_Update(t *testing.T) { function clearGalleryFileIDs (line 395) | func clearGalleryFileIDs(gallery *models.Gallery) { function clearGalleryPartial (line 403) | func clearGalleryPartial() models.GalleryPartial { function Test_galleryQueryBuilder_UpdatePartial (line 419) | func Test_galleryQueryBuilder_UpdatePartial(t *testing.T) { function Test_galleryQueryBuilder_UpdatePartialRelationships (line 557) | func Test_galleryQueryBuilder_UpdatePartialRelationships(t *testing.T) { function Test_GalleryStore_UpdatePartialCustomFields (line 834) | func Test_GalleryStore_UpdatePartialCustomFields(t *testing.T) { function Test_galleryQueryBuilder_Destroy (line 907) | func Test_galleryQueryBuilder_Destroy(t *testing.T) { function makeGalleryWithID (line 946) | func makeGalleryWithID(index int) *models.Gallery { function Test_galleryQueryBuilder_Find (line 956) | func Test_galleryQueryBuilder_Find(t *testing.T) { function postFindGalleries (line 1013) | func postFindGalleries(ctx context.Context, want []*models.Gallery, got ... function Test_galleryQueryBuilder_FindMany (line 1027) | func Test_galleryQueryBuilder_FindMany(t *testing.T) { function Test_galleryQueryBuilder_FindByChecksum (line 1073) | func Test_galleryQueryBuilder_FindByChecksum(t *testing.T) { function Test_galleryQueryBuilder_FindByChecksums (line 1131) | func Test_galleryQueryBuilder_FindByChecksums(t *testing.T) { function Test_galleryQueryBuilder_FindByPath (line 1194) | func Test_galleryQueryBuilder_FindByPath(t *testing.T) { function Test_galleryQueryBuilder_FindBySceneID (line 1252) | func Test_galleryQueryBuilder_FindBySceneID(t *testing.T) { function Test_galleryQueryBuilder_FindByImageID (line 1294) | func Test_galleryQueryBuilder_FindByImageID(t *testing.T) { function Test_galleryQueryBuilder_CountByImageID (line 1339) | func Test_galleryQueryBuilder_CountByImageID(t *testing.T) { function galleriesToIDs (line 1376) | func galleriesToIDs(i []*models.Gallery) []int { function Test_galleryStore_FindByFileID (line 1385) | func Test_galleryStore_FindByFileID(t *testing.T) { function Test_galleryStore_FindByFolderID (line 1434) | func Test_galleryStore_FindByFolderID(t *testing.T) { function TestGalleryQueryQ (line 1478) | func TestGalleryQueryQ(t *testing.T) { function galleryQueryQ (line 1489) | func galleryQueryQ(ctx context.Context, t *testing.T, q string, expected... function TestGalleryQueryPath (line 1515) | func TestGalleryQueryPath(t *testing.T) { function verifyGalleriesPath (line 1587) | func verifyGalleriesPath(ctx context.Context, t *testing.T, pathCriterio... function TestGalleryQueryPathOr (line 1603) | func TestGalleryQueryPathOr(t *testing.T) { function TestGalleryQueryPathAndRating (line 1641) | func TestGalleryQueryPathAndRating(t *testing.T) { function TestGalleryQueryPathNotRating (line 1677) | func TestGalleryQueryPathNotRating(t *testing.T) { function TestGalleryIllegalQuery (line 1716) | func TestGalleryIllegalQuery(t *testing.T) { function TestGalleryQueryURL (line 1754) | func TestGalleryQueryURL(t *testing.T) { function verifyGalleryQuery (line 1798) | func verifyGalleryQuery(t *testing.T, filter models.GalleryFilterType, v... function TestGalleryQueryRating100 (line 1822) | func TestGalleryQueryRating100(t *testing.T) { function verifyGalleriesRating100 (line 1847) | func verifyGalleriesRating100(t *testing.T, ratingCriterion models.IntCr... function TestGalleryQueryIsMissingScene (line 1867) | func TestGalleryQueryIsMissingScene(t *testing.T) { function queryGallery (line 1902) | func queryGallery(ctx context.Context, t *testing.T, sqb models.GalleryR... function TestGalleryQueryIsMissingStudio (line 1911) | func TestGalleryQueryIsMissingStudio(t *testing.T) { function TestGalleryQueryIsMissingPerformers (line 1940) | func TestGalleryQueryIsMissingPerformers(t *testing.T) { function TestGalleryQueryIsMissingTags (line 1971) | func TestGalleryQueryIsMissingTags(t *testing.T) { function TestGalleryQueryIsMissingDate (line 1997) | func TestGalleryQueryIsMissingDate(t *testing.T) { function TestGalleryQueryPerformers (line 2019) | func TestGalleryQueryPerformers(t *testing.T) { function TestGalleryQueryTags (line 2155) | func TestGalleryQueryTags(t *testing.T) { function TestGalleryQueryStudio (line 2291) | func TestGalleryQueryStudio(t *testing.T) { function TestGalleryQueryStudioDepth (line 2385) | func TestGalleryQueryStudioDepth(t *testing.T) { function TestGalleryQueryPerformerTags (line 2446) | func TestGalleryQueryPerformerTags(t *testing.T) { function TestGalleryQueryTagCount (line 2641) | func TestGalleryQueryTagCount(t *testing.T) { function verifyGalleriesTagCount (line 2660) | func verifyGalleriesTagCount(t *testing.T, tagCountCriterion models.IntC... function TestGalleryQueryPerformerCount (line 2682) | func TestGalleryQueryPerformerCount(t *testing.T) { function verifyGalleriesPerformerCount (line 2701) | func verifyGalleriesPerformerCount(t *testing.T, performerCountCriterion... function TestGalleryQueryAverageResolution (line 2724) | func TestGalleryQueryAverageResolution(t *testing.T) { function TestGalleryQueryImageCount (line 2743) | func TestGalleryQueryImageCount(t *testing.T) { function verifyGalleriesImageCount (line 2762) | func verifyGalleriesImageCount(t *testing.T, imageCountCriterion models.... function TestGalleryQuerySorting (line 2799) | func TestGalleryQuerySorting(t *testing.T) { function TestGalleryStore_AddImages (line 2865) | func TestGalleryStore_AddImages(t *testing.T) { function TestGalleryStore_RemoveImages (line 2944) | func TestGalleryStore_RemoveImages(t *testing.T) { function TestGalleryQueryHasChapters (line 3023) | func TestGalleryQueryHasChapters(t *testing.T) { function TestGallerySetAndResetCover (line 3054) | func TestGallerySetAndResetCover(t *testing.T) { function TestGalleryQueryCustomFields (line 3082) | func TestGalleryQueryCustomFields(t *testing.T) { FILE: pkg/sqlite/group.go constant groupTable (line 20) | groupTable = "groups" constant groupIDColumn (line 21) | groupIDColumn = "group_id" constant groupFrontImageBlobColumn (line 23) | groupFrontImageBlobColumn = "front_image_blob" constant groupBackImageBlobColumn (line 24) | groupBackImageBlobColumn = "back_image_blob" constant groupsTagsTable (line 26) | groupsTagsTable = "groups_tags" constant groupURLsTable (line 28) | groupURLsTable = "group_urls" constant groupURLColumn (line 29) | groupURLColumn = "url" constant groupRelationsTable (line 31) | groupRelationsTable = "groups_relations" type groupRow (line 34) | type groupRow struct method fromGroup (line 54) | func (r *groupRow) fromGroup(o models.Group) { method resolve (line 69) | func (r *groupRow) resolve() *models.Group { type groupRowRecord (line 87) | type groupRowRecord struct method fromPartial (line 91) | func (r *groupRowRecord) fromPartial(o models.GroupPartial) { type groupRepositoryType (line 104) | type groupRepositoryType struct type GroupStore (line 132) | type GroupStore struct method table (line 164) | func (qb *GroupStore) table() exp.IdentifierExpression { method selectDataset (line 168) | func (qb *GroupStore) selectDataset() *goqu.SelectDataset { method Create (line 172) | func (qb *GroupStore) Create(ctx context.Context, newObject *models.Gr... method UpdatePartial (line 210) | func (qb *GroupStore) UpdatePartial(ctx context.Context, id int, parti... method Update (line 250) | func (qb *GroupStore) Update(ctx context.Context, updatedObject *model... method Destroy (line 279) | func (qb *GroupStore) Destroy(ctx context.Context, id int) error { method Find (line 289) | func (qb *GroupStore) Find(ctx context.Context, id int) (*models.Group... method FindMany (line 297) | func (qb *GroupStore) FindMany(ctx context.Context, ids []int) ([]*mod... method find (line 328) | func (qb *GroupStore) find(ctx context.Context, id int) (*models.Group... method get (line 340) | func (qb *GroupStore) get(ctx context.Context, q *goqu.SelectDataset) ... method getMany (line 353) | func (qb *GroupStore) getMany(ctx context.Context, q *goqu.SelectDatas... method FindByName (line 373) | func (qb *GroupStore) FindByName(ctx context.Context, name string, noc... method FindByNames (line 393) | func (qb *GroupStore) FindByNames(ctx context.Context, names []string,... method Count (line 418) | func (qb *GroupStore) Count(ctx context.Context) (int, error) { method All (line 423) | func (qb *GroupStore) All(ctx context.Context) ([]*models.Group, error) { method makeQuery (line 432) | func (qb *GroupStore) makeQuery(ctx context.Context, groupFilter *mode... method Query (line 465) | func (qb *GroupStore) Query(ctx context.Context, groupFilter *models.G... method QueryCount (line 484) | func (qb *GroupStore) QueryCount(ctx context.Context, groupFilter *mod... method setGroupSort (line 508) | func (qb *GroupStore) setGroupSort(query *queryBuilder, findFilter *mo... method queryGroups (line 550) | func (qb *GroupStore) queryGroups(ctx context.Context, query string, a... method UpdateFrontImage (line 570) | func (qb *GroupStore) UpdateFrontImage(ctx context.Context, groupID in... method UpdateBackImage (line 574) | func (qb *GroupStore) UpdateBackImage(ctx context.Context, groupID int... method destroyImages (line 578) | func (qb *GroupStore) destroyImages(ctx context.Context, groupID int) ... method GetFrontImage (line 589) | func (qb *GroupStore) GetFrontImage(ctx context.Context, groupID int) ... method HasFrontImage (line 593) | func (qb *GroupStore) HasFrontImage(ctx context.Context, groupID int) ... method GetBackImage (line 597) | func (qb *GroupStore) GetBackImage(ctx context.Context, groupID int) (... method HasBackImage (line 601) | func (qb *GroupStore) HasBackImage(ctx context.Context, groupID int) (... method FindByPerformerID (line 605) | func (qb *GroupStore) FindByPerformerID(ctx context.Context, performer... method CountByPerformerID (line 616) | func (qb *GroupStore) CountByPerformerID(ctx context.Context, performe... method FindByStudioID (line 626) | func (qb *GroupStore) FindByStudioID(ctx context.Context, studioID int... method CountByStudioID (line 635) | func (qb *GroupStore) CountByStudioID(ctx context.Context, studioID in... method GetURLs (line 644) | func (qb *GroupStore) GetURLs(ctx context.Context, groupID int) ([]str... method FindSubGroupIDs (line 649) | func (qb *GroupStore) FindSubGroupIDs(ctx context.Context, containingI... method FindInAncestors (line 679) | func (qb *GroupStore) FindInAncestors(ctx context.Context, ascestorIDs... method sortByOCounter (line 719) | func (qb *GroupStore) sortByOCounter(direction string) string { function NewGroupStore (line 141) | func NewGroupStore(blobStore *BlobStore) *GroupStore { FILE: pkg/sqlite/group_filter.go type groupFilterHandler (line 11) | type groupFilterHandler struct method validate (line 15) | func (qb *groupFilterHandler) validate() error { method handle (line 35) | func (qb *groupFilterHandler) handle(ctx context.Context, f *filterBui... method criterionHandler (line 63) | func (qb *groupFilterHandler) criterionHandler() criterionHandler { method missingCriterionHandler (line 111) | func (qb *groupFilterHandler) missingCriterionHandler(isMissing *strin... method urlsCriterionHandler (line 147) | func (qb *groupFilterHandler) urlsCriterionHandler(url *models.StringC... method performersCriterionHandler (line 161) | func (qb *groupFilterHandler) performersCriterionHandler(performers *m... method tagsCriterionHandler (line 208) | func (qb *groupFilterHandler) tagsCriterionHandler(tags *models.Hierar... method tagCountCriterionHandler (line 223) | func (qb *groupFilterHandler) tagCountCriterionHandler(count *models.I... method sceneCountCriterionHandler (line 233) | func (qb *groupFilterHandler) sceneCountCriterionHandler(count *models... method groupOCounterCriterionHandler (line 263) | func (qb *groupFilterHandler) groupOCounterCriterionHandler(count *mod... FILE: pkg/sqlite/group_relationships.go type groupRelationshipRow (line 15) | type groupRelationshipRow struct method resolve (line 22) | func (r groupRelationshipRow) resolve(useContainingID bool) models.Gro... type groupRelationshipStore (line 34) | type groupRelationshipStore struct method GetContainingGroupDescriptions (line 38) | func (s *groupRelationshipStore) GetContainingGroupDescriptions(ctx co... method GetSubGroupDescriptions (line 43) | func (s *groupRelationshipStore) GetSubGroupDescriptions(ctx context.C... method getGroupRelationships (line 48) | func (s *groupRelationshipStore) getGroupRelationships(ctx context.Con... method getMaxOrderIndex (line 79) | func (s *groupRelationshipStore) getMaxOrderIndex(ctx context.Context,... method createRelationships (line 96) | func (s *groupRelationshipStore) createRelationships(ctx context.Conte... method createContainingRelationships (line 135) | func (s *groupRelationshipStore) createContainingRelationships(ctx con... method createSubRelationships (line 142) | func (s *groupRelationshipStore) createSubRelationships(ctx context.Co... method replaceRelationships (line 147) | func (s *groupRelationshipStore) replaceRelationships(ctx context.Cont... method replaceContainingRelationships (line 156) | func (s *groupRelationshipStore) replaceContainingRelationships(ctx co... method replaceSubRelationships (line 161) | func (s *groupRelationshipStore) replaceSubRelationships(ctx context.C... method modifyRelationships (line 166) | func (s *groupRelationshipStore) modifyRelationships(ctx context.Conte... method modifyContainingRelationships (line 187) | func (s *groupRelationshipStore) modifyContainingRelationships(ctx con... method modifySubRelationships (line 192) | func (s *groupRelationshipStore) modifySubRelationships(ctx context.Co... method addJoins (line 197) | func (s *groupRelationshipStore) addJoins(ctx context.Context, id int,... method destroyAllJoins (line 238) | func (s *groupRelationshipStore) destroyAllJoins(ctx context.Context, ... method replaceJoins (line 254) | func (s *groupRelationshipStore) replaceJoins(ctx context.Context, id ... method destroyJoins (line 264) | func (s *groupRelationshipStore) destroyJoins(ctx context.Context, id ... method getOrderIndexOfSubGroup (line 282) | func (s *groupRelationshipStore) getOrderIndexOfSubGroup(ctx context.C... method getGroupIDAtOrderIndex (line 303) | func (s *groupRelationshipStore) getGroupIDAtOrderIndex(ctx context.Co... method getOrderIndexAfterOrderIndex (line 323) | func (s *groupRelationshipStore) getOrderIndexAfterOrderIndex(ctx cont... method incrementOrderIndexes (line 343) | func (s *groupRelationshipStore) incrementOrderIndexes(ctx context.Con... method reorderSubGroup (line 375) | func (s *groupRelationshipStore) reorderSubGroup(ctx context.Context, ... method AddSubGroups (line 410) | func (s *groupRelationshipStore) AddSubGroups(ctx context.Context, gro... method RemoveSubGroups (line 444) | func (s *groupRelationshipStore) RemoveSubGroups(ctx context.Context, ... method ReorderSubGroups (line 449) | func (s *groupRelationshipStore) ReorderSubGroups(ctx context.Context,... FILE: pkg/sqlite/group_test.go function loadGroupRelationships (line 22) | func loadGroupRelationships(ctx context.Context, expected models.Group, ... function Test_GroupStore_Create (line 47) | func Test_GroupStore_Create(t *testing.T) { function Test_groupQueryBuilder_Update (line 169) | func Test_groupQueryBuilder_Update(t *testing.T) { function emptyGroup (line 327) | func emptyGroup(idx int) models.Group { function Test_groupQueryBuilder_UpdatePartial (line 337) | func Test_groupQueryBuilder_UpdatePartial(t *testing.T) { function Test_GroupStore_UpdatePartialCustomFields (line 569) | func Test_GroupStore_UpdatePartialCustomFields(t *testing.T) { function TestGroupFindByName (line 642) | func TestGroupFindByName(t *testing.T) { function TestGroupFindByNames (line 673) | func TestGroupFindByNames(t *testing.T) { function groupsToIDs (line 700) | func groupsToIDs(i []*models.Group) []int { function TestGroupQuery (line 709) | func TestGroupQuery(t *testing.T) { function TestGroupQueryStudio (line 797) | func TestGroupQueryStudio(t *testing.T) { function TestGroupQueryURL (line 843) | func TestGroupQueryURL(t *testing.T) { function TestGroupQueryURLExcludes (line 888) | func TestGroupQueryURLExcludes(t *testing.T) { function verifyGroupQuery (line 938) | func verifyGroupQuery(t *testing.T, filter models.GroupFilterType, verif... function queryGroups (line 962) | func queryGroups(ctx context.Context, t *testing.T, groupFilter *models.... function TestGroupQueryTags (line 972) | func TestGroupQueryTags(t *testing.T) { function TestGroupQueryTagCount (line 1027) | func TestGroupQueryTagCount(t *testing.T) { function verifyGroupsTagCount (line 1046) | func verifyGroupsTagCount(t *testing.T, tagCountCriterion models.IntCrit... function TestGroupQuerySorting (line 1068) | func TestGroupQuerySorting(t *testing.T) { function TestGroupQuerySortOrderIndex (line 1096) | func TestGroupQuerySortOrderIndex(t *testing.T) { function TestGroupUpdateFrontImage (line 1127) | func TestGroupUpdateFrontImage(t *testing.T) { function TestGroupUpdateBackImage (line 1147) | func TestGroupUpdateBackImage(t *testing.T) { function TestGroupQueryContainingGroups (line 1167) | func TestGroupQueryContainingGroups(t *testing.T) { function TestGroupQuerySubGroups (line 1280) | func TestGroupQuerySubGroups(t *testing.T) { function TestGroupQueryContainingGroupCount (line 1393) | func TestGroupQueryContainingGroupCount(t *testing.T) { function TestGroupQuerySubGroupCount (line 1464) | func TestGroupQuerySubGroupCount(t *testing.T) { function TestGroupFindInAncestors (line 1535) | func TestGroupFindInAncestors(t *testing.T) { function TestGroupReorderSubGroups (line 1582) | func TestGroupReorderSubGroups(t *testing.T) { function TestGroupAddSubGroups (line 1715) | func TestGroupAddSubGroups(t *testing.T) { function TestGroupRemoveSubGroups (line 1843) | func TestGroupRemoveSubGroups(t *testing.T) { function TestGroupFindSubGroupIDs (line 1938) | func TestGroupFindSubGroupIDs(t *testing.T) { function TestGroupQueryCustomFields (line 1993) | func TestGroupQueryCustomFields(t *testing.T) { FILE: pkg/sqlite/history.go type viewDateManager (line 8) | type viewDateManager struct method GetViewDates (line 12) | func (qb *viewDateManager) GetViewDates(ctx context.Context, id int) (... method GetManyViewDates (line 16) | func (qb *viewDateManager) GetManyViewDates(ctx context.Context, ids [... method CountViews (line 20) | func (qb *viewDateManager) CountViews(ctx context.Context, id int) (in... method GetManyViewCount (line 24) | func (qb *viewDateManager) GetManyViewCount(ctx context.Context, ids [... method CountAllViews (line 28) | func (qb *viewDateManager) CountAllViews(ctx context.Context) (int, er... method CountUniqueViews (line 32) | func (qb *viewDateManager) CountUniqueViews(ctx context.Context) (int,... method LastView (line 36) | func (qb *viewDateManager) LastView(ctx context.Context, id int) (*tim... method GetManyLastViewed (line 40) | func (qb *viewDateManager) GetManyLastViewed(ctx context.Context, ids ... method AddViews (line 45) | func (qb *viewDateManager) AddViews(ctx context.Context, id int, dates... method DeleteViews (line 49) | func (qb *viewDateManager) DeleteViews(ctx context.Context, id int, da... method DeleteAllViews (line 53) | func (qb *viewDateManager) DeleteAllViews(ctx context.Context, id int)... type oDateManager (line 57) | type oDateManager struct method GetODates (line 61) | func (qb *oDateManager) GetODates(ctx context.Context, id int) ([]time... method GetManyODates (line 65) | func (qb *oDateManager) GetManyODates(ctx context.Context, ids []int) ... method GetOCount (line 69) | func (qb *oDateManager) GetOCount(ctx context.Context, id int) (int, e... method GetManyOCount (line 73) | func (qb *oDateManager) GetManyOCount(ctx context.Context, ids []int) ... method GetAllOCount (line 77) | func (qb *oDateManager) GetAllOCount(ctx context.Context) (int, error) { method GetUniqueOCount (line 81) | func (qb *oDateManager) GetUniqueOCount(ctx context.Context) (int, err... method AddO (line 85) | func (qb *oDateManager) AddO(ctx context.Context, id int, dates []time... method DeleteO (line 89) | func (qb *oDateManager) DeleteO(ctx context.Context, id int, dates []t... method ResetO (line 93) | func (qb *oDateManager) ResetO(ctx context.Context, id int) (int, erro... FILE: pkg/sqlite/image.go constant imageTable (line 21) | imageTable = "images" constant imageIDColumn (line 24) | imageIDColumn = "image_id" constant performersImagesTable (line 25) | performersImagesTable = "performers_images" constant imagesTagsTable (line 26) | imagesTagsTable = "images_tags" constant imagesFilesTable (line 27) | imagesFilesTable = "images_files" constant imagesURLsTable (line 28) | imagesURLsTable = "image_urls" constant imageURLColumn (line 29) | imageURLColumn = "url" type imageRow (line 32) | type imageRow struct method fromImage (line 49) | func (r *imageRow) fromImage(i models.Image) { type imageQueryRow (line 65) | type imageQueryRow struct method resolve (line 73) | func (r *imageQueryRow) resolve() *models.Image { type imageRowRecord (line 100) | type imageRowRecord struct method fromPartial (line 104) | func (r *imageRowRecord) fromPartial(i models.ImagePartial) { type imageRepositoryType (line 118) | type imageRepositoryType struct method addImagesFilesTable (line 126) | func (r *imageRepositoryType) addImagesFilesTable(f *filterBuilder) { method addFilesTable (line 130) | func (r *imageRepositoryType) addFilesTable(f *filterBuilder) { method addFoldersTable (line 135) | func (r *imageRepositoryType) addFoldersTable(f *filterBuilder) { method addImageFilesTable (line 140) | func (r *imageRepositoryType) addImageFilesTable(f *filterBuilder) { type ImageStore (line 187) | type ImageStore struct method table (line 208) | func (qb *ImageStore) table() exp.IdentifierExpression { method selectDataset (line 212) | func (qb *ImageStore) selectDataset() *goqu.SelectDataset { method Create (line 245) | func (qb *ImageStore) Create(ctx context.Context, newObject *models.Cr... method UpdatePartial (line 301) | func (qb *ImageStore) UpdatePartial(ctx context.Context, id int, parti... method Update (line 351) | func (qb *ImageStore) Update(ctx context.Context, updatedObject *model... method Destroy (line 396) | func (qb *ImageStore) Destroy(ctx context.Context, id int) error { method Find (line 401) | func (qb *ImageStore) Find(ctx context.Context, id int) (*models.Image... method FindMany (line 409) | func (qb *ImageStore) FindMany(ctx context.Context, ids []int) ([]*mod... method find (line 439) | func (qb *ImageStore) find(ctx context.Context, id int) (*models.Image... method findBySubquery (line 450) | func (qb *ImageStore) findBySubquery(ctx context.Context, sq *goqu.Sel... method get (line 463) | func (qb *ImageStore) get(ctx context.Context, q *goqu.SelectDataset) ... method getMany (line 476) | func (qb *ImageStore) getMany(ctx context.Context, q *goqu.SelectDatas... method CoverByGalleryID (line 503) | func (qb *ImageStore) CoverByGalleryID(ctx context.Context, galleryID ... method GetFiles (line 538) | func (qb *ImageStore) GetFiles(ctx context.Context, id int) ([]models.... method GetManyFileIDs (line 556) | func (qb *ImageStore) GetManyFileIDs(ctx context.Context, ids []int) (... method FindByFileID (line 561) | func (qb *ImageStore) FindByFileID(ctx context.Context, fileID models.... method CountByFileID (line 579) | func (qb *ImageStore) CountByFileID(ctx context.Context, fileID models... method FindByFingerprints (line 586) | func (qb *ImageStore) FindByFingerprints(ctx context.Context, fp []mod... method FindByChecksum (line 618) | func (qb *ImageStore) FindByChecksum(ctx context.Context, checksum str... method FindByGalleryID (line 632) | func (qb *ImageStore) FindByGalleryID(ctx context.Context, galleryID i... method FindByGalleryIDIndex (line 658) | func (qb *ImageStore) FindByGalleryIDIndex(ctx context.Context, galler... method CountByGalleryID (line 683) | func (qb *ImageStore) CountByGalleryID(ctx context.Context, galleryID ... method OCountByPerformerID (line 690) | func (qb *ImageStore) OCountByPerformerID(ctx context.Context, perform... method OCountByStudioID (line 703) | func (qb *ImageStore) OCountByStudioID(ctx context.Context, studioID i... method OCount (line 717) | func (qb *ImageStore) OCount(ctx context.Context) (int, error) { method FindByFolderID (line 729) | func (qb *ImageStore) FindByFolderID(ctx context.Context, folderID mod... method FindByZipFileID (line 754) | func (qb *ImageStore) FindByZipFileID(ctx context.Context, zipFileID m... method Count (line 779) | func (qb *ImageStore) Count(ctx context.Context) (int, error) { method Size (line 784) | func (qb *ImageStore) Size(ctx context.Context) (float64, error) { method All (line 804) | func (qb *ImageStore) All(ctx context.Context) ([]*models.Image, error) { method makeQuery (line 808) | func (qb *ImageStore) makeQuery(ctx context.Context, imageFilter *mode... method Query (line 859) | func (qb *ImageStore) Query(ctx context.Context, options models.ImageQ... method queryGroupedFields (line 879) | func (qb *ImageStore) queryGroupedFields(ctx context.Context, options ... method QueryCount (line 940) | func (qb *ImageStore) QueryCount(ctx context.Context, imageFilter *mod... method setImageSortAndPagination (line 967) | func (qb *ImageStore) setImageSortAndPagination(q *queryBuilder, findF... method AddFileID (line 1046) | func (qb *ImageStore) AddFileID(ctx context.Context, id int, fileID mo... method RemoveFileID (line 1053) | func (qb *ImageStore) RemoveFileID(ctx context.Context, id int, fileID... method GetGalleryIDs (line 1066) | func (qb *ImageStore) GetGalleryIDs(ctx context.Context, imageID int) ... method GetPerformerIDs (line 1075) | func (qb *ImageStore) GetPerformerIDs(ctx context.Context, imageID int... method UpdatePerformers (line 1079) | func (qb *ImageStore) UpdatePerformers(ctx context.Context, imageID in... method GetTagIDs (line 1084) | func (qb *ImageStore) GetTagIDs(ctx context.Context, imageID int) ([]i... method UpdateTags (line 1088) | func (qb *ImageStore) UpdateTags(ctx context.Context, imageID int, tag... method GetURLs (line 1093) | func (qb *ImageStore) GetURLs(ctx context.Context, imageID int) ([]str... function NewImageStore (line 196) | func NewImageStore(r *storeRepository) *ImageStore { FILE: pkg/sqlite/image_filter.go type imageFilterHandler (line 9) | type imageFilterHandler struct method validate (line 13) | func (qb *imageFilterHandler) validate() error { method handle (line 33) | func (qb *imageFilterHandler) handle(ctx context.Context, f *filterBui... method criterionHandler (line 53) | func (qb *imageFilterHandler) criterionHandler() criterionHandler { method fileCountCriterionHandler (line 160) | func (qb *imageFilterHandler) fileCountCriterionHandler(fileCount *mod... method missingCriterionHandler (line 170) | func (qb *imageFilterHandler) missingCriterionHandler(isMissing *strin... method urlsCriterionHandler (line 201) | func (qb *imageFilterHandler) urlsCriterionHandler(url *models.StringC... method getMultiCriterionHandlerBuilder (line 215) | func (qb *imageFilterHandler) getMultiCriterionHandlerBuilder(foreignT... method tagsCriterionHandler (line 226) | func (qb *imageFilterHandler) tagsCriterionHandler(tags *models.Hierar... method tagCountCriterionHandler (line 241) | func (qb *imageFilterHandler) tagCountCriterionHandler(tagCount *model... method galleriesCriterionHandler (line 251) | func (qb *imageFilterHandler) galleriesCriterionHandler(galleries *mod... method performersCriterionHandler (line 263) | func (qb *imageFilterHandler) performersCriterionHandler(performers *m... method performerCountCriterionHandler (line 279) | func (qb *imageFilterHandler) performerCountCriterionHandler(performer... method performerFavoriteCriterionHandler (line 289) | func (qb *imageFilterHandler) performerFavoriteCriterionHandler(perfor... method performerAgeCriterionHandler (line 309) | func (qb *imageFilterHandler) performerAgeCriterionHandler(performerAg... method performerTagsCriterionHandler (line 325) | func (qb *imageFilterHandler) performerTagsCriterionHandler(tags *mode... FILE: pkg/sqlite/image_test.go function loadImageRelationships (line 17) | func loadImageRelationships(ctx context.Context, expected models.Image, ... function Test_imageQueryBuilder_Create (line 58) | func Test_imageQueryBuilder_Create(t *testing.T) { function clearImageFileIDs (line 224) | func clearImageFileIDs(image *models.Image) { function makeImageFileWithID (line 232) | func makeImageFileWithID(i int) *models.ImageFile { function Test_imageQueryBuilder_Update (line 238) | func Test_imageQueryBuilder_Update(t *testing.T) { function clearImagePartial (line 408) | func clearImagePartial() models.ImagePartial { function Test_imageQueryBuilder_UpdatePartial (line 425) | func Test_imageQueryBuilder_UpdatePartial(t *testing.T) { function Test_imageQueryBuilder_UpdatePartialRelationships (line 566) | func Test_imageQueryBuilder_UpdatePartialRelationships(t *testing.T) { function Test_ImageStore_UpdatePartialCustomFields (line 847) | func Test_ImageStore_UpdatePartialCustomFields(t *testing.T) { function Test_imageQueryBuilder_IncrementOCounter (line 920) | func Test_imageQueryBuilder_IncrementOCounter(t *testing.T) { function Test_imageQueryBuilder_DecrementOCounter (line 957) | func Test_imageQueryBuilder_DecrementOCounter(t *testing.T) { function Test_imageQueryBuilder_ResetOCounter (line 1000) | func Test_imageQueryBuilder_ResetOCounter(t *testing.T) { function Test_imageQueryBuilder_Destroy (line 1043) | func Test_imageQueryBuilder_Destroy(t *testing.T) { function makeImageWithID (line 1079) | func makeImageWithID(index int) *models.Image { function Test_imageQueryBuilder_Find (line 1089) | func Test_imageQueryBuilder_Find(t *testing.T) { function postFindImages (line 1146) | func postFindImages(ctx context.Context, want []*models.Image, got []*mo... function Test_imageQueryBuilder_FindMany (line 1160) | func Test_imageQueryBuilder_FindMany(t *testing.T) { function Test_imageQueryBuilder_FindByChecksum (line 1207) | func Test_imageQueryBuilder_FindByChecksum(t *testing.T) { function Test_imageQueryBuilder_FindByFingerprints (line 1265) | func Test_imageQueryBuilder_FindByFingerprints(t *testing.T) { function Test_imageQueryBuilder_FindByGalleryID (line 1343) | func Test_imageQueryBuilder_FindByGalleryID(t *testing.T) { function Test_imageQueryBuilder_CountByGalleryID (line 1386) | func Test_imageQueryBuilder_CountByGalleryID(t *testing.T) { function imagesToIDs (line 1423) | func imagesToIDs(i []*models.Image) []int { function Test_imageStore_FindByFileID (line 1432) | func Test_imageStore_FindByFileID(t *testing.T) { function Test_imageStore_FindByFolderID (line 1481) | func Test_imageStore_FindByFolderID(t *testing.T) { function Test_imageStore_FindByZipFileID (line 1536) | func Test_imageStore_FindByZipFileID(t *testing.T) { function TestImageQueryQ (line 1585) | func TestImageQueryQ(t *testing.T) { function TestImageQueryQ_Details (line 1599) | func TestImageQueryQ_Details(t *testing.T) { function queryImagesWithCount (line 1613) | func queryImagesWithCount(ctx context.Context, sqb models.ImageReader, i... function imageQueryQ (line 1633) | func imageQueryQ(ctx context.Context, t *testing.T, sqb models.ImageRead... function verifyImageQuery (line 1656) | func verifyImageQuery(t *testing.T, filter models.ImageFilterType, verif... function TestImageQueryURL (line 1675) | func TestImageQueryURL(t *testing.T) { function TestImageQueryPath (line 1717) | func TestImageQueryPath(t *testing.T) { function verifyImagePath (line 1739) | func verifyImagePath(t *testing.T, pathCriterion models.StringCriterionI... function TestImageQueryPathOr (line 1758) | func TestImageQueryPathOr(t *testing.T) { function TestImageQueryPathAndRating (line 1796) | func TestImageQueryPathAndRating(t *testing.T) { function TestImageQueryPathNotRating (line 1832) | func TestImageQueryPathNotRating(t *testing.T) { function TestImageIllegalQuery (line 1871) | func TestImageIllegalQuery(t *testing.T) { function TestImageQueryRating100 (line 1909) | func TestImageQueryRating100(t *testing.T) { function verifyImagesRating100 (line 1934) | func verifyImagesRating100(t *testing.T, ratingCriterion models.IntCrite... function TestImageQueryOCounter (line 1954) | func TestImageQueryOCounter(t *testing.T) { function verifyImagesOCounter (line 1973) | func verifyImagesOCounter(t *testing.T, oCounterCriterion models.IntCrit... function TestImageQueryResolution (line 1993) | func TestImageQueryResolution(t *testing.T) { function verifyImagesResolution (line 2002) | func verifyImagesResolution(t *testing.T, resolution models.ResolutionEn... function verifyImageResolution (line 2034) | func verifyImageResolution(t *testing.T, height int, resolution models.R... function TestImageQueryIsMissingGalleries (line 2055) | func TestImageQueryIsMissingGalleries(t *testing.T) { function TestImageQueryIsMissingStudio (line 2092) | func TestImageQueryIsMissingStudio(t *testing.T) { function TestImageQueryIsMissingPerformers (line 2127) | func TestImageQueryIsMissingPerformers(t *testing.T) { function TestImageQueryIsMissingTags (line 2164) | func TestImageQueryIsMissingTags(t *testing.T) { function TestImageQueryIsMissingRating (line 2196) | func TestImageQueryIsMissingRating(t *testing.T) { function TestImageQueryGallery (line 2220) | func TestImageQueryGallery(t *testing.T) { function TestImageQueryPerformers (line 2278) | func TestImageQueryPerformers(t *testing.T) { function TestImageQueryTags (line 2414) | func TestImageQueryTags(t *testing.T) { function TestImageQueryStudio (line 2550) | func TestImageQueryStudio(t *testing.T) { function TestImageQueryStudioDepth (line 2644) | func TestImageQueryStudioDepth(t *testing.T) { function queryImages (line 2705) | func queryImages(ctx context.Context, t *testing.T, sqb models.ImageRead... function TestImageQueryPerformerTags (line 2714) | func TestImageQueryPerformerTags(t *testing.T) { function TestImageQueryTagCount (line 2912) | func TestImageQueryTagCount(t *testing.T) { function verifyImagesTagCount (line 2931) | func verifyImagesTagCount(t *testing.T, tagCountCriterion models.IntCrit... function TestImageQueryPerformerCount (line 2953) | func TestImageQueryPerformerCount(t *testing.T) { function verifyImagesPerformerCount (line 2972) | func verifyImagesPerformerCount(t *testing.T, performerCountCriterion mo... function TestImageQuerySorting (line 2994) | func TestImageQuerySorting(t *testing.T) { function TestImageQueryPagination (line 3077) | func TestImageQueryPagination(t *testing.T) { function TestImageQueryCustomFields (line 3120) | func TestImageQueryCustomFields(t *testing.T) { FILE: pkg/sqlite/migrate.go method needsMigration (line 14) | func (db *Database) needsMigration() bool { type Migrator (line 18) | type Migrator struct method Close (line 51) | func (m *Migrator) Close() { method CurrentSchemaVersion (line 58) | func (m *Migrator) CurrentSchemaVersion() uint { method RequiredSchemaVersion (line 63) | func (m *Migrator) RequiredSchemaVersion() uint { method getMigrate (line 67) | func (m *Migrator) getMigrate() (*migrate.Migrate, error) { method RunMigration (line 87) | func (m *Migrator) RunMigration(ctx context.Context, newVersion uint) ... method runCustomMigrations (line 115) | func (m *Migrator) runCustomMigrations(ctx context.Context, fns []cust... method runCustomMigration (line 125) | func (m *Migrator) runCustomMigration(ctx context.Context, fn customMi... method PostMigrate (line 133) | func (m *Migrator) PostMigrate(ctx context.Context) error { function NewMigrator (line 24) | func NewMigrator(db *Database) (*Migrator, error) { method getDatabaseSchemaVersion (line 154) | func (db *Database) getDatabaseSchemaVersion() (uint, error) { method ReInitialise (line 165) | func (db *Database) ReInitialise() error { method RunAllMigrations (line 170) | func (db *Database) RunAllMigrations() error { FILE: pkg/sqlite/migrations/10_image_tables.up.sql type `studios` (line 8) | CREATE TABLE `studios` ( type `studios_checksum_unique` (line 22) | CREATE UNIQUE INDEX `studios_checksum_unique` on `studios` (`checksum`) type `index_studios_on_name` (line 23) | CREATE INDEX `index_studios_on_name` on `studios` (`name`) type `index_studios_on_checksum` (line 24) | CREATE INDEX `index_studios_on_checksum` on `studios` (`checksum`) type `scenes` (line 27) | CREATE TABLE `scenes` ( type `scenes_path_unique` (line 57) | CREATE UNIQUE INDEX `scenes_path_unique` on `scenes` (`path`) type `scenes_checksum_unique` (line 58) | CREATE UNIQUE INDEX `scenes_checksum_unique` on `scenes` (`checksum`) type `index_scenes_on_studio_id` (line 59) | CREATE INDEX `index_scenes_on_studio_id` on `scenes` (`studio_id`) type `performers` (line 62) | CREATE TABLE `performers` ( type `performers_checksum_unique` (line 89) | CREATE UNIQUE INDEX `performers_checksum_unique` on `performers` (`check... type `index_performers_on_name` (line 90) | CREATE INDEX `index_performers_on_name` on `performers` (`name`) type `movies` (line 93) | CREATE TABLE `movies` ( type `movies_name_unique` (line 114) | CREATE UNIQUE INDEX `movies_name_unique` on `movies` (`name`) type `movies_checksum_unique` (line 115) | CREATE UNIQUE INDEX `movies_checksum_unique` on `movies` (`checksum`) type `index_movies_on_studio_id` (line 116) | CREATE INDEX `index_movies_on_studio_id` on `movies` (`studio_id`) type `galleries` (line 127) | CREATE TABLE `galleries` ( type `index_galleries_on_scene_id` (line 141) | CREATE INDEX `index_galleries_on_scene_id` on `galleries` (`scene_id`) type `galleries_path_unique` (line 142) | CREATE UNIQUE INDEX `galleries_path_unique` on `galleries` (`path`) type `galleries_checksum_unique` (line 143) | CREATE UNIQUE INDEX `galleries_checksum_unique` on `galleries` (`checksum`) type `performers_scenes` (line 145) | CREATE TABLE `performers_scenes` ( type `index_performers_scenes_on_scene_id` (line 155) | CREATE INDEX `index_performers_scenes_on_scene_id` on `performers_scenes... type `index_performers_scenes_on_performer_id` (line 156) | CREATE INDEX `index_performers_scenes_on_performer_id` on `performers_sc... type `scene_markers` (line 158) | CREATE TABLE `scene_markers` ( type `index_scene_markers_on_scene_id` (line 173) | CREATE INDEX `index_scene_markers_on_scene_id` on `scene_markers` (`scen... type `index_scene_markers_on_primary_tag_id` (line 174) | CREATE INDEX `index_scene_markers_on_primary_tag_id` on `scene_markers` ... type `scene_markers_tags` (line 176) | CREATE TABLE `scene_markers_tags` ( type `index_scene_markers_tags_on_tag_id` (line 186) | CREATE INDEX `index_scene_markers_tags_on_tag_id` on `scene_markers_tags... type `index_scene_markers_tags_on_scene_marker_id` (line 187) | CREATE INDEX `index_scene_markers_tags_on_scene_marker_id` on `scene_mar... type `scenes_tags` (line 189) | CREATE TABLE `scenes_tags` ( type `index_scenes_tags_on_tag_id` (line 199) | CREATE INDEX `index_scenes_tags_on_tag_id` on `scenes_tags` (`tag_id`) type `index_scenes_tags_on_scene_id` (line 200) | CREATE INDEX `index_scenes_tags_on_scene_id` on `scenes_tags` (`scene_id`) type `movies_scenes` (line 202) | CREATE TABLE `movies_scenes` ( type `index_movies_scenes_on_movie_id` (line 213) | CREATE INDEX `index_movies_scenes_on_movie_id` on `movies_scenes` (`movi... type `index_movies_scenes_on_scene_id` (line 214) | CREATE INDEX `index_movies_scenes_on_scene_id` on `movies_scenes` (`scen... type `scraped_items` (line 217) | CREATE TABLE `scraped_items` ( type `index_scraped_items_on_studio_id` (line 239) | CREATE INDEX `index_scraped_items_on_studio_id` on `scraped_items` (`stu... type `scenes_cover` (line 438) | CREATE TABLE `scenes_cover` ( type `index_scene_covers_on_scene_id` (line 444) | CREATE UNIQUE INDEX `index_scene_covers_on_scene_id` on `scenes_cover` (... type `performers_image` (line 454) | CREATE TABLE `performers_image` ( type `index_performer_image_on_performer_id` (line 460) | CREATE UNIQUE INDEX `index_performer_image_on_performer_id` on `performe... type `studios_image` (line 470) | CREATE TABLE `studios_image` ( type `index_studio_image_on_studio_id` (line 476) | CREATE UNIQUE INDEX `index_studio_image_on_studio_id` on `studios_image`... type `movies_images` (line 486) | CREATE TABLE `movies_images` ( type `index_movie_images_on_movie_id` (line 493) | CREATE UNIQUE INDEX `index_movie_images_on_movie_id` on `movies_images` ... FILE: pkg/sqlite/migrations/11_tag_image.up.sql type `tags_image` (line 1) | CREATE TABLE `tags_image` ( type `index_tag_image_on_tag_id` (line 7) | CREATE UNIQUE INDEX `index_tag_image_on_tag_id` on `tags_image` (`tag_id`) FILE: pkg/sqlite/migrations/12_oshash.up.sql type `scenes` (line 5) | CREATE TABLE `scenes` ( type `scenes_path_unique` (line 39) | CREATE UNIQUE INDEX `scenes_path_unique` on `scenes` (`path`) type `scenes_checksum_unique` (line 40) | CREATE UNIQUE INDEX `scenes_checksum_unique` on `scenes` (`checksum`) type `scenes_oshash_unique` (line 41) | CREATE UNIQUE INDEX `scenes_oshash_unique` on `scenes` (`oshash`) type `index_scenes_on_studio_id` (line 42) | CREATE INDEX `index_scenes_on_studio_id` on `scenes` (`studio_id`) type `galleries` (line 53) | CREATE TABLE `galleries` ( type `index_galleries_on_scene_id` (line 67) | CREATE INDEX `index_galleries_on_scene_id` on `galleries` (`scene_id`) type `galleries_path_unique` (line 68) | CREATE UNIQUE INDEX `galleries_path_unique` on `galleries` (`path`) type `galleries_checksum_unique` (line 69) | CREATE UNIQUE INDEX `galleries_checksum_unique` on `galleries` (`checksum`) type `performers_scenes` (line 71) | CREATE TABLE `performers_scenes` ( type `index_performers_scenes_on_scene_id` (line 81) | CREATE INDEX `index_performers_scenes_on_scene_id` on `performers_scenes... type `index_performers_scenes_on_performer_id` (line 82) | CREATE INDEX `index_performers_scenes_on_performer_id` on `performers_sc... type `scene_markers` (line 84) | CREATE TABLE `scene_markers` ( type `index_scene_markers_on_scene_id` (line 99) | CREATE INDEX `index_scene_markers_on_scene_id` on `scene_markers` (`scen... type `index_scene_markers_on_primary_tag_id` (line 100) | CREATE INDEX `index_scene_markers_on_primary_tag_id` on `scene_markers` ... type `scene_markers_tags` (line 102) | CREATE TABLE `scene_markers_tags` ( type `index_scene_markers_tags_on_tag_id` (line 112) | CREATE INDEX `index_scene_markers_tags_on_tag_id` on `scene_markers_tags... type `index_scene_markers_tags_on_scene_marker_id` (line 113) | CREATE INDEX `index_scene_markers_tags_on_scene_marker_id` on `scene_mar... type `scenes_tags` (line 115) | CREATE TABLE `scenes_tags` ( type `index_scenes_tags_on_tag_id` (line 125) | CREATE INDEX `index_scenes_tags_on_tag_id` on `scenes_tags` (`tag_id`) type `index_scenes_tags_on_scene_id` (line 126) | CREATE INDEX `index_scenes_tags_on_scene_id` on `scenes_tags` (`scene_id`) type `movies_scenes` (line 128) | CREATE TABLE `movies_scenes` ( type `index_movies_scenes_on_movie_id` (line 139) | CREATE INDEX `index_movies_scenes_on_movie_id` on `movies_scenes` (`movi... type `index_movies_scenes_on_scene_id` (line 140) | CREATE INDEX `index_movies_scenes_on_scene_id` on `movies_scenes` (`scen... type `scenes_cover` (line 142) | CREATE TABLE `scenes_cover` ( type `index_scene_covers_on_scene_id` (line 150) | CREATE UNIQUE INDEX `index_scene_covers_on_scene_id` on `scenes_cover` (... FILE: pkg/sqlite/migrations/12_postmigrate.go function post12 (line 13) | func post12(ctx context.Context, db *sqlx.DB) error { type schema12Migrator (line 23) | type schema12Migrator struct method migrateConfig (line 27) | func (m *schema12Migrator) migrateConfig(ctx context.Context) error { function init (line 58) | func init() { FILE: pkg/sqlite/migrations/13_images.up.sql type `images` (line 1) | CREATE TABLE `images` ( type `index_images_on_studio_id` (line 17) | CREATE INDEX `index_images_on_studio_id` on `images` (`studio_id`) type `performers_images` (line 19) | CREATE TABLE `performers_images` ( type `index_performers_images_on_image_id` (line 26) | CREATE INDEX `index_performers_images_on_image_id` on `performers_images... type `index_performers_images_on_performer_id` (line 27) | CREATE INDEX `index_performers_images_on_performer_id` on `performers_im... type `images_tags` (line 29) | CREATE TABLE `images_tags` ( type `index_images_tags_on_tag_id` (line 36) | CREATE INDEX `index_images_tags_on_tag_id` on `images_tags` (`tag_id`) type `index_images_tags_on_image_id` (line 37) | CREATE INDEX `index_images_tags_on_image_id` on `images_tags` (`image_id`) type `galleries` (line 42) | CREATE TABLE `galleries` ( type `index_galleries_on_scene_id` (line 64) | CREATE INDEX `index_galleries_on_scene_id` on `galleries` (`scene_id`) type `galleries_path_unique` (line 65) | CREATE UNIQUE INDEX `galleries_path_unique` on `galleries` (`path`) type `galleries_checksum_unique` (line 66) | CREATE UNIQUE INDEX `galleries_checksum_unique` on `galleries` (`checksum`) type `index_galleries_on_studio_id` (line 67) | CREATE INDEX `index_galleries_on_studio_id` on `galleries` (`studio_id`) type `galleries_images` (line 69) | CREATE TABLE `galleries_images` ( type `index_galleries_images_on_image_id` (line 76) | CREATE INDEX `index_galleries_images_on_image_id` on `galleries_images` ... type `index_galleries_images_on_gallery_id` (line 77) | CREATE INDEX `index_galleries_images_on_gallery_id` on `galleries_images... type `performers_galleries` (line 79) | CREATE TABLE `performers_galleries` ( type `index_performers_galleries_on_gallery_id` (line 86) | CREATE INDEX `index_performers_galleries_on_gallery_id` on `performers_g... type `index_performers_galleries_on_performer_id` (line 87) | CREATE INDEX `index_performers_galleries_on_performer_id` on `performers... type `galleries_tags` (line 89) | CREATE TABLE `galleries_tags` ( type `index_galleries_tags_on_tag_id` (line 96) | CREATE INDEX `index_galleries_tags_on_tag_id` on `galleries_tags` (`tag_... type `index_galleries_tags_on_gallery_id` (line 97) | CREATE INDEX `index_galleries_tags_on_gallery_id` on `galleries_tags` (`... FILE: pkg/sqlite/migrations/14_stash_box_ids.up.sql type `scene_stash_ids` (line 1) | CREATE TABLE `scene_stash_ids` ( type `performer_stash_ids` (line 8) | CREATE TABLE `performer_stash_ids` ( type `studio_stash_ids` (line 15) | CREATE TABLE `studio_stash_ids` ( FILE: pkg/sqlite/migrations/18_scene_galleries.up.sql type `galleries` (line 7) | CREATE TABLE `galleries` ( type `galleries_path_unique` (line 30) | CREATE UNIQUE INDEX `galleries_path_unique` on `galleries` (`path`) type `galleries_checksum_unique` (line 31) | CREATE UNIQUE INDEX `galleries_checksum_unique` on `galleries` (`checksum`) type `index_galleries_on_studio_id` (line 32) | CREATE INDEX `index_galleries_on_studio_id` on `galleries` (`studio_id`) type `scenes_galleries` (line 34) | CREATE TABLE `scenes_galleries` ( type `index_scenes_galleries_on_scene_id` (line 41) | CREATE INDEX `index_scenes_galleries_on_scene_id` on `scenes_galleries` ... type `index_scenes_galleries_on_gallery_id` (line 42) | CREATE INDEX `index_scenes_galleries_on_gallery_id` on `scenes_galleries... type `galleries_images` (line 44) | CREATE TABLE `galleries_images` ( type `index_galleries_images_on_image_id` (line 54) | CREATE INDEX `index_galleries_images_on_image_id` on `galleries_images` ... type `index_galleries_images_on_gallery_id` (line 55) | CREATE INDEX `index_galleries_images_on_gallery_id` on `galleries_images... type `performers_galleries` (line 57) | CREATE TABLE `performers_galleries` ( type `index_performers_galleries_on_gallery_id` (line 67) | CREATE INDEX `index_performers_galleries_on_gallery_id` on `performers_g... type `index_performers_galleries_on_performer_id` (line 68) | CREATE INDEX `index_performers_galleries_on_performer_id` on `performers... type `galleries_tags` (line 70) | CREATE TABLE `galleries_tags` ( type `index_galleries_tags_on_tag_id` (line 80) | CREATE INDEX `index_galleries_tags_on_tag_id` on `galleries_tags` (`tag_... type `index_galleries_tags_on_gallery_id` (line 81) | CREATE INDEX `index_galleries_tags_on_gallery_id` on `galleries_tags` (`... FILE: pkg/sqlite/migrations/19_performer_tags.up.sql type `performers_tags` (line 1) | CREATE TABLE `performers_tags` ( type `index_performers_tags_on_tag_id` (line 8) | CREATE INDEX `index_performers_tags_on_tag_id` on `performers_tags` (`ta... type `index_performers_tags_on_performer_id` (line 9) | CREATE INDEX `index_performers_tags_on_performer_id` on `performers_tags... FILE: pkg/sqlite/migrations/1_initial.up.sql type `tags` (line 1) | CREATE TABLE `tags` ( type `studios` (line 7) | CREATE TABLE `studios` ( type `scraped_items` (line 16) | CREATE TABLE `scraped_items` ( type `scenes_tags` (line 35) | CREATE TABLE `scenes_tags` ( type `scenes` (line 41) | CREATE TABLE `scenes` ( type `scene_markers_tags` (line 63) | CREATE TABLE `scene_markers_tags` ( type `scene_markers` (line 69) | CREATE TABLE `scene_markers` ( type `performers_scenes` (line 80) | CREATE TABLE `performers_scenes` ( type `performers` (line 86) | CREATE TABLE `performers` ( type `galleries` (line 109) | CREATE TABLE `galleries` ( type `studios_checksum_unique` (line 118) | CREATE UNIQUE INDEX `studios_checksum_unique` on `studios` (`checksum`) type `scenes_path_unique` (line 119) | CREATE UNIQUE INDEX `scenes_path_unique` on `scenes` (`path`) type `scenes_checksum_unique` (line 120) | CREATE UNIQUE INDEX `scenes_checksum_unique` on `scenes` (`checksum`) type `performers_checksum_unique` (line 121) | CREATE UNIQUE INDEX `performers_checksum_unique` on `performers` (`check... type `index_tags_on_name` (line 122) | CREATE INDEX `index_tags_on_name` on `tags` (`name`) type `index_studios_on_name` (line 123) | CREATE INDEX `index_studios_on_name` on `studios` (`name`) type `index_studios_on_checksum` (line 124) | CREATE INDEX `index_studios_on_checksum` on `studios` (`checksum`) type `index_scraped_items_on_studio_id` (line 125) | CREATE INDEX `index_scraped_items_on_studio_id` on `scraped_items` (`stu... type `index_scenes_tags_on_tag_id` (line 126) | CREATE INDEX `index_scenes_tags_on_tag_id` on `scenes_tags` (`tag_id`) type `index_scenes_tags_on_scene_id` (line 127) | CREATE INDEX `index_scenes_tags_on_scene_id` on `scenes_tags` (`scene_id`) type `index_scenes_on_studio_id` (line 128) | CREATE INDEX `index_scenes_on_studio_id` on `scenes` (`studio_id`) type `index_scene_markers_tags_on_tag_id` (line 129) | CREATE INDEX `index_scene_markers_tags_on_tag_id` on `scene_markers_tags... type `index_scene_markers_tags_on_scene_marker_id` (line 130) | CREATE INDEX `index_scene_markers_tags_on_scene_marker_id` on `scene_mar... type `index_scene_markers_on_scene_id` (line 131) | CREATE INDEX `index_scene_markers_on_scene_id` on `scene_markers` (`scen... type `index_scene_markers_on_primary_tag_id` (line 132) | CREATE INDEX `index_scene_markers_on_primary_tag_id` on `scene_markers` ... type `index_performers_scenes_on_scene_id` (line 133) | CREATE INDEX `index_performers_scenes_on_scene_id` on `performers_scenes... type `index_performers_scenes_on_performer_id` (line 134) | CREATE INDEX `index_performers_scenes_on_performer_id` on `performers_sc... type `index_performers_on_name` (line 135) | CREATE INDEX `index_performers_on_name` on `performers` (`name`) type `index_performers_on_checksum` (line 136) | CREATE INDEX `index_performers_on_checksum` on `performers` (`checksum`) type `index_galleries_on_scene_id` (line 137) | CREATE INDEX `index_galleries_on_scene_id` on `galleries` (`scene_id`) type `galleries_path_unique` (line 138) | CREATE UNIQUE INDEX `galleries_path_unique` on `galleries` (`path`) type `galleries_checksum_unique` (line 139) | CREATE UNIQUE INDEX `galleries_checksum_unique` on `galleries` (`checksum`) FILE: pkg/sqlite/migrations/24_tag_aliases.up.sql type `tag_aliases` (line 1) | CREATE TABLE `tag_aliases` ( type `tag_aliases_alias_unique` (line 7) | CREATE UNIQUE INDEX `tag_aliases_alias_unique` on `tag_aliases` (`alias`) FILE: pkg/sqlite/migrations/25_saved_filters.up.sql type `saved_filters` (line 1) | CREATE TABLE `saved_filters` ( type `index_saved_filters_on_mode_name_unique` (line 8) | CREATE UNIQUE INDEX `index_saved_filters_on_mode_name_unique` on `saved_... FILE: pkg/sqlite/migrations/26_tag_hierarchy.up.sql type tags_relations (line 1) | CREATE TABLE tags_relations ( FILE: pkg/sqlite/migrations/27_studio_aliases.up.sql type `studio_aliases` (line 1) | CREATE TABLE `studio_aliases` ( type `studio_aliases_alias_unique` (line 7) | CREATE UNIQUE INDEX `studio_aliases_alias_unique` on `studio_aliases` (`... FILE: pkg/sqlite/migrations/28_images_indexes.up.sql type `images_path_unique` (line 3) | CREATE UNIQUE INDEX `images_path_unique` ON `images` (`path`) FILE: pkg/sqlite/migrations/31_scenes_captions.up.sql type `scene_captions` (line 1) | CREATE TABLE `scene_captions` ( FILE: pkg/sqlite/migrations/32_files.up.sql type `folders` (line 2) | CREATE TABLE `folders` ( type `index_folders_on_parent_folder_id` (line 12) | CREATE INDEX `index_folders_on_parent_folder_id` on `folders` (`parent_f... type `index_folders_on_path_unique` (line 13) | CREATE UNIQUE INDEX `index_folders_on_path_unique` on `folders` (`path`) type `files` (line 16) | CREATE TABLE `files` ( type `index_files_zip_basename_unique` (line 30) | CREATE UNIQUE INDEX `index_files_zip_basename_unique` ON `files` (`zip_f... type `index_files_on_parent_folder_id_basename_unique` (line 31) | CREATE UNIQUE INDEX `index_files_on_parent_folder_id_basename_unique` on... type `index_files_on_basename` (line 32) | CREATE INDEX `index_files_on_basename` on `files` (`basename`) type `index_folders_on_zip_file_id` (line 35) | CREATE INDEX `index_folders_on_zip_file_id` on `folders` (`zip_file_id`)... type `files_fingerprints` (line 37) | CREATE TABLE `files_fingerprints` ( type `index_fingerprint_type_fingerprint` (line 45) | CREATE INDEX `index_fingerprint_type_fingerprint` ON `files_fingerprints... type `video_files` (line 47) | CREATE TABLE `video_files` ( type `video_captions` (line 62) | CREATE TABLE `video_captions` ( type `image_files` (line 71) | CREATE TABLE `image_files` ( type `images_files` (line 79) | CREATE TABLE `images_files` ( type `index_images_files_on_file_id` (line 88) | CREATE INDEX `index_images_files_on_file_id` on `images_files` (`file_id`) type `unique_index_images_files_on_primary` (line 89) | CREATE UNIQUE INDEX `unique_index_images_files_on_primary` on `images_fi... type `galleries_files` (line 91) | CREATE TABLE `galleries_files` ( type `index_galleries_files_file_id` (line 100) | CREATE INDEX `index_galleries_files_file_id` ON `galleries_files` (`file... type `unique_index_galleries_files_on_primary` (line 101) | CREATE UNIQUE INDEX `unique_index_galleries_files_on_primary` on `galler... type `scenes_files` (line 103) | CREATE TABLE `scenes_files` ( type `index_scenes_files_file_id` (line 112) | CREATE INDEX `index_scenes_files_file_id` ON `scenes_files` (`file_id`) type `unique_index_scenes_files_on_primary` (line 113) | CREATE UNIQUE INDEX `unique_index_scenes_files_on_primary` on `scenes_fi... type `images_new` (line 117) | CREATE TABLE `images_new` ( type `index_images_on_studio_id` (line 222) | CREATE INDEX `index_images_on_studio_id` on `images` (`studio_id`) type `galleries_new` (line 225) | CREATE TABLE `galleries_new` ( type `index_galleries_on_studio_id` (line 361) | CREATE INDEX `index_galleries_on_studio_id` on `galleries` (`studio_id`) type `index_galleries_on_folder_id_unique` (line 363) | CREATE UNIQUE INDEX `index_galleries_on_folder_id_unique` on `galleries`... type `scenes_new` (line 365) | CREATE TABLE `scenes_new` ( type `index_scenes_on_studio_id` (line 545) | CREATE INDEX `index_scenes_on_studio_id` on `scenes` (`studio_id`) FILE: pkg/sqlite/migrations/32_postmigrate.go constant legacyZipSeparator (line 17) | legacyZipSeparator = "\x00" function post32 (line 19) | func post32(ctx context.Context, db *sqlx.DB) error { type folderInfo (line 44) | type folderInfo struct type schema32Migrator (line 49) | type schema32Migrator struct method migrateFolders (line 54) | func (m *schema32Migrator) migrateFolders(ctx context.Context) error { method migrateFiles (line 125) | func (m *schema32Migrator) migrateFiles(ctx context.Context) error { method deletePlaceholderFolder (line 224) | func (m *schema32Migrator) deletePlaceholderFolder(ctx context.Context... method createFolderHierarchy (line 254) | func (m *schema32Migrator) createFolderHierarchy(tx *sqlx.Tx, p string... method getOrCreateFolder (line 283) | func (m *schema32Migrator) getOrCreateFolder(tx *sqlx.Tx, path string,... function init (line 336) | func init() { FILE: pkg/sqlite/migrations/32_premigrate.go function pre32 (line 13) | func pre32(ctx context.Context, db *sqlx.DB) error { type schema32PreMigrator (line 29) | type schema32PreMigrator struct method migrate (line 33) | func (m *schema32PreMigrator) migrate(ctx context.Context) error { function init (line 126) | func init() { FILE: pkg/sqlite/migrations/34_indexes.up.sql type `index_performer_stash_ids_on_performer_id` (line 1) | CREATE INDEX `index_performer_stash_ids_on_performer_id` ON `performer_s... type `index_scene_stash_ids_on_scene_id` (line 2) | CREATE INDEX `index_scene_stash_ids_on_scene_id` ON `scene_stash_ids` (`... type `index_studio_stash_ids_on_studio_id` (line 3) | CREATE INDEX `index_studio_stash_ids_on_studio_id` ON `studio_stash_ids`... FILE: pkg/sqlite/migrations/34_postmigrate.go type schema34Migrator (line 14) | type schema34Migrator struct method migrateObjects (line 54) | func (m *schema34Migrator) migrateObjects(ctx context.Context, table s... function post34 (line 18) | func post34(ctx context.Context, db *sqlx.DB) error { function init (line 152) | func init() { FILE: pkg/sqlite/migrations/35_assoc_tables.up.sql type `performers_image_new` (line 4) | CREATE TABLE `performers_image_new` ( type `studios_image_new` (line 28) | CREATE TABLE `studios_image_new` ( type `movies_images_new` (line 52) | CREATE TABLE `movies_images_new` ( type `tags_image_new` (line 79) | CREATE TABLE `tags_image_new` ( type `performers_scenes_new` (line 103) | CREATE TABLE `performers_scenes_new` ( type `index_performers_scenes_on_performer_id` (line 126) | CREATE INDEX `index_performers_scenes_on_performer_id` on `performers_sc... type `scene_markers_tags_new` (line 132) | CREATE TABLE `scene_markers_tags_new` ( type `index_scene_markers_tags_on_tag_id` (line 155) | CREATE INDEX `index_scene_markers_tags_on_tag_id` on `scene_markers_tags... type `scenes_tags_new` (line 161) | CREATE TABLE `scenes_tags_new` ( type `index_scenes_tags_on_tag_id` (line 184) | CREATE INDEX `index_scenes_tags_on_tag_id` on `scenes_tags` (`tag_id`) type `movies_scenes_new` (line 190) | CREATE TABLE `movies_scenes_new` ( type `index_movies_scenes_on_movie_id` (line 216) | CREATE INDEX `index_movies_scenes_on_movie_id` on `movies_scenes` (`movi... type `scenes_cover_new` (line 222) | CREATE TABLE `scenes_cover_new` ( type `performers_images_new` (line 246) | CREATE TABLE `performers_images_new` ( type `index_performers_images_on_performer_id` (line 269) | CREATE INDEX `index_performers_images_on_performer_id` on `performers_im... type `images_tags_new` (line 275) | CREATE TABLE `images_tags_new` ( type `index_images_tags_on_tag_id` (line 298) | CREATE INDEX `index_images_tags_on_tag_id` on `images_tags` (`tag_id`) type `scene_stash_ids_new` (line 304) | CREATE TABLE `scene_stash_ids_new` ( type `scenes_galleries_new` (line 332) | CREATE TABLE `scenes_galleries_new` ( type `index_scenes_galleries_on_gallery_id` (line 355) | CREATE INDEX `index_scenes_galleries_on_gallery_id` on `scenes_galleries... type `galleries_images_new` (line 361) | CREATE TABLE `galleries_images_new` ( type `index_galleries_images_on_image_id` (line 384) | CREATE INDEX `index_galleries_images_on_image_id` on `galleries_images` ... type `performers_galleries_new` (line 390) | CREATE TABLE `performers_galleries_new` ( type `index_performers_galleries_on_performer_id` (line 413) | CREATE INDEX `index_performers_galleries_on_performer_id` on `performers... type `galleries_tags_new` (line 419) | CREATE TABLE `galleries_tags_new` ( type `index_galleries_tags_on_tag_id` (line 442) | CREATE INDEX `index_galleries_tags_on_tag_id` on `galleries_tags` (`tag_... type `performers_tags_new` (line 448) | CREATE TABLE `performers_tags_new` ( type `index_performers_tags_on_tag_id` (line 470) | CREATE INDEX `index_performers_tags_on_tag_id` on `performers_tags` (`ta... type `tag_aliases_new` (line 476) | CREATE TABLE `tag_aliases_new` ( type `tag_aliases_alias_unique` (line 496) | CREATE UNIQUE INDEX `tag_aliases_alias_unique` on `tag_aliases` (`alias`) type `studio_aliases_new` (line 499) | CREATE TABLE `studio_aliases_new` ( type `studio_aliases_alias_unique` (line 519) | CREATE UNIQUE INDEX `studio_aliases_alias_unique` on `studio_aliases` (`... FILE: pkg/sqlite/migrations/39_performer_height.up.sql type `performers_new` (line 4) | CREATE TABLE `performers_new` ( type `performers_checksum_unique` (line 102) | CREATE UNIQUE INDEX `performers_checksum_unique` on `performers` (`check... type `index_performers_on_name` (line 103) | CREATE INDEX `index_performers_on_name` on `performers` (`name`) FILE: pkg/sqlite/migrations/42_performer_disambig_aliases.up.sql type `performer_aliases` (line 3) | CREATE TABLE `performer_aliases` ( type `performer_aliases_alias` (line 10) | CREATE INDEX `performer_aliases_alias` on `performer_aliases` (`alias`) type `performers_new` (line 17) | CREATE TABLE `performers_new` ( FILE: pkg/sqlite/migrations/42_postmigrate.go type schema42Migrator (line 17) | type schema42Migrator struct method migrate (line 51) | func (m *schema42Migrator) migrate(ctx context.Context) error { method migratePerformerAliases (line 117) | func (m *schema42Migrator) migratePerformerAliases(tx *sqlx.Tx, id int... method migratePerformersDisam (line 152) | func (m *schema42Migrator) migratePerformersDisam(ctx context.Context)... method massagePerformerName (line 223) | func (m *schema42Migrator) massagePerformerName(tx *sqlx.Tx, performer... method migrateDuplicatePerformers (line 246) | func (m *schema42Migrator) migrateDuplicatePerformers(ctx context.Cont... method migrateDuplicatePerformer (line 311) | func (m *schema42Migrator) migrateDuplicatePerformer(tx *sqlx.Tx, perf... method executeSchemaChanges (line 344) | func (m *schema42Migrator) executeSchemaChanges() error { function post42 (line 21) | func post42(ctx context.Context, db *sqlx.DB) error { function init (line 351) | func init() { FILE: pkg/sqlite/migrations/44_gallery_chapters.up.sql type `galleries_chapters` (line 1) | CREATE TABLE `galleries_chapters` ( type `index_galleries_chapters_on_gallery_id` (line 10) | CREATE INDEX `index_galleries_chapters_on_gallery_id` on `galleries_chap... FILE: pkg/sqlite/migrations/45_blobs.up.sql type `blobs` (line 1) | CREATE TABLE `blobs` ( FILE: pkg/sqlite/migrations/45_postmigrate.go type schema45Migrator (line 16) | type schema45Migrator struct method migrateImagesTable (line 146) | func (m *schema45Migrator) migrateImagesTable(ctx context.Context, opt... method insertImage (line 227) | func (m *schema45Migrator) insertImage(tx *sqlx.Tx, data []byte, id in... method dropTable (line 247) | func (m *schema45Migrator) dropTable(ctx context.Context, table string... method migrateConfig (line 259) | func (m *schema45Migrator) migrateConfig(ctx context.Context) error { function post45 (line 21) | func post45(ctx context.Context, db *sqlx.DB) error { type migrateImageToBlobOptions (line 125) | type migrateImageToBlobOptions struct type migrateImagesTableOptions (line 130) | type migrateImagesTableOptions struct method selectColumns (line 137) | func (o migrateImagesTableOptions) selectColumns() string { function init (line 294) | func init() { FILE: pkg/sqlite/migrations/47_scene_urls.up.sql type `scene_urls` (line 3) | CREATE TABLE `scene_urls` ( type `scene_urls_url` (line 11) | CREATE INDEX `scene_urls_url` on `scene_urls` (`url`) type "scenes_new" (line 14) | CREATE TABLE "scenes_new" ( type `index_scenes_on_studio_id` (line 92) | CREATE INDEX `index_scenes_on_studio_id` on `scenes` (`studio_id`) FILE: pkg/sqlite/migrations/48_cleanup.up.sql type `scene_markers_new` (line 16) | CREATE TABLE `scene_markers_new` ( type `index_scene_markers_on_primary_tag_id` (line 32) | CREATE INDEX `index_scene_markers_on_primary_tag_id` ON `scene_markers`(... type `index_scene_markers_on_scene_id` (line 33) | CREATE INDEX `index_scene_markers_on_scene_id` ON `scene_markers`(`scene... type `movies_new` (line 42) | CREATE TABLE `movies_new` ( type `index_movies_on_name_unique` (line 64) | CREATE UNIQUE INDEX `index_movies_on_name_unique` ON `movies`(`name`) type `index_movies_on_studio_id` (line 65) | CREATE INDEX `index_movies_on_studio_id` on `movies` (`studio_id`) type `studios_new` (line 72) | CREATE TABLE `studios_new` ( type `index_studios_on_name_unique` (line 89) | CREATE UNIQUE INDEX `index_studios_on_name_unique` ON `studios`(`name`) FILE: pkg/sqlite/migrations/48_premigrate.go function pre48 (line 12) | func pre48(ctx context.Context, db *sqlx.DB) error { type schema48PreMigrator (line 32) | type schema48PreMigrator struct method validateScrapedItems (line 36) | func (m *schema48PreMigrator) validateScrapedItems(ctx context.Context... method fixStudioNames (line 52) | func (m *schema48PreMigrator) fixStudioNames(ctx context.Context) error { function init (line 148) | func init() { FILE: pkg/sqlite/migrations/49_postmigrate.go function post49 (line 97) | func post49(ctx context.Context, db *sqlx.DB) error { type schema49Migrator (line 109) | type schema49Migrator struct method migrateSavedFilters (line 113) | func (m *schema49Migrator) migrateSavedFilters(ctx context.Context) er... method getDisplayOptions (line 164) | func (m *schema49Migrator) getDisplayOptions(data json.RawMessage) (js... method getFindFilter (line 186) | func (m *schema49Migrator) getFindFilter(data json.RawMessage) (json.R... method getObjectFilter (line 221) | func (m *schema49Migrator) getObjectFilter(mode models.FilterMode, dat... method convertCriterion (line 241) | func (m *schema49Migrator) convertCriterion(mode models.FilterMode, ou... method adjustCriterionValue (line 297) | func (m *schema49Migrator) adjustCriterionValue(value interface{}, typ... method adjustCriterionItem (line 370) | func (m *schema49Migrator) adjustCriterionItem(value interface{}) (int... method convertValue (line 402) | func (m *schema49Migrator) convertValue(value interface{}, typ string)... function arrayContains (line 287) | func arrayContains(sl []string, name string) bool { function init (line 424) | func init() { FILE: pkg/sqlite/migrations/49_saved_filter_refactor.up.sql type `saved_filters_new` (line 4) | CREATE TABLE `saved_filters_new` ( type `index_saved_filters_on_mode_name_unique` (line 32) | CREATE UNIQUE INDEX `index_saved_filters_on_mode_name_unique` on `saved_... FILE: pkg/sqlite/migrations/4_movie.up.sql type `movies` (line 1) | CREATE TABLE `movies` ( type `movies_scenes` (line 17) | CREATE TABLE `movies_scenes` ( type `movies_checksum_unique` (line 27) | CREATE UNIQUE INDEX `movies_checksum_unique` on `movies` (`checksum`) type `index_movie_id_scene_index_unique` (line 28) | CREATE UNIQUE INDEX `index_movie_id_scene_index_unique` ON `movies_scene... type `index_movies_scenes_on_movie_id` (line 29) | CREATE INDEX `index_movies_scenes_on_movie_id` on `movies_scenes` (`movi... type `index_movies_scenes_on_scene_id` (line 30) | CREATE INDEX `index_movies_scenes_on_scene_id` on `movies_scenes` (`scen... FILE: pkg/sqlite/migrations/50_image_urls.up.sql type `image_urls` (line 3) | CREATE TABLE `image_urls` ( type `image_urls_url` (line 11) | CREATE INDEX `image_urls_url` on `image_urls` (`url`) type "images_new" (line 14) | CREATE TABLE "images_new" ( type `index_images_on_studio_id` (line 68) | CREATE INDEX `index_images_on_studio_id` on `images` (`studio_id`) FILE: pkg/sqlite/migrations/51_gallery_urls.up.sql type `gallery_urls` (line 3) | CREATE TABLE `gallery_urls` ( type `gallery_urls_url` (line 11) | CREATE INDEX `gallery_urls_url` on `gallery_urls` (`url`) type `galleries_new` (line 14) | CREATE TABLE `galleries_new` ( type `index_galleries_on_studio_id` (line 73) | CREATE INDEX `index_galleries_on_studio_id` on `galleries` (`studio_id`) type `index_galleries_on_folder_id_unique` (line 74) | CREATE UNIQUE INDEX `index_galleries_on_folder_id_unique` on `galleries`... FILE: pkg/sqlite/migrations/52_postmigrate.go type schema52Migrator (line 16) | type schema52Migrator struct method migrate (line 32) | func (m *schema52Migrator) migrate(ctx context.Context) error { function post52 (line 20) | func post52(ctx context.Context, db *sqlx.DB) error { function init (line 92) | func init() { FILE: pkg/sqlite/migrations/55_manual_history.up.sql type `scenes_view_dates` (line 3) | CREATE TABLE `scenes_view_dates` ( type `scenes_o_dates` (line 9) | CREATE TABLE `scenes_o_dates` ( type "scenes_new" (line 16) | CREATE TABLE "scenes_new" ( type `index_scenes_on_studio_id` (line 109) | CREATE INDEX `index_scenes_on_studio_id` on `scenes` (`studio_id`) FILE: pkg/sqlite/migrations/55_postmigrate.go type schema55Migrator (line 12) | type schema55Migrator struct method migrate (line 28) | func (m *schema55Migrator) migrate(ctx context.Context) error { function post55 (line 16) | func post55(ctx context.Context, db *sqlx.DB) error { function init (line 69) | func init() { FILE: pkg/sqlite/migrations/58_postmigrate.go type schema58Migrator (line 19) | type schema58Migrator struct method migrate (line 35) | func (m *schema58Migrator) migrate() error { method fromSnakeCase (line 44) | func (m *schema58Migrator) fromSnakeCase(v string) string { method fromSnakeCaseMap (line 66) | func (m *schema58Migrator) fromSnakeCaseMap(mm map[string]interface{})... method fromSnakeCaseValue (line 70) | func (m *schema58Migrator) fromSnakeCaseValue(val interface{}) interfa... method renameKey (line 98) | func (m *schema58Migrator) renameKey(mm map[string]interface{}, from, ... method renameFrontPageContentKeys (line 109) | func (m *schema58Migrator) renameFrontPageContentKeys(ui map[string]in... method migrateConfig (line 122) | func (m *schema58Migrator) migrateConfig() error { function post58 (line 23) | func post58(ctx context.Context, db *sqlx.DB) error { function init (line 176) | func init() { FILE: pkg/sqlite/migrations/59_movie_urls.up.sql type `movie_urls` (line 3) | CREATE TABLE `movie_urls` ( type `movie_urls_url` (line 11) | CREATE INDEX `movie_urls_url` on `movie_urls` (`url`) type `movies_new` (line 14) | CREATE TABLE `movies_new` ( type `index_movies_on_name` (line 80) | CREATE INDEX `index_movies_on_name` ON `movies`(`name`) type `index_movies_on_studio_id` (line 81) | CREATE INDEX `index_movies_on_studio_id` on `movies` (`studio_id`) FILE: pkg/sqlite/migrations/5_performer_gender.down.sql type `performers` (line 18) | CREATE TABLE `performers` ( type `performers_scenes` (line 42) | CREATE TABLE `performers_scenes` ( type `index_performers_on_name` (line 84) | CREATE INDEX `index_performers_on_name` on `performers` (`name`) type `index_performers_on_checksum` (line 85) | CREATE INDEX `index_performers_on_checksum` on `performers` (`checksum`) type `index_performers_scenes_on_scene_id` (line 86) | CREATE INDEX `index_performers_scenes_on_scene_id` on `performers_scenes... type `index_performers_scenes_on_performer_id` (line 87) | CREATE INDEX `index_performers_scenes_on_performer_id` on `performers_sc... FILE: pkg/sqlite/migrations/60_postmigrate.go type schema60Migrator (line 17) | type schema60Migrator struct method decodeJSON (line 33) | func (m *schema60Migrator) decodeJSON(s string, v interface{}) { method migrate (line 45) | func (m *schema60Migrator) migrate(ctx context.Context) error { method saveDefaultFilters (line 113) | func (m *schema60Migrator) saveDefaultFilters(defaultFilters schema60D... method backupConfig (line 155) | func (m *schema60Migrator) backupConfig(orgPath string) error { function post60 (line 21) | func post60(ctx context.Context, db *sqlx.DB) error { type schema60DefaultFilters (line 43) | type schema60DefaultFilters function init (line 174) | func init() { FILE: pkg/sqlite/migrations/61_movie_tags.up.sql type `movies_tags` (line 1) | CREATE TABLE `movies_tags` ( type `index_movies_tags_on_tag_id` (line 9) | CREATE INDEX `index_movies_tags_on_tag_id` on `movies_tags` (`tag_id`) type `index_movies_tags_on_movie_id` (line 10) | CREATE INDEX `index_movies_tags_on_movie_id` on `movies_tags` (`movie_id`) FILE: pkg/sqlite/migrations/62_performer_urls.up.sql type `performer_urls` (line 3) | CREATE TABLE `performer_urls` ( type `performers_urls_url` (line 11) | CREATE INDEX `performers_urls_url` on `performer_urls` (`url`) type `performers_new` (line 15) | CREATE TABLE `performers_new` ( type `performers_name_disambiguation_unique` (line 152) | CREATE UNIQUE INDEX `performers_name_disambiguation_unique` on `performe... type `performers_name_unique` (line 153) | CREATE UNIQUE INDEX `performers_name_unique` on `performers` (`name`) WH... FILE: pkg/sqlite/migrations/63_studio_tags.up.sql type `studios_tags` (line 1) | CREATE TABLE `studios_tags` ( type `index_studios_tags_on_tag_id` (line 9) | CREATE INDEX `index_studios_tags_on_tag_id` on `studios_tags` (`tag_id`) FILE: pkg/sqlite/migrations/64_fixes.up.sql type `scenes_view_dates_new` (line 4) | CREATE TABLE `scenes_view_dates_new` ( type `index_scenes_view_dates` (line 24) | CREATE INDEX `index_scenes_view_dates` ON `scenes_view_dates` (`scene_id`) type `scenes_o_dates_new` (line 27) | CREATE TABLE `scenes_o_dates_new` ( type `index_scenes_o_dates` (line 47) | CREATE INDEX `index_scenes_o_dates` ON `scenes_o_dates` (`scene_id`) FILE: pkg/sqlite/migrations/64_postmigrate.go type schema64Migrator (line 16) | type schema64Migrator struct method migrate (line 32) | func (m *schema64Migrator) migrate(ctx context.Context) error { function post64 (line 20) | func post64(ctx context.Context, db *sqlx.DB) error { function init (line 90) | func init() { FILE: pkg/sqlite/migrations/65_movie_group_rename.up.sql type `index_groups_on_name` (line 5) | CREATE INDEX `index_groups_on_name` ON `groups`(`name`) type `index_groups_on_studio_id` (line 7) | CREATE INDEX `index_groups_on_studio_id` on `groups` (`studio_id`) type `group_urls_url` (line 13) | CREATE INDEX `group_urls_url` on `group_urls` (`url`) type `index_groups_tags_on_tag_id` (line 19) | CREATE INDEX `index_groups_tags_on_tag_id` on `groups_tags` (`tag_id`) type `index_groups_tags_on_movie_id` (line 21) | CREATE INDEX `index_groups_tags_on_movie_id` on `groups_tags` (`group_id`) FILE: pkg/sqlite/migrations/65_postmigrate.go type schema65Migrator (line 15) | type schema65Migrator struct method migrate (line 31) | func (m *schema65Migrator) migrate() error { method migrateConfig (line 39) | func (m *schema65Migrator) migrateConfig() error { function post65 (line 19) | func post65(ctx context.Context, db *sqlx.DB) error { function init (line 86) | func init() { FILE: pkg/sqlite/migrations/66_gallery_cover.up.sql type `index_galleries_images_gallery_id_cover` (line 2) | CREATE UNIQUE INDEX `index_galleries_images_gallery_id_cover` on `galler... FILE: pkg/sqlite/migrations/67_group_relationships.up.sql type `groups_relations` (line 1) | CREATE TABLE `groups_relations` ( type `index_groups_relations_sub_id` (line 12) | CREATE INDEX `index_groups_relations_sub_id` ON `groups_relations` (`sub... type `index_groups_relations_order_index_unique` (line 13) | CREATE UNIQUE INDEX `index_groups_relations_order_index_unique` ON `grou... FILE: pkg/sqlite/migrations/68_image_studio_index.up.sql type `index_images_on_studio_id` (line 7) | CREATE INDEX `index_images_on_studio_id` on `images` (`studio_id`) WHERE... FILE: pkg/sqlite/migrations/71_custom_fields.up.sql type `performer_custom_fields` (line 1) | CREATE TABLE `performer_custom_fields` ( type `index_performer_custom_fields_field_value` (line 9) | CREATE INDEX `index_performer_custom_fields_field_value` ON `performer_c... FILE: pkg/sqlite/migrations/73_studio_urls.up.sql type `studio_urls` (line 1) | CREATE TABLE `studio_urls` ( type `studio_urls_url` (line 9) | CREATE INDEX `studio_urls_url` on `studio_urls` (`url`) FILE: pkg/sqlite/migrations/74_tag_stash_ids.up.sql type `tag_stash_ids` (line 1) | CREATE TABLE `tag_stash_ids` ( FILE: pkg/sqlite/migrations/76_studio_custom_fields.up.sql type `studio_custom_fields` (line 1) | CREATE TABLE `studio_custom_fields` ( type `index_studio_custom_fields_field_value` (line 9) | CREATE INDEX `index_studio_custom_fields_field_value` ON `studio_custom_... FILE: pkg/sqlite/migrations/77_tag_custom_fields.up.sql type `tag_custom_fields` (line 1) | CREATE TABLE `tag_custom_fields` ( type `index_tag_custom_fields_field_value` (line 9) | CREATE INDEX `index_tag_custom_fields_field_value` ON `tag_custom_fields... FILE: pkg/sqlite/migrations/78_postmigrate.go type schema78Migrator (line 14) | type schema78Migrator struct method migrateCareerLength (line 38) | func (m *schema78Migrator) migrateCareerLength(ctx context.Context) er... method updateCareerFields (line 110) | func (m *schema78Migrator) updateCareerFields(tx *sqlx.Tx, id int, sta... method preserveAsCustomField (line 131) | func (m *schema78Migrator) preserveAsCustomField(tx *sqlx.Tx, id int, ... method dropCareerLength (line 147) | func (m *schema78Migrator) dropCareerLength() error { function post78 (line 18) | func post78(ctx context.Context, db *sqlx.DB) error { function init (line 154) | func init() { FILE: pkg/sqlite/migrations/79_scene_custom_fields.up.sql type `scene_custom_fields` (line 1) | CREATE TABLE `scene_custom_fields` ( type `index_scene_custom_fields_field_value` (line 9) | CREATE INDEX `index_scene_custom_fields_field_value` ON `scene_custom_fi... FILE: pkg/sqlite/migrations/7_performer_optimization.up.sql type `performers` (line 5) | CREATE TABLE `performers` ( type `performers_checksum_unique` (line 29) | CREATE UNIQUE INDEX `performers_checksum_unique` on `performers` (`check... type `index_performers_on_name` (line 30) | CREATE INDEX `index_performers_on_name` on `performers` (`name`) type `performers_scenes` (line 83) | CREATE TABLE `performers_scenes` ( type `index_performers_scenes_on_scene_id` (line 89) | CREATE INDEX `index_performers_scenes_on_scene_id` on `performers_scenes... type `index_performers_scenes_on_performer_id` (line 90) | CREATE INDEX `index_performers_scenes_on_performer_id` on `performers_sc... FILE: pkg/sqlite/migrations/81_gallery_custom_fields.up.sql type `gallery_custom_fields` (line 1) | CREATE TABLE `gallery_custom_fields` ( type `index_gallery_custom_fields_field_value` (line 9) | CREATE INDEX `index_gallery_custom_fields_field_value` ON `gallery_custo... FILE: pkg/sqlite/migrations/82_group_custom_fields.up.sql type `group_custom_fields` (line 1) | CREATE TABLE `group_custom_fields` ( type `index_group_custom_fields_field_value` (line 9) | CREATE INDEX `index_group_custom_fields_field_value` ON `group_custom_fi... FILE: pkg/sqlite/migrations/83_image_custom_fields.up.sql type `image_custom_fields` (line 1) | CREATE TABLE `image_custom_fields` ( type `index_image_custom_fields_field_value` (line 9) | CREATE INDEX `index_image_custom_fields_field_value` ON `image_custom_fi... FILE: pkg/sqlite/migrations/84_folder_basename.up.sql type `folders_new` (line 5) | CREATE TABLE `folders_new` ( type `index_folders_on_path_unique` (line 45) | CREATE UNIQUE INDEX `index_folders_on_path_unique` on `folders` (`path`) type `index_folders_on_parent_folder_id_basename_unique` (line 46) | CREATE UNIQUE INDEX `index_folders_on_parent_folder_id_basename_unique` ... type `index_folders_on_zip_file_id` (line 47) | CREATE INDEX `index_folders_on_zip_file_id` on `folders` (`zip_file_id`)... type `index_folders_on_basename` (line 48) | CREATE INDEX `index_folders_on_basename` on `folders` (`basename`) FILE: pkg/sqlite/migrations/84_postmigrate.go function post84 (line 19) | func post84(ctx context.Context, db *sqlx.DB) error { type schema84Migrator (line 46) | type schema84Migrator struct method createMissingFolderHierarchies (line 51) | func (m *schema84Migrator) createMissingFolderHierarchies(ctx context.... method findFolderByPath (line 146) | func (m *schema84Migrator) findFolderByPath(tx *sqlx.Tx, path string) ... method getOrCreateFolderHierarchy (line 163) | func (m *schema84Migrator) getOrCreateFolderHierarchy(tx *sqlx.Tx, pat... method fixIncorrectParents (line 216) | func (m *schema84Migrator) fixIncorrectParents(ctx context.Context, ro... method migrateFolders (line 312) | func (m *schema84Migrator) migrateFolders(ctx context.Context) error { function init (line 383) | func init() { FILE: pkg/sqlite/migrations/85_performer_career_dates.up.sql type "performers_new" (line 4) | CREATE TABLE IF NOT EXISTS "performers_new" ( type `performers_name_disambiguation_unique` (line 109) | CREATE UNIQUE INDEX `performers_name_disambiguation_unique` on `performe... type `performers_name_unique` (line 110) | CREATE UNIQUE INDEX `performers_name_unique` on `performers` (`name`) WH... FILE: pkg/sqlite/migrations/8_movie_fix.up.sql type `movies` (line 10) | CREATE TABLE `movies` ( type `movies_scenes` (line 31) | CREATE TABLE `movies_scenes` ( type `movies_name_unique` (line 41) | CREATE UNIQUE INDEX `movies_name_unique` on `movies` (`name`) type `movies_checksum_unique` (line 42) | CREATE UNIQUE INDEX `movies_checksum_unique` on `movies` (`checksum`) type `index_movies_scenes_on_movie_id` (line 44) | CREATE INDEX `index_movies_scenes_on_movie_id` on `movies_scenes` (`movi... type `index_movies_scenes_on_scene_id` (line 45) | CREATE INDEX `index_movies_scenes_on_scene_id` on `movies_scenes` (`scen... type `index_movies_on_studio_id` (line 46) | CREATE INDEX `index_movies_on_studio_id` on `movies` (`studio_id`) FILE: pkg/sqlite/migrations/9_studios_parent_studio.up.sql type index_studios_on_parent_id (line 3) | CREATE INDEX index_studios_on_parent_id on studios (parent_id) FILE: pkg/sqlite/migrations/custom_migration.go type migrator (line 10) | type migrator struct method withTxn (line 14) | func (m *migrator) withTxn(ctx context.Context, fn func(tx *sqlx.Tx) e... method execAll (line 40) | func (m *migrator) execAll(stmts []string) error { FILE: pkg/sqlite/performer.go constant performerTable (line 20) | performerTable = "performers" constant performerIDColumn (line 21) | performerIDColumn = "performer_id" constant performersAliasesTable (line 22) | performersAliasesTable = "performer_aliases" constant performerAliasColumn (line 23) | performerAliasColumn = "alias" constant performersTagsTable (line 24) | performersTagsTable = "performers_tags" constant performerURLsTable (line 26) | performerURLsTable = "performer_urls" constant performerURLColumn (line 27) | performerURLColumn = "url" constant performerImageBlobColumn (line 29) | performerImageBlobColumn = "image_blob" type performerRow (line 32) | type performerRow struct method fromPerformer (line 69) | func (r *performerRow) fromPerformer(o models.Performer) { method resolve (line 106) | func (r *performerRow) resolve() *models.Performer { type performerRowRecord (line 148) | type performerRowRecord struct method fromPartial (line 152) | func (r *performerRowRecord) fromPartial(o models.PerformerPartial) { type performerRepositoryType (line 180) | type performerRepositoryType struct type PerformerStore (line 239) | type PerformerStore struct method table (line 260) | func (qb *PerformerStore) table() exp.IdentifierExpression { method selectDataset (line 264) | func (qb *PerformerStore) selectDataset() *goqu.SelectDataset { method Create (line 268) | func (qb *PerformerStore) Create(ctx context.Context, newObject *model... method UpdatePartial (line 317) | func (qb *PerformerStore) UpdatePartial(ctx context.Context, id int, p... method Update (line 362) | func (qb *PerformerStore) Update(ctx context.Context, updatedObject *m... method Destroy (line 401) | func (qb *PerformerStore) Destroy(ctx context.Context, id int) error { method Find (line 411) | func (qb *PerformerStore) Find(ctx context.Context, id int) (*models.P... method FindMany (line 419) | func (qb *PerformerStore) FindMany(ctx context.Context, ids []int) ([]... method find (line 450) | func (qb *PerformerStore) find(ctx context.Context, id int) (*models.P... method findBySubquery (line 461) | func (qb *PerformerStore) findBySubquery(ctx context.Context, sq *goqu... method get (line 474) | func (qb *PerformerStore) get(ctx context.Context, q *goqu.SelectDatas... method getMany (line 487) | func (qb *PerformerStore) getMany(ctx context.Context, q *goqu.SelectD... method FindBySceneID (line 507) | func (qb *PerformerStore) FindBySceneID(ctx context.Context, sceneID i... method FindByImageID (line 520) | func (qb *PerformerStore) FindByImageID(ctx context.Context, imageID i... method FindByGalleryID (line 533) | func (qb *PerformerStore) FindByGalleryID(ctx context.Context, gallery... method FindByNames (line 546) | func (qb *PerformerStore) FindByNames(ctx context.Context, names []str... method CountByTagID (line 570) | func (qb *PerformerStore) CountByTagID(ctx context.Context, tagID int)... method Count (line 577) | func (qb *PerformerStore) Count(ctx context.Context) (int, error) { method All (line 582) | func (qb *PerformerStore) All(ctx context.Context) ([]*models.Performe... method QueryForAutoTag (line 587) | func (qb *PerformerStore) QueryForAutoTag(ctx context.Context, words [... method makeQuery (line 620) | func (qb *PerformerStore) makeQuery(ctx context.Context, performerFilt... method Query (line 655) | func (qb *PerformerStore) Query(ctx context.Context, performerFilter *... method QueryCount (line 674) | func (qb *PerformerStore) QueryCount(ctx context.Context, performerFil... method sortByOCounter (line 683) | func (qb *PerformerStore) sortByOCounter(direction string) string { method sortByPlayCount (line 688) | func (qb *PerformerStore) sortByPlayCount(direction string) string { method sortByLastOAt (line 712) | func (qb *PerformerStore) sortByLastOAt(direction string) string { method sortByLatestScene (line 734) | func (qb *PerformerStore) sortByLatestScene(direction string) string { method sortByLastPlayedAt (line 758) | func (qb *PerformerStore) sortByLastPlayedAt(direction string) string { method sortByScenesDuration (line 780) | func (qb *PerformerStore) sortByScenesDuration(direction string) string { method sortByScenesSize (line 803) | func (qb *PerformerStore) sortByScenesSize(direction string) string { method getPerformerSort (line 834) | func (qb *PerformerStore) getPerformerSort(findFilter *models.FindFilt... method GetTagIDs (line 883) | func (qb *PerformerStore) GetTagIDs(ctx context.Context, id int) ([]in... method GetImage (line 887) | func (qb *PerformerStore) GetImage(ctx context.Context, performerID in... method HasImage (line 891) | func (qb *PerformerStore) HasImage(ctx context.Context, performerID in... method UpdateImage (line 895) | func (qb *PerformerStore) UpdateImage(ctx context.Context, performerID... method destroyImage (line 899) | func (qb *PerformerStore) destroyImage(ctx context.Context, performerI... method GetAliases (line 903) | func (qb *PerformerStore) GetAliases(ctx context.Context, performerID ... method GetURLs (line 907) | func (qb *PerformerStore) GetURLs(ctx context.Context, performerID int... method GetStashIDs (line 911) | func (qb *PerformerStore) GetStashIDs(ctx context.Context, performerID... method FindByStashID (line 915) | func (qb *PerformerStore) FindByStashID(ctx context.Context, stashID m... method FindByStashIDStatus (line 929) | func (qb *PerformerStore) FindByStashIDStatus(ctx context.Context, has... method Merge (line 956) | func (qb *PerformerStore) Merge(ctx context.Context, source []int, des... function NewPerformerStore (line 246) | func NewPerformerStore(blobStore *BlobStore) *PerformerStore { FILE: pkg/sqlite/performer_filter.go type performerFilterHandler (line 13) | type performerFilterHandler struct method validate (line 17) | func (qb *performerFilterHandler) validate() error { method handle (line 98) | func (qb *performerFilterHandler) handle(ctx context.Context, f *filte... method criterionHandler (line 118) | func (qb *performerFilterHandler) criterionHandler() criterionHandler { method performerIsMissingCriterionHandler (line 331) | func (qb *performerFilterHandler) performerIsMissingCriterionHandler(i... method performerAgeFilterCriterionHandler (line 368) | func (qb *performerFilterHandler) performerAgeFilterCriterionHandler(a... method urlsCriterionHandler (line 380) | func (qb *performerFilterHandler) urlsCriterionHandler(url *models.Str... method aliasCriterionHandler (line 394) | func (qb *performerFilterHandler) aliasCriterionHandler(alias *models.... method tagsCriterionHandler (line 408) | func (qb *performerFilterHandler) tagsCriterionHandler(tags *models.Hi... method tagCountCriterionHandler (line 423) | func (qb *performerFilterHandler) tagCountCriterionHandler(count *mode... method sceneCountCriterionHandler (line 433) | func (qb *performerFilterHandler) sceneCountCriterionHandler(count *mo... method markerCountCriterionHandler (line 443) | func (qb *performerFilterHandler) markerCountCriterionHandler(count *m... method imageCountCriterionHandler (line 459) | func (qb *performerFilterHandler) imageCountCriterionHandler(count *mo... method galleryCountCriterionHandler (line 469) | func (qb *performerFilterHandler) galleryCountCriterionHandler(count *... method oCounterCriterionHandler (line 525) | func (qb *performerFilterHandler) oCounterCriterionHandler(count *mode... method playCounterCriterionHandler (line 538) | func (qb *performerFilterHandler) playCounterCriterionHandler(count *m... method studiosCriterionHandler (line 551) | func (qb *performerFilterHandler) studiosCriterionHandler(studios *mod... method groupsCriterionHandler (line 659) | func (qb *performerFilterHandler) groupsCriterionHandler(groups *model... method appearsWithCriterionHandler (line 772) | func (qb *performerFilterHandler) appearsWithCriterionHandler(performe... function convertLegacyCareerLengthFilter (line 285) | func convertLegacyCareerLengthFilter(filter *models.PerformerFilterType) { FILE: pkg/sqlite/performer_test.go function loadPerformerRelationships (line 25) | func loadPerformerRelationships(ctx context.Context, expected models.Per... function Test_PerformerStore_Create (line 50) | func Test_PerformerStore_Create(t *testing.T) { function Test_PerformerStore_Update (line 213) | func Test_PerformerStore_Update(t *testing.T) { function clearPerformerPartial (line 407) | func clearPerformerPartial() models.PerformerPartial { function Test_PerformerStore_UpdatePartial (line 442) | func Test_PerformerStore_UpdatePartial(t *testing.T) { function Test_PerformerStore_UpdatePartialCustomFields (line 653) | func Test_PerformerStore_UpdatePartialCustomFields(t *testing.T) { function TestPerformerFindBySceneID (line 726) | func TestPerformerFindBySceneID(t *testing.T) { function TestPerformerFindByImageID (line 757) | func TestPerformerFindByImageID(t *testing.T) { function TestPerformerFindByGalleryID (line 788) | func TestPerformerFindByGalleryID(t *testing.T) { function TestPerformerFindByNames (line 819) | func TestPerformerFindByNames(t *testing.T) { function TestPerformerQueryEthnicityOr (line 875) | func TestPerformerQueryEthnicityOr(t *testing.T) { function TestPerformerQueryEthnicityAndRating (line 908) | func TestPerformerQueryEthnicityAndRating(t *testing.T) { function TestPerformerQueryEthnicityNotRating (line 944) | func TestPerformerQueryEthnicityNotRating(t *testing.T) { function TestPerformerIllegalQuery (line 981) | func TestPerformerIllegalQuery(t *testing.T) { function TestPerformerQueryIgnoreAutoTag (line 1056) | func TestPerformerQueryIgnoreAutoTag(t *testing.T) { function TestPerformerQuery (line 1074) | func TestPerformerQuery(t *testing.T) { function TestPerformerQueryCustomFields (line 1343) | func TestPerformerQueryCustomFields(t *testing.T) { function TestPerformerQueryPenisLength (line 1579) | func TestPerformerQueryPenisLength(t *testing.T) { function verifyFloat (line 1655) | func verifyFloat(t *testing.T, value *float64, criterion models.FloatCri... function TestPerformerQueryForAutoTag (line 1680) | func TestPerformerQueryForAutoTag(t *testing.T) { function TestPerformerUpdatePerformerImage (line 1700) | func TestPerformerUpdatePerformerImage(t *testing.T) { function TestPerformerQueryAge (line 1720) | func TestPerformerQueryAge(t *testing.T) { function verifyPerformerAge (line 1739) | func verifyPerformerAge(t *testing.T, ageCriterion models.IntCriterionIn... function TestPerformerQueryLegacyCareerLength (line 1775) | func TestPerformerQueryLegacyCareerLength(t *testing.T) { function TestPerformerQueryCareerStart (line 1875) | func TestPerformerQueryCareerStart(t *testing.T) { function TestPerformerQueryCareerEnd (line 1901) | func TestPerformerQueryCareerEnd(t *testing.T) { function TestPerformerQueryURL (line 1927) | func TestPerformerQueryURL(t *testing.T) { function verifyPerformerQuery (line 1972) | func verifyPerformerQuery(t *testing.T, filter models.PerformerFilterTyp... function queryPerformers (line 1994) | func queryPerformers(ctx context.Context, t *testing.T, performerFilter ... function TestPerformerQueryTags (line 2004) | func TestPerformerQueryTags(t *testing.T) { function TestPerformerQueryTagCount (line 2057) | func TestPerformerQueryTagCount(t *testing.T) { function verifyPerformersTagCount (line 2076) | func verifyPerformersTagCount(t *testing.T, tagCountCriterion models.Int... function TestPerformerQuerySceneCount (line 2098) | func TestPerformerQuerySceneCount(t *testing.T) { function verifyPerformersSceneCount (line 2117) | func verifyPerformersSceneCount(t *testing.T, sceneCountCriterion models... function TestPerformerQueryImageCount (line 2138) | func TestPerformerQueryImageCount(t *testing.T) { function verifyPerformersImageCount (line 2157) | func verifyPerformersImageCount(t *testing.T, imageCountCriterion models... function TestPerformerQueryGalleryCount (line 2193) | func TestPerformerQueryGalleryCount(t *testing.T) { function verifyPerformersGalleryCount (line 2212) | func verifyPerformersGalleryCount(t *testing.T, galleryCountCriterion mo... function TestPerformerQueryStudio (line 2242) | func TestPerformerQueryStudio(t *testing.T) { function TestPerformerStashIDs (line 2320) | func TestPerformerStashIDs(t *testing.T) { function testPerformerStashIDs (line 2344) | func testPerformerStashIDs(ctx context.Context, t *testing.T, s *models.... function TestPerformerQueryRating100 (line 2397) | func TestPerformerQueryRating100(t *testing.T) { function verifyPerformersRating100 (line 2422) | func verifyPerformersRating100(t *testing.T, ratingCriterion models.IntC... function performerQueryIsMissing (line 2438) | func performerQueryIsMissing(ctx context.Context, t *testing.T, m string... function TestPerformerQueryIsMissingRating (line 2446) | func TestPerformerQueryIsMissingRating(t *testing.T) { function TestPerformerQueryIsMissingImage (line 2460) | func TestPerformerQueryIsMissingImage(t *testing.T) { function TestPerformerQueryIsMissingAlias (line 2478) | func TestPerformerQueryIsMissingAlias(t *testing.T) { function TestPerformerQuerySortScenesCount (line 2496) | func TestPerformerQuerySortScenesCount(t *testing.T) { function TestPerformerCountByTagID (line 2535) | func TestPerformerCountByTagID(t *testing.T) { function TestPerformerCount (line 2558) | func TestPerformerCount(t *testing.T) { function TestPerformerAll (line 2573) | func TestPerformerAll(t *testing.T) { function performersToIDs (line 2588) | func performersToIDs(i []*models.Performer) []int { function TestPerformerStore_FindByStashID (line 2597) | func TestPerformerStore_FindByStashID(t *testing.T) { function TestPerformerStore_FindByStashIDStatus (line 2639) | func TestPerformerStore_FindByStashIDStatus(t *testing.T) { function TestPerformerMerge (line 2701) | func TestPerformerMerge(t *testing.T) { FILE: pkg/sqlite/phash.go function phashDistanceFn (line 5) | func phashDistanceFn(phash1 int64, phash2 int64) (int64, error) { FILE: pkg/sqlite/query.go type queryBuilder (line 11) | type queryBuilder struct method allArgs (line 31) | func (qb queryBuilder) allArgs() []interface{} { method body (line 40) | func (qb queryBuilder) body(includeSortPagination bool) string { method addColumn (line 44) | func (qb *queryBuilder) addColumn(column string) { method toSQL (line 48) | func (qb queryBuilder) toSQL(includeSortPagination bool) string { method findIDs (line 68) | func (qb queryBuilder) findIDs(ctx context.Context) ([]int, error) { method executeFind (line 74) | func (qb queryBuilder) executeFind(ctx context.Context) ([]int, int, e... method executeCount (line 80) | func (qb queryBuilder) executeCount(ctx context.Context) (int, error) { method addWhere (line 98) | func (qb *queryBuilder) addWhere(clauses ...string) { method addHaving (line 106) | func (qb *queryBuilder) addHaving(clauses ...string) { method addWith (line 114) | func (qb *queryBuilder) addWith(recursive bool, clauses ...string) { method addArg (line 124) | func (qb *queryBuilder) addArg(args ...interface{}) { method addHavingArg (line 128) | func (qb *queryBuilder) addHavingArg(args ...interface{}) { method hasJoin (line 132) | func (qb *queryBuilder) hasJoin(alias string) bool { method join (line 142) | func (qb *queryBuilder) join(table, as, onClause string) { method joinSort (line 153) | func (qb *queryBuilder) joinSort(table, as, onClause string) { method addJoins (line 165) | func (qb *queryBuilder) addJoins(joins ...join) { method addFilter (line 173) | func (qb *queryBuilder) addFilter(f *filterBuilder) error { method parseQueryString (line 208) | func (qb *queryBuilder) parseQueryString(columns []string, q string) { FILE: pkg/sqlite/record.go type updateRecord (line 10) | type updateRecord struct method set (line 14) | func (r *updateRecord) set(destField string, v interface{}) { method setString (line 18) | func (r *updateRecord) setString(destField string, v models.OptionalSt... method setNullString (line 27) | func (r *updateRecord) setNullString(destField string, v models.Option... method setBool (line 33) | func (r *updateRecord) setBool(destField string, v models.OptionalBool) { method setInt (line 42) | func (r *updateRecord) setInt(destField string, v models.OptionalInt) { method setNullInt (line 51) | func (r *updateRecord) setNullInt(destField string, v models.OptionalI... method setFloat64 (line 72) | func (r *updateRecord) setFloat64(destField string, v models.OptionalF... method setNullFloat64 (line 81) | func (r *updateRecord) setNullFloat64(destField string, v models.Optio... method setTimestamp (line 87) | func (r *updateRecord) setTimestamp(destField string, v models.Optiona... method setNullTimestamp (line 97) | func (r *updateRecord) setNullTimestamp(destField string, v models.Opt... method setNullDate (line 103) | func (r *updateRecord) setNullDate(destField string, precisionField st... FILE: pkg/sqlite/regex.go constant regexCacheSize (line 15) | regexCacheSize = 10 function init (line 19) | func init() { function regexFn (line 26) | func regexFn(re, s string) (bool, error) { FILE: pkg/sqlite/relationships.go type idRelationshipStore (line 9) | type idRelationshipStore struct method createRelationships (line 13) | func (s *idRelationshipStore) createRelationships(ctx context.Context,... method modifyRelationships (line 23) | func (s *idRelationshipStore) modifyRelationships(ctx context.Context,... method replaceRelationships (line 33) | func (s *idRelationshipStore) replaceRelationships(ctx context.Context... FILE: pkg/sqlite/repository.go constant idColumn (line 15) | idColumn = "id" type repository (line 17) | type repository struct method getAll (line 22) | func (r *repository) getAll(ctx context.Context, id int, f func(rows *... method destroyExisting (line 27) | func (r *repository) destroyExisting(ctx context.Context, ids []int) e... method destroy (line 42) | func (r *repository) destroy(ctx context.Context, ids []int) error { method exists (line 53) | func (r *repository) exists(ctx context.Context, id int) (bool, error) { method buildCountQuery (line 65) | func (r *repository) buildCountQuery(query string) string { method runCountQuery (line 69) | func (r *repository) runCountQuery(ctx context.Context, query string, ... method runIdsQuery (line 82) | func (r *repository) runIdsQuery(ctx context.Context, query string, ar... method queryFunc (line 98) | func (r *repository) queryFunc(ctx context.Context, query string, args... method queryStruct (line 124) | func (r *repository) queryStruct(ctx context.Context, query string, ar... method querySimple (line 134) | func (r *repository) querySimple(ctx context.Context, query string, ar... method buildQueryBody (line 155) | func (r *repository) buildQueryBody(body string, whereClauses []string... method executeFindQuery (line 167) | func (r *repository) executeFindQuery(ctx context.Context, body string... method newQuery (line 201) | func (r *repository) newQuery() queryBuilder { method join (line 207) | func (r *repository) join(j joiner, as string, parentIDCol string) { method innerJoin (line 215) | func (r *repository) innerJoin(j joiner, as string, parentIDCol string) { type joiner (line 223) | type joiner interface type joinRepository (line 228) | type joinRepository struct method getIDs (line 237) | func (r *joinRepository) getIDs(ctx context.Context, id int) ([]int, e... method insert (line 252) | func (r *joinRepository) insert(ctx context.Context, id int, foreignID... method insertOrIgnore (line 269) | func (r *joinRepository) insertOrIgnore(ctx context.Context, id int, f... method destroyJoins (line 285) | func (r *joinRepository) destroyJoins(ctx context.Context, id int, for... method replace (line 301) | func (r *joinRepository) replace(ctx context.Context, id int, foreignI... type captionRepository (line 315) | type captionRepository struct method get (line 319) | func (r *captionRepository) get(ctx context.Context, id models.FileID)... method insert (line 342) | func (r *captionRepository) insert(ctx context.Context, id models.File... method replace (line 347) | func (r *captionRepository) replace(ctx context.Context, id models.Fil... type stringRepository (line 361) | type stringRepository struct method get (line 366) | func (r *stringRepository) get(ctx context.Context, id int) ([]string,... method insert (line 381) | func (r *stringRepository) insert(ctx context.Context, id int, s strin... method replace (line 386) | func (r *stringRepository) replace(ctx context.Context, id int, newStr... type stashIDRepository (line 400) | type stashIDRepository struct method get (line 414) | func (r *stashIDRepository) get(ctx context.Context, id int) ([]models... type stashIDs (line 404) | type stashIDs method Append (line 406) | func (s *stashIDs) Append(o interface{}) { method New (line 410) | func (s *stashIDs) New() interface{} { type filesRepository (line 428) | type filesRepository struct method getMany (line 446) | func (r *filesRepository) getMany(ctx context.Context, ids []int, prim... method get (line 492) | func (r *filesRepository) get(ctx context.Context, id int) ([]models.F... type relatedFileRow (line 432) | type relatedFileRow struct function idToIndexMap (line 438) | func idToIndexMap(ids []int) map[int]int { FILE: pkg/sqlite/saved_filter.go constant savedFilterTable (line 20) | savedFilterTable = "saved_filters" constant savedFilterDefaultName (line 21) | savedFilterDefaultName = "" type savedFilterRow (line 24) | type savedFilterRow struct method fromSavedFilter (line 56) | func (r *savedFilterRow) fromSavedFilter(o models.SavedFilter) { method resolve (line 67) | func (r *savedFilterRow) resolve() *models.SavedFilter { function encodeJSONOrEmpty (line 33) | func encodeJSONOrEmpty(v interface{}) string { function decodeJSON (line 46) | func decodeJSON(s string, v interface{}) { type SavedFilterStore (line 91) | type SavedFilterStore struct method table (line 106) | func (qb *SavedFilterStore) table() exp.IdentifierExpression { method selectDataset (line 110) | func (qb *SavedFilterStore) selectDataset() *goqu.SelectDataset { method Create (line 114) | func (qb *SavedFilterStore) Create(ctx context.Context, newObject *mod... method Update (line 133) | func (qb *SavedFilterStore) Update(ctx context.Context, updatedObject ... method Destroy (line 144) | func (qb *SavedFilterStore) Destroy(ctx context.Context, id int) error { method Find (line 149) | func (qb *SavedFilterStore) Find(ctx context.Context, id int) (*models... method FindMany (line 157) | func (qb *SavedFilterStore) FindMany(ctx context.Context, ids []int, i... method find (line 184) | func (qb *SavedFilterStore) find(ctx context.Context, id int) (*models... method get (line 195) | func (qb *SavedFilterStore) get(ctx context.Context, q *goqu.SelectDat... method getMany (line 208) | func (qb *SavedFilterStore) getMany(ctx context.Context, q *goqu.Selec... method FindByMode (line 228) | func (qb *SavedFilterStore) FindByMode(ctx context.Context, mode model... method All (line 255) | func (qb *SavedFilterStore) All(ctx context.Context) ([]*models.SavedF... function NewSavedFilterStore (line 96) | func NewSavedFilterStore() *SavedFilterStore { FILE: pkg/sqlite/saved_filter_test.go function TestSavedFilterFind (line 14) | func TestSavedFilterFind(t *testing.T) { function TestSavedFilterFindByMode (line 28) | func TestSavedFilterFindByMode(t *testing.T) { function TestSavedFilterDestroy (line 43) | func TestSavedFilterDestroy(t *testing.T) { FILE: pkg/sqlite/scene.go constant sceneTable (line 26) | sceneTable = "scenes" constant scenesFilesTable (line 27) | scenesFilesTable = "scenes_files" constant sceneIDColumn (line 28) | sceneIDColumn = "scene_id" constant sceneDateColumn (line 29) | sceneDateColumn = "date" constant performersScenesTable (line 30) | performersScenesTable = "performers_scenes" constant scenesTagsTable (line 31) | scenesTagsTable = "scenes_tags" constant scenesGalleriesTable (line 32) | scenesGalleriesTable = "scenes_galleries" constant groupsScenesTable (line 33) | groupsScenesTable = "groups_scenes" constant scenesURLsTable (line 34) | scenesURLsTable = "scene_urls" constant sceneURLColumn (line 35) | sceneURLColumn = "url" constant scenesViewDatesTable (line 36) | scenesViewDatesTable = "scenes_view_dates" constant sceneViewDateColumn (line 37) | sceneViewDateColumn = "view_date" constant scenesODatesTable (line 38) | scenesODatesTable = "scenes_o_dates" constant sceneODateColumn (line 39) | sceneODateColumn = "o_date" constant sceneCoverBlobColumn (line 41) | sceneCoverBlobColumn = "cover_blob" type sceneRow (line 79) | type sceneRow struct method fromScene (line 100) | func (r *sceneRow) fromScene(o models.Scene) { type sceneQueryRow (line 117) | type sceneQueryRow struct method resolve (line 126) | func (r *sceneQueryRow) resolve() *models.Scene { type sceneRowRecord (line 156) | type sceneRowRecord struct method fromPartial (line 160) | func (r *sceneRowRecord) fromPartial(o models.ScenePartial) { type sceneRepositoryType (line 175) | type sceneRepositoryType struct type SceneStore (line 235) | type SceneStore struct method table (line 264) | func (qb *SceneStore) table() exp.IdentifierExpression { method selectDataset (line 268) | func (qb *SceneStore) selectDataset() *goqu.SelectDataset { method Create (line 309) | func (qb *SceneStore) Create(ctx context.Context, newObject *models.Sc... method UpdatePartial (line 371) | func (qb *SceneStore) UpdatePartial(ctx context.Context, id int, parti... method Update (line 425) | func (qb *SceneStore) Update(ctx context.Context, updatedObject *model... method Destroy (line 483) | func (qb *SceneStore) Destroy(ctx context.Context, id int) error { method Find (line 496) | func (qb *SceneStore) Find(ctx context.Context, id int) (*models.Scene... method FindByIDs (line 507) | func (qb *SceneStore) FindByIDs(ctx context.Context, ids []int) ([]*mo... method FindMany (line 528) | func (qb *SceneStore) FindMany(ctx context.Context, ids []int) ([]*mod... method find (line 551) | func (qb *SceneStore) find(ctx context.Context, id int) (*models.Scene... method findBySubquery (line 562) | func (qb *SceneStore) findBySubquery(ctx context.Context, sq *goqu.Sel... method get (line 575) | func (qb *SceneStore) get(ctx context.Context, q *goqu.SelectDataset) ... method getMany (line 588) | func (qb *SceneStore) getMany(ctx context.Context, q *goqu.SelectDatas... method GetFiles (line 613) | func (qb *SceneStore) GetFiles(ctx context.Context, id int) ([]*models... method GetManyFileIDs (line 637) | func (qb *SceneStore) GetManyFileIDs(ctx context.Context, ids []int) (... method FindByFileID (line 642) | func (qb *SceneStore) FindByFileID(ctx context.Context, fileID models.... method FindByPrimaryFileID (line 655) | func (qb *SceneStore) FindByPrimaryFileID(ctx context.Context, fileID ... method CountByFileID (line 669) | func (qb *SceneStore) CountByFileID(ctx context.Context, fileID models... method FindByFingerprints (line 676) | func (qb *SceneStore) FindByFingerprints(ctx context.Context, fp []mod... method FindByChecksum (line 703) | func (qb *SceneStore) FindByChecksum(ctx context.Context, checksum str... method FindByOSHash (line 712) | func (qb *SceneStore) FindByOSHash(ctx context.Context, oshash string)... method FindByPath (line 721) | func (qb *SceneStore) FindByPath(ctx context.Context, p string) ([]*mo... method FindByPerformerID (line 750) | func (qb *SceneStore) FindByPerformerID(ctx context.Context, performer... method FindByGalleryID (line 763) | func (qb *SceneStore) FindByGalleryID(ctx context.Context, galleryID i... method CountByPerformerID (line 776) | func (qb *SceneStore) CountByPerformerID(ctx context.Context, performe... method OCountByPerformerID (line 783) | func (qb *SceneStore) OCountByPerformerID(ctx context.Context, perform... method OCountByGroupID (line 806) | func (qb *SceneStore) OCountByGroupID(ctx context.Context, groupID int... method OCountByStudioID (line 829) | func (qb *SceneStore) OCountByStudioID(ctx context.Context, studioID i... method FindByGroupID (line 846) | func (qb *SceneStore) FindByGroupID(ctx context.Context, groupID int) ... method Count (line 859) | func (qb *SceneStore) Count(ctx context.Context) (int, error) { method Size (line 864) | func (qb *SceneStore) Size(ctx context.Context) (float64, error) { method Duration (line 884) | func (qb *SceneStore) Duration(ctx context.Context) (float64, error) { method PlayDuration (line 906) | func (qb *SceneStore) PlayDuration(ctx context.Context) (float64, erro... method CountByStudioID (line 920) | func (qb *SceneStore) CountByStudioID(ctx context.Context, studioID in... method countMissingFingerprints (line 927) | func (qb *SceneStore) countMissingFingerprints(ctx context.Context, fp... method CountMissingChecksum (line 942) | func (qb *SceneStore) CountMissingChecksum(ctx context.Context) (int, ... method CountMissingOSHash (line 947) | func (qb *SceneStore) CountMissingOSHash(ctx context.Context) (int, er... method Wall (line 951) | func (qb *SceneStore) Wall(ctx context.Context, q *string) ([]*models.... method All (line 962) | func (qb *SceneStore) All(ctx context.Context) ([]*models.Scene, error) { method makeQuery (line 974) | func (qb *SceneStore) makeQuery(ctx context.Context, sceneFilter *mode... method Query (line 1030) | func (qb *SceneStore) Query(ctx context.Context, options models.SceneQ... method queryGroupedFields (line 1050) | func (qb *SceneStore) queryGroupedFields(ctx context.Context, options ... method QueryCount (line 1111) | func (qb *SceneStore) QueryCount(ctx context.Context, sceneFilter *mod... method setSceneSort (line 1155) | func (qb *SceneStore) setSceneSort(query *queryBuilder, findFilter *mo... method SaveActivity (line 1306) | func (qb *SceneStore) SaveActivity(ctx context.Context, id int, resume... method ResetActivity (line 1330) | func (qb *SceneStore) ResetActivity(ctx context.Context, id int, reset... method GetURLs (line 1354) | func (qb *SceneStore) GetURLs(ctx context.Context, sceneID int) ([]str... method GetCover (line 1358) | func (qb *SceneStore) GetCover(ctx context.Context, sceneID int) ([]by... method HasCover (line 1362) | func (qb *SceneStore) HasCover(ctx context.Context, sceneID int) (bool... method UpdateCover (line 1366) | func (qb *SceneStore) UpdateCover(ctx context.Context, sceneID int, im... method destroyCover (line 1370) | func (qb *SceneStore) destroyCover(ctx context.Context, sceneID int) e... method AssignFiles (line 1374) | func (qb *SceneStore) AssignFiles(ctx context.Context, sceneID int, fi... method GetGroups (line 1390) | func (qb *SceneStore) GetGroups(ctx context.Context, id int) (ret []mo... method AddFileID (line 1408) | func (qb *SceneStore) AddFileID(ctx context.Context, id int, fileID mo... method GetPerformerIDs (line 1413) | func (qb *SceneStore) GetPerformerIDs(ctx context.Context, id int) ([]... method GetTagIDs (line 1417) | func (qb *SceneStore) GetTagIDs(ctx context.Context, id int) ([]int, e... method GetGalleryIDs (line 1421) | func (qb *SceneStore) GetGalleryIDs(ctx context.Context, id int) ([]in... method AddGalleryIDs (line 1425) | func (qb *SceneStore) AddGalleryIDs(ctx context.Context, sceneID int, ... method GetStashIDs (line 1429) | func (qb *SceneStore) GetStashIDs(ctx context.Context, sceneID int) ([... method FindDuplicates (line 1433) | func (qb *SceneStore) FindDuplicates(ctx context.Context, distance int... function NewSceneStore (line 246) | func NewSceneStore(r *storeRepository, blobStore *BlobStore) *SceneStore { function sortByPath (line 1487) | func sortByPath(scenes [][]*models.Scene) { function getFirstPath (line 1496) | func getFirstPath(scenes []*models.Scene) string { FILE: pkg/sqlite/scene_filter.go type sceneFilterHandler (line 10) | type sceneFilterHandler struct method validate (line 14) | func (qb *sceneFilterHandler) validate() error { method handle (line 34) | func (qb *sceneFilterHandler) handle(ctx context.Context, f *filterBui... method criterionHandler (line 54) | func (qb *sceneFilterHandler) criterionHandler() criterionHandler { method addSceneFilesTable (line 257) | func (qb *sceneFilterHandler) addSceneFilesTable(f *filterBuilder) { method addFilesTable (line 261) | func (qb *sceneFilterHandler) addFilesTable(f *filterBuilder) { method addFoldersTable (line 266) | func (qb *sceneFilterHandler) addFoldersTable(f *filterBuilder) { method addVideoFilesTable (line 271) | func (qb *sceneFilterHandler) addVideoFilesTable(f *filterBuilder) { method playCountCriterionHandler (line 276) | func (qb *sceneFilterHandler) playCountCriterionHandler(count *models.... method oCountCriterionHandler (line 286) | func (qb *sceneFilterHandler) oCountCriterionHandler(count *models.Int... method fileCountCriterionHandler (line 296) | func (qb *sceneFilterHandler) fileCountCriterionHandler(fileCount *mod... method duplicatedCriterionHandler (line 306) | func (qb *sceneFilterHandler) duplicatedCriterionHandler(duplicatedFil... method applyPhashDuplication (line 347) | func (qb *sceneFilterHandler) applyPhashDuplication(f *filterBuilder, ... method applyStashIDDuplication (line 353) | func (qb *sceneFilterHandler) applyStashIDDuplication(f *filterBuilder... method applyTitleDuplication (line 359) | func (qb *sceneFilterHandler) applyTitleDuplication(f *filterBuilder, ... method applyURLDuplication (line 365) | func (qb *sceneFilterHandler) applyURLDuplication(f *filterBuilder, du... method codecCriterionHandler (line 371) | func (qb *sceneFilterHandler) codecCriterionHandler(codec *models.Stri... method hasMarkersCriterionHandler (line 383) | func (qb *sceneFilterHandler) hasMarkersCriterionHandler(hasMarkers *s... method isMissingCriterionHandler (line 396) | func (qb *sceneFilterHandler) isMissingCriterionHandler(isMissing *str... method urlsCriterionHandler (line 441) | func (qb *sceneFilterHandler) urlsCriterionHandler(url *models.StringC... method getMultiCriterionHandlerBuilder (line 455) | func (qb *sceneFilterHandler) getMultiCriterionHandlerBuilder(foreignT... method captionCriterionHandler (line 466) | func (qb *sceneFilterHandler) captionCriterionHandler(captions *models... method tagsCriterionHandler (line 491) | func (qb *sceneFilterHandler) tagsCriterionHandler(tags *models.Hierar... method tagCountCriterionHandler (line 506) | func (qb *sceneFilterHandler) tagCountCriterionHandler(tagCount *model... method stashIDCountCriterionHandler (line 516) | func (qb *sceneFilterHandler) stashIDCountCriterionHandler(stashIDCoun... method performersCriterionHandler (line 526) | func (qb *sceneFilterHandler) performersCriterionHandler(performers *m... method performerCountCriterionHandler (line 542) | func (qb *sceneFilterHandler) performerCountCriterionHandler(performer... method performerFavoriteCriterionHandler (line 552) | func (qb *sceneFilterHandler) performerFavoriteCriterionHandler(perfor... method performerAgeCriterionHandler (line 572) | func (qb *sceneFilterHandler) performerAgeCriterionHandler(performerAg... method moviesCriterionHandler (line 589) | func (qb *sceneFilterHandler) moviesCriterionHandler(movies *models.Mu... method groupsCriterionHandler (line 598) | func (qb *sceneFilterHandler) groupsCriterionHandler(groups *models.Hi... method galleriesCriterionHandler (line 615) | func (qb *sceneFilterHandler) galleriesCriterionHandler(galleries *mod... method performerTagsCriterionHandler (line 624) | func (qb *sceneFilterHandler) performerTagsCriterionHandler(tags *mode... function getCountOperator (line 340) | func getCountOperator(duplicated bool) string { FILE: pkg/sqlite/scene_marker.go constant sceneMarkerTable (line 19) | sceneMarkerTable = "scene_markers" constant sceneMarkersTagsTable (line 20) | sceneMarkersTagsTable = "scene_markers_tags" constant sceneMarkerIDColumn (line 21) | sceneMarkerIDColumn = "scene_marker_id" constant countSceneMarkersForTagQuery (line 24) | countSceneMarkersForTagQuery = ` type sceneMarkerRow (line 31) | type sceneMarkerRow struct method fromSceneMarker (line 42) | func (r *sceneMarkerRow) fromSceneMarker(o models.SceneMarker) { method resolve (line 55) | func (r *sceneMarkerRow) resolve() *models.SceneMarker { type sceneMarkerRowRecord (line 70) | type sceneMarkerRowRecord struct method fromPartial (line 74) | func (r *sceneMarkerRowRecord) fromPartial(o models.SceneMarkerPartial) { type sceneMarkerRepositoryType (line 89) | type sceneMarkerRepositoryType struct type SceneMarkerStore (line 116) | type SceneMarkerStore struct method table (line 122) | func (qb *SceneMarkerStore) table() exp.IdentifierExpression { method selectDataset (line 126) | func (qb *SceneMarkerStore) selectDataset() *goqu.SelectDataset { method Create (line 130) | func (qb *SceneMarkerStore) Create(ctx context.Context, newObject *mod... method UpdatePartial (line 149) | func (qb *SceneMarkerStore) UpdatePartial(ctx context.Context, id int,... method Update (line 173) | func (qb *SceneMarkerStore) Update(ctx context.Context, updatedObject ... method Destroy (line 184) | func (qb *SceneMarkerStore) Destroy(ctx context.Context, id int) error { method Find (line 189) | func (qb *SceneMarkerStore) Find(ctx context.Context, id int) (*models... method FindMany (line 197) | func (qb *SceneMarkerStore) FindMany(ctx context.Context, ids []int) (... method find (line 222) | func (qb *SceneMarkerStore) find(ctx context.Context, id int) (*models... method get (line 234) | func (qb *SceneMarkerStore) get(ctx context.Context, q *goqu.SelectDat... method getMany (line 247) | func (qb *SceneMarkerStore) getMany(ctx context.Context, q *goqu.Selec... method FindBySceneID (line 267) | func (qb *SceneMarkerStore) FindBySceneID(ctx context.Context, sceneID... method CountByTagID (line 278) | func (qb *SceneMarkerStore) CountByTagID(ctx context.Context, tagID in... method GetMarkerStrings (line 283) | func (qb *SceneMarkerStore) GetMarkerStrings(ctx context.Context, q *s... method Wall (line 298) | func (qb *SceneMarkerStore) Wall(ctx context.Context, q *string) ([]*m... method makeQuery (line 309) | func (qb *SceneMarkerStore) makeQuery(ctx context.Context, sceneMarker... method Query (line 343) | func (qb *SceneMarkerStore) Query(ctx context.Context, sceneMarkerFilt... method QueryCount (line 362) | func (qb *SceneMarkerStore) QueryCount(ctx context.Context, sceneMarke... method setSceneMarkerSort (line 383) | func (qb *SceneMarkerStore) setSceneMarkerSort(query *queryBuilder, fi... method querySceneMarkers (line 411) | func (qb *SceneMarkerStore) querySceneMarkers(ctx context.Context, que... method queryMarkerStringsResultType (line 431) | func (qb *SceneMarkerStore) queryMarkerStringsResultType(ctx context.C... method GetTagIDs (line 454) | func (qb *SceneMarkerStore) GetTagIDs(ctx context.Context, id int) ([]... method UpdateTags (line 458) | func (qb *SceneMarkerStore) UpdateTags(ctx context.Context, id int, ta... method Count (line 463) | func (qb *SceneMarkerStore) Count(ctx context.Context) (int, error) { method All (line 468) | func (qb *SceneMarkerStore) All(ctx context.Context) ([]*models.SceneM... function NewSceneMarkerStore (line 118) | func NewSceneMarkerStore() *SceneMarkerStore { FILE: pkg/sqlite/scene_marker_filter.go type sceneMarkerFilterHandler (line 10) | type sceneMarkerFilterHandler struct method validate (line 14) | func (qb *sceneMarkerFilterHandler) validate() error { method handle (line 18) | func (qb *sceneMarkerFilterHandler) handle(ctx context.Context, f *fil... method joinScenes (line 32) | func (qb *sceneMarkerFilterHandler) joinScenes(f *filterBuilder) { method criterionHandler (line 36) | func (qb *sceneMarkerFilterHandler) criterionHandler() criterionHandler { method tagIDCriterionHandler (line 62) | func (qb *sceneMarkerFilterHandler) tagIDCriterionHandler(tagID *strin... method tagsCriterionHandler (line 72) | func (qb *sceneMarkerFilterHandler) tagsCriterionHandler(criterion *mo... method sceneTagsCriterionHandler (line 146) | func (qb *sceneMarkerFilterHandler) sceneTagsCriterionHandler(tags *mo... method performersCriterionHandler (line 168) | func (qb *sceneMarkerFilterHandler) performersCriterionHandler(perform... method scenesCriterionHandler (line 193) | func (qb *sceneMarkerFilterHandler) scenesCriterionHandler(scenes *mod... FILE: pkg/sqlite/scene_marker_test.go function TestMarkerFindBySceneID (line 17) | func TestMarkerFindBySceneID(t *testing.T) { function TestMarkerCountByTagID (line 45) | func TestMarkerCountByTagID(t *testing.T) { function TestMarkerQueryQ (line 77) | func TestMarkerQueryQ(t *testing.T) { function TestMarkerQuerySortBySceneUpdated (line 98) | func TestMarkerQuerySortBySceneUpdated(t *testing.T) { function verifyIDs (line 113) | func verifyIDs(t *testing.T, modifier models.CriterionModifier, values [... function TestMarkerQueryTags (line 147) | func TestMarkerQueryTags(t *testing.T) { function TestMarkerQuerySceneTags (line 270) | func TestMarkerQuerySceneTags(t *testing.T) { function markersToIDs (line 394) | func markersToIDs(i []*models.SceneMarker) []int { function TestMarkerQueryDuration (line 403) | func TestMarkerQueryDuration(t *testing.T) { function queryMarkers (line 504) | func queryMarkers(ctx context.Context, t *testing.T, sqb models.SceneMar... FILE: pkg/sqlite/scene_test.go function loadSceneRelationships (line 23) | func loadSceneRelationships(ctx context.Context, expected models.Scene, ... function Test_sceneQueryBuilder_Create (line 78) | func Test_sceneQueryBuilder_Create(t *testing.T) { function clearSceneFileIDs (line 298) | func clearSceneFileIDs(scene *models.Scene) { function makeSceneFileWithID (line 306) | func makeSceneFileWithID(i int) *models.VideoFile { function Test_sceneQueryBuilder_Update (line 312) | func Test_sceneQueryBuilder_Update(t *testing.T) { function clearScenePartial (line 506) | func clearScenePartial() models.ScenePartial { function Test_sceneQueryBuilder_UpdatePartial (line 524) | func Test_sceneQueryBuilder_UpdatePartial(t *testing.T) { function Test_sceneQueryBuilder_UpdatePartialRelationships (line 732) | func Test_sceneQueryBuilder_UpdatePartialRelationships(t *testing.T) { function Test_sceneQueryBuilder_AddO (line 1285) | func Test_sceneQueryBuilder_AddO(t *testing.T) { function Test_sceneQueryBuilder_DeleteO (line 1322) | func Test_sceneQueryBuilder_DeleteO(t *testing.T) { function Test_sceneQueryBuilder_ResetO (line 1359) | func Test_sceneQueryBuilder_ResetO(t *testing.T) { function Test_sceneQueryBuilder_ResetWatchCount (line 1396) | func Test_sceneQueryBuilder_ResetWatchCount(t *testing.T) { function Test_sceneQueryBuilder_Destroy (line 1400) | func Test_sceneQueryBuilder_Destroy(t *testing.T) { function makeSceneWithID (line 1436) | func makeSceneWithID(index int) *models.Scene { function Test_sceneQueryBuilder_Find (line 1445) | func Test_sceneQueryBuilder_Find(t *testing.T) { function postFindScenes (line 1516) | func postFindScenes(ctx context.Context, want []*models.Scene, got []*mo... function Test_sceneQueryBuilder_FindMany (line 1530) | func Test_sceneQueryBuilder_FindMany(t *testing.T) { function Test_sceneQueryBuilder_FindByChecksum (line 1582) | func Test_sceneQueryBuilder_FindByChecksum(t *testing.T) { function Test_sceneQueryBuilder_FindByOSHash (line 1652) | func Test_sceneQueryBuilder_FindByOSHash(t *testing.T) { function Test_sceneQueryBuilder_FindByPath (line 1723) | func Test_sceneQueryBuilder_FindByPath(t *testing.T) { function Test_sceneQueryBuilder_FindByGalleryID (line 1793) | func Test_sceneQueryBuilder_FindByGalleryID(t *testing.T) { function TestSceneCountByPerformerID (line 1836) | func TestSceneCountByPerformerID(t *testing.T) { function scenesToIDs (line 1859) | func scenesToIDs(i []*models.Scene) []int { function Test_sceneStore_FindByFileID (line 1868) | func Test_sceneStore_FindByFileID(t *testing.T) { function Test_sceneStore_CountByFileID (line 1917) | func Test_sceneStore_CountByFileID(t *testing.T) { function Test_sceneStore_CountMissingChecksum (line 1951) | func Test_sceneStore_CountMissingChecksum(t *testing.T) { function Test_sceneStore_CountMissingOshash (line 1978) | func Test_sceneStore_CountMissingOshash(t *testing.T) { function TestSceneWall (line 2005) | func TestSceneWall(t *testing.T) { function TestSceneQueryQ (line 2038) | func TestSceneQueryQ(t *testing.T) { function queryScene (line 2052) | func queryScene(ctx context.Context, t *testing.T, sqb models.SceneReade... function sceneQueryQ (line 2076) | func sceneQueryQ(ctx context.Context, t *testing.T, sqb models.SceneRead... function TestSceneQuery (line 2097) | func TestSceneQuery(t *testing.T) { function TestSceneQueryPath (line 2332) | func TestSceneQueryPath(t *testing.T) { function TestSceneQueryURL (line 2452) | func TestSceneQueryURL(t *testing.T) { function TestSceneQueryPathOr (line 2497) | func TestSceneQueryPathOr(t *testing.T) { function TestSceneQueryPathAndRating (line 2534) | func TestSceneQueryPathAndRating(t *testing.T) { function TestSceneQueryPathNotRating (line 2569) | func TestSceneQueryPathNotRating(t *testing.T) { function TestSceneIllegalQuery (line 2608) | func TestSceneIllegalQuery(t *testing.T) { function verifySceneQuery (line 2650) | func verifySceneQuery(t *testing.T, filter models.SceneFilterType, verif... function verifyScenesPath (line 2675) | func verifyScenesPath(t *testing.T, pathCriterion models.StringCriterion... function verifyStringPtr (line 2692) | func verifyStringPtr(t *testing.T, value *string, criterion models.Strin... function verifyString (line 2725) | func verifyString(t *testing.T, value string, criterion models.StringCri... function verifyStringList (line 2744) | func verifyStringList(t *testing.T, values []string, criterion models.St... function TestSceneQueryRating100 (line 2759) | func TestSceneQueryRating100(t *testing.T) { function verifyScenesRating100 (line 2784) | func verifyScenesRating100(t *testing.T, ratingCriterion models.IntCrite... function verifyIntPtr (line 2801) | func verifyIntPtr(t *testing.T, value *int, criterion models.IntCriterio... function verifyDatePtr (line 2824) | func verifyDatePtr(t *testing.T, value *models.Date, criterion models.Da... function TestSceneQueryOCounter (line 2851) | func TestSceneQueryOCounter(t *testing.T) { function verifyScenesOCounter (line 2870) | func verifyScenesOCounter(t *testing.T, oCounterCriterion models.IntCrit... function verifyInt (line 2891) | func verifyInt(t *testing.T, value int, criterion models.IntCriterionInp... function TestSceneQueryDuration (line 2910) | func TestSceneQueryDuration(t *testing.T) { function verifyScenesDuration (line 2935) | func verifyScenesDuration(t *testing.T, durationCriterion models.IntCrit... function verifyFloat64 (line 2964) | func verifyFloat64(t *testing.T, value float64, criterion models.IntCrit... function verifyFloat64Ptr (line 2980) | func verifyFloat64Ptr(t *testing.T, value *float64, criterion models.Int... function TestSceneQueryResolution (line 2998) | func TestSceneQueryResolution(t *testing.T) { function verifyScenesResolution (line 3007) | func verifyScenesResolution(t *testing.T, resolution models.ResolutionEn... function verifySceneResolution (line 3036) | func verifySceneResolution(t *testing.T, height *int, resolution models.... function TestAllResolutionsHaveResolutionRange (line 3063) | func TestAllResolutionsHaveResolutionRange(t *testing.T) { function TestSceneQueryResolutionModifiers (line 3070) | func TestSceneQueryResolutionModifiers(t *testing.T) { function queryScenes (line 3104) | func queryScenes(ctx context.Context, t *testing.T, queryBuilder models.... function createScene (line 3121) | func createScene(ctx context.Context, width int, height int) (*models.Sc... function TestSceneQueryHasMarkers (line 3146) | func TestSceneQueryHasMarkers(t *testing.T) { function TestSceneQueryIsMissingGallery (line 3182) | func TestSceneQueryIsMissingGallery(t *testing.T) { function TestSceneQueryIsMissingStudio (line 3211) | func TestSceneQueryIsMissingStudio(t *testing.T) { function TestSceneQueryIsMissingMovies (line 3240) | func TestSceneQueryIsMissingMovies(t *testing.T) { function TestSceneQueryIsMissingPerformers (line 3269) | func TestSceneQueryIsMissingPerformers(t *testing.T) { function TestSceneQueryIsMissingDate (line 3300) | func TestSceneQueryIsMissingDate(t *testing.T) { function TestSceneQueryIsMissingTags (line 3322) | func TestSceneQueryIsMissingTags(t *testing.T) { function TestSceneQueryIsMissingRating (line 3348) | func TestSceneQueryIsMissingRating(t *testing.T) { function TestSceneQueryIsMissingPhash (line 3369) | func TestSceneQueryIsMissingPhash(t *testing.T) { function TestSceneQueryPerformers (line 3389) | func TestSceneQueryPerformers(t *testing.T) { function TestSceneQueryTags (line 3525) | func TestSceneQueryTags(t *testing.T) { function TestSceneQueryPerformerTags (line 3661) | func TestSceneQueryPerformerTags(t *testing.T) { function TestSceneQueryStudio (line 3859) | func TestSceneQueryStudio(t *testing.T) { function TestSceneQueryStudioDepth (line 3953) | func TestSceneQueryStudioDepth(t *testing.T) { function TestSceneGroups (line 4013) | func TestSceneGroups(t *testing.T) { function TestSceneQueryMovies (line 4107) | func TestSceneQueryMovies(t *testing.T) { function TestSceneQueryPhashDuplicated (line 4147) | func TestSceneQueryPhashDuplicated(t *testing.T) { function TestSceneQuerySorting (line 4173) | func TestSceneQuerySorting(t *testing.T) { function TestSceneQueryPagination (line 4312) | func TestSceneQueryPagination(t *testing.T) { function TestSceneQueryTagCount (line 4346) | func TestSceneQueryTagCount(t *testing.T) { function verifyScenesTagCount (line 4365) | func verifyScenesTagCount(t *testing.T, tagCountCriterion models.IntCrit... function TestSceneQueryPerformerCount (line 4387) | func TestSceneQueryPerformerCount(t *testing.T) { function verifyScenesPerformerCount (line 4406) | func verifyScenesPerformerCount(t *testing.T, performerCountCriterion mo... function TestFindByMovieID (line 4429) | func TestFindByMovieID(t *testing.T) { function TestFindByPerformerID (line 4454) | func TestFindByPerformerID(t *testing.T) { function TestSceneUpdateSceneCover (line 4479) | func TestSceneUpdateSceneCover(t *testing.T) { function TestSceneStashIDs (line 4491) | func TestSceneStashIDs(t *testing.T) { function testSceneStashIDs (line 4515) | func testSceneStashIDs(ctx context.Context, t *testing.T, s *models.Scen... function TestSceneQueryQTrim (line 4568) | func TestSceneQueryQTrim(t *testing.T) { function TestSceneStore_All (line 4611) | func TestSceneStore_All(t *testing.T) { function TestSceneStore_FindDuplicates (line 4628) | func TestSceneStore_FindDuplicates(t *testing.T) { function TestSceneStore_AssignFiles (line 4656) | func TestSceneStore_AssignFiles(t *testing.T) { function TestSceneStore_AddView (line 4698) | func TestSceneStore_AddView(t *testing.T) { function TestSceneStore_DecrementWatchCount (line 4756) | func TestSceneStore_DecrementWatchCount(t *testing.T) { function TestSceneStore_SaveActivity (line 4760) | func TestSceneStore_SaveActivity(t *testing.T) { function TestSceneQueryCustomFields (line 4856) | func TestSceneQueryCustomFields(t *testing.T) { function TestSceneStore_CountAllViews (line 5107) | func TestSceneStore_CountAllViews(t *testing.T) { function TestSceneStore_CountUniqueViews (line 5140) | func TestSceneStore_CountUniqueViews(t *testing.T) { FILE: pkg/sqlite/setup_test.go constant spacedSceneTitle (line 30) | spacedSceneTitle = "zzz yyy xxx" constant folderIdxRoot (line 34) | folderIdxRoot = iota constant folderIdxWithSubFolder (line 35) | folderIdxWithSubFolder constant folderIdxWithParentFolder (line 36) | folderIdxWithParentFolder constant folderIdxWithFiles (line 37) | folderIdxWithFiles constant folderIdxInZip (line 38) | folderIdxInZip constant folderIdxForObjectFiles (line 40) | folderIdxForObjectFiles constant folderIdxWithImageFiles (line 41) | folderIdxWithImageFiles constant folderIdxWithGalleryFiles (line 42) | folderIdxWithGalleryFiles constant folderIdxWithSceneFiles (line 43) | folderIdxWithSceneFiles constant totalFolders (line 45) | totalFolders constant fileIdxZip (line 49) | fileIdxZip = iota constant fileIdxInZip (line 50) | fileIdxInZip constant fileIdxStartVideoFiles (line 52) | fileIdxStartVideoFiles constant fileIdxStartImageFiles (line 53) | fileIdxStartImageFiles constant fileIdxStartGalleryFiles (line 54) | fileIdxStartGalleryFiles constant totalFiles (line 56) | totalFiles constant sceneIdxWithGroup (line 60) | sceneIdxWithGroup = iota constant sceneIdxWithGallery (line 61) | sceneIdxWithGallery constant sceneIdxWithPerformer (line 62) | sceneIdxWithPerformer constant sceneIdx1WithPerformer (line 63) | sceneIdx1WithPerformer constant sceneIdx2WithPerformer (line 64) | sceneIdx2WithPerformer constant sceneIdxWithTwoPerformers (line 65) | sceneIdxWithTwoPerformers constant sceneIdxWithThreePerformers (line 66) | sceneIdxWithThreePerformers constant sceneIdxWithTag (line 67) | sceneIdxWithTag constant sceneIdxWithTwoTags (line 68) | sceneIdxWithTwoTags constant sceneIdxWithThreeTags (line 69) | sceneIdxWithThreeTags constant sceneIdxWithMarkerAndTag (line 70) | sceneIdxWithMarkerAndTag constant sceneIdxWithMarkerTwoTags (line 71) | sceneIdxWithMarkerTwoTags constant sceneIdxWithStudio (line 72) | sceneIdxWithStudio constant sceneIdx1WithStudio (line 73) | sceneIdx1WithStudio constant sceneIdx2WithStudio (line 74) | sceneIdx2WithStudio constant sceneIdxWithMarkers (line 75) | sceneIdxWithMarkers constant sceneIdxWithPerformerTag (line 76) | sceneIdxWithPerformerTag constant sceneIdxWithTwoPerformerTag (line 77) | sceneIdxWithTwoPerformerTag constant sceneIdxWithPerformerTwoTags (line 78) | sceneIdxWithPerformerTwoTags constant sceneIdxWithSpacedName (line 79) | sceneIdxWithSpacedName constant sceneIdxWithStudioPerformer (line 80) | sceneIdxWithStudioPerformer constant sceneIdx1WithTwoStudioPerformer (line 81) | sceneIdx1WithTwoStudioPerformer constant sceneIdx2WithTwoStudioPerformer (line 82) | sceneIdx2WithTwoStudioPerformer constant sceneIdxWithGrandChildStudio (line 83) | sceneIdxWithGrandChildStudio constant sceneIdxMissingPhash (line 84) | sceneIdxMissingPhash constant sceneIdxWithPerformerParentTag (line 85) | sceneIdxWithPerformerParentTag constant sceneIdxWithGroupWithParent (line 86) | sceneIdxWithGroupWithParent constant lastSceneIdx (line 88) | lastSceneIdx constant totalScenes (line 90) | totalScenes = lastSceneIdx + 3 constant dupeScenePhashes (line 93) | dupeScenePhashes = 2 constant imageIdxWithGallery (line 96) | imageIdxWithGallery = iota constant imageIdx1WithGallery (line 97) | imageIdx1WithGallery constant imageIdx2WithGallery (line 98) | imageIdx2WithGallery constant imageIdxWithTwoGalleries (line 99) | imageIdxWithTwoGalleries constant imageIdxWithPerformer (line 100) | imageIdxWithPerformer constant imageIdx1WithPerformer (line 101) | imageIdx1WithPerformer constant imageIdx2WithPerformer (line 102) | imageIdx2WithPerformer constant imageIdxWithTwoPerformers (line 103) | imageIdxWithTwoPerformers constant imageIdxWithThreePerformers (line 104) | imageIdxWithThreePerformers constant imageIdxWithTag (line 105) | imageIdxWithTag constant imageIdxWithTwoTags (line 106) | imageIdxWithTwoTags constant imageIdxWithThreeTags (line 107) | imageIdxWithThreeTags constant imageIdxWithStudio (line 108) | imageIdxWithStudio constant imageIdx1WithStudio (line 109) | imageIdx1WithStudio constant imageIdx2WithStudio (line 110) | imageIdx2WithStudio constant imageIdxWithStudioPerformer (line 111) | imageIdxWithStudioPerformer constant imageIdxInZip (line 112) | imageIdxInZip constant imageIdxWithPerformerTag (line 113) | imageIdxWithPerformerTag constant imageIdxWithTwoPerformerTag (line 114) | imageIdxWithTwoPerformerTag constant imageIdxWithPerformerTwoTags (line 115) | imageIdxWithPerformerTwoTags constant imageIdxWithGrandChildStudio (line 116) | imageIdxWithGrandChildStudio constant imageIdxWithPerformerParentTag (line 117) | imageIdxWithPerformerParentTag constant totalImages (line 119) | totalImages constant performerIdxWithScene (line 123) | performerIdxWithScene = iota constant performerIdx1WithScene (line 124) | performerIdx1WithScene constant performerIdx2WithScene (line 125) | performerIdx2WithScene constant performerIdx3WithScene (line 126) | performerIdx3WithScene constant performerIdxWithTwoScenes (line 127) | performerIdxWithTwoScenes constant performerIdxWithImage (line 128) | performerIdxWithImage constant performerIdxWithTwoImages (line 129) | performerIdxWithTwoImages constant performerIdx1WithImage (line 130) | performerIdx1WithImage constant performerIdx2WithImage (line 131) | performerIdx2WithImage constant performerIdx3WithImage (line 132) | performerIdx3WithImage constant performerIdxWithTag (line 133) | performerIdxWithTag constant performerIdx2WithTag (line 134) | performerIdx2WithTag constant performerIdxWithTwoTags (line 135) | performerIdxWithTwoTags constant performerIdxWithGallery (line 136) | performerIdxWithGallery constant performerIdxWithTwoGalleries (line 137) | performerIdxWithTwoGalleries constant performerIdx1WithGallery (line 138) | performerIdx1WithGallery constant performerIdx2WithGallery (line 139) | performerIdx2WithGallery constant performerIdx3WithGallery (line 140) | performerIdx3WithGallery constant performerIdxWithSceneStudio (line 141) | performerIdxWithSceneStudio constant performerIdxWithImageStudio (line 142) | performerIdxWithImageStudio constant performerIdxWithGalleryStudio (line 143) | performerIdxWithGalleryStudio constant performerIdxWithTwoSceneStudio (line 144) | performerIdxWithTwoSceneStudio constant performerIdxWithParentTag (line 145) | performerIdxWithParentTag constant performerIdx1WithDupName (line 148) | performerIdx1WithDupName constant performerIdxWithDupName (line 149) | performerIdxWithDupName constant performersNameCase (line 151) | performersNameCase = performerIdx1WithDupName constant performersNameNoCase (line 152) | performersNameNoCase = 2 constant totalPerformers (line 154) | totalPerformers = performersNameCase + performersNameNoCase constant groupIdxWithScene (line 158) | groupIdxWithScene = iota constant groupIdxWithStudio (line 159) | groupIdxWithStudio constant groupIdxWithTag (line 160) | groupIdxWithTag constant groupIdxWithTwoTags (line 161) | groupIdxWithTwoTags constant groupIdxWithThreeTags (line 162) | groupIdxWithThreeTags constant groupIdxWithGrandChild (line 163) | groupIdxWithGrandChild constant groupIdxWithChild (line 164) | groupIdxWithChild constant groupIdxWithParentAndChild (line 165) | groupIdxWithParentAndChild constant groupIdxWithParent (line 166) | groupIdxWithParent constant groupIdxWithGrandParent (line 167) | groupIdxWithGrandParent constant groupIdxWithParentAndScene (line 168) | groupIdxWithParentAndScene constant groupIdxWithChildWithScene (line 169) | groupIdxWithChildWithScene constant groupIdxWithDupName (line 171) | groupIdxWithDupName constant groupsNameCase (line 173) | groupsNameCase = groupIdxWithDupName constant groupsNameNoCase (line 174) | groupsNameNoCase = 1 constant galleryIdxWithScene (line 178) | galleryIdxWithScene = iota constant galleryIdxWithChapters (line 179) | galleryIdxWithChapters constant galleryIdxWithImage (line 180) | galleryIdxWithImage constant galleryIdx1WithImage (line 181) | galleryIdx1WithImage constant galleryIdx2WithImage (line 182) | galleryIdx2WithImage constant galleryIdxWithTwoImages (line 183) | galleryIdxWithTwoImages constant galleryIdxWithPerformer (line 184) | galleryIdxWithPerformer constant galleryIdx1WithPerformer (line 185) | galleryIdx1WithPerformer constant galleryIdx2WithPerformer (line 186) | galleryIdx2WithPerformer constant galleryIdxWithTwoPerformers (line 187) | galleryIdxWithTwoPerformers constant galleryIdxWithThreePerformers (line 188) | galleryIdxWithThreePerformers constant galleryIdxWithTag (line 189) | galleryIdxWithTag constant galleryIdxWithTwoTags (line 190) | galleryIdxWithTwoTags constant galleryIdxWithThreeTags (line 191) | galleryIdxWithThreeTags constant galleryIdxWithStudio (line 192) | galleryIdxWithStudio constant galleryIdx1WithStudio (line 193) | galleryIdx1WithStudio constant galleryIdx2WithStudio (line 194) | galleryIdx2WithStudio constant galleryIdxWithPerformerTag (line 195) | galleryIdxWithPerformerTag constant galleryIdxWithTwoPerformerTag (line 196) | galleryIdxWithTwoPerformerTag constant galleryIdxWithPerformerTwoTags (line 197) | galleryIdxWithPerformerTwoTags constant galleryIdxWithStudioPerformer (line 198) | galleryIdxWithStudioPerformer constant galleryIdxWithGrandChildStudio (line 199) | galleryIdxWithGrandChildStudio constant galleryIdxWithoutFile (line 200) | galleryIdxWithoutFile constant galleryIdxWithPerformerParentTag (line 201) | galleryIdxWithPerformerParentTag constant lastGalleryIdx (line 203) | lastGalleryIdx constant totalGalleries (line 205) | totalGalleries = lastGalleryIdx + 1 constant tagIdxWithScene (line 209) | tagIdxWithScene = iota constant tagIdx1WithScene (line 210) | tagIdx1WithScene constant tagIdx2WithScene (line 211) | tagIdx2WithScene constant tagIdx3WithScene (line 212) | tagIdx3WithScene constant tagIdxWithPrimaryMarkers (line 213) | tagIdxWithPrimaryMarkers constant tagIdxWithMarkers (line 214) | tagIdxWithMarkers constant tagIdxWithCoverImage (line 215) | tagIdxWithCoverImage constant tagIdxWithImage (line 216) | tagIdxWithImage constant tagIdx1WithImage (line 217) | tagIdx1WithImage constant tagIdx2WithImage (line 218) | tagIdx2WithImage constant tagIdx3WithImage (line 219) | tagIdx3WithImage constant tagIdxWithPerformer (line 220) | tagIdxWithPerformer constant tagIdx1WithPerformer (line 221) | tagIdx1WithPerformer constant tagIdx2WithPerformer (line 222) | tagIdx2WithPerformer constant tagIdxWithStudio (line 223) | tagIdxWithStudio constant tagIdx1WithStudio (line 224) | tagIdx1WithStudio constant tagIdx2WithStudio (line 225) | tagIdx2WithStudio constant tagIdxWithGallery (line 226) | tagIdxWithGallery constant tagIdx1WithGallery (line 227) | tagIdx1WithGallery constant tagIdx2WithGallery (line 228) | tagIdx2WithGallery constant tagIdx3WithGallery (line 229) | tagIdx3WithGallery constant tagIdxWithChildTag (line 230) | tagIdxWithChildTag constant tagIdxWithParentTag (line 231) | tagIdxWithParentTag constant tagIdxWithGrandChild (line 232) | tagIdxWithGrandChild constant tagIdxWithParentAndChild (line 233) | tagIdxWithParentAndChild constant tagIdxWithGrandParent (line 234) | tagIdxWithGrandParent constant tagIdx2WithMarkers (line 235) | tagIdx2WithMarkers constant tagIdxWithGroup (line 236) | tagIdxWithGroup constant tagIdx1WithGroup (line 237) | tagIdx1WithGroup constant tagIdx2WithGroup (line 238) | tagIdx2WithGroup constant tagIdx3WithGroup (line 239) | tagIdx3WithGroup constant tagIdx1WithDupName (line 242) | tagIdx1WithDupName constant tagIdxWithDupName (line 243) | tagIdxWithDupName constant tagsNameNoCase (line 245) | tagsNameNoCase = 2 constant tagsNameCase (line 246) | tagsNameCase = tagIdx1WithDupName constant totalTags (line 248) | totalTags = tagsNameCase + tagsNameNoCase constant studioIdxWithScene (line 252) | studioIdxWithScene = iota constant studioIdxWithTwoScenes (line 253) | studioIdxWithTwoScenes constant studioIdxWithGroup (line 254) | studioIdxWithGroup constant studioIdxWithChildStudio (line 255) | studioIdxWithChildStudio constant studioIdxWithParentStudio (line 256) | studioIdxWithParentStudio constant studioIdxWithImage (line 257) | studioIdxWithImage constant studioIdxWithTwoImages (line 258) | studioIdxWithTwoImages constant studioIdxWithGallery (line 259) | studioIdxWithGallery constant studioIdxWithTwoGalleries (line 260) | studioIdxWithTwoGalleries constant studioIdxWithScenePerformer (line 261) | studioIdxWithScenePerformer constant studioIdxWithImagePerformer (line 262) | studioIdxWithImagePerformer constant studioIdxWithGalleryPerformer (line 263) | studioIdxWithGalleryPerformer constant studioIdx1WithTwoScenePerformer (line 264) | studioIdx1WithTwoScenePerformer constant studioIdx2WithTwoScenePerformer (line 265) | studioIdx2WithTwoScenePerformer constant studioIdxWithTag (line 266) | studioIdxWithTag constant studioIdx2WithTag (line 267) | studioIdx2WithTag constant studioIdxWithTwoTags (line 268) | studioIdxWithTwoTags constant studioIdxWithParentTag (line 269) | studioIdxWithParentTag constant studioIdxWithGrandChild (line 270) | studioIdxWithGrandChild constant studioIdxWithParentAndChild (line 271) | studioIdxWithParentAndChild constant studioIdxWithGrandParent (line 272) | studioIdxWithGrandParent constant studioIdxWithDupName (line 275) | studioIdxWithDupName constant studiosNameCase (line 277) | studiosNameCase = studioIdxWithDupName constant studiosNameNoCase (line 278) | studiosNameNoCase = 1 constant totalStudios (line 280) | totalStudios = studiosNameCase + studiosNameNoCase constant markerIdxWithScene (line 284) | markerIdxWithScene = iota constant markerIdxWithTag (line 285) | markerIdxWithTag constant markerIdxWithSceneTag (line 286) | markerIdxWithSceneTag constant markerIdxWithDuration (line 287) | markerIdxWithDuration constant markerIdx2WithDuration (line 288) | markerIdx2WithDuration constant totalMarkers (line 289) | totalMarkers constant chapterIdxWithGallery (line 293) | chapterIdxWithGallery = iota constant totalChapters (line 294) | totalChapters constant savedFilterIdxScene (line 298) | savedFilterIdxScene = iota constant savedFilterIdxImage (line 299) | savedFilterIdxImage constant totalSavedFilters (line 302) | totalSavedFilters constant pathField (line 306) | pathField = "Path" constant checksumField (line 307) | checksumField = "Checksum" constant titleField (line 308) | titleField = "Title" constant detailsField (line 309) | detailsField = "Details" constant urlField (line 310) | urlField = "URL" constant zipPath (line 311) | zipPath = "zipPath.zip" constant firstSavedFilterName (line 312) | firstSavedFilterName = "firstSavedFilterName" type idAssociation (line 341) | type idAssociation struct type linkMap (line 346) | type linkMap method reverseLookup (line 348) | func (m linkMap) reverseLookup(idx int) []int { type markerSpec (line 430) | type markerSpec struct type chapterSpec (line 448) | type chapterSpec struct function indexesToIDs (line 578) | func indexesToIDs(ids []int, indexes []int) []int { function indexToID (line 587) | func indexToID(ids []int, idx int) int { function indexesToIDPtrs (line 594) | func indexesToIDPtrs[T any](ids []T, indexes []int) []*T { function indexToIDPtr (line 603) | func indexToIDPtr[T any](ids []T, idx int) *T { function indexFromID (line 610) | func indexFromID(ids []int, id int) int { function TestMain (line 622) | func TestMain(m *testing.M) { function withTxn (line 630) | func withTxn(f func(ctx context.Context) error) error { function withRollbackTxn (line 634) | func withRollbackTxn(f func(ctx context.Context) error) error { function runWithRollbackTxn (line 644) | func runWithRollbackTxn(t *testing.T, name string, f func(t *testing.T, ... function testTeardown (line 653) | func testTeardown(databaseFile string) { function runTests (line 666) | func runTests(m *testing.M) int { function populateDB (line 697) | func populateDB() error { function getFolderPath (line 782) | func getFolderPath(index int, parentFolderIdx *int) string { function getFolderBasename (line 792) | func getFolderBasename(index int, parentFolderIdx *int) string { function getFolderModTime (line 796) | func getFolderModTime(index int) time.Time { function makeFolder (line 800) | func makeFolder(i int) models.Folder { function createFolders (line 819) | func createFolders(ctx context.Context) error { function linkFoldersToZip (line 836) | func linkFoldersToZip(ctx context.Context) error { function getFileBaseName (line 857) | func getFileBaseName(index int) string { function getFileStringValue (line 861) | func getFileStringValue(index int, field string) string { function getFileModTime (line 865) | func getFileModTime(index int) time.Time { function getFilePhash (line 869) | func getFilePhash(index int) int64 { function getFileFingerprints (line 873) | func getFileFingerprints(index int) []models.Fingerprint { function getFileSize (line 890) | func getFileSize(index int) int64 { function getFileDuration (line 894) | func getFileDuration(index int) float64 { function makeFile (line 901) | func makeFile(i int) models.File { function createFiles (line 951) | func createFiles(ctx context.Context) error { function getPrefixedStringValue (line 967) | func getPrefixedStringValue(prefix string, index int, field string) stri... function getPrefixedNullStringValue (line 971) | func getPrefixedNullStringValue(prefix string, index int, field string) ... function getSceneStringValue (line 987) | func getSceneStringValue(index int, field string) string { function getScenePhash (line 991) | func getScenePhash(index int, field string) int64 { function getSceneStringPtr (line 995) | func getSceneStringPtr(index int, field string) *string { function getSceneNullStringPtr (line 1000) | func getSceneNullStringPtr(index int, field string) *string { function getSceneEmptyString (line 1004) | func getSceneEmptyString(index int, field string) string { function getSceneTitle (line 1013) | func getSceneTitle(index int) string { function getRating (line 1022) | func getRating(index int) sql.NullInt64 { function getIntPtr (line 1027) | func getIntPtr(r sql.NullInt64) *int { function getStringPtrFromNullString (line 1036) | func getStringPtrFromNullString(r sql.NullString) *string { function getStringPtr (line 1045) | func getStringPtr(r string) *string { function getEmptyStringFromPtr (line 1053) | func getEmptyStringFromPtr(v *string) string { function getOCounter (line 1061) | func getOCounter(index int) int { function getSceneDuration (line 1065) | func getSceneDuration(index int) float64 { function getHeight (line 1072) | func getHeight(index int) int { function getWidth (line 1078) | func getWidth(index int) int { function getObjectDate (line 1083) | func getObjectDate(index int) *models.Date { function sceneStashIDs (line 1095) | func sceneStashIDs(i int) []models.StashID { function sceneStashID (line 1102) | func sceneStashID(i int) models.StashID { function getSceneBasename (line 1110) | func getSceneBasename(index int) string { function makeSceneFile (line 1114) | func makeSceneFile(i int) *models.VideoFile { function getScenePlayDuration (line 1146) | func getScenePlayDuration(index int) float64 { function getSceneResumeTime (line 1154) | func getSceneResumeTime(index int) float64 { function makeScene (line 1162) | func makeScene(i int) *models.Scene { function getSceneCustomFields (line 1206) | func getSceneCustomFields(index int) map[string]interface{} { function createScenes (line 1218) | func createScenes(ctx context.Context, n int) error { function getImageStringValue (line 1245) | func getImageStringValue(index int, field string) string { function getImageNullStringPtr (line 1249) | func getImageNullStringPtr(index int, field string) *string { function getImageEmptyString (line 1253) | func getImageEmptyString(index int, field string) string { function getImageBasename (line 1262) | func getImageBasename(index int) string { function getImageCustomFields (line 1266) | func getImageCustomFields(index int) map[string]interface{} { function makeImageFile (line 1278) | func makeImageFile(i int) *models.ImageFile { function makeImage (line 1296) | func makeImage(i int) *models.Image { function createImages (line 1324) | func createImages(ctx context.Context, n int) error { function getGalleryStringValue (line 1357) | func getGalleryStringValue(index int, field string) string { function getGalleryNullStringValue (line 1361) | func getGalleryNullStringValue(index int, field string) sql.NullString { function getGalleryNullStringPtr (line 1365) | func getGalleryNullStringPtr(index int, field string) *string { function getGalleryEmptyString (line 1369) | func getGalleryEmptyString(index int, field string) string { function getGalleryBasename (line 1378) | func getGalleryBasename(index int) string { function makeGalleryFile (line 1382) | func makeGalleryFile(i int) *models.BaseFile { function makeGallery (line 1396) | func makeGallery(i int, includeScenes bool) *models.Gallery { function getGalleryCustomFields (line 1425) | func getGalleryCustomFields(index int) map[string]interface{} { function createGalleries (line 1437) | func createGalleries(ctx context.Context, n int) error { function getGroupStringValue (line 1474) | func getGroupStringValue(index int, field string) string { function getGroupNullStringValue (line 1478) | func getGroupNullStringValue(index int, field string) string { function getGroupEmptyString (line 1484) | func getGroupEmptyString(index int, field string) string { function getGroupCustomFields (line 1493) | func getGroupCustomFields(index int) map[string]interface{} { function createGroups (line 1506) | func createGroups(ctx context.Context, mqb models.GroupReaderWriter, n i... function getPerformerStringValue (line 1551) | func getPerformerStringValue(index int, field string) string { function getPerformerNullStringValue (line 1555) | func getPerformerNullStringValue(index int, field string) string { function getPerformerEmptyString (line 1561) | func getPerformerEmptyString(index int, field string) string { function getPerformerBoolValue (line 1570) | func getPerformerBoolValue(index int) bool { function getPerformerBirthdate (line 1575) | func getPerformerBirthdate(index int) *models.Date { function getPerformerDeathDate (line 1586) | func getPerformerDeathDate(index int) *models.Date { function getPerformerCareerStart (line 1600) | func getPerformerCareerStart(index int) *models.Date { function getPerformerCareerEnd (line 1609) | func getPerformerCareerEnd(index int) *models.Date { function getPerformerPenisLength (line 1622) | func getPerformerPenisLength(index int) *float64 { function getPerformerCircumcised (line 1631) | func getPerformerCircumcised(index int) *models.CircumcisedEnum { function getIgnoreAutoTag (line 1645) | func getIgnoreAutoTag(index int) bool { function performerStashID (line 1649) | func performerStashID(i int) models.StashID { function performerAliases (line 1656) | func performerAliases(i int) []string { function getPerformerCustomFields (line 1664) | func getPerformerCustomFields(index int) map[string]interface{} { function createPerformers (line 1677) | func createPerformers(ctx context.Context, n int, o int) error { function getTagBoolValue (line 1739) | func getTagBoolValue(index int) bool { function getTagStringValue (line 1743) | func getTagStringValue(index int, field string) string { function getTagSceneCount (line 1747) | func getTagSceneCount(id int) int { function getTagMarkerCount (line 1752) | func getTagMarkerCount(id int) int { function getTagImageCount (line 1764) | func getTagImageCount(id int) int { function getTagGalleryCount (line 1769) | func getTagGalleryCount(id int) int { function getTagPerformerCount (line 1774) | func getTagPerformerCount(id int) int { function getTagStudioCount (line 1779) | func getTagStudioCount(id int) int { function getTagParentCount (line 1784) | func getTagParentCount(id int) int { function getTagChildCount (line 1792) | func getTagChildCount(id int) int { function tagStashID (line 1800) | func tagStashID(i int) models.StashID { function getTagCustomFields (line 1807) | func getTagCustomFields(index int) map[string]interface{} { function createTags (line 1820) | func createTags(ctx context.Context, tqb models.TagReaderWriter, n int, ... function getStudioStringValue (line 1868) | func getStudioStringValue(index int, field string) string { function getStudioNullStringValue (line 1872) | func getStudioNullStringValue(index int, field string) string { function getStudioCustomFields (line 1878) | func getStudioCustomFields(index int) map[string]interface{} { function createStudio (line 1890) | func createStudio(ctx context.Context, sqb *sqlite.StudioStore, name str... function createStudioFromModel (line 1907) | func createStudioFromModel(ctx context.Context, sqb *sqlite.StudioStore,... function getStudioBoolValue (line 1920) | func getStudioBoolValue(index int) bool { function getStudioEmptyString (line 1925) | func getStudioEmptyString(index int, field string) string { function getStudioStringList (line 1934) | func getStudioStringList(index int, field string) []string { function createStudios (line 1944) | func createStudios(ctx context.Context, n int, o int) error { function getMarkerEndSeconds (line 1986) | func getMarkerEndSeconds(index int) *float64 { function createMarker (line 1994) | func createMarker(ctx context.Context, mqb models.SceneMarkerReaderWrite... function createChapter (line 2025) | func createChapter(ctx context.Context, mqb models.GalleryChapterReaderW... function getSavedFilterMode (line 2043) | func getSavedFilterMode(index int) models.FilterMode { function getSavedFilterName (line 2054) | func getSavedFilterName(index int) string { function createSavedFilters (line 2063) | func createSavedFilters(ctx context.Context, qb models.SavedFilterReader... function doLinks (line 2102) | func doLinks(links [][2]int, fn func(idx1, idx2 int) error) error { function linkGroupStudios (line 2112) | func linkGroupStudios(ctx context.Context, mqb models.GroupWriter) error { function linkStudiosParent (line 2123) | func linkStudiosParent(ctx context.Context) error { function linkTagsParent (line 2136) | func linkTagsParent(ctx context.Context, qb models.TagReaderWriter) error { function linkGroupsParent (line 2155) | func linkGroupsParent(ctx context.Context, qb models.GroupReaderWriter) ... function addTagImage (line 2173) | func addTagImage(ctx context.Context, qb models.TagWriter, tagIndex int)... FILE: pkg/sqlite/sql.go function selectAll (line 14) | func selectAll(tableName string) string { function distinctIDs (line 19) | func distinctIDs(qb *queryBuilder, tableName string) { function selectIDs (line 24) | func selectIDs(qb *queryBuilder, tableName string) { function getColumn (line 29) | func getColumn(tableName string, columnName string) string { function getPagination (line 33) | func getPagination(findFilter *models.FindFilterType) string { function getPaginationSQL (line 45) | func getPaginationSQL(page int, perPage int) string { constant randomSeedPrefix (line 50) | randomSeedPrefix = "random_" type sortOptions (line 52) | type sortOptions method validateSort (line 54) | func (o sortOptions) validateSort(sort string) error { function validateIsMissing (line 74) | func validateIsMissing(isMissing string, allowed []string) error { function getSortDirection (line 84) | func getSortDirection(direction string) string { function getSort (line 91) | func getSort(sort string, direction string, tableName string) string { function getRandomSort (line 129) | func getRandomSort(tableName string, direction string, seed uint64) stri... function getCountSort (line 146) | func getCountSort(primaryTable, joinTable, primaryFK, direction string) ... function getStringSearchClause (line 152) | func getStringSearchClause(columns []string, q string, not bool) sqlClau... function getEnumSearchClause (line 187) | func getEnumSearchClause(column string, enumVals []string, not bool) sql... function getInBinding (line 203) | func getInBinding(length int) string { function getIntCriterionWhereClause (line 209) | func getIntCriterionWhereClause(column string, input models.IntCriterion... function getIntWhereClause (line 213) | func getIntWhereClause(column string, modifier models.CriterionModifier,... function getFloatCriterionWhereClause (line 223) | func getFloatCriterionWhereClause(column string, input models.FloatCrite... function getFloatWhereClause (line 227) | func getFloatWhereClause(column string, modifier models.CriterionModifie... function getNumericWhereClause (line 237) | func getNumericWhereClause(column string, modifier models.CriterionModif... function getDateCriterionWhereClause (line 262) | func getDateCriterionWhereClause(column string, input models.DateCriteri... function getDateWhereClause (line 266) | func getDateWhereClause(column string, modifier models.CriterionModifier... function getTimestampCriterionWhereClause (line 300) | func getTimestampCriterionWhereClause(column string, input models.Timest... function getTimestampWhereClause (line 304) | func getTimestampWhereClause(column string, modifier models.CriterionMod... function getMultiCriterionClause (line 336) | func getMultiCriterionClause(primaryTable, foreignTable, joinTable, prim... function getCountCriterionClause (line 368) | func getCountCriterionClause(primaryTable, joinTable, primaryFK string, ... function coalesce (line 373) | func coalesce(column string) string { function like (line 377) | func like(v string) string { type sqlTable (line 381) | type sqlTable method Name (line 383) | func (t sqlTable) Name() string { method Col (line 387) | func (t sqlTable) Col(n string) string { FILE: pkg/sqlite/stash_id_test.go type stashIDReaderWriter (line 14) | type stashIDReaderWriter interface function testStashIDReaderWriter (line 19) | func testStashIDReaderWriter(ctx context.Context, t *testing.T, r stashI... function testNoStashIDs (line 55) | func testNoStashIDs(ctx context.Context, t *testing.T, r stashIDReaderWr... function testStashIDs (line 66) | func testStashIDs(ctx context.Context, t *testing.T, r stashIDReaderWrit... FILE: pkg/sqlite/studio.go constant studioTable (line 22) | studioTable = "studios" constant studioIDColumn (line 23) | studioIDColumn = "studio_id" constant studioURLsTable (line 25) | studioURLsTable = "studio_urls" constant studioURLColumn (line 26) | studioURLColumn = "url" constant studioAliasesTable (line 28) | studioAliasesTable = "studio_aliases" constant studioAliasColumn (line 29) | studioAliasColumn = "alias" constant studioParentIDColumn (line 30) | studioParentIDColumn = "parent_id" constant studioNameColumn (line 31) | studioNameColumn = "name" constant studioImageBlobColumn (line 32) | studioImageBlobColumn = "image_blob" constant studiosTagsTable (line 33) | studiosTagsTable = "studios_tags" type studioRow (line 36) | type studioRow struct method fromStudio (line 53) | func (r *studioRow) fromStudio(o models.Studio) { method resolve (line 66) | func (r *studioRow) resolve() *models.Studio { type studioRowRecord (line 83) | type studioRowRecord struct method fromPartial (line 87) | func (r *studioRowRecord) fromPartial(o models.StudioPartial) { type studioRepositoryType (line 99) | type studioRepositoryType struct type StudioStore (line 151) | type StudioStore struct method table (line 179) | func (qb *StudioStore) table() exp.IdentifierExpression { method selectDataset (line 183) | func (qb *StudioStore) selectDataset() *goqu.SelectDataset { method Create (line 187) | func (qb *StudioStore) Create(ctx context.Context, newObject *models.C... method UpdatePartial (line 239) | func (qb *StudioStore) UpdatePartial(ctx context.Context, input models... method Update (line 284) | func (qb *StudioStore) Update(ctx context.Context, updatedObject *mode... method Destroy (line 321) | func (qb *StudioStore) Destroy(ctx context.Context, id int) error { method Find (line 331) | func (qb *StudioStore) Find(ctx context.Context, id int) (*models.Stud... method FindMany (line 339) | func (qb *StudioStore) FindMany(ctx context.Context, ids []int) ([]*mo... method find (line 370) | func (qb *StudioStore) find(ctx context.Context, id int) (*models.Stud... method get (line 382) | func (qb *StudioStore) get(ctx context.Context, q *goqu.SelectDataset)... method getMany (line 395) | func (qb *StudioStore) getMany(ctx context.Context, q *goqu.SelectData... method findBySubquery (line 415) | func (qb *StudioStore) findBySubquery(ctx context.Context, sq *goqu.Se... method FindChildren (line 427) | func (qb *StudioStore) FindChildren(ctx context.Context, id int) ([]*m... method FindBySceneID (line 440) | func (qb *StudioStore) FindBySceneID(ctx context.Context, sceneID int)... method FindByName (line 458) | func (qb *StudioStore) FindByName(ctx context.Context, name string, no... method FindByStashID (line 478) | func (qb *StudioStore) FindByStashID(ctx context.Context, stashID mode... method FindByStashIDStatus (line 492) | func (qb *StudioStore) FindByStashIDStatus(ctx context.Context, hasSta... method Count (line 519) | func (qb *StudioStore) Count(ctx context.Context) (int, error) { method All (line 524) | func (qb *StudioStore) All(ctx context.Context) ([]*models.Studio, err... method QueryForAutoTag (line 529) | func (qb *StudioStore) QueryForAutoTag(ctx context.Context, words []st... method makeQuery (line 559) | func (qb *StudioStore) makeQuery(ctx context.Context, studioFilter *mo... method Query (line 594) | func (qb *StudioStore) Query(ctx context.Context, studioFilter *models... method QueryCount (line 613) | func (qb *StudioStore) QueryCount(ctx context.Context, studioFilter *m... method sortByScenesDuration (line 622) | func (qb *StudioStore) sortByScenesDuration(direction string) string { method sortByScenesSize (line 632) | func (qb *StudioStore) sortByScenesSize(direction string) string { method sortByLatestScene (line 656) | func (qb *StudioStore) sortByLatestScene(direction string) string { method getStudioSort (line 678) | func (qb *StudioStore) getStudioSort(findFilter *models.FindFilterType... method GetImage (line 721) | func (qb *StudioStore) GetImage(ctx context.Context, studioID int) ([]... method HasImage (line 725) | func (qb *StudioStore) HasImage(ctx context.Context, studioID int) (bo... method UpdateImage (line 729) | func (qb *StudioStore) UpdateImage(ctx context.Context, studioID int, ... method destroyImage (line 733) | func (qb *StudioStore) destroyImage(ctx context.Context, studioID int)... method GetStashIDs (line 737) | func (qb *StudioStore) GetStashIDs(ctx context.Context, studioID int) ... method GetAliases (line 741) | func (qb *StudioStore) GetAliases(ctx context.Context, studioID int) (... method GetURLs (line 745) | func (qb *StudioStore) GetURLs(ctx context.Context, studioID int) ([]s... function NewStudioStore (line 159) | func NewStudioStore(blobStore *BlobStore) *StudioStore { FILE: pkg/sqlite/studio_filter.go type studioFilterHandler (line 9) | type studioFilterHandler struct method validate (line 13) | func (qb *studioFilterHandler) validate() error { method handle (line 33) | func (qb *studioFilterHandler) handle(ctx context.Context, f *filterBu... method criterionHandler (line 53) | func (qb *studioFilterHandler) criterionHandler() criterionHandler { method isMissingCriterionHandler (line 141) | func (qb *studioFilterHandler) isMissingCriterionHandler(isMissing *st... method sceneCountCriterionHandler (line 172) | func (qb *studioFilterHandler) sceneCountCriterionHandler(sceneCount *... method imageCountCriterionHandler (line 183) | func (qb *studioFilterHandler) imageCountCriterionHandler(imageCount *... method galleryCountCriterionHandler (line 194) | func (qb *studioFilterHandler) galleryCountCriterionHandler(galleryCou... method groupCountCriterionHandler (line 205) | func (qb *studioFilterHandler) groupCountCriterionHandler(groupCount *... method tagCountCriterionHandler (line 216) | func (qb *studioFilterHandler) tagCountCriterionHandler(tagCount *mode... method parentCriterionHandler (line 226) | func (qb *studioFilterHandler) parentCriterionHandler(parents *models.... method aliasCriterionHandler (line 241) | func (qb *studioFilterHandler) aliasCriterionHandler(alias *models.Str... method urlsCriterionHandler (line 255) | func (qb *studioFilterHandler) urlsCriterionHandler(url *models.String... method childCountCriterionHandler (line 269) | func (qb *studioFilterHandler) childCountCriterionHandler(childCount *... method tagsCriterionHandler (line 280) | func (qb *studioFilterHandler) tagsCriterionHandler(tags *models.Hiera... FILE: pkg/sqlite/studio_test.go function TestStudioFindByName (line 20) | func TestStudioFindByName(t *testing.T) { function loadStudioRelationships (line 51) | func loadStudioRelationships(ctx context.Context, expected models.Studio... function Test_StudioStore_Create (line 76) | func Test_StudioStore_Create(t *testing.T) { function Test_StudioStore_Update (line 203) | func Test_StudioStore_Update(t *testing.T) { function clearStudioPartial (line 364) | func clearStudioPartial() models.StudioPartial { function Test_StudioStore_UpdatePartial (line 379) | func Test_StudioStore_UpdatePartial(t *testing.T) { function Test_StudioStore_UpdatePartialCustomFields (line 536) | func Test_StudioStore_UpdatePartialCustomFields(t *testing.T) { function TestStudioQueryNameOr (line 611) | func TestStudioQueryNameOr(t *testing.T) { function TestStudioQueryNameAndUrl (line 646) | func TestStudioQueryNameAndUrl(t *testing.T) { function TestStudioQueryNameNotUrl (line 686) | func TestStudioQueryNameNotUrl(t *testing.T) { function TestStudioIllegalQuery (line 729) | func TestStudioIllegalQuery(t *testing.T) { function TestStudioQueryIgnoreAutoTag (line 767) | func TestStudioQueryIgnoreAutoTag(t *testing.T) { function TestStudioQueryForAutoTag (line 787) | func TestStudioQueryForAutoTag(t *testing.T) { function TestStudioQueryParent (line 815) | func TestStudioQueryParent(t *testing.T) { function TestStudioDestroyParent (line 861) | func TestStudioDestroyParent(t *testing.T) { function TestStudioFindChildren (line 898) | func TestStudioFindChildren(t *testing.T) { function TestStudioUpdateClearParent (line 923) | func TestStudioUpdateClearParent(t *testing.T) { function TestStudioUpdateStudioImage (line 964) | func TestStudioUpdateStudioImage(t *testing.T) { function TestStudioQuerySceneCount (line 981) | func TestStudioQuerySceneCount(t *testing.T) { function verifyStudiosSceneCount (line 1000) | func verifyStudiosSceneCount(t *testing.T, sceneCountCriterion models.In... function TestStudioQueryImageCount (line 1022) | func TestStudioQueryImageCount(t *testing.T) { function verifyStudiosImageCount (line 1041) | func verifyStudiosImageCount(t *testing.T, imageCountCriterion models.In... function TestStudioQueryGalleryCount (line 1078) | func TestStudioQueryGalleryCount(t *testing.T) { function verifyStudiosGalleryCount (line 1097) | func verifyStudiosGalleryCount(t *testing.T, galleryCountCriterion model... function TestStudioStashIDs (line 1128) | func TestStudioStashIDs(t *testing.T) { function testStudioStashIDs (line 1155) | func testStudioStashIDs(ctx context.Context, t *testing.T, s *models.Stu... function TestStudioQueryURL (line 1219) | func TestStudioQueryURL(t *testing.T) { function TestStudioQueryRating (line 1261) | func TestStudioQueryRating(t *testing.T) { function queryStudios (line 1286) | func queryStudios(ctx context.Context, t *testing.T, studioFilter *model... function TestStudioQueryTags (line 1296) | func TestStudioQueryTags(t *testing.T) { function TestStudioQueryTagCount (line 1349) | func TestStudioQueryTagCount(t *testing.T) { function verifyStudiosTagCount (line 1368) | func verifyStudiosTagCount(t *testing.T, tagCountCriterion models.IntCri... function verifyStudioQuery (line 1390) | func verifyStudioQuery(t *testing.T, filter models.StudioFilterType, ver... function verifyStudiosRating (line 1408) | func verifyStudiosRating(t *testing.T, ratingCriterion models.IntCriteri... function TestStudioQueryIsMissingRating (line 1429) | func TestStudioQueryIsMissingRating(t *testing.T) { function queryStudio (line 1453) | func queryStudio(ctx context.Context, t *testing.T, sqb models.StudioRea... function TestStudioQueryName (line 1462) | func TestStudioQueryName(t *testing.T) { function TestStudioQueryAlias (line 1492) | func TestStudioQueryAlias(t *testing.T) { function TestStudioAlias (line 1540) | func TestStudioAlias(t *testing.T) { function testStudioAlias (line 1567) | func testStudioAlias(ctx context.Context, t *testing.T, s *models.Studio) { function TestStudioQueryFast (line 1622) | func TestStudioQueryFast(t *testing.T) { function studiesToIDs (line 1704) | func studiesToIDs(i []*models.Studio) []int { function TestStudioQueryCustomFields (line 1713) | func TestStudioQueryCustomFields(t *testing.T) { FILE: pkg/sqlite/table.go type table (line 20) | type table struct method insert (line 34) | func (t *table) insert(ctx context.Context, o interface{}) (sql.Result... method insertID (line 44) | func (t *table) insertID(ctx context.Context, o interface{}) (int, err... method updateByID (line 58) | func (t *table) updateByID(ctx context.Context, id interface{}, o inte... method byID (line 68) | func (t *table) byID(id interface{}) exp.Expression { method byIDInts (line 72) | func (t *table) byIDInts(ids ...int) exp.Expression { method idExists (line 80) | func (t *table) idExists(ctx context.Context, id interface{}) (bool, e... method checkIDExists (line 91) | func (t *table) checkIDExists(ctx context.Context, id int) error { method destroyExisting (line 104) | func (t *table) destroyExisting(ctx context.Context, ids []int) error { method destroy (line 122) | func (t *table) destroy(ctx context.Context, ids []int) error { method join (line 132) | func (t *table) join(j joiner, as string, parentIDCol string) { type NotFoundError (line 25) | type NotFoundError struct method Error (line 30) | func (e *NotFoundError) Error() string { type joinTable (line 155) | type joinTable struct method invert (line 164) | func (t *joinTable) invert() *joinTable { method get (line 176) | func (t *joinTable) get(ctx context.Context, id int) ([]int, error) { method insertJoins (line 204) | func (t *joinTable) insertJoins(ctx context.Context, id int, foreignID... method replaceJoins (line 227) | func (t *joinTable) replaceJoins(ctx context.Context, id int, foreignI... method addJoins (line 235) | func (t *joinTable) addJoins(ctx context.Context, id int, foreignIDs [... method destroyJoins (line 247) | func (t *joinTable) destroyJoins(ctx context.Context, id int, foreignI... method modifyJoins (line 260) | func (t *joinTable) modifyJoins(ctx context.Context, id int, foreignID... type stashIDTable (line 273) | type stashIDTable struct method get (line 291) | func (t *stashIDTable) get(ctx context.Context, id int) ([]models.Stas... method insertJoin (line 314) | func (t *stashIDTable) insertJoin(ctx context.Context, id int, v model... method insertJoins (line 332) | func (t *stashIDTable) insertJoins(ctx context.Context, id int, v []mo... method replaceJoins (line 342) | func (t *stashIDTable) replaceJoins(ctx context.Context, id int, v []m... method addJoins (line 350) | func (t *stashIDTable) addJoins(ctx context.Context, id int, v []model... method destroyJoins (line 371) | func (t *stashIDTable) destroyJoins(ctx context.Context, id int, v []m... method modifyJoins (line 387) | func (t *stashIDTable) modifyJoins(ctx context.Context, id int, v []mo... type stashIDRow (line 277) | type stashIDRow struct method resolve (line 283) | func (r *stashIDRow) resolve() models.StashID { type stringTable (line 400) | type stringTable struct method get (line 405) | func (t *stringTable) get(ctx context.Context, id int) ([]string, erro... method insertJoin (line 426) | func (t *stringTable) insertJoin(ctx context.Context, id int, v string... method insertJoins (line 438) | func (t *stringTable) insertJoins(ctx context.Context, id int, v []str... method replaceJoins (line 448) | func (t *stringTable) replaceJoins(ctx context.Context, id int, v []st... method addJoins (line 456) | func (t *stringTable) addJoins(ctx context.Context, id int, v []string... method destroyJoins (line 468) | func (t *stringTable) destroyJoins(ctx context.Context, id int, v []st... method modifyJoins (line 483) | func (t *stringTable) modifyJoins(ctx context.Context, id int, v []str... type orderedValueTable (line 496) | type orderedValueTable struct method positionColumn (line 501) | func (t *orderedValueTable[T]) positionColumn() exp.IdentifierExpression { method get (line 506) | func (t *orderedValueTable[T]) get(ctx context.Context, id int) ([]T, er... method insertJoin (line 527) | func (t *orderedValueTable[T]) insertJoin(ctx context.Context, id int, p... method insertJoins (line 539) | func (t *orderedValueTable[T]) insertJoins(ctx context.Context, id int, ... method replaceJoins (line 549) | func (t *orderedValueTable[T]) replaceJoins(ctx context.Context, id int,... method addJoins (line 558) | func (t *orderedValueTable[T]) addJoins(ctx context.Context, id int, v [... method destroyJoins (line 576) | func (t *orderedValueTable[T]) destroyJoins(ctx context.Context, id int,... method modifyJoins (line 590) | func (t *orderedValueTable[T]) modifyJoins(ctx context.Context, id int, ... type scenesGroupsTable (line 603) | type scenesGroupsTable struct method get (line 620) | func (t *scenesGroupsTable) get(ctx context.Context, id int) ([]models... method insertJoin (line 641) | func (t *scenesGroupsTable) insertJoin(ctx context.Context, id int, v ... method insertJoins (line 653) | func (t *scenesGroupsTable) insertJoins(ctx context.Context, id int, v... method replaceJoins (line 663) | func (t *scenesGroupsTable) replaceJoins(ctx context.Context, id int, ... method addJoins (line 671) | func (t *scenesGroupsTable) addJoins(ctx context.Context, id int, v []... method destroyJoins (line 697) | func (t *scenesGroupsTable) destroyJoins(ctx context.Context, id int, ... method modifyJoins (line 712) | func (t *scenesGroupsTable) modifyJoins(ctx context.Context, id int, v... type groupsScenesRow (line 607) | type groupsScenesRow struct method resolve (line 613) | func (r groupsScenesRow) resolve(sceneID int) models.GroupsScenes { type imageGalleriesTable (line 725) | type imageGalleriesTable struct method setCover (line 729) | func (t *imageGalleriesTable) setCover(ctx context.Context, id int, ga... method resetCover (line 747) | func (t *imageGalleriesTable) resetCover(ctx context.Context, galleryI... type relatedFilesTable (line 764) | type relatedFilesTable struct method get (line 776) | func (t *relatedFilesTable) get(ctx context.Context, id int) ([]models... method insertJoin (line 797) | func (t *relatedFilesTable) insertJoin(ctx context.Context, id int, pr... method insertJoins (line 809) | func (t *relatedFilesTable) insertJoins(ctx context.Context, id int, f... method replaceJoins (line 819) | func (t *relatedFilesTable) replaceJoins(ctx context.Context, id int, ... method destroyJoins (line 829) | func (t *relatedFilesTable) destroyJoins(ctx context.Context, fileIDs ... method setPrimary (line 839) | func (t *relatedFilesTable) setPrimary(ctx context.Context, id int, fi... type viewHistoryTable (line 861) | type viewHistoryTable struct method getDates (line 866) | func (t *viewHistoryTable) getDates(ctx context.Context, id int) ([]ti... method getManyDates (line 891) | func (t *viewHistoryTable) getManyDates(ctx context.Context, ids []int... method getLastDate (line 922) | func (t *viewHistoryTable) getLastDate(ctx context.Context, id int) (*... method getManyLastDate (line 936) | func (t *viewHistoryTable) getManyLastDate(ctx context.Context, ids []... method getCount (line 975) | func (t *viewHistoryTable) getCount(ctx context.Context, id int) (int,... method getManyCount (line 993) | func (t *viewHistoryTable) getManyCount(ctx context.Context, ids []int... method getAllCount (line 1024) | func (t *viewHistoryTable) getAllCount(ctx context.Context) (int, erro... method getUniqueCount (line 1042) | func (t *viewHistoryTable) getUniqueCount(ctx context.Context) (int, e... method addDates (line 1060) | func (t *viewHistoryTable) addDates(ctx context.Context, id int, dates... method deleteDates (line 1081) | func (t *viewHistoryTable) deleteDates(ctx context.Context, id int, da... method deleteAllDates (line 1114) | func (t *viewHistoryTable) deleteAllDates(ctx context.Context, id int)... type sqler (line 1125) | type sqler interface function exec (line 1129) | func exec(ctx context.Context, stmt sqler) (sql.Result, error) { function count (line 1149) | func count(ctx context.Context, q *goqu.SelectDataset) (int, error) { function queryFunc (line 1158) | func queryFunc(ctx context.Context, query *goqu.SelectDataset, single bo... function querySimple (line 1187) | func querySimple(ctx context.Context, query *goqu.SelectDataset, out int... FILE: pkg/sqlite/tag.go constant tagTable (line 21) | tagTable = "tags" constant tagIDColumn (line 22) | tagIDColumn = "tag_id" constant tagAliasesTable (line 23) | tagAliasesTable = "tag_aliases" constant tagAliasColumn (line 24) | tagAliasColumn = "alias" constant tagImageBlobColumn (line 26) | tagImageBlobColumn = "image_blob" constant tagRelationsTable (line 28) | tagRelationsTable = "tags_relations" constant tagParentIDColumn (line 29) | tagParentIDColumn = "parent_id" constant tagChildIDColumn (line 30) | tagChildIDColumn = "child_id" type tagRow (line 33) | type tagRow struct method fromTag (line 47) | func (r *tagRow) fromTag(o models.Tag) { method resolve (line 58) | func (r *tagRow) resolve() *models.Tag { type tagPathRow (line 73) | type tagPathRow struct method resolve (line 78) | func (r *tagPathRow) resolve() *models.TagPath { type tagRowRecord (line 87) | type tagRowRecord struct method fromPartial (line 91) | func (r *tagRowRecord) fromPartial(o models.TagPartial) { type tagRepositoryType (line 101) | type tagRepositoryType struct type TagStore (line 185) | type TagStore struct method table (line 206) | func (qb *TagStore) table() exp.IdentifierExpression { method selectDataset (line 210) | func (qb *TagStore) selectDataset() *goqu.SelectDataset { method Create (line 214) | func (qb *TagStore) Create(ctx context.Context, newObject *models.Crea... method UpdatePartial (line 262) | func (qb *TagStore) UpdatePartial(ctx context.Context, id int, partial... method Update (line 308) | func (qb *TagStore) Update(ctx context.Context, updatedObject *models.... method Destroy (line 347) | func (qb *TagStore) Destroy(ctx context.Context, id int) error { method Find (line 369) | func (qb *TagStore) Find(ctx context.Context, id int) (*models.Tag, er... method FindMany (line 377) | func (qb *TagStore) FindMany(ctx context.Context, ids []int) ([]*model... method find (line 408) | func (qb *TagStore) find(ctx context.Context, id int) (*models.Tag, er... method get (line 420) | func (qb *TagStore) get(ctx context.Context, q *goqu.SelectDataset) (*... method getMany (line 433) | func (qb *TagStore) getMany(ctx context.Context, q *goqu.SelectDataset... method FindBySceneID (line 453) | func (qb *TagStore) FindBySceneID(ctx context.Context, sceneID int) ([... method FindByPerformerID (line 465) | func (qb *TagStore) FindByPerformerID(ctx context.Context, performerID... method FindByImageID (line 477) | func (qb *TagStore) FindByImageID(ctx context.Context, imageID int) ([... method FindByGalleryID (line 489) | func (qb *TagStore) FindByGalleryID(ctx context.Context, galleryID int... method FindByGroupID (line 501) | func (qb *TagStore) FindByGroupID(ctx context.Context, groupID int) ([... method FindBySceneMarkerID (line 513) | func (qb *TagStore) FindBySceneMarkerID(ctx context.Context, sceneMark... method FindByStudioID (line 525) | func (qb *TagStore) FindByStudioID(ctx context.Context, studioID int) ... method FindByName (line 537) | func (qb *TagStore) FindByName(ctx context.Context, name string, nocas... method FindByNames (line 557) | func (qb *TagStore) FindByNames(ctx context.Context, names []string, n... method FindByStashID (line 582) | func (qb *TagStore) FindByStashID(ctx context.Context, stashID models.... method FindByStashIDStatus (line 600) | func (qb *TagStore) FindByStashIDStatus(ctx context.Context, hasStashI... method GetParentIDs (line 630) | func (qb *TagStore) GetParentIDs(ctx context.Context, relatedID int) (... method GetChildIDs (line 634) | func (qb *TagStore) GetChildIDs(ctx context.Context, relatedID int) ([... method FindByParentTagID (line 638) | func (qb *TagStore) FindByParentTagID(ctx context.Context, parentID in... method FindByChildTagID (line 649) | func (qb *TagStore) FindByChildTagID(ctx context.Context, parentID int... method CountByParentTagID (line 660) | func (qb *TagStore) CountByParentTagID(ctx context.Context, parentID i... method CountByChildTagID (line 667) | func (qb *TagStore) CountByChildTagID(ctx context.Context, childID int... method Count (line 674) | func (qb *TagStore) Count(ctx context.Context) (int, error) { method All (line 679) | func (qb *TagStore) All(ctx context.Context) ([]*models.Tag, error) { method QueryForAutoTag (line 688) | func (qb *TagStore) QueryForAutoTag(ctx context.Context, words []strin... method Query (line 715) | func (qb *TagStore) Query(ctx context.Context, tagFilter *models.TagFi... method sortByScenesDuration (line 777) | func (qb *TagStore) sortByScenesDuration(direction string) string { method sortByScenesSize (line 788) | func (qb *TagStore) sortByScenesSize(direction string) string { method getDefaultTagSort (line 799) | func (qb *TagStore) getDefaultTagSort() string { method getTagSort (line 803) | func (qb *TagStore) getTagSort(query *queryBuilder, findFilter *models... method queryTags (line 850) | func (qb *TagStore) queryTags(ctx context.Context, query string, args ... method queryTagPaths (line 870) | func (qb *TagStore) queryTagPaths(ctx context.Context, query string, a... method GetImage (line 890) | func (qb *TagStore) GetImage(ctx context.Context, tagID int) ([]byte, ... method HasImage (line 894) | func (qb *TagStore) HasImage(ctx context.Context, tagID int) (bool, er... method UpdateImage (line 898) | func (qb *TagStore) UpdateImage(ctx context.Context, tagID int, image ... method destroyImage (line 902) | func (qb *TagStore) destroyImage(ctx context.Context, tagID int) error { method GetAliases (line 906) | func (qb *TagStore) GetAliases(ctx context.Context, tagID int) ([]stri... method UpdateAliases (line 910) | func (qb *TagStore) UpdateAliases(ctx context.Context, tagID int, alia... method GetStashIDs (line 914) | func (qb *TagStore) GetStashIDs(ctx context.Context, tagID int) ([]mod... method UpdateStashIDs (line 918) | func (qb *TagStore) UpdateStashIDs(ctx context.Context, tagID int, sta... method Merge (line 922) | func (qb *TagStore) Merge(ctx context.Context, source []int, destinati... method UpdateParentTags (line 1008) | func (qb *TagStore) UpdateParentTags(ctx context.Context, tagID int, p... method UpdateChildTags (line 1030) | func (qb *TagStore) UpdateChildTags(ctx context.Context, tagID int, ch... method FindAllAncestors (line 1054) | func (qb *TagStore) FindAllAncestors(ctx context.Context, tagID int, e... method FindAllDescendants (line 1078) | func (qb *TagStore) FindAllDescendants(ctx context.Context, tagID int,... function NewTagStore (line 192) | func NewTagStore(blobStore *BlobStore) *TagStore { type tagRelationshipStore (line 1100) | type tagRelationshipStore struct method CountByTagID (line 1104) | func (s *tagRelationshipStore) CountByTagID(ctx context.Context, tagID... method GetTagIDs (line 1110) | func (s *tagRelationshipStore) GetTagIDs(ctx context.Context, id int) ... FILE: pkg/sqlite/tag_filter.go type tagFilterHandler (line 9) | type tagFilterHandler struct method validate (line 13) | func (qb *tagFilterHandler) validate() error { method handle (line 33) | func (qb *tagFilterHandler) handle(ctx context.Context, f *filterBuild... method criterionHandler (line 61) | func (qb *tagFilterHandler) criterionHandler() criterionHandler { method aliasCriterionHandler (line 181) | func (qb *tagFilterHandler) aliasCriterionHandler(alias *models.String... method isMissingCriterionHandler (line 195) | func (qb *tagFilterHandler) isMissingCriterionHandler(isMissing *strin... method sceneCountCriterionHandler (line 220) | func (qb *tagFilterHandler) sceneCountCriterionHandler(sceneCount *mod... method imageCountCriterionHandler (line 231) | func (qb *tagFilterHandler) imageCountCriterionHandler(imageCount *mod... method galleryCountCriterionHandler (line 242) | func (qb *tagFilterHandler) galleryCountCriterionHandler(galleryCount ... method performerCountCriterionHandler (line 253) | func (qb *tagFilterHandler) performerCountCriterionHandler(performerCo... method studioCountCriterionHandler (line 264) | func (qb *tagFilterHandler) studioCountCriterionHandler(studioCount *m... method groupCountCriterionHandler (line 275) | func (qb *tagFilterHandler) groupCountCriterionHandler(groupCount *mod... method markerCountCriterionHandler (line 286) | func (qb *tagFilterHandler) markerCountCriterionHandler(markerCount *m... FILE: pkg/sqlite/tag_test.go function TestMarkerFindBySceneMarkerID (line 18) | func TestMarkerFindBySceneMarkerID(t *testing.T) { function TestTagFindByGroupID (line 45) | func TestTagFindByGroupID(t *testing.T) { function TestTagFindByName (line 72) | func TestTagFindByName(t *testing.T) { function TestTagQueryIgnoreAutoTag (line 103) | func TestTagQueryIgnoreAutoTag(t *testing.T) { function TestTagQueryForAutoTag (line 123) | func TestTagQueryForAutoTag(t *testing.T) { function TestTagFindByNames (line 155) | func TestTagFindByNames(t *testing.T) { function TestTagQuerySort (line 202) | func TestTagQuerySort(t *testing.T) { function TestTagQueryName (line 245) | func TestTagQueryName(t *testing.T) { function TestTagQueryAlias (line 275) | func TestTagQueryAlias(t *testing.T) { function verifyTagQuery (line 322) | func verifyTagQuery(t *testing.T, tagFilter *models.TagFilterType, findF... function queryTags (line 336) | func queryTags(ctx context.Context, t *testing.T, qb models.TagReader, t... function tagsToIDs (line 346) | func tagsToIDs(i []*models.Tag) []int { function TestTagQuery (line 355) | func TestTagQuery(t *testing.T) { function TestTagQueryIsMissingImage (line 505) | func TestTagQueryIsMissingImage(t *testing.T) { function TestTagQuerySceneCount (line 540) | func TestTagQuerySceneCount(t *testing.T) { function verifyTagSceneCount (line 559) | func verifyTagSceneCount(t *testing.T, sceneCountCriterion models.IntCri... function TestTagQueryMarkerCount (line 579) | func TestTagQueryMarkerCount(t *testing.T) { function verifyTagMarkerCount (line 598) | func verifyTagMarkerCount(t *testing.T, markerCountCriterion models.IntC... function TestTagQueryImageCount (line 618) | func TestTagQueryImageCount(t *testing.T) { function verifyTagImageCount (line 637) | func verifyTagImageCount(t *testing.T, imageCountCriterion models.IntCri... function TestTagQueryGalleryCount (line 657) | func TestTagQueryGalleryCount(t *testing.T) { function verifyTagGalleryCount (line 676) | func verifyTagGalleryCount(t *testing.T, imageCountCriterion models.IntC... function TestTagQueryPerformerCount (line 696) | func TestTagQueryPerformerCount(t *testing.T) { function verifyTagPerformerCount (line 715) | func verifyTagPerformerCount(t *testing.T, imageCountCriterion models.In... function TestTagQueryStudioCount (line 735) | func TestTagQueryStudioCount(t *testing.T) { function verifyTagStudioCount (line 754) | func verifyTagStudioCount(t *testing.T, imageCountCriterion models.IntCr... function TestTagQueryParentCount (line 774) | func TestTagQueryParentCount(t *testing.T) { function verifyTagParentCount (line 793) | func verifyTagParentCount(t *testing.T, sceneCountCriterion models.IntCr... function TestTagQueryChildCount (line 814) | func TestTagQueryChildCount(t *testing.T) { function verifyTagChildCount (line 833) | func verifyTagChildCount(t *testing.T, sceneCountCriterion models.IntCri... function TestTagQueryParent (line 854) | func TestTagQueryParent(t *testing.T) { function TestTagQueryChild (line 931) | func TestTagQueryChild(t *testing.T) { function TestTagUpdateTagImage (line 1009) | func TestTagUpdateTagImage(t *testing.T) { function TestTagUpdateAlias (line 1031) | func TestTagUpdateAlias(t *testing.T) { function TestTagStashIDs (line 1066) | func TestTagStashIDs(t *testing.T) { function TestTagFindByStashID (line 1090) | func TestTagFindByStashID(t *testing.T) { function TestTagMerge (line 1130) | func TestTagMerge(t *testing.T) { function loadTagRelationships (line 1274) | func loadTagRelationships(ctx context.Context, expected models.Tag, actu... function Test_TagStore_Create (line 1299) | func Test_TagStore_Create(t *testing.T) { function Test_TagStore_Update (line 1433) | func Test_TagStore_Update(t *testing.T) { function Test_TagStore_UpdatePartialCustomFields (line 1585) | func Test_TagStore_UpdatePartialCustomFields(t *testing.T) { function TestTagQueryCustomFields (line 1658) | func TestTagQueryCustomFields(t *testing.T) { FILE: pkg/sqlite/timestamp.go constant TimestampFormat (line 8) | TimestampFormat = time.RFC3339 type Timestamp (line 11) | type Timestamp struct method Scan (line 16) | func (t *Timestamp) Scan(value interface{}) error { method Value (line 22) | func (t Timestamp) Value() (driver.Value, error) { type UTCTimestamp (line 28) | type UTCTimestamp struct method Value (line 33) | func (t UTCTimestamp) Value() (driver.Value, error) { type NullTimestamp (line 38) | type NullTimestamp struct method Scan (line 44) | func (t *NullTimestamp) Scan(value interface{}) error { method Value (line 58) | func (t NullTimestamp) Value() (driver.Value, error) { method TimePtr (line 66) | func (t NullTimestamp) TimePtr() *time.Time { function NullTimestampFromTimePtr (line 75) | func NullTimestampFromTimePtr(t *time.Time) NullTimestamp { FILE: pkg/sqlite/transaction.go type key (line 15) | type key constant txnKey (line 18) | txnKey key = iota + 1 constant dbKey (line 19) | dbKey constant writableKey (line 20) | writableKey method WithDatabase (line 23) | func (db *Database) WithDatabase(ctx context.Context) (context.Context, ... method Begin (line 32) | func (db *Database) Begin(ctx context.Context, writable bool) (context.C... method Commit (line 55) | func (db *Database) Commit(ctx context.Context) error { method Rollback (line 70) | func (db *Database) Rollback(ctx context.Context) error { method txnComplete (line 85) | func (db *Database) txnComplete(ctx context.Context) { function getTx (line 88) | func getTx(ctx context.Context) (*sqlx.Tx, error) { function getDBReader (line 96) | func getDBReader(ctx context.Context) (dbReader, error) { method IsLocked (line 110) | func (db *Database) IsLocked(err error) bool { method Repository (line 118) | func (db *Database) Repository() models.Repository { FILE: pkg/sqlite/transaction_test.go function signalOtherThread (line 62) | func signalOtherThread(c chan struct{}) error { function waitForOtherThread (line 71) | func waitForOtherThread(c chan struct{}) error { function TestConcurrentExclusiveAndReadTxn (line 158) | func TestConcurrentExclusiveAndReadTxn(t *testing.T) { FILE: pkg/sqlite/tx.go constant slowLogTime (line 14) | slowLogTime = time.Millisecond * 200 type dbReader (line 17) | type dbReader interface type stmt (line 24) | type stmt struct function logSQL (line 29) | func logSQL(start time.Time, query string, args ...interface{}) { type dbWrapperType (line 38) | type dbWrapperType struct method Get (line 50) | func (*dbWrapperType) Get(ctx context.Context, dest interface{}, query... method Select (line 63) | func (*dbWrapperType) Select(ctx context.Context, dest interface{}, qu... method Queryx (line 76) | func (*dbWrapperType) Queryx(ctx context.Context, query string, args .... method QueryxContext (line 89) | func (*dbWrapperType) QueryxContext(ctx context.Context, query string,... method NamedExec (line 93) | func (*dbWrapperType) NamedExec(ctx context.Context, query string, arg... method Exec (line 106) | func (*dbWrapperType) Exec(ctx context.Context, query string, args ...... method Prepare (line 120) | func (*dbWrapperType) Prepare(ctx context.Context, query string, args ... method ExecStmt (line 138) | func (*dbWrapperType) ExecStmt(ctx context.Context, stmt *stmt, args .... function sqlError (line 42) | func sqlError(err error, sql string, args ...interface{}) error { FILE: pkg/sqlite/values.go function intFromPtr (line 10) | func intFromPtr(i *int) null.Int { function nullIntPtr (line 18) | func nullIntPtr(i null.Int) *int { function nullFloatPtr (line 27) | func nullFloatPtr(i null.Float) *float64 { function nullIntFolderIDPtr (line 36) | func nullIntFolderIDPtr(i null.Int) *models.FolderID { function nullIntFileIDPtr (line 46) | func nullIntFileIDPtr(i null.Int) *models.FileID { function nullIntFromFileIDPtr (line 56) | func nullIntFromFileIDPtr(i *models.FileID) null.Int { function nullIntFromFolderIDPtr (line 64) | func nullIntFromFolderIDPtr(i *models.FolderID) null.Int { FILE: pkg/stashbox/client.go constant DefaultMaxRequestsPerMinute (line 18) | DefaultMaxRequestsPerMinute = 240 type Client (line 21) | type Client struct method GetUser (line 97) | func (c Client) GetUser(ctx context.Context) (*graphql.Me, error) { type ClientOption (line 32) | type ClientOption function ExcludeTagPatterns (line 34) | func ExcludeTagPatterns(patterns []string) ClientOption { function MaxRequestsPerMinute (line 40) | func MaxRequestsPerMinute(n int) ClientOption { function setApiKeyHeader (line 48) | func setApiKeyHeader(apiKey string) clientv2.RequestInterceptor { function rateLimit (line 55) | func rateLimit(n int) clientv2.RequestInterceptor { function NewClient (line 70) | func NewClient(box models.StashBox, options ...ClientOption) *Client { FILE: pkg/stashbox/draft.go method submitDraft (line 16) | func (c *Client) submitDraft(ctx context.Context, query string, input in... FILE: pkg/stashbox/graphql/generated_client.go type StashBoxGraphQLClient (line 11) | type StashBoxGraphQLClient interface type Client (line 26) | type Client struct method FindScenesBySceneFingerprints (line 1114) | func (c *Client) FindScenesBySceneFingerprints(ctx context.Context, fi... method SearchScene (line 1257) | func (c *Client) SearchScene(ctx context.Context, term string, interce... method SearchPerformer (line 1336) | func (c *Client) SearchPerformer(ctx context.Context, term string, int... method FindPerformerByID (line 1415) | func (c *Client) FindPerformerByID(ctx context.Context, id string, int... method FindSceneByID (line 1558) | func (c *Client) FindSceneByID(ctx context.Context, id string, interce... method FindStudio (line 1607) | func (c *Client) FindStudio(ctx context.Context, id *string, name *str... method FindTag (line 1643) | func (c *Client) FindTag(ctx context.Context, id *string, name *string... method QueryTags (line 1682) | func (c *Client) QueryTags(ctx context.Context, input TagQueryInput, i... method SubmitFingerprint (line 1704) | func (c *Client) SubmitFingerprint(ctx context.Context, input Fingerpr... method Me (line 1728) | func (c *Client) Me(ctx context.Context, interceptors ...clientv2.Requ... method SubmitSceneDraft (line 1750) | func (c *Client) SubmitSceneDraft(ctx context.Context, input SceneDraf... method SubmitPerformerDraft (line 1774) | func (c *Client) SubmitPerformerDraft(ctx context.Context, input Perfo... function NewClient (line 30) | func NewClient(cli clientv2.HttpClient, baseURL string, options *clientv... type URLFragment (line 34) | type URLFragment struct method GetURL (line 39) | func (t *URLFragment) GetURL() string { method GetType (line 45) | func (t *URLFragment) GetType() string { type ImageFragment (line 52) | type ImageFragment struct method GetID (line 59) | func (t *ImageFragment) GetID() string { method GetURL (line 65) | func (t *ImageFragment) GetURL() string { method GetWidth (line 71) | func (t *ImageFragment) GetWidth() int { method GetHeight (line 77) | func (t *ImageFragment) GetHeight() int { type StudioFragment (line 84) | type StudioFragment struct method GetName (line 93) | func (t *StudioFragment) GetName() string { method GetID (line 99) | func (t *StudioFragment) GetID() string { method GetAliases (line 105) | func (t *StudioFragment) GetAliases() []string { method GetUrls (line 111) | func (t *StudioFragment) GetUrls() []*URLFragment { method GetParent (line 117) | func (t *StudioFragment) GetParent() *StudioFragment_Parent { method GetImages (line 123) | func (t *StudioFragment) GetImages() []*ImageFragment { type TagFragment (line 130) | type TagFragment struct method GetName (line 138) | func (t *TagFragment) GetName() string { method GetID (line 144) | func (t *TagFragment) GetID() string { method GetDescription (line 150) | func (t *TagFragment) GetDescription() *string { method GetAliases (line 156) | func (t *TagFragment) GetAliases() []string { method GetCategory (line 162) | func (t *TagFragment) GetCategory() *TagFragment_Category { type MeasurementsFragment (line 169) | type MeasurementsFragment struct method GetBandSize (line 176) | func (t *MeasurementsFragment) GetBandSize() *int { method GetCupSize (line 182) | func (t *MeasurementsFragment) GetCupSize() *string { method GetWaist (line 188) | func (t *MeasurementsFragment) GetWaist() *int { method GetHip (line 194) | func (t *MeasurementsFragment) GetHip() *int { type BodyModificationFragment (line 201) | type BodyModificationFragment struct method GetLocation (line 206) | func (t *BodyModificationFragment) GetLocation() string { method GetDescription (line 212) | func (t *BodyModificationFragment) GetDescription() *string { type PerformerFragment (line 219) | type PerformerFragment struct method GetID (line 245) | func (t *PerformerFragment) GetID() string { method GetName (line 251) | func (t *PerformerFragment) GetName() string { method GetDisambiguation (line 257) | func (t *PerformerFragment) GetDisambiguation() *string { method GetAliases (line 263) | func (t *PerformerFragment) GetAliases() []string { method GetGender (line 269) | func (t *PerformerFragment) GetGender() *GenderEnum { method GetMergedIds (line 275) | func (t *PerformerFragment) GetMergedIds() []string { method GetDeleted (line 281) | func (t *PerformerFragment) GetDeleted() bool { method GetMergedIntoID (line 287) | func (t *PerformerFragment) GetMergedIntoID() *string { method GetUrls (line 293) | func (t *PerformerFragment) GetUrls() []*URLFragment { method GetImages (line 299) | func (t *PerformerFragment) GetImages() []*ImageFragment { method GetBirthDate (line 305) | func (t *PerformerFragment) GetBirthDate() *string { method GetDeathDate (line 311) | func (t *PerformerFragment) GetDeathDate() *string { method GetEthnicity (line 317) | func (t *PerformerFragment) GetEthnicity() *EthnicityEnum { method GetCountry (line 323) | func (t *PerformerFragment) GetCountry() *string { method GetEyeColor (line 329) | func (t *PerformerFragment) GetEyeColor() *EyeColorEnum { method GetHairColor (line 335) | func (t *PerformerFragment) GetHairColor() *HairColorEnum { method GetHeight (line 341) | func (t *PerformerFragment) GetHeight() *int { method GetMeasurements (line 347) | func (t *PerformerFragment) GetMeasurements() *MeasurementsFragment { method GetBreastType (line 353) | func (t *PerformerFragment) GetBreastType() *BreastTypeEnum { method GetCareerStartYear (line 359) | func (t *PerformerFragment) GetCareerStartYear() *int { method GetCareerEndYear (line 365) | func (t *PerformerFragment) GetCareerEndYear() *int { method GetTattoos (line 371) | func (t *PerformerFragment) GetTattoos() []*BodyModificationFragment { method GetPiercings (line 377) | func (t *PerformerFragment) GetPiercings() []*BodyModificationFragment { type PerformerAppearanceFragment (line 384) | type PerformerAppearanceFragment struct method GetAs (line 389) | func (t *PerformerAppearanceFragment) GetAs() *string { method GetPerformer (line 395) | func (t *PerformerAppearanceFragment) GetPerformer() *PerformerFragment { type FingerprintFragment (line 402) | type FingerprintFragment struct method GetAlgorithm (line 408) | func (t *FingerprintFragment) GetAlgorithm() *FingerprintAlgorithm { method GetHash (line 414) | func (t *FingerprintFragment) GetHash() string { method GetDuration (line 420) | func (t *FingerprintFragment) GetDuration() int { type SceneFragment (line 427) | type SceneFragment struct method GetID (line 443) | func (t *SceneFragment) GetID() string { method GetTitle (line 449) | func (t *SceneFragment) GetTitle() *string { method GetCode (line 455) | func (t *SceneFragment) GetCode() *string { method GetDetails (line 461) | func (t *SceneFragment) GetDetails() *string { method GetDirector (line 467) | func (t *SceneFragment) GetDirector() *string { method GetDuration (line 473) | func (t *SceneFragment) GetDuration() *int { method GetDate (line 479) | func (t *SceneFragment) GetDate() *string { method GetUrls (line 485) | func (t *SceneFragment) GetUrls() []*URLFragment { method GetImages (line 491) | func (t *SceneFragment) GetImages() []*ImageFragment { method GetStudio (line 497) | func (t *SceneFragment) GetStudio() *StudioFragment { method GetTags (line 503) | func (t *SceneFragment) GetTags() []*TagFragment { method GetPerformers (line 509) | func (t *SceneFragment) GetPerformers() []*PerformerAppearanceFragment { method GetFingerprints (line 515) | func (t *SceneFragment) GetFingerprints() []*FingerprintFragment { type StudioFragment_Parent (line 522) | type StudioFragment_Parent struct method GetID (line 527) | func (t *StudioFragment_Parent) GetID() string { method GetName (line 533) | func (t *StudioFragment_Parent) GetName() string { type TagFragment_Category (line 540) | type TagFragment_Category struct method GetDescription (line 546) | func (t *TagFragment_Category) GetDescription() *string { method GetID (line 552) | func (t *TagFragment_Category) GetID() string { method GetName (line 558) | func (t *TagFragment_Category) GetName() string { type SceneFragment_Studio_StudioFragment_Parent (line 565) | type SceneFragment_Studio_StudioFragment_Parent struct method GetID (line 570) | func (t *SceneFragment_Studio_StudioFragment_Parent) GetID() string { method GetName (line 576) | func (t *SceneFragment_Studio_StudioFragment_Parent) GetName() string { type SceneFragment_Tags_TagFragment_Category (line 583) | type SceneFragment_Tags_TagFragment_Category struct method GetDescription (line 589) | func (t *SceneFragment_Tags_TagFragment_Category) GetDescription() *st... method GetID (line 595) | func (t *SceneFragment_Tags_TagFragment_Category) GetID() string { method GetName (line 601) | func (t *SceneFragment_Tags_TagFragment_Category) GetName() string { type FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Studio_StudioFragment_Parent (line 608) | type FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFr... method GetID (line 613) | func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_S... method GetName (line 619) | func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_S... type FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category (line 626) | type FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFr... method GetDescription (line 632) | func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_S... method GetID (line 638) | func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_S... method GetName (line 644) | func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_S... type SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_Parent (line 651) | type SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_Parent ... method GetID (line 656) | func (t *SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_P... method GetName (line 662) | func (t *SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_P... type SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category (line 669) | type SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category struct method GetDescription (line 675) | func (t *SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Catego... method GetID (line 681) | func (t *SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Catego... method GetName (line 687) | func (t *SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Catego... type FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_Parent (line 694) | type FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_Parent ... method GetID (line 699) | func (t *FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_P... method GetName (line 705) | func (t *FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_P... type FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category (line 712) | type FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category struct method GetDescription (line 718) | func (t *FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Catego... method GetID (line 724) | func (t *FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Catego... method GetName (line 730) | func (t *FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Catego... type FindStudio_FindStudio_StudioFragment_Parent (line 737) | type FindStudio_FindStudio_StudioFragment_Parent struct method GetID (line 742) | func (t *FindStudio_FindStudio_StudioFragment_Parent) GetID() string { method GetName (line 748) | func (t *FindStudio_FindStudio_StudioFragment_Parent) GetName() string { type FindTag_FindTag_TagFragment_Category (line 755) | type FindTag_FindTag_TagFragment_Category struct method GetDescription (line 761) | func (t *FindTag_FindTag_TagFragment_Category) GetDescription() *string { method GetID (line 767) | func (t *FindTag_FindTag_TagFragment_Category) GetID() string { method GetName (line 773) | func (t *FindTag_FindTag_TagFragment_Category) GetName() string { type QueryTags_QueryTags_Tags_TagFragment_Category (line 780) | type QueryTags_QueryTags_Tags_TagFragment_Category struct method GetDescription (line 786) | func (t *QueryTags_QueryTags_Tags_TagFragment_Category) GetDescription... method GetID (line 792) | func (t *QueryTags_QueryTags_Tags_TagFragment_Category) GetID() string { method GetName (line 798) | func (t *QueryTags_QueryTags_Tags_TagFragment_Category) GetName() stri... type QueryTags_QueryTags (line 805) | type QueryTags_QueryTags struct method GetCount (line 810) | func (t *QueryTags_QueryTags) GetCount() int { method GetTags (line 816) | func (t *QueryTags_QueryTags) GetTags() []*TagFragment { type Me_Me (line 823) | type Me_Me struct method GetName (line 827) | func (t *Me_Me) GetName() string { type SubmitSceneDraft_SubmitSceneDraft (line 834) | type SubmitSceneDraft_SubmitSceneDraft struct method GetID (line 838) | func (t *SubmitSceneDraft_SubmitSceneDraft) GetID() *string { type SubmitPerformerDraft_SubmitPerformerDraft (line 845) | type SubmitPerformerDraft_SubmitPerformerDraft struct method GetID (line 849) | func (t *SubmitPerformerDraft_SubmitPerformerDraft) GetID() *string { type FindScenesBySceneFingerprints (line 856) | type FindScenesBySceneFingerprints struct method GetFindScenesBySceneFingerprints (line 860) | func (t *FindScenesBySceneFingerprints) GetFindScenesBySceneFingerprin... type SearchScene (line 867) | type SearchScene struct method GetSearchScene (line 871) | func (t *SearchScene) GetSearchScene() []*SceneFragment { type SearchPerformer (line 878) | type SearchPerformer struct method GetSearchPerformer (line 882) | func (t *SearchPerformer) GetSearchPerformer() []*PerformerFragment { type FindPerformerByID (line 889) | type FindPerformerByID struct method GetFindPerformer (line 893) | func (t *FindPerformerByID) GetFindPerformer() *PerformerFragment { type FindSceneByID (line 900) | type FindSceneByID struct method GetFindScene (line 904) | func (t *FindSceneByID) GetFindScene() *SceneFragment { type FindStudio (line 911) | type FindStudio struct method GetFindStudio (line 915) | func (t *FindStudio) GetFindStudio() *StudioFragment { type FindTag (line 922) | type FindTag struct method GetFindTag (line 926) | func (t *FindTag) GetFindTag() *TagFragment { type QueryTags (line 933) | type QueryTags struct method GetQueryTags (line 937) | func (t *QueryTags) GetQueryTags() *QueryTags_QueryTags { type SubmitFingerprint (line 944) | type SubmitFingerprint struct method GetSubmitFingerprint (line 948) | func (t *SubmitFingerprint) GetSubmitFingerprint() bool { type Me (line 955) | type Me struct method GetMe (line 959) | func (t *Me) GetMe() *Me_Me { type SubmitSceneDraft (line 966) | type SubmitSceneDraft struct method GetSubmitSceneDraft (line 970) | func (t *SubmitSceneDraft) GetSubmitSceneDraft() *SubmitSceneDraft_Sub... type SubmitPerformerDraft (line 977) | type SubmitPerformerDraft struct method GetSubmitPerformerDraft (line 981) | func (t *SubmitPerformerDraft) GetSubmitPerformerDraft() *SubmitPerfor... constant FindScenesBySceneFingerprintsDocument (line 988) | FindScenesBySceneFingerprintsDocument = `query FindScenesBySceneFingerpr... constant SearchSceneDocument (line 1131) | SearchSceneDocument = `query SearchScene ($term: String!) { constant SearchPerformerDocument (line 1274) | SearchPerformerDocument = `query SearchPerformer ($term: String!) { constant FindPerformerByIDDocument (line 1353) | FindPerformerByIDDocument = `query FindPerformerByID ($id: ID!) { constant FindSceneByIDDocument (line 1432) | FindSceneByIDDocument = `query FindSceneByID ($id: ID!) { constant FindStudioDocument (line 1575) | FindStudioDocument = `query FindStudio ($id: ID, $name: String) { constant FindTagDocument (line 1625) | FindTagDocument = `query FindTag ($id: ID, $name: String) { constant QueryTagsDocument (line 1661) | QueryTagsDocument = `query QueryTags ($input: TagQueryInput!) { constant SubmitFingerprintDocument (line 1699) | SubmitFingerprintDocument = `mutation SubmitFingerprint ($input: Fingerp... constant MeDocument (line 1721) | MeDocument = `query Me { constant SubmitSceneDraftDocument (line 1743) | SubmitSceneDraftDocument = `mutation SubmitSceneDraft ($input: SceneDraf... constant SubmitPerformerDraftDocument (line 1767) | SubmitPerformerDraftDocument = `mutation SubmitPerformerDraft ($input: P... FILE: pkg/stashbox/graphql/generated_models.go type DraftData (line 15) | type DraftData interface type EditDetails (line 19) | type EditDetails interface type EditTarget (line 23) | type EditTarget interface type NotificationData (line 27) | type NotificationData interface type SceneDraftPerformer (line 31) | type SceneDraftPerformer interface type SceneDraftStudio (line 35) | type SceneDraftStudio interface type SceneDraftTag (line 39) | type SceneDraftTag interface type ActivateNewUserInput (line 43) | type ActivateNewUserInput struct type ApplyEditInput (line 49) | type ApplyEditInput struct type BodyModification (line 53) | type BodyModification struct type BodyModificationCriterionInput (line 58) | type BodyModificationCriterionInput struct type BodyModificationInput (line 64) | type BodyModificationInput struct type BreastTypeCriterionInput (line 69) | type BreastTypeCriterionInput struct type CancelEditInput (line 74) | type CancelEditInput struct type CommentCommentedEdit (line 78) | type CommentCommentedEdit struct method IsNotificationData (line 82) | func (CommentCommentedEdit) IsNotificationData() {} type CommentOwnEdit (line 84) | type CommentOwnEdit struct method IsNotificationData (line 88) | func (CommentOwnEdit) IsNotificationData() {} type CommentVotedEdit (line 90) | type CommentVotedEdit struct method IsNotificationData (line 94) | func (CommentVotedEdit) IsNotificationData() {} type DateCriterionInput (line 96) | type DateCriterionInput struct type DownvoteOwnEdit (line 101) | type DownvoteOwnEdit struct method IsNotificationData (line 105) | func (DownvoteOwnEdit) IsNotificationData() {} type Draft (line 107) | type Draft struct type DraftEntity (line 114) | type DraftEntity struct method IsSceneDraftPerformer (line 119) | func (DraftEntity) IsSceneDraftPerformer() {} method IsSceneDraftStudio (line 121) | func (DraftEntity) IsSceneDraftStudio() {} method IsSceneDraftTag (line 123) | func (DraftEntity) IsSceneDraftTag() {} type DraftEntityInput (line 125) | type DraftEntityInput struct type DraftFingerprint (line 130) | type DraftFingerprint struct type DraftSubmissionStatus (line 136) | type DraftSubmissionStatus struct type Edit (line 140) | type Edit struct type EditComment (line 171) | type EditComment struct type EditCommentInput (line 179) | type EditCommentInput struct type EditInput (line 184) | type EditInput struct type EditQueryInput (line 195) | type EditQueryInput struct type EditVote (line 224) | type EditVote struct type EditVoteInput (line 230) | type EditVoteInput struct type EyeColorCriterionInput (line 235) | type EyeColorCriterionInput struct type FailedOwnEdit (line 240) | type FailedOwnEdit struct method IsNotificationData (line 244) | func (FailedOwnEdit) IsNotificationData() {} type FavoritePerformerEdit (line 246) | type FavoritePerformerEdit struct method IsNotificationData (line 250) | func (FavoritePerformerEdit) IsNotificationData() {} type FavoritePerformerScene (line 252) | type FavoritePerformerScene struct method IsNotificationData (line 256) | func (FavoritePerformerScene) IsNotificationData() {} type FavoriteStudioEdit (line 258) | type FavoriteStudioEdit struct method IsNotificationData (line 262) | func (FavoriteStudioEdit) IsNotificationData() {} type FavoriteStudioScene (line 264) | type FavoriteStudioScene struct method IsNotificationData (line 268) | func (FavoriteStudioScene) IsNotificationData() {} type Fingerprint (line 270) | type Fingerprint struct type FingerprintEditInput (line 286) | type FingerprintEditInput struct type FingerprintInput (line 296) | type FingerprintInput struct type FingerprintQueryInput (line 304) | type FingerprintQueryInput struct type FingerprintSubmission (line 309) | type FingerprintSubmission struct type FingerprintedSceneEdit (line 316) | type FingerprintedSceneEdit struct method IsNotificationData (line 320) | func (FingerprintedSceneEdit) IsNotificationData() {} type FuzzyDate (line 322) | type FuzzyDate struct type GenerateInviteCodeInput (line 327) | type GenerateInviteCodeInput struct type GrantInviteInput (line 333) | type GrantInviteInput struct type HairColorCriterionInput (line 338) | type HairColorCriterionInput struct type IDCriterionInput (line 343) | type IDCriterionInput struct type Image (line 348) | type Image struct type ImageCreateInput (line 355) | type ImageCreateInput struct type ImageDestroyInput (line 360) | type ImageDestroyInput struct type ImageUpdateInput (line 364) | type ImageUpdateInput struct type IntCriterionInput (line 369) | type IntCriterionInput struct type InviteKey (line 374) | type InviteKey struct type MarkNotificationReadInput (line 380) | type MarkNotificationReadInput struct type Measurements (line 385) | type Measurements struct type MultiIDCriterionInput (line 392) | type MultiIDCriterionInput struct type MultiStringCriterionInput (line 397) | type MultiStringCriterionInput struct type Mutation (line 402) | type Mutation struct type NewUserInput (line 405) | type NewUserInput struct type Notification (line 410) | type Notification struct type Performer (line 416) | type Performer struct method IsEditTarget (line 458) | func (Performer) IsEditTarget() {} method IsSceneDraftPerformer (line 460) | func (Performer) IsSceneDraftPerformer() {} type PerformerAppearance (line 462) | type PerformerAppearance struct type PerformerAppearanceInput (line 468) | type PerformerAppearanceInput struct type PerformerCreateInput (line 474) | type PerformerCreateInput struct type PerformerDestroyInput (line 500) | type PerformerDestroyInput struct type PerformerDraft (line 504) | type PerformerDraft struct method IsDraftData (line 527) | func (PerformerDraft) IsDraftData() {} type PerformerDraftInput (line 529) | type PerformerDraftInput struct type PerformerEdit (line 552) | type PerformerEdit struct method IsEditDetails (line 589) | func (PerformerEdit) IsEditDetails() {} type PerformerEditDetailsInput (line 591) | type PerformerEditDetailsInput struct type PerformerEditInput (line 617) | type PerformerEditInput struct type PerformerEditOptions (line 625) | type PerformerEditOptions struct type PerformerEditOptionsInput (line 632) | type PerformerEditOptionsInput struct type PerformerQueryInput (line 639) | type PerformerQueryInput struct type PerformerScenesInput (line 680) | type PerformerScenesInput struct type PerformerStudio (line 689) | type PerformerStudio struct type PerformerUpdateInput (line 694) | type PerformerUpdateInput struct type Query (line 721) | type Query struct type QueryEditsResultType (line 724) | type QueryEditsResultType struct type QueryExistingPerformerInput (line 729) | type QueryExistingPerformerInput struct type QueryExistingPerformerResult (line 735) | type QueryExistingPerformerResult struct type QueryExistingSceneInput (line 740) | type QueryExistingSceneInput struct type QueryExistingSceneResult (line 746) | type QueryExistingSceneResult struct type QueryNotificationsInput (line 751) | type QueryNotificationsInput struct type QueryNotificationsResult (line 758) | type QueryNotificationsResult struct type QueryPerformersResultType (line 763) | type QueryPerformersResultType struct type QueryScenesResultType (line 768) | type QueryScenesResultType struct type QuerySitesResultType (line 773) | type QuerySitesResultType struct type QueryStudiosResultType (line 778) | type QueryStudiosResultType struct type QueryTagCategoriesResultType (line 783) | type QueryTagCategoriesResultType struct type QueryTagsResultType (line 788) | type QueryTagsResultType struct type QueryUsersResultType (line 793) | type QueryUsersResultType struct type ResetPasswordInput (line 798) | type ResetPasswordInput struct type RevokeInviteInput (line 802) | type RevokeInviteInput struct type RoleCriterionInput (line 807) | type RoleCriterionInput struct type Scene (line 812) | type Scene struct method IsEditTarget (line 834) | func (Scene) IsEditTarget() {} type SceneCreateInput (line 836) | type SceneCreateInput struct type SceneDestroyInput (line 852) | type SceneDestroyInput struct type SceneDraft (line 856) | type SceneDraft struct method IsDraftData (line 872) | func (SceneDraft) IsDraftData() {} type SceneDraftInput (line 874) | type SceneDraftInput struct type SceneEdit (line 891) | type SceneEdit struct method IsEditDetails (line 919) | func (SceneEdit) IsEditDetails() {} type SceneEditDetailsInput (line 921) | type SceneEditDetailsInput struct type SceneEditInput (line 938) | type SceneEditInput struct type SceneQueryInput (line 944) | type SceneQueryInput struct type SceneUpdateInput (line 977) | type SceneUpdateInput struct type Site (line 994) | type Site struct type SiteCreateInput (line 1006) | type SiteCreateInput struct type SiteDestroyInput (line 1014) | type SiteDestroyInput struct type SiteUpdateInput (line 1018) | type SiteUpdateInput struct type StashBoxConfig (line 1027) | type StashBoxConfig struct type StringCriterionInput (line 1042) | type StringCriterionInput struct type Studio (line 1047) | type Studio struct method IsEditTarget (line 1062) | func (Studio) IsEditTarget() {} method IsSceneDraftStudio (line 1064) | func (Studio) IsSceneDraftStudio() {} type StudioCreateInput (line 1066) | type StudioCreateInput struct type StudioDestroyInput (line 1074) | type StudioDestroyInput struct type StudioEdit (line 1078) | type StudioEdit struct method IsEditDetails (line 1092) | func (StudioEdit) IsEditDetails() {} type StudioEditDetailsInput (line 1094) | type StudioEditDetailsInput struct type StudioEditInput (line 1102) | type StudioEditInput struct type StudioQueryInput (line 1108) | type StudioQueryInput struct type StudioUpdateInput (line 1125) | type StudioUpdateInput struct type Tag (line 1134) | type Tag struct method IsEditTarget (line 1146) | func (Tag) IsEditTarget() {} method IsSceneDraftTag (line 1148) | func (Tag) IsSceneDraftTag() {} type TagCategory (line 1150) | type TagCategory struct type TagCategoryCreateInput (line 1157) | type TagCategoryCreateInput struct type TagCategoryDestroyInput (line 1163) | type TagCategoryDestroyInput struct type TagCategoryUpdateInput (line 1167) | type TagCategoryUpdateInput struct type TagCreateInput (line 1174) | type TagCreateInput struct type TagDestroyInput (line 1181) | type TagDestroyInput struct type TagEdit (line 1185) | type TagEdit struct method IsEditDetails (line 1194) | func (TagEdit) IsEditDetails() {} type TagEditDetailsInput (line 1196) | type TagEditDetailsInput struct type TagEditInput (line 1203) | type TagEditInput struct type TagQueryInput (line 1209) | type TagQueryInput struct type TagUpdateInput (line 1224) | type TagUpdateInput struct type URL (line 1232) | type URL struct type URLInput (line 1238) | type URLInput struct type UpdatedEdit (line 1243) | type UpdatedEdit struct method IsNotificationData (line 1247) | func (UpdatedEdit) IsNotificationData() {} type User (line 1249) | type User struct type UserChangeEmailInput (line 1271) | type UserChangeEmailInput struct type UserChangePasswordInput (line 1277) | type UserChangePasswordInput struct type UserCreateInput (line 1284) | type UserCreateInput struct type UserDestroyInput (line 1293) | type UserDestroyInput struct type UserEditCount (line 1297) | type UserEditCount struct type UserQueryInput (line 1307) | type UserQueryInput struct type UserUpdateInput (line 1332) | type UserUpdateInput struct type UserVoteCount (line 1341) | type UserVoteCount struct type Version (line 1349) | type Version struct type BreastTypeEnum (line 1356) | type BreastTypeEnum method IsValid (line 1370) | func (e BreastTypeEnum) IsValid() bool { method String (line 1378) | func (e BreastTypeEnum) String() string { method UnmarshalGQL (line 1382) | func (e *BreastTypeEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 1395) | func (e BreastTypeEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1399) | func (e *BreastTypeEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1407) | func (e BreastTypeEnum) MarshalJSON() ([]byte, error) { constant BreastTypeEnumNatural (line 1359) | BreastTypeEnumNatural BreastTypeEnum = "NATURAL" constant BreastTypeEnumFake (line 1360) | BreastTypeEnumFake BreastTypeEnum = "FAKE" constant BreastTypeEnumNa (line 1361) | BreastTypeEnumNa BreastTypeEnum = "NA" type CriterionModifier (line 1413) | type CriterionModifier method IsValid (line 1446) | func (e CriterionModifier) IsValid() bool { method String (line 1454) | func (e CriterionModifier) String() string { method UnmarshalGQL (line 1458) | func (e *CriterionModifier) UnmarshalGQL(v any) error { method MarshalGQL (line 1471) | func (e CriterionModifier) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1475) | func (e *CriterionModifier) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1483) | func (e CriterionModifier) MarshalJSON() ([]byte, error) { constant CriterionModifierEquals (line 1417) | CriterionModifierEquals CriterionModifier = "EQUALS" constant CriterionModifierNotEquals (line 1419) | CriterionModifierNotEquals CriterionModifier = "NOT_EQUALS" constant CriterionModifierGreaterThan (line 1421) | CriterionModifierGreaterThan CriterionModifier = "GREATER_THAN" constant CriterionModifierLessThan (line 1423) | CriterionModifierLessThan CriterionModifier = "LESS_THAN" constant CriterionModifierIsNull (line 1425) | CriterionModifierIsNull CriterionModifier = "IS_NULL" constant CriterionModifierNotNull (line 1427) | CriterionModifierNotNull CriterionModifier = "NOT_NULL" constant CriterionModifierIncludesAll (line 1429) | CriterionModifierIncludesAll CriterionModifier = "INCLUDES_ALL" constant CriterionModifierIncludes (line 1430) | CriterionModifierIncludes CriterionModifier = "INCLUDES" constant CriterionModifierExcludes (line 1431) | CriterionModifierExcludes CriterionModifier = "EXCLUDES" type DateAccuracyEnum (line 1489) | type DateAccuracyEnum method IsValid (line 1503) | func (e DateAccuracyEnum) IsValid() bool { method String (line 1511) | func (e DateAccuracyEnum) String() string { method UnmarshalGQL (line 1515) | func (e *DateAccuracyEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 1528) | func (e DateAccuracyEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1532) | func (e *DateAccuracyEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1540) | func (e DateAccuracyEnum) MarshalJSON() ([]byte, error) { constant DateAccuracyEnumYear (line 1492) | DateAccuracyEnumYear DateAccuracyEnum = "YEAR" constant DateAccuracyEnumMonth (line 1493) | DateAccuracyEnumMonth DateAccuracyEnum = "MONTH" constant DateAccuracyEnumDay (line 1494) | DateAccuracyEnumDay DateAccuracyEnum = "DAY" type EditSortEnum (line 1546) | type EditSortEnum method IsValid (line 1560) | func (e EditSortEnum) IsValid() bool { method String (line 1568) | func (e EditSortEnum) String() string { method UnmarshalGQL (line 1572) | func (e *EditSortEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 1585) | func (e EditSortEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1589) | func (e *EditSortEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1597) | func (e EditSortEnum) MarshalJSON() ([]byte, error) { constant EditSortEnumCreatedAt (line 1549) | EditSortEnumCreatedAt EditSortEnum = "CREATED_AT" constant EditSortEnumUpdatedAt (line 1550) | EditSortEnumUpdatedAt EditSortEnum = "UPDATED_AT" constant EditSortEnumClosedAt (line 1551) | EditSortEnumClosedAt EditSortEnum = "CLOSED_AT" type EthnicityEnum (line 1603) | type EthnicityEnum method IsValid (line 1627) | func (e EthnicityEnum) IsValid() bool { method String (line 1635) | func (e EthnicityEnum) String() string { method UnmarshalGQL (line 1639) | func (e *EthnicityEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 1652) | func (e EthnicityEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1656) | func (e *EthnicityEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1664) | func (e EthnicityEnum) MarshalJSON() ([]byte, error) { constant EthnicityEnumCaucasian (line 1606) | EthnicityEnumCaucasian EthnicityEnum = "CAUCASIAN" constant EthnicityEnumBlack (line 1607) | EthnicityEnumBlack EthnicityEnum = "BLACK" constant EthnicityEnumAsian (line 1608) | EthnicityEnumAsian EthnicityEnum = "ASIAN" constant EthnicityEnumIndian (line 1609) | EthnicityEnumIndian EthnicityEnum = "INDIAN" constant EthnicityEnumLatin (line 1610) | EthnicityEnumLatin EthnicityEnum = "LATIN" constant EthnicityEnumMiddleEastern (line 1611) | EthnicityEnumMiddleEastern EthnicityEnum = "MIDDLE_EASTERN" constant EthnicityEnumMixed (line 1612) | EthnicityEnumMixed EthnicityEnum = "MIXED" constant EthnicityEnumOther (line 1613) | EthnicityEnumOther EthnicityEnum = "OTHER" type EthnicityFilterEnum (line 1670) | type EthnicityFilterEnum method IsValid (line 1696) | func (e EthnicityFilterEnum) IsValid() bool { method String (line 1704) | func (e EthnicityFilterEnum) String() string { method UnmarshalGQL (line 1708) | func (e *EthnicityFilterEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 1721) | func (e EthnicityFilterEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1725) | func (e *EthnicityFilterEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1733) | func (e EthnicityFilterEnum) MarshalJSON() ([]byte, error) { constant EthnicityFilterEnumUnknown (line 1673) | EthnicityFilterEnumUnknown EthnicityFilterEnum = "UNKNOWN" constant EthnicityFilterEnumCaucasian (line 1674) | EthnicityFilterEnumCaucasian EthnicityFilterEnum = "CAUCASIAN" constant EthnicityFilterEnumBlack (line 1675) | EthnicityFilterEnumBlack EthnicityFilterEnum = "BLACK" constant EthnicityFilterEnumAsian (line 1676) | EthnicityFilterEnumAsian EthnicityFilterEnum = "ASIAN" constant EthnicityFilterEnumIndian (line 1677) | EthnicityFilterEnumIndian EthnicityFilterEnum = "INDIAN" constant EthnicityFilterEnumLatin (line 1678) | EthnicityFilterEnumLatin EthnicityFilterEnum = "LATIN" constant EthnicityFilterEnumMiddleEastern (line 1679) | EthnicityFilterEnumMiddleEastern EthnicityFilterEnum = "MIDDLE_EASTERN" constant EthnicityFilterEnumMixed (line 1680) | EthnicityFilterEnumMixed EthnicityFilterEnum = "MIXED" constant EthnicityFilterEnumOther (line 1681) | EthnicityFilterEnumOther EthnicityFilterEnum = "OTHER" type EyeColorEnum (line 1739) | type EyeColorEnum method IsValid (line 1759) | func (e EyeColorEnum) IsValid() bool { method String (line 1767) | func (e EyeColorEnum) String() string { method UnmarshalGQL (line 1771) | func (e *EyeColorEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 1784) | func (e EyeColorEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1788) | func (e *EyeColorEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1796) | func (e EyeColorEnum) MarshalJSON() ([]byte, error) { constant EyeColorEnumBlue (line 1742) | EyeColorEnumBlue EyeColorEnum = "BLUE" constant EyeColorEnumBrown (line 1743) | EyeColorEnumBrown EyeColorEnum = "BROWN" constant EyeColorEnumGrey (line 1744) | EyeColorEnumGrey EyeColorEnum = "GREY" constant EyeColorEnumGreen (line 1745) | EyeColorEnumGreen EyeColorEnum = "GREEN" constant EyeColorEnumHazel (line 1746) | EyeColorEnumHazel EyeColorEnum = "HAZEL" constant EyeColorEnumRed (line 1747) | EyeColorEnumRed EyeColorEnum = "RED" type FavoriteFilter (line 1802) | type FavoriteFilter method IsValid (line 1816) | func (e FavoriteFilter) IsValid() bool { method String (line 1824) | func (e FavoriteFilter) String() string { method UnmarshalGQL (line 1828) | func (e *FavoriteFilter) UnmarshalGQL(v any) error { method MarshalGQL (line 1841) | func (e FavoriteFilter) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1845) | func (e *FavoriteFilter) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1853) | func (e FavoriteFilter) MarshalJSON() ([]byte, error) { constant FavoriteFilterPerformer (line 1805) | FavoriteFilterPerformer FavoriteFilter = "PERFORMER" constant FavoriteFilterStudio (line 1806) | FavoriteFilterStudio FavoriteFilter = "STUDIO" constant FavoriteFilterAll (line 1807) | FavoriteFilterAll FavoriteFilter = "ALL" type FingerprintAlgorithm (line 1859) | type FingerprintAlgorithm method IsValid (line 1873) | func (e FingerprintAlgorithm) IsValid() bool { method String (line 1881) | func (e FingerprintAlgorithm) String() string { method UnmarshalGQL (line 1885) | func (e *FingerprintAlgorithm) UnmarshalGQL(v any) error { method MarshalGQL (line 1898) | func (e FingerprintAlgorithm) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1902) | func (e *FingerprintAlgorithm) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1910) | func (e FingerprintAlgorithm) MarshalJSON() ([]byte, error) { constant FingerprintAlgorithmMd5 (line 1862) | FingerprintAlgorithmMd5 FingerprintAlgorithm = "MD5" constant FingerprintAlgorithmOshash (line 1863) | FingerprintAlgorithmOshash FingerprintAlgorithm = "OSHASH" constant FingerprintAlgorithmPhash (line 1864) | FingerprintAlgorithmPhash FingerprintAlgorithm = "PHASH" type FingerprintSubmissionType (line 1916) | type FingerprintSubmissionType method IsValid (line 1933) | func (e FingerprintSubmissionType) IsValid() bool { method String (line 1941) | func (e FingerprintSubmissionType) String() string { method UnmarshalGQL (line 1945) | func (e *FingerprintSubmissionType) UnmarshalGQL(v any) error { method MarshalGQL (line 1958) | func (e FingerprintSubmissionType) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 1962) | func (e *FingerprintSubmissionType) UnmarshalJSON(b []byte) error { method MarshalJSON (line 1970) | func (e FingerprintSubmissionType) MarshalJSON() ([]byte, error) { constant FingerprintSubmissionTypeValid (line 1920) | FingerprintSubmissionTypeValid FingerprintSubmissionType = "VALID" constant FingerprintSubmissionTypeInvalid (line 1922) | FingerprintSubmissionTypeInvalid FingerprintSubmissionType = "INVALID" constant FingerprintSubmissionTypeRemove (line 1924) | FingerprintSubmissionTypeRemove FingerprintSubmissionType = "REMOVE" type GenderEnum (line 1976) | type GenderEnum method IsValid (line 1996) | func (e GenderEnum) IsValid() bool { method String (line 2004) | func (e GenderEnum) String() string { method UnmarshalGQL (line 2008) | func (e *GenderEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2021) | func (e GenderEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2025) | func (e *GenderEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2033) | func (e GenderEnum) MarshalJSON() ([]byte, error) { constant GenderEnumMale (line 1979) | GenderEnumMale GenderEnum = "MALE" constant GenderEnumFemale (line 1980) | GenderEnumFemale GenderEnum = "FEMALE" constant GenderEnumTransgenderMale (line 1981) | GenderEnumTransgenderMale GenderEnum = "TRANSGENDER_MALE" constant GenderEnumTransgenderFemale (line 1982) | GenderEnumTransgenderFemale GenderEnum = "TRANSGENDER_FEMALE" constant GenderEnumIntersex (line 1983) | GenderEnumIntersex GenderEnum = "INTERSEX" constant GenderEnumNonBinary (line 1984) | GenderEnumNonBinary GenderEnum = "NON_BINARY" type GenderFilterEnum (line 2039) | type GenderFilterEnum method IsValid (line 2061) | func (e GenderFilterEnum) IsValid() bool { method String (line 2069) | func (e GenderFilterEnum) String() string { method UnmarshalGQL (line 2073) | func (e *GenderFilterEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2086) | func (e GenderFilterEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2090) | func (e *GenderFilterEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2098) | func (e GenderFilterEnum) MarshalJSON() ([]byte, error) { constant GenderFilterEnumUnknown (line 2042) | GenderFilterEnumUnknown GenderFilterEnum = "UNKNOWN" constant GenderFilterEnumMale (line 2043) | GenderFilterEnumMale GenderFilterEnum = "MALE" constant GenderFilterEnumFemale (line 2044) | GenderFilterEnumFemale GenderFilterEnum = "FEMALE" constant GenderFilterEnumTransgenderMale (line 2045) | GenderFilterEnumTransgenderMale GenderFilterEnum = "TRANSGENDER_MALE" constant GenderFilterEnumTransgenderFemale (line 2046) | GenderFilterEnumTransgenderFemale GenderFilterEnum = "TRANSGENDER_FEMALE" constant GenderFilterEnumIntersex (line 2047) | GenderFilterEnumIntersex GenderFilterEnum = "INTERSEX" constant GenderFilterEnumNonBinary (line 2048) | GenderFilterEnumNonBinary GenderFilterEnum = "NON_BINARY" type HairColorEnum (line 2104) | type HairColorEnum method IsValid (line 2132) | func (e HairColorEnum) IsValid() bool { method String (line 2140) | func (e HairColorEnum) String() string { method UnmarshalGQL (line 2144) | func (e *HairColorEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2157) | func (e HairColorEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2161) | func (e *HairColorEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2169) | func (e HairColorEnum) MarshalJSON() ([]byte, error) { constant HairColorEnumBlonde (line 2107) | HairColorEnumBlonde HairColorEnum = "BLONDE" constant HairColorEnumBrunette (line 2108) | HairColorEnumBrunette HairColorEnum = "BRUNETTE" constant HairColorEnumBlack (line 2109) | HairColorEnumBlack HairColorEnum = "BLACK" constant HairColorEnumRed (line 2110) | HairColorEnumRed HairColorEnum = "RED" constant HairColorEnumAuburn (line 2111) | HairColorEnumAuburn HairColorEnum = "AUBURN" constant HairColorEnumGrey (line 2112) | HairColorEnumGrey HairColorEnum = "GREY" constant HairColorEnumBald (line 2113) | HairColorEnumBald HairColorEnum = "BALD" constant HairColorEnumVarious (line 2114) | HairColorEnumVarious HairColorEnum = "VARIOUS" constant HairColorEnumWhite (line 2115) | HairColorEnumWhite HairColorEnum = "WHITE" constant HairColorEnumOther (line 2116) | HairColorEnumOther HairColorEnum = "OTHER" type NotificationEnum (line 2175) | type NotificationEnum method IsValid (line 2205) | func (e NotificationEnum) IsValid() bool { method String (line 2213) | func (e NotificationEnum) String() string { method UnmarshalGQL (line 2217) | func (e *NotificationEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2230) | func (e NotificationEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2234) | func (e *NotificationEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2242) | func (e NotificationEnum) MarshalJSON() ([]byte, error) { constant NotificationEnumFavoritePerformerScene (line 2178) | NotificationEnumFavoritePerformerScene NotificationEnum = "FAVORITE_PERF... constant NotificationEnumFavoritePerformerEdit (line 2179) | NotificationEnumFavoritePerformerEdit NotificationEnum = "FAVORITE_PERF... constant NotificationEnumFavoriteStudioScene (line 2180) | NotificationEnumFavoriteStudioScene NotificationEnum = "FAVORITE_STUD... constant NotificationEnumFavoriteStudioEdit (line 2181) | NotificationEnumFavoriteStudioEdit NotificationEnum = "FAVORITE_STUD... constant NotificationEnumCommentOwnEdit (line 2182) | NotificationEnumCommentOwnEdit NotificationEnum = "COMMENT_OWN_E... constant NotificationEnumDownvoteOwnEdit (line 2183) | NotificationEnumDownvoteOwnEdit NotificationEnum = "DOWNVOTE_OWN_... constant NotificationEnumFailedOwnEdit (line 2184) | NotificationEnumFailedOwnEdit NotificationEnum = "FAILED_OWN_EDIT" constant NotificationEnumCommentCommentedEdit (line 2185) | NotificationEnumCommentCommentedEdit NotificationEnum = "COMMENT_COMME... constant NotificationEnumCommentVotedEdit (line 2186) | NotificationEnumCommentVotedEdit NotificationEnum = "COMMENT_VOTED... constant NotificationEnumUpdatedEdit (line 2187) | NotificationEnumUpdatedEdit NotificationEnum = "UPDATED_EDIT" constant NotificationEnumFingerprintedSceneEdit (line 2188) | NotificationEnumFingerprintedSceneEdit NotificationEnum = "FINGERPRINTED... type OperationEnum (line 2248) | type OperationEnum method IsValid (line 2264) | func (e OperationEnum) IsValid() bool { method String (line 2272) | func (e OperationEnum) String() string { method UnmarshalGQL (line 2276) | func (e *OperationEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2289) | func (e OperationEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2293) | func (e *OperationEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2301) | func (e OperationEnum) MarshalJSON() ([]byte, error) { constant OperationEnumCreate (line 2251) | OperationEnumCreate OperationEnum = "CREATE" constant OperationEnumModify (line 2252) | OperationEnumModify OperationEnum = "MODIFY" constant OperationEnumDestroy (line 2253) | OperationEnumDestroy OperationEnum = "DESTROY" constant OperationEnumMerge (line 2254) | OperationEnumMerge OperationEnum = "MERGE" type PerformerSortEnum (line 2307) | type PerformerSortEnum method IsValid (line 2333) | func (e PerformerSortEnum) IsValid() bool { method String (line 2341) | func (e PerformerSortEnum) String() string { method UnmarshalGQL (line 2345) | func (e *PerformerSortEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2358) | func (e PerformerSortEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2362) | func (e *PerformerSortEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2370) | func (e PerformerSortEnum) MarshalJSON() ([]byte, error) { constant PerformerSortEnumName (line 2310) | PerformerSortEnumName PerformerSortEnum = "NAME" constant PerformerSortEnumBirthdate (line 2311) | PerformerSortEnumBirthdate PerformerSortEnum = "BIRTHDATE" constant PerformerSortEnumDeathdate (line 2312) | PerformerSortEnumDeathdate PerformerSortEnum = "DEATHDATE" constant PerformerSortEnumSceneCount (line 2313) | PerformerSortEnumSceneCount PerformerSortEnum = "SCENE_COUNT" constant PerformerSortEnumCareerStartYear (line 2314) | PerformerSortEnumCareerStartYear PerformerSortEnum = "CAREER_START_YEAR" constant PerformerSortEnumDebut (line 2315) | PerformerSortEnumDebut PerformerSortEnum = "DEBUT" constant PerformerSortEnumLastScene (line 2316) | PerformerSortEnumLastScene PerformerSortEnum = "LAST_SCENE" constant PerformerSortEnumCreatedAt (line 2317) | PerformerSortEnumCreatedAt PerformerSortEnum = "CREATED_AT" constant PerformerSortEnumUpdatedAt (line 2318) | PerformerSortEnumUpdatedAt PerformerSortEnum = "UPDATED_AT" type RoleEnum (line 2376) | type RoleEnum method IsValid (line 2406) | func (e RoleEnum) IsValid() bool { method String (line 2414) | func (e RoleEnum) String() string { method UnmarshalGQL (line 2418) | func (e *RoleEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2431) | func (e RoleEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2435) | func (e *RoleEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2443) | func (e RoleEnum) MarshalJSON() ([]byte, error) { constant RoleEnumRead (line 2379) | RoleEnumRead RoleEnum = "READ" constant RoleEnumVote (line 2380) | RoleEnumVote RoleEnum = "VOTE" constant RoleEnumEdit (line 2381) | RoleEnumEdit RoleEnum = "EDIT" constant RoleEnumModify (line 2382) | RoleEnumModify RoleEnum = "MODIFY" constant RoleEnumAdmin (line 2383) | RoleEnumAdmin RoleEnum = "ADMIN" constant RoleEnumInvite (line 2385) | RoleEnumInvite RoleEnum = "INVITE" constant RoleEnumManageInvites (line 2387) | RoleEnumManageInvites RoleEnum = "MANAGE_INVITES" constant RoleEnumBot (line 2388) | RoleEnumBot RoleEnum = "BOT" constant RoleEnumReadOnly (line 2389) | RoleEnumReadOnly RoleEnum = "READ_ONLY" constant RoleEnumEditTags (line 2390) | RoleEnumEditTags RoleEnum = "EDIT_TAGS" type SceneSortEnum (line 2449) | type SceneSortEnum method IsValid (line 2467) | func (e SceneSortEnum) IsValid() bool { method String (line 2475) | func (e SceneSortEnum) String() string { method UnmarshalGQL (line 2479) | func (e *SceneSortEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2492) | func (e SceneSortEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2496) | func (e *SceneSortEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2504) | func (e SceneSortEnum) MarshalJSON() ([]byte, error) { constant SceneSortEnumTitle (line 2452) | SceneSortEnumTitle SceneSortEnum = "TITLE" constant SceneSortEnumDate (line 2453) | SceneSortEnumDate SceneSortEnum = "DATE" constant SceneSortEnumTrending (line 2454) | SceneSortEnumTrending SceneSortEnum = "TRENDING" constant SceneSortEnumCreatedAt (line 2455) | SceneSortEnumCreatedAt SceneSortEnum = "CREATED_AT" constant SceneSortEnumUpdatedAt (line 2456) | SceneSortEnumUpdatedAt SceneSortEnum = "UPDATED_AT" type SortDirectionEnum (line 2510) | type SortDirectionEnum method IsValid (line 2522) | func (e SortDirectionEnum) IsValid() bool { method String (line 2530) | func (e SortDirectionEnum) String() string { method UnmarshalGQL (line 2534) | func (e *SortDirectionEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2547) | func (e SortDirectionEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2551) | func (e *SortDirectionEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2559) | func (e SortDirectionEnum) MarshalJSON() ([]byte, error) { constant SortDirectionEnumAsc (line 2513) | SortDirectionEnumAsc SortDirectionEnum = "ASC" constant SortDirectionEnumDesc (line 2514) | SortDirectionEnumDesc SortDirectionEnum = "DESC" type StudioSortEnum (line 2565) | type StudioSortEnum method IsValid (line 2579) | func (e StudioSortEnum) IsValid() bool { method String (line 2587) | func (e StudioSortEnum) String() string { method UnmarshalGQL (line 2591) | func (e *StudioSortEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2604) | func (e StudioSortEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2608) | func (e *StudioSortEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2616) | func (e StudioSortEnum) MarshalJSON() ([]byte, error) { constant StudioSortEnumName (line 2568) | StudioSortEnumName StudioSortEnum = "NAME" constant StudioSortEnumCreatedAt (line 2569) | StudioSortEnumCreatedAt StudioSortEnum = "CREATED_AT" constant StudioSortEnumUpdatedAt (line 2570) | StudioSortEnumUpdatedAt StudioSortEnum = "UPDATED_AT" type TagGroupEnum (line 2622) | type TagGroupEnum method IsValid (line 2636) | func (e TagGroupEnum) IsValid() bool { method String (line 2644) | func (e TagGroupEnum) String() string { method UnmarshalGQL (line 2648) | func (e *TagGroupEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2661) | func (e TagGroupEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2665) | func (e *TagGroupEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2673) | func (e TagGroupEnum) MarshalJSON() ([]byte, error) { constant TagGroupEnumPeople (line 2625) | TagGroupEnumPeople TagGroupEnum = "PEOPLE" constant TagGroupEnumScene (line 2626) | TagGroupEnumScene TagGroupEnum = "SCENE" constant TagGroupEnumAction (line 2627) | TagGroupEnumAction TagGroupEnum = "ACTION" type TagSortEnum (line 2679) | type TagSortEnum method IsValid (line 2693) | func (e TagSortEnum) IsValid() bool { method String (line 2701) | func (e TagSortEnum) String() string { method UnmarshalGQL (line 2705) | func (e *TagSortEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2718) | func (e TagSortEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2722) | func (e *TagSortEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2730) | func (e TagSortEnum) MarshalJSON() ([]byte, error) { constant TagSortEnumName (line 2682) | TagSortEnumName TagSortEnum = "NAME" constant TagSortEnumCreatedAt (line 2683) | TagSortEnumCreatedAt TagSortEnum = "CREATED_AT" constant TagSortEnumUpdatedAt (line 2684) | TagSortEnumUpdatedAt TagSortEnum = "UPDATED_AT" type TargetTypeEnum (line 2736) | type TargetTypeEnum method IsValid (line 2752) | func (e TargetTypeEnum) IsValid() bool { method String (line 2760) | func (e TargetTypeEnum) String() string { method UnmarshalGQL (line 2764) | func (e *TargetTypeEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2777) | func (e TargetTypeEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2781) | func (e *TargetTypeEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2789) | func (e TargetTypeEnum) MarshalJSON() ([]byte, error) { constant TargetTypeEnumScene (line 2739) | TargetTypeEnumScene TargetTypeEnum = "SCENE" constant TargetTypeEnumStudio (line 2740) | TargetTypeEnumStudio TargetTypeEnum = "STUDIO" constant TargetTypeEnumPerformer (line 2741) | TargetTypeEnumPerformer TargetTypeEnum = "PERFORMER" constant TargetTypeEnumTag (line 2742) | TargetTypeEnumTag TargetTypeEnum = "TAG" type UserChangeEmailStatus (line 2795) | type UserChangeEmailStatus method IsValid (line 2815) | func (e UserChangeEmailStatus) IsValid() bool { method String (line 2823) | func (e UserChangeEmailStatus) String() string { method UnmarshalGQL (line 2827) | func (e *UserChangeEmailStatus) UnmarshalGQL(v any) error { method MarshalGQL (line 2840) | func (e UserChangeEmailStatus) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2844) | func (e *UserChangeEmailStatus) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2852) | func (e UserChangeEmailStatus) MarshalJSON() ([]byte, error) { constant UserChangeEmailStatusConfirmOld (line 2798) | UserChangeEmailStatusConfirmOld UserChangeEmailStatus = "CONFIRM_OLD" constant UserChangeEmailStatusConfirmNew (line 2799) | UserChangeEmailStatusConfirmNew UserChangeEmailStatus = "CONFIRM_NEW" constant UserChangeEmailStatusExpired (line 2800) | UserChangeEmailStatusExpired UserChangeEmailStatus = "EXPIRED" constant UserChangeEmailStatusInvalidToken (line 2801) | UserChangeEmailStatusInvalidToken UserChangeEmailStatus = "INVALID_TOKEN" constant UserChangeEmailStatusSuccess (line 2802) | UserChangeEmailStatusSuccess UserChangeEmailStatus = "SUCCESS" constant UserChangeEmailStatusError (line 2803) | UserChangeEmailStatusError UserChangeEmailStatus = "ERROR" type UserVotedFilterEnum (line 2858) | type UserVotedFilterEnum method IsValid (line 2874) | func (e UserVotedFilterEnum) IsValid() bool { method String (line 2882) | func (e UserVotedFilterEnum) String() string { method UnmarshalGQL (line 2886) | func (e *UserVotedFilterEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2899) | func (e UserVotedFilterEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2903) | func (e *UserVotedFilterEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2911) | func (e UserVotedFilterEnum) MarshalJSON() ([]byte, error) { constant UserVotedFilterEnumAbstain (line 2861) | UserVotedFilterEnumAbstain UserVotedFilterEnum = "ABSTAIN" constant UserVotedFilterEnumAccept (line 2862) | UserVotedFilterEnumAccept UserVotedFilterEnum = "ACCEPT" constant UserVotedFilterEnumReject (line 2863) | UserVotedFilterEnumReject UserVotedFilterEnum = "REJECT" constant UserVotedFilterEnumNotVoted (line 2864) | UserVotedFilterEnumNotVoted UserVotedFilterEnum = "NOT_VOTED" type ValidSiteTypeEnum (line 2917) | type ValidSiteTypeEnum method IsValid (line 2931) | func (e ValidSiteTypeEnum) IsValid() bool { method String (line 2939) | func (e ValidSiteTypeEnum) String() string { method UnmarshalGQL (line 2943) | func (e *ValidSiteTypeEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 2956) | func (e ValidSiteTypeEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 2960) | func (e *ValidSiteTypeEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 2968) | func (e ValidSiteTypeEnum) MarshalJSON() ([]byte, error) { constant ValidSiteTypeEnumPerformer (line 2920) | ValidSiteTypeEnumPerformer ValidSiteTypeEnum = "PERFORMER" constant ValidSiteTypeEnumScene (line 2921) | ValidSiteTypeEnumScene ValidSiteTypeEnum = "SCENE" constant ValidSiteTypeEnumStudio (line 2922) | ValidSiteTypeEnumStudio ValidSiteTypeEnum = "STUDIO" type VoteStatusEnum (line 2974) | type VoteStatusEnum method IsValid (line 2996) | func (e VoteStatusEnum) IsValid() bool { method String (line 3004) | func (e VoteStatusEnum) String() string { method UnmarshalGQL (line 3008) | func (e *VoteStatusEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 3021) | func (e VoteStatusEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 3025) | func (e *VoteStatusEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 3033) | func (e VoteStatusEnum) MarshalJSON() ([]byte, error) { constant VoteStatusEnumAccepted (line 2977) | VoteStatusEnumAccepted VoteStatusEnum = "ACCEPTED" constant VoteStatusEnumRejected (line 2978) | VoteStatusEnumRejected VoteStatusEnum = "REJECTED" constant VoteStatusEnumPending (line 2979) | VoteStatusEnumPending VoteStatusEnum = "PENDING" constant VoteStatusEnumImmediateAccepted (line 2980) | VoteStatusEnumImmediateAccepted VoteStatusEnum = "IMMEDIATE_ACCEPTED" constant VoteStatusEnumImmediateRejected (line 2981) | VoteStatusEnumImmediateRejected VoteStatusEnum = "IMMEDIATE_REJECTED" constant VoteStatusEnumFailed (line 2982) | VoteStatusEnumFailed VoteStatusEnum = "FAILED" constant VoteStatusEnumCanceled (line 2983) | VoteStatusEnumCanceled VoteStatusEnum = "CANCELED" type VoteTypeEnum (line 3039) | type VoteTypeEnum method IsValid (line 3059) | func (e VoteTypeEnum) IsValid() bool { method String (line 3067) | func (e VoteTypeEnum) String() string { method UnmarshalGQL (line 3071) | func (e *VoteTypeEnum) UnmarshalGQL(v any) error { method MarshalGQL (line 3084) | func (e VoteTypeEnum) MarshalGQL(w io.Writer) { method UnmarshalJSON (line 3088) | func (e *VoteTypeEnum) UnmarshalJSON(b []byte) error { method MarshalJSON (line 3096) | func (e VoteTypeEnum) MarshalJSON() ([]byte, error) { constant VoteTypeEnumAbstain (line 3042) | VoteTypeEnumAbstain VoteTypeEnum = "ABSTAIN" constant VoteTypeEnumAccept (line 3043) | VoteTypeEnumAccept VoteTypeEnum = "ACCEPT" constant VoteTypeEnumReject (line 3044) | VoteTypeEnumReject VoteTypeEnum = "REJECT" constant VoteTypeEnumImmediateAccept (line 3046) | VoteTypeEnumImmediateAccept VoteTypeEnum = "IMMEDIATE_ACCEPT" constant VoteTypeEnumImmediateReject (line 3048) | VoteTypeEnumImmediateReject VoteTypeEnum = "IMMEDIATE_REJECT" FILE: pkg/stashbox/performer.go method QueryPerformer (line 23) | func (c Client) QueryPerformer(ctx context.Context, queryStr string) ([]... method queryPerformer (line 36) | func (c Client) queryPerformer(ctx context.Context, queryStr string) ([]... method QueryPerformers (line 63) | func (c Client) QueryPerformers(ctx context.Context, names []string) ([]... function findURL (line 80) | func findURL(urls []*graphql.URLFragment, urlType string) *string { function enumToStringPtr (line 91) | func enumToStringPtr(e fmt.Stringer, titleCase bool) *string { function translateGender (line 104) | func translateGender(gender *graphql.GenderEnum) *string { function formatMeasurements (line 128) | func formatMeasurements(m *graphql.MeasurementsFragment) *string { function formatCareerLength (line 137) | func formatCareerLength(start, end *int) *string { function formatBodyModifications (line 155) | func formatBodyModifications(m []*graphql.BodyModificationFragment) *str... function fetchImage (line 173) | func fetchImage(ctx context.Context, client *http.Client, url string) (*... function performerFragmentToScrapedPerformer (line 202) | func performerFragmentToScrapedPerformer(p graphql.PerformerFragment) *m... function padFuzzyDate (line 293) | func padFuzzyDate(date *string) *string { method FindPerformerByID (line 311) | func (c Client) FindPerformerByID(ctx context.Context, id string) (*mode... method FindPerformerByName (line 328) | func (c Client) FindPerformerByName(ctx context.Context, name string) (*... method SubmitPerformerDraft (line 346) | func (c Client) SubmitPerformerDraft(ctx context.Context, performer *mod... FILE: pkg/stashbox/scene.go method QueryScene (line 19) | func (c Client) QueryScene(ctx context.Context, queryStr string) ([]*mod... method FindSceneByFingerprints (line 49) | func (c Client) FindSceneByFingerprints(ctx context.Context, fps models.... method FindScenesByFingerprints (line 60) | func (c Client) FindScenesByFingerprints(ctx context.Context, fps []mode... function convertFingerprints (line 70) | func convertFingerprints(fps models.Fingerprints) []*graphql.Fingerprint... method findScenesByFingerprints (line 99) | func (c Client) findScenesByFingerprints(ctx context.Context, scenes [][... method sceneFragmentToScrapedScene (line 157) | func (c Client) sceneFragmentToScrapedScene(ctx context.Context, s *grap... function getFirstImage (line 217) | func getFirstImage(ctx context.Context, client *http.Client, images []*g... function getFingerprints (line 226) | func getFingerprints(scene *graphql.SceneFragment) []*models.StashBoxFin... type SceneDraft (line 239) | type SceneDraft struct method SubmitSceneDraft (line 251) | func (c Client) SubmitSceneDraft(ctx context.Context, d SceneDraft) (*st... function newSceneDraftInput (line 275) | func newSceneDraftInput(d SceneDraft, endpoint string) graphql.SceneDraf... function fileFingerprintsToInputGraphQL (line 380) | func fileFingerprintsToInputGraphQL(fps models.Fingerprints, duration in... method SubmitFingerprints (line 411) | func (c Client) SubmitFingerprints(ctx context.Context, scenes []*models... method submitFingerprints (line 449) | func (c Client) submitFingerprints(ctx context.Context, fingerprints []g... function appendFingerprintUnique (line 460) | func appendFingerprintUnique(v []*graphql.FingerprintInput, toAdd *graph... function appendFingerprintsUnique (line 470) | func appendFingerprintsUnique(v []*graphql.FingerprintInput, toAdd ...*g... FILE: pkg/stashbox/studio.go method resolveStudio (line 12) | func (c Client) resolveStudio(ctx context.Context, s *graphql.StudioFrag... method FindStudio (line 34) | func (c Client) FindStudio(ctx context.Context, query string) (*models.S... function studioFragmentToScrapedStudio (line 61) | func studioFragmentToScrapedStudio(s graphql.StudioFragment) *models.Scr... FILE: pkg/stashbox/tag.go method QueryTag (line 14) | func (c Client) QueryTag(ctx context.Context, query string) ([]*models.S... method findTagByID (line 24) | func (c Client) findTagByID(ctx context.Context, id string) ([]*models.S... method queryTagsByName (line 38) | func (c Client) queryTagsByName(ctx context.Context, name string) ([]*mo... function tagFragmentToScrapedTag (line 64) | func tagFragmentToScrapedTag(t graphql.TagFragment) *models.ScrapedTag { FILE: pkg/studio/export.go type FinderImageStashIDGetter (line 14) | type FinderImageStashIDGetter interface function ToJSON (line 24) | func ToJSON(ctx context.Context, reader FinderImageStashIDGetter, studio... FILE: pkg/studio/export_test.go constant noImageID (line 17) | noImageID = 2 constant errImageID (line 18) | errImageID = 3 constant missingParentStudioID (line 19) | missingParentStudioID = 4 constant errStudioID (line 20) | errStudioID = 5 constant customFieldsID (line 21) | customFieldsID = 6 constant parentStudioID (line 23) | parentStudioID = 10 constant missingStudioID (line 24) | missingStudioID = 11 constant errParentStudioID (line 25) | errParentStudioID = 12 constant errCustomFieldsID (line 26) | errCustomFieldsID = 13 constant image (line 59) | image = "aW1hZ2VCeXRlcw==" function createFullStudio (line 66) | func createFullStudio(id int, parentID int) models.Studio { function createEmptyStudio (line 90) | func createEmptyStudio(id int) models.Studio { function createFullJSONStudio (line 102) | func createFullJSONStudio(parentStudio, image string, aliases []string, ... function createEmptyJSONStudio (line 125) | func createEmptyJSONStudio() *jsonschema.Studio { type testScenario (line 140) | type testScenario struct function initTestTable (line 149) | func initTestTable() { function TestToJSON (line 198) | func TestToJSON(t *testing.T) { FILE: pkg/studio/import.go type ImporterReaderWriter (line 16) | type ImporterReaderWriter interface type Importer (line 23) | type Importer struct method PreImport (line 35) | func (i *Importer) PreImport(ctx context.Context) error { method populateTags (line 58) | func (i *Importer) populateTags(ctx context.Context) error { method populateParentStudio (line 128) | func (i *Importer) populateParentStudio(ctx context.Context) error { method createParentStudio (line 159) | func (i *Importer) createParentStudio(ctx context.Context, name string... method PostImport (line 171) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 181) | func (i *Importer) Name() string { method FindExistingID (line 185) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 200) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 213) | func (i *Importer) Update(ctx context.Context, id int) error { function importTags (line 74) | func importTags(ctx context.Context, tagWriter models.TagFinderCreator, ... function createTags (line 109) | func createTags(ctx context.Context, tagWriter models.TagFinderCreator, ... function studioJSONtoStudio (line 229) | func studioJSONtoStudio(studioJSON jsonschema.Studio) models.Studio { FILE: pkg/studio/import_test.go constant invalidImage (line 15) | invalidImage = "aW1hZ2VCeXRlcw&&" constant studioNameErr (line 18) | studioNameErr = "studioNameErr" constant existingStudioName (line 19) | existingStudioName = "existingStudioName" constant existingStudioID (line 21) | existingStudioID = 100 constant existingTagID (line 22) | existingTagID = 105 constant errTagsID (line 23) | errTagsID = 106 constant existingParentStudioName (line 25) | existingParentStudioName = "existingParentStudioName" constant existingParentStudioErr (line 26) | existingParentStudioErr = "existingParentStudioErr" constant missingParentStudioName (line 27) | missingParentStudioName = "existingParentStudioName" constant existingTagName (line 29) | existingTagName = "existingTagName" constant existingTagErr (line 30) | existingTagErr = "existingTagErr" constant missingTagName (line 31) | missingTagName = "missingTagName" function TestImporterName (line 36) | func TestImporterName(t *testing.T) { function TestImporterPreImport (line 46) | func TestImporterPreImport(t *testing.T) { function TestImporterPreImportWithTag (line 78) | func TestImporterPreImportWithTag(t *testing.T) { function TestImporterPreImportWithMissingTag (line 111) | func TestImporterPreImportWithMissingTag(t *testing.T) { function TestImporterPreImportWithMissingTagCreateErr (line 146) | func TestImporterPreImportWithMissingTagCreateErr(t *testing.T) { function TestImporterPreImportWithParent (line 169) | func TestImporterPreImportWithParent(t *testing.T) { function TestImporterPreImportWithMissingParent (line 197) | func TestImporterPreImportWithMissingParent(t *testing.T) { function TestImporterPreImportWithMissingParentCreateErr (line 231) | func TestImporterPreImportWithMissingParentCreateErr(t *testing.T) { function TestImporterPostImport (line 253) | func TestImporterPostImport(t *testing.T) { function TestImporterFindExistingID (line 279) | func TestImporterFindExistingID(t *testing.T) { function TestCreate (line 314) | func TestCreate(t *testing.T) { function TestUpdate (line 350) | func TestUpdate(t *testing.T) { FILE: pkg/studio/query.go function ByName (line 10) | func ByName(ctx context.Context, qb models.StudioQueryer, name string) (... function ByAlias (line 34) | func ByAlias(ctx context.Context, qb models.StudioQueryer, alias string)... function CountByTagID (line 58) | func CountByTagID(ctx context.Context, qb models.StudioQueryer, id int, ... FILE: pkg/studio/validate.go type NameExistsError (line 17) | type NameExistsError struct method Error (line 21) | func (e *NameExistsError) Error() string { type NameUsedByAliasError (line 25) | type NameUsedByAliasError struct method Error (line 30) | func (e *NameUsedByAliasError) Error() string { function EnsureStudioNameUnique (line 36) | func EnsureStudioNameUnique(ctx context.Context, id int, name string, qb... function ValidateAliases (line 65) | func ValidateAliases(ctx context.Context, id int, aliases []string, qb m... function ValidateCreate (line 78) | func ValidateCreate(ctx context.Context, studio models.CreateStudioInput... function validateName (line 92) | func validateName(ctx context.Context, studioID int, name string, qb mod... type ValidateModifyReader (line 104) | type ValidateModifyReader interface function ValidateModify (line 115) | func ValidateModify(ctx context.Context, s models.StudioPartial, qb Vali... function validateParent (line 153) | func validateParent(ctx context.Context, studioID int, newParentID int, ... FILE: pkg/studio/validate_test.go function nameFilter (line 12) | func nameFilter(n string) *models.StudioFilterType { function TestValidateName (line 21) | func TestValidateName(t *testing.T) { function TestValidateUpdateName (line 60) | func TestValidateUpdateName(t *testing.T) { function TestValidateUpdateAliases (line 106) | func TestValidateUpdateAliases(t *testing.T) { FILE: pkg/tag/export.go type FinderAliasImageGetter (line 15) | type FinderAliasImageGetter interface function ToJSON (line 24) | func ToJSON(ctx context.Context, reader FinderAliasImageGetter, tag *mod... function GetDependentTagIDs (line 76) | func GetDependentTagIDs(ctx context.Context, reader FinderAliasImageGett... function GetIDs (line 97) | func GetIDs(tags []*models.Tag) []int { function GetNames (line 106) | func GetNames(tags []*models.Tag) []string { FILE: pkg/tag/export_test.go constant tagID (line 17) | tagID = iota + 1 constant customFieldsID (line 18) | customFieldsID constant noImageID (line 19) | noImageID constant errImageID (line 20) | errImageID constant errAliasID (line 21) | errAliasID constant withParentsID (line 22) | withParentsID constant errParentsID (line 23) | errParentsID constant errCustomFieldsID (line 24) | errCustomFieldsID constant tagName (line 28) | tagName = "testTag" constant sortName (line 29) | sortName = "sortName" constant description (line 30) | description = "description" function createTag (line 44) | func createTag(id int) models.Tag { function createJSONTag (line 57) | func createJSONTag(aliases []string, image string, parents []string, wit... type testScenario (line 83) | type testScenario struct function initTestTable (line 92) | func initTestTable() { function TestToJSON (line 146) | func TestToJSON(t *testing.T) { FILE: pkg/tag/import.go type ImporterReaderWriter (line 12) | type ImporterReaderWriter interface type ParentTagNotExistError (line 17) | type ParentTagNotExistError struct method Error (line 21) | func (e ParentTagNotExistError) Error() string { method MissingParent (line 25) | func (e ParentTagNotExistError) MissingParent() string { type Importer (line 29) | type Importer struct method PreImport (line 39) | func (i *Importer) PreImport(ctx context.Context) error { method PostImport (line 64) | func (i *Importer) PostImport(ctx context.Context, id int) error { method Name (line 95) | func (i *Importer) Name() string { method FindExistingID (line 99) | func (i *Importer) FindExistingID(ctx context.Context) (*int, error) { method Create (line 114) | func (i *Importer) Create(ctx context.Context) (*int, error) { method Update (line 127) | func (i *Importer) Update(ctx context.Context, id int) error { method getParents (line 143) | func (i *Importer) getParents(ctx context.Context) ([]int, error) { method createParent (line 175) | func (i *Importer) createParent(ctx context.Context, name string) (int... FILE: pkg/tag/import_test.go constant image (line 15) | image = "aW1hZ2VCeXRlcw==" constant invalidImage (line 16) | invalidImage = "aW1hZ2VCeXRlcw&&" constant tagNameErr (line 21) | tagNameErr = "tagNameErr" constant existingTagName (line 22) | existingTagName = "existingTagName" constant existingTagID (line 24) | existingTagID = 100 function TestImporterName (line 29) | func TestImporterName(t *testing.T) { function TestImporterPreImport (line 39) | func TestImporterPreImport(t *testing.T) { function TestImporterPostImport (line 61) | func TestImporterPostImport(t *testing.T) { function TestImporterPostImportParentMissing (line 113) | func TestImporterPostImportParentMissing(t *testing.T) { function TestImporterFindExistingID (line 213) | func TestImporterFindExistingID(t *testing.T) { function TestCreate (line 247) | func TestCreate(t *testing.T) { function TestUpdate (line 286) | func TestUpdate(t *testing.T) { FILE: pkg/tag/query.go function ByName (line 9) | func ByName(ctx context.Context, qb models.TagQueryer, name string) (*mo... function ByAlias (line 33) | func ByAlias(ctx context.Context, qb models.TagQueryer, alias string) (*... FILE: pkg/tag/update.go type NameExistsError (line 10) | type NameExistsError struct method Error (line 14) | func (e *NameExistsError) Error() string { type NameUsedByAliasError (line 18) | type NameUsedByAliasError struct method Error (line 23) | func (e *NameUsedByAliasError) Error() string { type InvalidTagHierarchyError (line 27) | type InvalidTagHierarchyError struct method Error (line 35) | func (e *InvalidTagHierarchyError) Error() string { function EnsureTagNameUnique (line 45) | func EnsureTagNameUnique(ctx context.Context, id int, name string, qb mo... function EnsureAliasesUnique (line 74) | func EnsureAliasesUnique(ctx context.Context, id int, aliases []string, ... type RelationshipFinder (line 84) | type RelationshipFinder interface function ValidateHierarchyNew (line 90) | func ValidateHierarchyNew(ctx context.Context, parentIDs, childIDs []int... function ValidateHierarchyExisting (line 159) | func ValidateHierarchyExisting(ctx context.Context, tag *models.Tag, par... FILE: pkg/tag/update_test.go type testUniqueHierarchyCase (line 48) | type testUniqueHierarchyCase struct function TestEnsureHierarchy (line 212) | func TestEnsureHierarchy(t *testing.T) { function testEnsureHierarchy (line 218) | func testEnsureHierarchy(t *testing.T, tc testUniqueHierarchyCase) { FILE: pkg/tag/validate.go type NotFoundError (line 15) | type NotFoundError struct method Error (line 19) | func (e *NotFoundError) Error() string { function ValidateCreate (line 23) | func ValidateCreate(ctx context.Context, tag models.Tag, qb models.TagRe... function ValidateUpdate (line 47) | func ValidateUpdate(ctx context.Context, id int, partial models.TagParti... FILE: pkg/tag/validate_test.go function nameFilter (line 11) | func nameFilter(n string) *models.TagFilterType { function aliasFilter (line 20) | func aliasFilter(n string) *models.TagFilterType { function TestEnsureAliasesUnique (line 29) | func TestEnsureAliasesUnique(t *testing.T) { FILE: pkg/txn/hooks.go type key (line 7) | type key constant hookManagerKey (line 10) | hookManagerKey key = iota + 1 type hookManager (line 13) | type hookManager struct method register (line 20) | func (m *hookManager) register(ctx context.Context) context.Context { method executePostCommitHooks (line 49) | func (m *hookManager) executePostCommitHooks(ctx context.Context) { method executePostRollbackHooks (line 53) | func (m *hookManager) executePostRollbackHooks(ctx context.Context) { method executePreCommitHooks (line 57) | func (m *hookManager) executePreCommitHooks(ctx context.Context) error { method executePostCompleteHooks (line 61) | func (m *hookManager) executePostCompleteHooks(ctx context.Context) { function hookManagerCtx (line 24) | func hookManagerCtx(ctx context.Context) *hookManager { function executeHooks (line 32) | func executeHooks(ctx context.Context, hooks []TxnFunc) error { function executeMustHooks (line 43) | func executeMustHooks(ctx context.Context, hooks []MustFunc) { function AddPreCommitHook (line 65) | func AddPreCommitHook(ctx context.Context, hook TxnFunc) { function AddPostCommitHook (line 70) | func AddPostCommitHook(ctx context.Context, hook MustFunc) { function AddPostRollbackHook (line 75) | func AddPostRollbackHook(ctx context.Context, hook MustFunc) { function AddPostCompleteHook (line 80) | func AddPostCompleteHook(ctx context.Context, hook MustFunc) { FILE: pkg/txn/transaction.go type Manager (line 9) | type Manager interface type DatabaseProvider (line 17) | type DatabaseProvider interface type TxnFunc (line 23) | type TxnFunc type MustFunc (line 27) | type MustFunc function WithTxn (line 33) | func WithTxn(ctx context.Context, m Manager, fn TxnFunc) error { function WithReadTxn (line 44) | func WithReadTxn(ctx context.Context, m Manager, fn TxnFunc) error { function withTxn (line 52) | func withTxn(ctx context.Context, m Manager, fn TxnFunc, writable bool, ... function begin (line 93) | func begin(ctx context.Context, m Manager, writable bool) (context.Conte... function commit (line 106) | func commit(ctx context.Context, m Manager) error { function rollback (line 119) | func rollback(ctx context.Context, m Manager) { function WithDatabase (line 128) | func WithDatabase(ctx context.Context, p DatabaseProvider, fn TxnFunc) e... type Retryer (line 141) | type Retryer struct method WithTxn (line 148) | func (r Retryer) WithTxn(ctx context.Context, fn TxnFunc) error { FILE: pkg/utils/boolean.go function IsTrue (line 4) | func IsTrue(b *bool) bool { FILE: pkg/utils/date.go function ParseDateStringAsTime (line 8) | func ParseDateStringAsTime(dateString string) (time.Time, error) { FILE: pkg/utils/date_test.go function TestParseDateStringAsTime (line 7) | func TestParseDateStringAsTime(t *testing.T) { FILE: pkg/utils/func.go function Do (line 4) | func Do(fn []func() error) error { FILE: pkg/utils/http.go function GenerateETag (line 16) | func GenerateETag(data []byte) string { function setStaticContentCacheControl (line 21) | func setStaticContentCacheControl(w http.ResponseWriter, r *http.Request) { function ServeStaticContent (line 31) | func ServeStaticContent(w http.ResponseWriter, r *http.Request, data []b... function ServeStaticFile (line 40) | func ServeStaticFile(w http.ResponseWriter, r *http.Request, filepath st... function toHTTPError (line 46) | func toHTTPError(err error) (msg string, httpStatus int) { function ServeStaticFileModTime (line 57) | func ServeStaticFileModTime(w http.ResponseWriter, r *http.Request, path... FILE: pkg/utils/image.go constant imageGetTimeout (line 16) | imageGetTimeout = time.Second * 60 constant base64RE (line 18) | base64RE = `^data:.+\/(.+);base64,(.*)$` function ProcessImageInput (line 22) | func ProcessImageInput(ctx context.Context, imageInput string) ([]byte, ... function ReadImageFromURL (line 38) | func ReadImageFromURL(ctx context.Context, url string) ([]byte, error) { function ProcessBase64Image (line 83) | func ProcessBase64Image(imageString string) ([]byte, error) { function GetDataFromBase64String (line 105) | func GetDataFromBase64String(encodedString string) ([]byte, error) { function GetBase64StringFromData (line 110) | func GetBase64StringFromData(data []byte) string { function ServeImage (line 114) | func ServeImage(w http.ResponseWriter, r *http.Request, image []byte) { FILE: pkg/utils/map.go type NestedMap (line 9) | type NestedMap method Get (line 11) | func (m NestedMap) Get(key string) (interface{}, bool) { method Set (line 32) | func (m NestedMap) Set(key string, value interface{}) { method Delete (line 50) | func (m NestedMap) Delete(key string) { function MergeMaps (line 68) | func MergeMaps(dest map[string]interface{}, src map[string]interface{}) { FILE: pkg/utils/map_test.go function TestNestedMapGet (line 8) | func TestNestedMapGet(t *testing.T) { function TestNestedMapSet (line 68) | func TestNestedMapSet(t *testing.T) { function TestNestedMapDelete (line 125) | func TestNestedMapDelete(t *testing.T) { function TestMergeMaps (line 188) | func TestMergeMaps(t *testing.T) { FILE: pkg/utils/mutex.go type MutexManager (line 6) | type MutexManager struct method Claim (line 25) | func (csm *MutexManager) Claim(mutexType string, key string, done <-ch... function NewMutexManager (line 11) | func NewMutexManager() *MutexManager { type MutexField (line 68) | type MutexField struct method Get (line 73) | func (mf *MutexField[T]) Get() T { method Set (line 79) | func (mf *MutexField[T]) Set(value T) { method SetFunc (line 85) | func (mf *MutexField[T]) SetFunc(f func(T) T) { FILE: pkg/utils/mutex_test.go function TestMutexManager (line 9) | func TestMutexManager(t *testing.T) { FILE: pkg/utils/phash.go type Phash (line 11) | type Phash struct function FindDuplicates (line 19) | func FindDuplicates(hashes []*Phash, distance int, durationDiff float64)... function findNeighbors (line 56) | func findNeighbors(bucket int, neighbors []int, hashes []*Phash, scenes ... function PhashToString (line 67) | func PhashToString(phash int64) string { function StringToPhash (line 71) | func StringToPhash(s string) (int64, error) { FILE: pkg/utils/reflect.go function NotNilFields (line 7) | func NotNilFields(subject interface{}, tag string) []string { FILE: pkg/utils/reflect_test.go function TestNotNilFields (line 8) | func TestNotNilFields(t *testing.T) { FILE: pkg/utils/strings.go type StrFormatMap (line 8) | type StrFormatMap function StrFormat (line 22) | func StrFormat(format string, m StrFormatMap) string { function StringerSliceToStringSlice (line 36) | func StringerSliceToStringSlice[V fmt.Stringer](v []V) []string { FILE: pkg/utils/strings_test.go function ExampleStrFormat (line 5) | func ExampleStrFormat() { FILE: pkg/utils/time.go function Timeout (line 9) | func Timeout(todo func(), waitTime time.Duration, onTimeout func(done ch... FILE: pkg/utils/url.go function URLFromHandle (line 7) | func URLFromHandle(input string, siteURL string) string { FILE: pkg/utils/url_test.go function TestURLFromHandle (line 5) | func TestURLFromHandle(t *testing.T) { FILE: pkg/utils/urlmap.go type URLMap (line 6) | type URLMap method GetFilesystemLocation (line 9) | func (m URLMap) GetFilesystemLocation(url string) (newURL string, fsPa... FILE: pkg/utils/urlmap_test.go function TestURLMap_GetFilesystemLocation (line 7) | func TestURLMap_GetFilesystemLocation(t *testing.T) { FILE: pkg/utils/user_agent.go constant Safari (line 6) | Safari = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/60... constant FirefoxWindows (line 7) | FirefoxWindows = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gec... constant FirefoxLinux (line 8) | FirefoxLinux = "Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 ... constant FirefoxLinuxArm (line 9) | FirefoxLinuxArm = "Mozilla/5.0 (X11; Linux armv7l; rv:86.0) Gecko/201001... constant FirefoxLinuxArm64 (line 10) | FirefoxLinuxArm64 = "Mozilla/5.0 (X11; Linux aarch64; rv:86.0) Gecko/201... function getUserAgent (line 13) | func getUserAgent() string { FILE: pkg/utils/vtt.go function norm (line 9) | func norm(hi, lo, base int) (nhi, nlo int) { function GetVTTTime (line 24) | func GetVTTTime(fracSeconds float64) string { FILE: pkg/utils/vtt_test.go function TestZeroTimestamp (line 8) | func TestZeroTimestamp(t *testing.T) { function TestValidTimestamp (line 14) | func TestValidTimestamp(t *testing.T) { function TestNegativeTimestamp (line 26) | func TestNegativeTimestamp(t *testing.T) { function TestInvalidTimestamp (line 32) | func TestInvalidTimestamp(t *testing.T) { FILE: scripts/generateLoginLocales.go function main (line 18) | func main() { FILE: scripts/getDate.go function main (line 8) | func main() { FILE: scripts/test_db_generator/makeTestDB.go constant batchSize (line 29) | batchSize = 50000 type config (line 34) | type config struct function main (line 54) | func main() { function loadConfig (line 76) | func loadConfig() (*config, error) { function populateDB (line 95) | func populateDB() { function withTxn (line 106) | func withTxn(f func(ctx context.Context) error) error { function retry (line 110) | func retry(attempts int, fn func() error) error { function getOrCreateFolder (line 122) | func getOrCreateFolder(ctx context.Context, p string) (*file.Folder, err... function makeTags (line 157) | func makeTags(n int) { function makeStudios (line 193) | func makeStudios(n int) { function makePerformers (line 227) | func makePerformers(n int) { function generateBaseFile (line 252) | func generateBaseFile(parentFolderID file.FolderID, path string) *file.B... function generateVideoFile (line 271) | func generateVideoFile(parentFolderID file.FolderID, path string) file.F... function makeVideoFile (line 282) | func makeVideoFile(ctx context.Context, path string) (file.File, error) { function logf (line 298) | func logf(f string, args ...interface{}) { function makeScenes (line 302) | func makeScenes(n int) { function getResolution (line 334) | func getResolution() (int, int) { function getBool (line 351) | func getBool() { function getDate (line 355) | func getDate() time.Time { function generateScene (line 361) | func generateScene(i int) models.Scene { function generateImageFile (line 372) | func generateImageFile(parentFolderID file.FolderID, path string) file.F... function makeImageFile (line 383) | func makeImageFile(ctx context.Context, path string) (file.File, error) { function makeImages (line 399) | func makeImages(n int) { function generateImage (line 433) | func generateImage(i int) models.Image { function makeGalleries (line 441) | func makeGalleries(n int) { function generateZipFile (line 476) | func generateZipFile(parentFolderID file.FolderID, path string) file.File { function makeZipFile (line 480) | func makeZipFile(ctx context.Context, path string) (file.File, error) { function generateGallery (line 496) | func generateGallery(i int) models.Gallery { function makeChapters (line 507) | func makeChapters(n int) { function generateChapter (line 532) | func generateChapter(i int) models.GalleryChapter { function makeMarkers (line 539) | func makeMarkers(n int) { function generateMarker (line 572) | func generateMarker(i int) models.SceneMarker { function getRandomFilter (line 578) | func getRandomFilter(n int) *models.FindFilterType { function getRandomStudioID (line 587) | func getRandomStudioID(ctx context.Context) *int { function makeSceneRelationships (line 601) | func makeSceneRelationships(ctx context.Context, s *models.Scene) { function makeImageRelationships (line 609) | func makeImageRelationships(ctx context.Context, i *models.Image) { function makeGalleryRelationships (line 624) | func makeGalleryRelationships(ctx context.Context, g *models.Gallery) { function getRandomPerformers (line 634) | func getRandomPerformers(ctx context.Context) []int { function getRandomScene (line 656) | func getRandomScene() int { function getRandomGallery (line 660) | func getRandomGallery() int { function getRandomTags (line 664) | func getRandomTags(ctx context.Context, min, max int) []int { function getRandomImages (line 691) | func getRandomImages(ctx context.Context) []int { FILE: scripts/test_db_generator/naming.go type performerNamingConfig (line 15) | type performerNamingConfig struct type namingConfig (line 21) | type namingConfig struct type naming (line 30) | type naming struct method generateName (line 34) | func (n naming) generateName(words int) string { function createNaming (line 44) | func createNaming(fn string) (*naming, error) { function initNaming (line 64) | func initNaming(c config) { function generatePerformerName (line 87) | func generatePerformerName() string { FILE: ui/ui.go function init (line 18) | func init() { type faviconProvider (line 31) | type faviconProvider struct method GetFavicon (line 35) | func (p *faviconProvider) GetFavicon() []byte { method GetFaviconPng (line 44) | func (p *faviconProvider) GetFaviconPng() []byte { FILE: ui/v2.5/src/@types/mousetrap-pause.d.ts type MousetrapStatic (line 11) | interface MousetrapStatic { type MousetrapInstance (line 17) | interface MousetrapInstance { FILE: ui/v2.5/src/@types/videojs-abloop.d.ts type Options (line 12) | interface Options { class Plugin (line 22) | class Plugin extends videojs.Plugin { type VideoJsPlayer (line 31) | interface VideoJsPlayer { FILE: ui/v2.5/src/@types/videojs-contrib-dash.d.ts class Html5DashJS (line 4) | class Html5DashJS { FILE: ui/v2.5/src/@types/videojs-vr.d.ts type ProjectionType (line 14) | type ProjectionType = type Options (line 41) | interface Options { type PlayerMediaInfo (line 96) | interface PlayerMediaInfo { class Plugin (line 104) | class Plugin extends videojs.Plugin { type VideoJsPlayer (line 120) | interface VideoJsPlayer { FILE: ui/v2.5/src/@types/videojs-vtt.d.ts class ParsingError (line 14) | class ParsingError extends Error { class Parser (line 24) | class Parser { FILE: ui/v2.5/src/App.tsx function languageMessageString (line 100) | function languageMessageString(language: string) { function translateLanguageLocale (line 128) | function translateLanguageLocale(l: string) { function maybeRenderNavbar (line 238) | function maybeRenderNavbar() { function renderContent (line 245) | function renderContent() { function maybeRenderReleaseNotes (line 282) | function maybeRenderReleaseNotes() { function renderSimple (line 318) | function renderSimple(content: React.ReactNode) { FILE: ui/v2.5/src/components/Changelog/Changelog.tsx type IStashRelease (line 68) | interface IStashRelease { FILE: ui/v2.5/src/components/Changelog/Version.tsx type IVersionProps (line 7) | interface IVersionProps { FILE: ui/v2.5/src/components/Dialogs/GenerateDialog.tsx type IGenerateDialog (line 17) | interface IGenerateDialog { function getDefaultOptions (line 34) | function getDefaultOptions(): GQL.GenerateMetadataInput { function onGenerate (line 151) | async function onGenerate() { function onShowManual (line 172) | function onShowManual() { FILE: ui/v2.5/src/components/Dialogs/IdentifyDialog/FieldOptions.tsx type IFieldOptionsEditor (line 19) | interface IFieldOptionsEditor { type IFieldOptions (line 29) | interface IFieldOptions { function renderField (line 71) | function renderField() { function renderStrategy (line 75) | function renderStrategy() { function maybeRenderCreateMissing (line 138) | function maybeRenderCreateMissing() { function onEditOptions (line 188) | function onEditOptions() { type IFieldOptionsList (line 252) | interface IFieldOptionsList { function handleEditOptions (line 279) | function handleEditOptions(o?: GQL.IdentifyFieldOptions | null) { function onEditField (line 309) | function onEditField(field: string) { FILE: ui/v2.5/src/components/Dialogs/IdentifyDialog/IdentifyDialog.tsx type IIdentifyDialogProps (line 33) | interface IIdentifyDialogProps { function getDefaultOptions (line 42) | function getDefaultOptions(): GQL.IdentifyMetadataOptionsInput { function onClick (line 182) | function onClick() { function makeIdentifyInput (line 276) | function makeIdentifyInput(): GQL.IdentifyMetadataInput { function makeDefaultIdentifyInput (line 293) | function makeDefaultIdentifyInput() { function onIdentify (line 299) | async function onIdentify() { function getAvailableSources (line 316) | function getAvailableSources() { function onEditSource (line 325) | function onEditSource(s?: IScraperSource) { function onShowManual (line 336) | function onShowManual() { function isNewSource (line 341) | function isNewSource() { function onSaveSource (line 345) | function onSaveSource(s?: IScraperSource) { function setAsDefault (line 365) | async function setAsDefault() { FILE: ui/v2.5/src/components/Dialogs/IdentifyDialog/Options.tsx type IOptionsEditor (line 11) | interface IOptionsEditor { function setOptions (line 28) | function setOptions(v: Partial) { function maybeRenderMultipleMatchesTag (line 40) | function maybeRenderMultipleMatchesTag() { function maybeRenderPerformersTag (line 74) | function maybeRenderPerformersTag() { FILE: ui/v2.5/src/components/Dialogs/IdentifyDialog/Sources.tsx type ISourceEditor (line 17) | interface ISourceEditor { function handleSourceSelect (line 41) | function handleSourceSelect(e: React.ChangeEvent) { type ISourcesList (line 115) | interface ISourcesList { function removeSource (line 136) | function removeSource(index: number) { function onDragStart (line 142) | function onDragStart(event: React.DragEvent, index: number) { function onDragOver (line 147) | function onDragOver(event: React.DragEvent, index?: number) { function onDragOverDefault (line 160) | function onDragOverDefault(event: React.DragEvent) { function onDrop (line 165) | function onDrop() { FILE: ui/v2.5/src/components/Dialogs/IdentifyDialog/ThreeStateBoolean.tsx type IThreeStateBoolean (line 5) | interface IThreeStateBoolean { function getBooleanText (line 41) | function getBooleanText(v: boolean) { function getButtonText (line 48) | function getButtonText(v: boolean | undefined) { function renderModeButton (line 70) | function renderModeButton(v: boolean | undefined) { FILE: ui/v2.5/src/components/Dialogs/IdentifyDialog/constants.ts type IScraperSource (line 3) | interface IScraperSource { type SceneField (line 23) | type SceneField = (typeof sceneFields)[number]; function sceneFieldMessageID (line 31) | function sceneFieldMessageID(field: SceneField) { FILE: ui/v2.5/src/components/Dialogs/ReleaseNotesDialog.tsx type IReleaseNotesDialog (line 8) | interface IReleaseNotesDialog { FILE: ui/v2.5/src/components/Dialogs/SubmitDraft.tsx type IProps (line 14) | interface IProps { function doSubmit (line 54) | async function doSubmit() { function onSubmit (line 71) | async function onSubmit() { function renderContents (line 96) | function renderContents() { function getFooterProps (line 145) | function getFooterProps() { FILE: ui/v2.5/src/components/ErrorBoundary.tsx type IErrorBoundaryProps (line 5) | interface IErrorBoundaryProps { type ErrorInfo (line 9) | type ErrorInfo = { type IErrorBoundaryState (line 13) | interface IErrorBoundaryState { class ErrorBoundary (line 19) | class ErrorBoundary extends React.Component< method constructor (line 23) | constructor(props: IErrorBoundaryProps) { method componentDidCatch (line 28) | public componentDidCatch(error: Error, errorInfo: ErrorInfo) { method render (line 40) | public render() { FILE: ui/v2.5/src/components/FrontPage/Control.tsx type IFilter (line 17) | interface IFilter { function isTouchEnabled (line 24) | function isTouchEnabled() { type ISavedFilterResults (line 101) | interface ISavedFilterResults { type ICustomFilterProps (line 132) | interface ICustomFilterProps { type IProps (line 169) | interface IProps { FILE: ui/v2.5/src/components/FrontPage/FilteredRecommendationRow.tsx type IProps (line 12) | interface IProps { FILE: ui/v2.5/src/components/FrontPage/FrontPage.tsx function onUpdateConfig (line 31) | async function onUpdateConfig(content?: FrontPageContent[]) { FILE: ui/v2.5/src/components/FrontPage/FrontPageConfig.tsx type IAddSavedFilterModalProps (line 16) | interface IAddSavedFilterModalProps { type SavedFilter (line 34) | type SavedFilter = Pick; function filterTitle (line 36) | function filterTitle(intl: IntlShape, f: SavedFilter) { function onTypeSelected (line 61) | function onTypeSelected(t: string) { function isValid (line 76) | function isValid() { function renderTypeSelect (line 113) | function renderTypeSelect() { function maybeRenderPremadeFiltersSelect (line 139) | function maybeRenderPremadeFiltersSelect() { function maybeRenderSavedFiltersSelect (line 163) | function maybeRenderSavedFiltersSelect() { function doAdd (line 186) | function doAdd() { type IFilterRowProps (line 226) | interface IFilterRowProps { function title (line 235) | function title() { type IFrontPageConfigProps (line 273) | interface IFrontPageConfigProps { function onDragStart (line 312) | function onDragStart(event: React.DragEvent, index: number) { function onDragOver (line 317) | function onDragOver(event: React.DragEvent, index?: number) { function onDragOverDefault (line 330) | function onDragOverDefault(event: React.DragEvent) { function onDrop (line 335) | function onDrop() { function addSavedFilter (line 352) | function addSavedFilter(content?: FrontPageContent) { function deleteSavedFilter (line 362) | function deleteSavedFilter(index: number) { FILE: ui/v2.5/src/components/FrontPage/RecommendationRow.tsx type IProps (line 4) | interface IProps { FILE: ui/v2.5/src/components/Galleries/DeleteGalleriesDialog.tsx type IDeleteGalleryDialogProps (line 11) | interface IDeleteGalleryDialogProps { function getGalleriesDeleteInput (line 51) | function getGalleriesDeleteInput(): GQL.GalleryDestroyInput { function onDelete (line 59) | async function onDelete() { function maybeRenderDeleteFileAlert (line 71) | function maybeRenderDeleteFileAlert() { FILE: ui/v2.5/src/components/Galleries/EditGalleriesDialog.tsx type IListOperationProps (line 25) | interface IListOperationProps { function setUpdateField (line 101) | function setUpdateField(input: Partial) { function getGalleryInput (line 105) | function getGalleryInput(): GQL.BulkGalleryUpdateInput { function onSave (line 123) | async function onSave() { function render (line 142) | function render() { FILE: ui/v2.5/src/components/Galleries/Galleries.tsx type IGalleryImageParams (line 13) | interface IGalleryImageParams { FILE: ui/v2.5/src/components/Galleries/GalleryCard.tsx type IGalleryPreviewProps (line 21) | interface IGalleryPreviewProps { type IGalleryCardProps (line 60) | interface IGalleryCardProps { function maybeRenderScenePopoverButton (line 72) | function maybeRenderScenePopoverButton() { function maybeRenderTagPopoverButton (line 93) | function maybeRenderTagPopoverButton() { function maybeRenderPerformerPopoverButton (line 114) | function maybeRenderPerformerPopoverButton() { function maybeRenderImagesPopoverButton (line 125) | function maybeRenderImagesPopoverButton() { function maybeRenderOrganized (line 138) | function maybeRenderOrganized() { function maybeRenderPopoverButtonGroup (line 155) | function maybeRenderPopoverButtonGroup() { FILE: ui/v2.5/src/components/Galleries/GalleryCardGrid.tsx type IGalleryCardGrid (line 10) | interface IGalleryCardGrid { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/ChapterEntry.tsx type IChapterEntries (line 6) | interface IChapterEntries { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/Gallery.tsx type IProps (line 54) | interface IProps { type IGalleryParams (line 59) | interface IGalleryParams { function onSave (line 89) | async function onSave(input: GQL.GalleryCreateInput) { function getCollapseButtonIcon (line 124) | function getCollapseButtonIcon() { function onRescan (line 128) | async function onRescan() { function onResetCover (line 149) | async function onResetCover() { function onClickChapter (line 168) | async function onClickChapter(imageindex: number) { function onDeleteDialogClosed (line 175) | function onDeleteDialogClosed(deleted: boolean) { function maybeRenderDeleteDialog (line 182) | function maybeRenderDeleteDialog() { function maybeRenderGenerateDialog (line 193) | function maybeRenderGenerateDialog() { function renderOperations (line 205) | function renderOperations() { function renderTabs (line 251) | function renderTabs() { function renderRightTabs (line 334) | function renderRightTabs() { function setRating (line 372) | function setRating(v: number | null) { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryAddPanel.tsx type IGalleryAddProps (line 15) | interface IGalleryAddProps { function addImages (line 65) | async function addImages( FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryChapterForm.tsx type IGalleryChapterForm (line 17) | interface IGalleryChapterForm { type InputValues (line 51) | type InputValues = yup.InferType; function onSave (line 60) | async function onSave(input: InputValues) { function onDelete (line 85) | async function onDelete() { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryChaptersPanel.tsx type IGalleryChapterPanelProps (line 9) | interface IGalleryChapterPanelProps { function onOpenEditor (line 35) | function onOpenEditor(chapter?: GQL.GalleryChapterDataFragment) { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryCreate.tsx function onSave (line 22) | async function onSave(input: GQL.GalleryCreateInput, andNew?: boolean) { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryDetailPanel.tsx type IGalleryDetailProps (line 11) | interface IGalleryDetailProps { function renderDetails (line 20) | function renderDetails() { function renderTags (line 32) | function renderTags() { function renderPerformers (line 50) | function renderPerformers() { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryEditPanel.tsx type IProps (line 40) | interface IProps { type InputValues (line 101) | type InputValues = yup.InferType; function submit (line 105) | function submit(values: InputValues) { function onSetScenes (line 125) | function onSetScenes(items: Scene[]) { function onSetPerformers (line 133) | function onSetPerformers(items: Performer[]) { function onSetStudio (line 141) | function onSetStudio(item: Studio | null) { function onSave (line 197) | async function onSave(input: InputValues, andNew?: boolean) { function onSaveAndNewClick (line 208) | async function onSaveAndNewClick() { function onScrapeClicked (line 216) | async function onScrapeClicked(s: GQL.ScraperSourceInput) { function onReloadScrapers (line 234) | async function onReloadScrapers() { function onScrapeDialogClosed (line 245) | function onScrapeDialogClosed(data?: GQL.ScrapedGalleryDataFragment) { function maybeRenderScrapeDialog (line 252) | function maybeRenderScrapeDialog() { function urlScrapable (line 276) | function urlScrapable(scrapedUrl: string): boolean { function updateGalleryFromScrapedGallery (line 282) | function updateGalleryFromScrapedGallery( function onScrapeGalleryURL (line 338) | async function onScrapeGalleryURL(url: string) { function renderScenesField (line 394) | function renderScenesField() { function renderStudioField (line 407) | function renderStudioField() { function renderPerformersField (line 419) | function renderPerformersField() { function renderTagsField (line 441) | function renderTagsField() { function renderDetailsField (line 446) | function renderDetailsField() { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryFileInfoPanel.tsx type IFileInfoPanelProps (line 13) | interface IFileInfoPanelProps { type IGalleryFileInfoPanelProps (line 82) | interface IGalleryFileInfoPanelProps { function onSetPrimaryFile (line 109) | async function onSetPrimaryFile(fileID: string) { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryImagesPanel.tsx type IGalleryDetailsProps (line 22) | interface IGalleryDetailsProps { function setCover (line 73) | async function setCover( function removeImages (line 104) | async function removeImages( FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryScenesPanel.tsx type IGalleryScenesPanelProps (line 5) | interface IGalleryScenesPanelProps { FILE: ui/v2.5/src/components/Galleries/GalleryDetails/GalleryScrapeDialog.tsx type IGalleryScrapeDialogProps (line 30) | interface IGalleryScrapeDialogProps { function makeNewScrapedItem (line 144) | function makeNewScrapedItem(): GQL.ScrapedGalleryDataFragment { function renderScrapeRows (line 160) | function renderScrapeRows() { FILE: ui/v2.5/src/components/Galleries/GalleryList.tsx type IGalleryList (line 203) | interface IGalleryList { function useViewRandom (line 210) | function useViewRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 234) | function useAddKeybinds(filter: ListFilterModel, count: number) { function onExport (line 337) | function onExport(all: boolean) { function onEdit (line 351) | function onEdit() { function onDelete (line 360) | function onDelete() { function onGenerate (line 369) | function onGenerate() { FILE: ui/v2.5/src/components/Galleries/GalleryListTable.tsx type IGalleryListTableProps (line 13) | interface IGalleryListTableProps { constant TABLE_NAME (line 19) | const TABLE_NAME = "galleries"; function setRating (line 28) | function setRating(v: number | null, galleryId: string) { type IColumnSpec (line 145) | interface IColumnSpec { function renderCell (line 248) | function renderCell( FILE: ui/v2.5/src/components/Galleries/GalleryPreviewScrubber.tsx function onScrubberClick (line 26) | function onScrubberClick(index: number) { function getPath (line 35) | function getPath() { FILE: ui/v2.5/src/components/Galleries/GalleryRecommendationRow.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Galleries/GallerySelect.tsx type Gallery (line 39) | type Gallery = Pick & { type Option (line 45) | type Option = SelectOption; type ExtraGalleryProps (line 47) | type ExtraGalleryProps = { type FindGalleriesResult (line 53) | type FindGalleriesResult = Awaited< function sortGalleriesByRelevance (line 57) | function sortGalleriesByRelevance( function loadGalleries (line 85) | async function loadGalleries(input: string): Promise { function onSelect (line 294) | function onSelect(items: Gallery[]) { function loadObjectsByID (line 299) | async function loadObjectsByID(idsToLoad: string[]): Promise { function getExcludeFilebaseGalleriesFilter (line 338) | function getExcludeFilebaseGalleriesFilter() { FILE: ui/v2.5/src/components/Galleries/GalleryViewer.tsx type IProps (line 11) | interface IProps { FILE: ui/v2.5/src/components/Galleries/GalleryWallCard.tsx constant CLASSNAME (line 15) | const CLASSNAME = "GalleryWallCard"; constant CLASSNAME_FOOTER (line 16) | const CLASSNAME_FOOTER = `${CLASSNAME}-footer`; constant CLASSNAME_IMG (line 17) | const CLASSNAME_IMG = `${CLASSNAME}-img`; constant CLASSNAME_TITLE (line 18) | const CLASSNAME_TITLE = `${CLASSNAME}-title`; constant CLASSNAME_IMG_CONTAIN (line 19) | const CLASSNAME_IMG_CONTAIN = `${CLASSNAME}-img-contain`; type IProps (line 21) | interface IProps { type Orientation (line 28) | type Orientation = "landscape" | "portrait"; function getOrientation (line 30) | function getOrientation(width: number, height: number): Orientation { function onCoverLoad (line 55) | function onCoverLoad(e: React.SyntheticEvent) { function onNonCoverLoad (line 62) | function onNonCoverLoad(e: React.SyntheticEvent) { function handleCardClick (line 77) | function handleCardClick(event: React.MouseEvent) { function showLightboxStart (line 85) | async function showLightboxStart() { FILE: ui/v2.5/src/components/Groups/ContainingGroupsMultiSet.tsx function onSetMode (line 21) | function onSetMode(m: GQL.BulkUpdateIdMode) { function onRemoveSet (line 40) | function onRemoveSet(items: Group[]) { FILE: ui/v2.5/src/components/Groups/EditGroupsDialog.tsx type IListOperationProps (line 25) | interface IListOperationProps { function getAggregateContainingGroups (line 30) | function getAggregateContainingGroups( function getAggregateContainingGroupInput (line 45) | function getAggregateContainingGroupInput( function setUpdateField (line 129) | function setUpdateField(input: Partial) { function getGroupInput (line 133) | function getGroupInput(): GQL.BulkGroupUpdateInput { function onSave (line 155) | async function onSave() { function render (line 172) | function render() { FILE: ui/v2.5/src/components/Groups/GroupCard.tsx type IProps (line 39) | interface IProps { function maybeRenderScenesPopoverButton (line 76) | function maybeRenderScenesPopoverButton() { function maybeRenderTagPopoverButton (line 97) | function maybeRenderTagPopoverButton() { function maybeRenderOCounter (line 114) | function maybeRenderOCounter() { function maybeRenderPopoverButtonGroup (line 120) | function maybeRenderPopoverButtonGroup() { FILE: ui/v2.5/src/components/Groups/GroupCardGrid.tsx type IGroupCardGrid (line 10) | interface IGroupCardGrid { FILE: ui/v2.5/src/components/Groups/GroupDetails/AddGroupsDialog.tsx type IListOperationProps (line 16) | interface IListOperationProps { FILE: ui/v2.5/src/components/Groups/GroupDetails/Group.tsx type TabKey (line 49) | type TabKey = (typeof validTabs)[number]; function isTabKey (line 51) | function isTabKey(tab: string): tab is TabKey { type IProps (line 133) | interface IProps { type IGroupParams (line 138) | interface IGroupParams { function onSave (line 254) | async function onSave(input: GQL.GroupCreateInput) { function onDelete (line 272) | async function onDelete() { function toggleEditing (line 283) | function toggleEditing(value?: boolean) { function renderDeleteAlert (line 293) | function renderDeleteAlert() { function setRating (line 319) | function setRating(v: number | null) { FILE: ui/v2.5/src/components/Groups/GroupDetails/GroupCreate.tsx function onSave (line 28) | async function onSave(input: GQL.GroupCreateInput, andNew?: boolean) { function renderFrontImage (line 45) | function renderFrontImage() { function renderBackImage (line 55) | function renderBackImage() { FILE: ui/v2.5/src/components/Groups/GroupDetails/GroupDetailsPanel.tsx type IGroupDescription (line 11) | interface IGroupDescription { type IGroupDetailsPanel (line 32) | interface IGroupDetailsPanel { function renderTagsField (line 45) | function renderTagsField() { function scrollToTop (line 113) | function scrollToTop() { FILE: ui/v2.5/src/components/Groups/GroupDetails/GroupEditPanel.tsx type IGroupEditPanel (line 37) | interface IGroupEditPanel { type InputValues (line 111) | type InputValues = yup.InferType; function submit (line 115) | function submit(values: InputValues) { function onSetStudio (line 146) | function onSetStudio(item: Studio | null) { function updateGroupEditStateFromScraper (line 177) | function updateGroupEditStateFromScraper( function onSave (line 228) | async function onSave(input: InputValues, andNew?: boolean) { function onSaveAndNewClick (line 239) | async function onSaveAndNewClick() { function onScrapeGroupURL (line 247) | async function onScrapeGroupURL(url: string) { function urlScrapable (line 270) | function urlScrapable(scrapedUrl: string) { function maybeRenderScrapeDialog (line 279) | function maybeRenderScrapeDialog() { function onScrapeDialogClosed (line 306) | function onScrapeDialogClosed(p?: GQL.ScrapedGroupDataFragment) { function onFrontImageLoad (line 327) | function onFrontImageLoad(imageData: string | null) { function onFrontImageChange (line 331) | function onFrontImageChange(event: React.FormEvent) { function onBackImageLoad (line 335) | function onBackImageLoad(imageData: string | null) { function onBackImageChange (line 339) | function onBackImageChange(event: React.FormEvent) { function showImageAlert (line 343) | function showImageAlert(imageData: string) { function setImageFromClipboard (line 348) | function setImageFromClipboard(isFrontImage: boolean) { function renderImageAlert (line 359) | function renderImageAlert() { function renderStudioField (line 406) | function renderStudioField() { function renderTagsField (line 418) | function renderTagsField() { function onSetContainingGroupEntries (line 423) | function onSetContainingGroupEntries(input: IRelatedGroupEntry[]) { function renderContainingGroupsField (line 434) | function renderContainingGroupsField() { FILE: ui/v2.5/src/components/Groups/GroupDetails/GroupPerformersPanel.tsx type IGroupPerformersPanel (line 7) | interface IGroupPerformersPanel { FILE: ui/v2.5/src/components/Groups/GroupDetails/GroupScenesPanel.tsx type IGroupScenesPanel (line 11) | interface IGroupScenesPanel { function useFilterHook (line 17) | function useFilterHook( FILE: ui/v2.5/src/components/Groups/GroupDetails/GroupScrapeDialog.tsx type IGroupScrapeDialogProps (line 23) | interface IGroupScrapeDialogProps { function makeNewScrapedItem (line 129) | function makeNewScrapedItem(): GQL.ScrapedGroup { function renderScrapeRows (line 148) | function renderScrapeRows() { FILE: ui/v2.5/src/components/Groups/GroupDetails/GroupSubGroupsPanel.tsx type IGroupSubGroupsPanel (line 64) | interface IGroupSubGroupsPanel { function removeSubGroups (line 95) | async function removeSubGroups( function onAddSubGroups (line 121) | async function onAddSubGroups() { function onMove (line 149) | function onMove(srcIds: string[], targetId: string, after: boolean) { FILE: ui/v2.5/src/components/Groups/GroupDetails/RelatedGroupTable.tsx type GroupSceneIndexMap (line 9) | type GroupSceneIndexMap = Map; type IRelatedGroupEntry (line 11) | interface IRelatedGroupEntry { function onGroupSet (line 47) | function onGroupSet(index: number, groups: Group[]) { function onNewGroupSet (line 70) | function onNewGroupSet(groups: Group[]) { FILE: ui/v2.5/src/components/Groups/GroupList.tsx type IGroupListContext (line 148) | interface IGroupListContext { type IGroupList (line 155) | interface IGroupList extends IGroupListContext { function useViewRandom (line 161) | function useViewRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 185) | function useAddKeybinds(filter: ListFilterModel, count: number) { function onExport (line 301) | function onExport(all: boolean) { function onEdit (line 315) | function onEdit() { function onDelete (line 324) | function onDelete() { FILE: ui/v2.5/src/components/Groups/GroupRecommendationRow.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Groups/GroupSelect.tsx type Group (line 33) | type Group = Pick< type Option (line 39) | type Option = SelectOption; type FindGroupsResult (line 41) | type FindGroupsResult = Awaited< function sortGroupsByRelevance (line 45) | function sortGroupsByRelevance(input: string, groups: FindGroupsResult) { function loadGroups (line 78) | async function loadGroups(input: string): Promise { function onSelect (line 274) | function onSelect(items: Group[]) { function loadObjectsByID (line 279) | async function loadObjectsByID(idsToLoad: string[]): Promise { FILE: ui/v2.5/src/components/Groups/RelatedGroupPopover.tsx type IProps (line 17) | interface IProps { function getTitle (line 72) | function getTitle() { FILE: ui/v2.5/src/components/Help/Manual.tsx type IManualProps (line 29) | interface IManualProps { function interceptLinkClick (line 181) | function interceptLinkClick( FILE: ui/v2.5/src/components/Help/context.tsx type IManualContextState (line 7) | interface IManualContextState { function openManual (line 19) | function openManual(tab?: string) { type IManualLink (line 44) | interface IManualLink { FILE: ui/v2.5/src/components/Images/DeleteImagesDialog.tsx type IDeleteImageDialogProps (line 11) | interface IDeleteImageDialogProps { function getImagesDeleteInput (line 51) | function getImagesDeleteInput(): GQL.ImagesDestroyInput { function onDelete (line 59) | async function onDelete() { function maybeRenderDeleteFileAlert (line 71) | function maybeRenderDeleteFileAlert() { FILE: ui/v2.5/src/components/Images/EditImagesDialog.tsx type IListOperationProps (line 25) | interface IListOperationProps { function setUpdateField (line 101) | function setUpdateField(input: Partial) { function getImageInput (line 105) | function getImageInput(): GQL.BulkImageUpdateInput { function onSave (line 123) | async function onSave() { function render (line 140) | function render() { FILE: ui/v2.5/src/components/Images/ImageCard.tsx type IImageCardProps (line 23) | interface IImageCardProps { function maybeRenderTagPopoverButton (line 36) | function maybeRenderTagPopoverButton() { function maybeRenderPerformerPopoverButton (line 57) | function maybeRenderPerformerPopoverButton() { function maybeRenderOCounter (line 68) | function maybeRenderOCounter() { function maybeRenderGallery (line 74) | function maybeRenderGallery() { function maybeRenderOrganized (line 95) | function maybeRenderOrganized() { function isPortrait (line 172) | function isPortrait() { FILE: ui/v2.5/src/components/Images/ImageCardGrid.tsx type IImageCardGrid (line 10) | interface IImageCardGrid { FILE: ui/v2.5/src/components/Images/ImageDetails/Image.tsx type IProps (line 41) | interface IProps { type IImageParams (line 45) | interface IImageParams { function onSave (line 68) | async function onSave(input: GQL.ImageUpdateInput) { function onRescan (line 80) | async function onRescan() { function setRating (line 143) | function setRating(v: number | null) { function onDeleteDialogClosed (line 160) | function onDeleteDialogClosed(deleted: boolean) { function maybeRenderDeleteDialog (line 167) | function maybeRenderDeleteDialog() { function maybeRenderSceneGenerateDialog (line 175) | function maybeRenderSceneGenerateDialog() { function renderOperations (line 189) | function renderOperations() { function renderTabs (line 230) | function renderTabs() { FILE: ui/v2.5/src/components/Images/ImageDetails/ImageDetailPanel.tsx type IImageDetailProps (line 11) | interface IImageDetailProps { function renderDetails (line 20) | function renderDetails() { function renderTags (line 32) | function renderTags() { function renderPerformers (line 50) | function renderPerformers() { function renderGalleries (line 76) | function renderGalleries() { FILE: ui/v2.5/src/components/Images/ImageDetails/ImageEditPanel.tsx type IProps (line 44) | interface IProps { type InputValues (line 111) | type InputValues = yup.InferType; function submit (line 115) | function submit(values: InputValues) { function onSetGalleries (line 135) | function onSetGalleries(items: Gallery[]) { function onSetPerformers (line 143) | function onSetPerformers(items: Performer[]) { function onSetStudio (line 151) | function onSetStudio(item: Studio | null) { function onSave (line 188) | async function onSave(input: InputValues) { function onScrapeClicked (line 202) | async function onScrapeClicked(s: GQL.ScraperSourceInput) { function urlScrapable (line 220) | function urlScrapable(scrapedUrl: string): boolean { function updateImageFromScrapedGallery (line 226) | function updateImageFromScrapedGallery( function onReloadScrapers (line 282) | async function onReloadScrapers() { function onScrapeDialogClosed (line 293) | async function onScrapeDialogClosed(data?: GQL.ScrapedImageDataFragment) { function onScrapeImageURL (line 300) | async function onScrapeImageURL(url: string) { function renderGalleriesField (line 356) | function renderGalleriesField() { function renderStudioField (line 370) | function renderStudioField() { function renderPerformersField (line 382) | function renderPerformersField() { function renderTagsField (line 404) | function renderTagsField() { function renderDetailsField (line 409) | function renderDetailsField() { function maybeRenderScrapeDialog (line 425) | function maybeRenderScrapeDialog() { FILE: ui/v2.5/src/components/Images/ImageDetails/ImageFileInfoPanel.tsx type IFileInfoPanelProps (line 15) | interface IFileInfoPanelProps { type IImageFileInfoPanelProps (line 97) | interface IImageFileInfoPanelProps { function onSetPrimaryFile (line 127) | async function onSetPrimaryFile(fileID: string) { FILE: ui/v2.5/src/components/Images/ImageDetails/ImageScrapeDialog.tsx type IImageScrapeDialogProps (line 30) | interface IImageScrapeDialogProps { function makeNewScrapedItem (line 146) | function makeNewScrapedItem(): GQL.ScrapedImageDataFragment { function renderScrapeRows (line 162) | function renderScrapeRows() { FILE: ui/v2.5/src/components/Images/ImageList.tsx type IImageWallProps (line 71) | interface IImageWallProps { function columns (line 138) | function columns(containerWidth: number) { type IImageListImages (line 209) | interface IImageListImages { function onPreview (line 301) | function onPreview(index: number, ev: MouseEvent) { function renderMetadataByline (line 338) | function renderMetadataByline( function useViewRandom (line 466) | function useViewRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 490) | function useAddKeybinds(filter: ListFilterModel, count: number) { type IImageList (line 504) | interface IImageList { function onExport (line 605) | function onExport(all: boolean) { FILE: ui/v2.5/src/components/Images/ImageRecommendationRow.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Images/ImageWallItem.tsx type IExtraProps (line 6) | interface IExtraProps { type style (line 26) | type style = Record; FILE: ui/v2.5/src/components/List/CriterionEditor.tsx type IGenericCriterionEditor (line 61) | interface IGenericCriterionEditor { function onValueChanged (line 124) | function onValueChanged(value: CriterionValue) { type ICriterionEditor (line 283) | interface ICriterionEditor { FILE: ui/v2.5/src/components/List/EditFilterDialog.tsx type ICriterionList (line 42) | interface ICriterionList { function onSelect (line 88) | function onSelect(k: string | null) { function getReleventCriterion (line 122) | function getReleventCriterion(t: CriterionType) { function removeClicked (line 130) | function removeClicked(ev: React.MouseEvent, t: string) { function togglePin (line 137) | function togglePin(ev: React.MouseEvent, c: CriterionOption) { function renderCard (line 144) | function renderCard(c: CriterionOption, isPin: boolean) { function filterModeToConfigKey (line 220) | function filterModeToConfigKey(filterMode: FilterMode) { type IEditFilterProps (line 224) | interface IEditFilterProps { function updatePinnedFilters (line 364) | async function updatePinnedFilters(filters: string[]) { function onTogglePinFilter (line 383) | async function onTogglePinFilter(f: CriterionOption) { function replaceCriterion (line 398) | function replaceCriterion(c: Criterion) { function removeCriterion (line 431) | function removeCriterion(c: Criterion, valueIndex?: number) { function removeCriterionString (line 454) | function removeCriterionString(c: string) { function onClearAll (line 461) | function onClearAll() { function onLoadFilter (line 467) | function onLoadFilter(f: SavedFilterDataFragment) { function onSaveFilter (line 480) | async function onSaveFilter(name: string, id?: string) { function useShowEditFilter (line 620) | function useShowEditFilter(props: { FILE: ui/v2.5/src/components/List/FilterProvider.tsx type IFilterContextOptions (line 6) | interface IFilterContextOptions { type IFilterContextState (line 11) | interface IFilterContextState { function useFilter (line 42) | function useFilter() { FILE: ui/v2.5/src/components/List/FilterTags.tsx type TagItemProps (line 26) | type TagItemProps = PropsWithChildren< function handleClick (line 50) | function handleClick(e: React.MouseEvent) { function handleMouseEnter (line 86) | function handleMouseEnter() { function handleMouseLeave (line 90) | function handleMouseLeave() { type IFilterTagsProps (line 123) | interface IFilterTagsProps { function onRemoveCriterionTag (line 257) | function onRemoveCriterionTag( function onClickCriterionTag (line 269) | function onClickCriterionTag(criterion: Criterion) { function getFilterTags (line 273) | function getFilterTags(criterion: Criterion) { FILE: ui/v2.5/src/components/List/FilteredListToolbar.tsx type IItemListOperation (line 53) | interface IItemListOperation { type IFilteredListToolbar (line 70) | interface IFilteredListToolbar { FILE: ui/v2.5/src/components/List/Filters/BooleanFilter.tsx type IBooleanFilter (line 12) | interface IBooleanFilter { function onSelect (line 21) | function onSelect(v: boolean) { type ISidebarFilter (line 52) | interface ISidebarFilter { function onSelect (line 111) | function onSelect(item: Option) { function onUnselect (line 119) | function onUnselect() { FILE: ui/v2.5/src/components/List/Filters/CustomFieldsFilter.tsx type ICustomFieldCriterionEditor (line 16) | interface ICustomFieldCriterionEditor { function getValue (line 23) | function getValue(v: string) { function setFirstValue (line 56) | function setFirstValue(v: string) { function setSecondValue (line 70) | function setSecondValue(v: string) { function onChangeModifier (line 74) | function onChangeModifier(m: CriterionModifier) { function onConfirm (line 81) | function onConfirm() { function valueToString (line 160) | function valueToString(value: unknown[] | undefined | null) { type ICustomFieldsFilter (line 228) | interface ICustomFieldsFilter { function initCriterion (line 233) | function initCriterion( function createNewCriterion (line 239) | function createNewCriterion(): CustomFieldCriterionInput { function updateCriteria (line 261) | function updateCriteria(newCriteria: CustomFieldCriterionInput[]) { function onChange (line 269) | function onChange(nv: CustomFieldCriterionInput) { function onRemove (line 284) | function onRemove(index: number) { FILE: ui/v2.5/src/components/List/Filters/DateFilter.tsx type IDateFilterProps (line 9) | interface IDateFilterProps { function onChanged (line 22) | function onChanged(newValue: string, property: "value" | "value2") { FILE: ui/v2.5/src/components/List/Filters/DuplicateFilter.tsx type IDuplicatedFilter (line 18) | interface IDuplicatedFilter { function onFieldChange (line 29) | function onFieldChange( type ISidebarDuplicateFilterProps (line 59) | interface ISidebarDuplicateFilterProps { function onToggleExpand (line 136) | function onToggleExpand(id: string) { function onUnselect (line 140) | function onUnselect(item: Option) { function onSelectValue (line 164) | function onSelectValue(typeId: string, value: boolean) { FILE: ui/v2.5/src/components/List/Filters/DurationFilter.tsx type IDurationFilterProps (line 9) | interface IDurationFilterProps { function onChanged (line 20) | function onChanged(v: number | null, property: "value" | "value2") { function renderTop (line 26) | function renderTop() { function renderBottom (line 51) | function renderBottom() { FILE: ui/v2.5/src/components/List/Filters/FilterButton.tsx type IFilterButtonProps (line 7) | interface IFilterButtonProps { FILE: ui/v2.5/src/components/List/Filters/FilterSidebar.tsx function useFilteredSidebarKeybinds (line 77) | function useFilteredSidebarKeybinds(props: { FILE: ui/v2.5/src/components/List/Filters/FolderFilter.tsx type IFolder (line 40) | interface IFolder extends FolderDataFragment { function toggleExpandedFn (line 110) | function toggleExpandedFn(object: IFolder): (f: IFolder) => IFolder { function replaceFolder (line 127) | function replaceFolder(folder: IFolder): (f: IFolder) => IFolder { function useFolderMap (line 144) | function useFolderMap(query: string, skip?: boolean) { function getMatchingFolders (line 262) | function getMatchingFolders(folders: IFolder[], query: string): IFolder[] { type IInputFilterProps (line 312) | interface IInputFilterProps { function criterionOptionTypeToIncludeID (line 334) | function criterionOptionTypeToIncludeID(): string { function criterionOptionTypeToIncludeUIString (line 338) | function criterionOptionTypeToIncludeUIString(): MessageDescriptor { function onDepthChanged (line 346) | function onDepthChanged(depth: number) { function onSelect (line 353) | function onSelect(folder: IFolder, exclude: boolean = false) { function onEnter (line 392) | function onEnter() { function onOpen (line 470) | function onOpen() { function onSelect (line 495) | function onSelect(folder: IFolder) { function onSelectSubfolders (line 512) | function onSelectSubfolders() { function onEnter (line 543) | function onEnter() { FILE: ui/v2.5/src/components/List/Filters/HierarchicalLabelValueFilter.tsx type IHierarchicalLabelValueFilterProps (line 9) | interface IHierarchicalLabelValueFilterProps { function onSelectionChanged (line 39) | function onSelectionChanged(items: SelectObject[]) { function onDepthChanged (line 48) | function onDepthChanged(depth: number) { function criterionOptionTypeToIncludeID (line 54) | function criterionOptionTypeToIncludeID(): string { function criterionOptionTypeToIncludeUIString (line 68) | function criterionOptionTypeToIncludeUIString(): MessageDescriptor { FILE: ui/v2.5/src/components/List/Filters/InputFilter.tsx type IInputFilterProps (line 8) | interface IInputFilterProps { function onChanged (line 17) | function onChanged(event: React.ChangeEvent) { FILE: ui/v2.5/src/components/List/Filters/LabeledIdFilter.tsx type ILabeledIdFilterProps (line 33) | interface ILabeledIdFilterProps { function getLabel (line 58) | function getLabel(i: SelectObject) { function onSelectionChanged (line 69) | function onSelectionChanged(items: SelectObject[]) { type ModifierValue (line 91) | type ModifierValue = "any" | "none" | "any_of" | "only" | "include_subs"; function getModifierCandidates (line 93) | function getModifierCandidates(props: { function modifierValueToModifier (line 138) | function modifierValueToModifier(key: ModifierValue): CriterionModifier { function getDefaultModifier (line 153) | function getDefaultModifier(singleValue: boolean) { function useSelectionState (line 160) | function useSelectionState(props: { function useCriterion (line 297) | function useCriterion( type IUseQueryHookProps (line 330) | interface IUseQueryHookProps { function useQueryState (line 337) | function useQueryState( function useCandidates (line 353) | function useCandidates(props: { function useLabeledIdFilterState (line 441) | function useLabeledIdFilterState(props: { function makeQueryVariables (line 511) | function makeQueryVariables(query: string, extraProps: {}) { type IFilterType (line 521) | interface IFilterType { function setObjectFilter (line 538) | function setObjectFilter( FILE: ui/v2.5/src/components/List/Filters/NumberFilter.tsx type IDurationFilterProps (line 9) | interface IDurationFilterProps { function onChanged (line 22) | function onChanged( FILE: ui/v2.5/src/components/List/Filters/OptionFilter.tsx type IOptionsFilter (line 19) | interface IOptionsFilter { function onSelect (line 28) | function onSelect(v: string) { type IOptionsListFilter (line 57) | interface IOptionsListFilter { function onSelect (line 66) | function onSelect(v: string) { type ISidebarFilter (line 97) | interface ISidebarFilter { function onSelect (line 188) | function onSelect(item: Option) { function onUnselect (line 208) | function onUnselect(item: Option) { FILE: ui/v2.5/src/components/List/Filters/PathFilter.tsx type IInputFilterProps (line 11) | interface IInputFilterProps { FILE: ui/v2.5/src/components/List/Filters/PerformersFilter.tsx type IPerformersFilter (line 26) | interface IPerformersFilter { type IHasModifier (line 31) | interface IHasModifier { function queryVariables (line 35) | function queryVariables( function sortResults (line 60) | function sortResults( function usePerformerQueryFilter (line 77) | function usePerformerQueryFilter(props: IUseQueryHookProps) { function usePerformerQuery (line 94) | function usePerformerQuery(query: string, skip?: boolean) { FILE: ui/v2.5/src/components/List/Filters/PhashFilter.tsx type IPhashFilterProps (line 9) | interface IPhashFilterProps { function valueChanged (line 21) | function valueChanged(event: React.ChangeEvent) { function distanceChanged (line 28) | function distanceChanged(event: React.ChangeEvent) { FILE: ui/v2.5/src/components/List/Filters/RatingFilter.tsx type IRatingFilterProps (line 23) | interface IRatingFilterProps { function getRatingSystem (line 32) | function getRatingSystem(field: "value" | "value2") { type ISidebarFilter (line 78) | interface ISidebarFilter { function onSelect (line 154) | function onSelect(item: Option) { function onUnselect (line 167) | function onUnselect() { function onRatingValueChange (line 171) | function onRatingValueChange(value: number | null) { FILE: ui/v2.5/src/components/List/Filters/SelectableFilter.tsx type ISelectedItem (line 36) | interface ISelectedItem { function onMouseOver (line 64) | function onMouseOver() { function onMouseOut (line 68) | function onMouseOut() { type ISelectableFilter (line 138) | interface ISelectableFilter { type SpecialValue (line 155) | type SpecialValue = "any" | "none" | "any_of" | "only"; function modifierValueToModifier (line 157) | function modifierValueToModifier(key: SpecialValue): CriterionModifier { function onModifierValueSelect (line 241) | function onModifierValueSelect(key: SpecialValue) { function onModifierValueUnselect (line 246) | function onModifierValueUnselect() { function onEnter (line 250) | function onEnter() { type IObjectsFilter (line 333) | interface IObjectsFilter = { type IQueryableProps (line 215) | interface IQueryableProps { function unselectHook (line 311) | function unselectHook(item: Option, exclude: boolean) { function selectHook (line 321) | function selectHook(item: Option, exclude: boolean) { function onEnter (line 334) | function onEnter() { function useStaticResults (line 388) | function useStaticResults(r: T) { FILE: ui/v2.5/src/components/List/Filters/StashIDFilter.tsx type IStashIDFilterProps (line 8) | interface IStashIDFilterProps { function onEndpointChanged (line 20) | function onEndpointChanged(event: React.ChangeEvent) { function onStashIDChanged (line 27) | function onStashIDChanged(event: React.ChangeEvent) { FILE: ui/v2.5/src/components/List/Filters/StudiosFilter.tsx type IStudiosFilter (line 24) | interface IStudiosFilter { function queryVariables (line 29) | function queryVariables(query: string, f?: ListFilterModel) { function sortResults (line 47) | function sortResults( function useStudioQueryFilter (line 64) | function useStudioQueryFilter(props: IUseQueryHookProps) { function useStudioQuery (line 81) | function useStudioQuery(query: string, skip?: boolean) { FILE: ui/v2.5/src/components/List/Filters/TagsFilter.tsx type ITagsFilter (line 25) | interface ITagsFilter { type IHasModifier (line 30) | interface IHasModifier { function queryVariables (line 34) | function queryVariables(query: string, f?: ListFilterModel) { function sortResults (line 56) | function sortResults( function useTagQueryFilter (line 73) | function useTagQueryFilter(props: IUseQueryHookProps) { function useTagQuery (line 90) | function useTagQuery(query: string, skip?: boolean) { FILE: ui/v2.5/src/components/List/Filters/TimestampFilter.tsx type ITimestampFilterProps (line 9) | interface ITimestampFilterProps { function onChanged (line 22) | function onChanged(newValue: string, property: "value" | "value2") { FILE: ui/v2.5/src/components/List/ItemList.tsx type IFilteredItemList (line 19) | interface IFilteredItemList< function useFilteredItemList (line 29) | function useFilteredItemList< FILE: ui/v2.5/src/components/List/ListFilter.tsx function useDebouncedSearchInput (line 38) | function useDebouncedSearchInput( function onSetQuery (line 91) | function onSetQuery(value: string) { constant PAGE_SIZE_OPTIONS (line 112) | const PAGE_SIZE_OPTIONS = ["20", "40", "60", "120", "250", "500", "1000"]; function onChangePageSize (line 153) | function onChangePageSize(val: string) { function renderSortByOptions (line 259) | function renderSortByOptions() { FILE: ui/v2.5/src/components/List/ListOperationButtons.tsx type IListFilterOperation (line 57) | interface IListFilterOperation { type IListOperationButtonsProps (line 66) | interface IListOperationButtonsProps { function renderSelectAll (line 174) | function renderSelectAll() { function renderSelectNone (line 188) | function renderSelectNone() { function renderInvertSelection (line 202) | function renderInvertSelection() { function addButton (line 321) | function addButton(b: React.ReactNode | null) { FILE: ui/v2.5/src/components/List/ListProvider.tsx type IListContextOptions (line 9) | interface IListContextOptions { type IListContextState (line 14) | type IListContextState = IListSelect & { function useListContext (line 49) | function useListContext() { function useListContextOptional (line 72) | function useListContextOptional() { type IQueryResultContextOptions (line 82) | interface IQueryResultContextOptions< type IQueryResultContextState (line 94) | interface IQueryResultContextState< function useQueryResultContext (line 176) | function useQueryResultContext< FILE: ui/v2.5/src/components/List/ListTable.tsx type IColumn (line 6) | interface IColumn { type IListTableProps (line 41) | interface IListTableProps { FILE: ui/v2.5/src/components/List/ListViewOptions.tsx type IListViewOptionsProps (line 24) | interface IListViewOptionsProps { function getIcon (line 32) | function getIcon(option: DisplayMode) { function getLabelId (line 45) | function getLabelId(option: DisplayMode) { function getLabel (line 64) | function getLabel(intl: IntlShape, option: DisplayMode) { function onChangeZoom (line 110) | function onChangeZoom(v: number) { FILE: ui/v2.5/src/components/List/ModifierSelect.tsx type IModifierSelect (line 21) | interface IModifierSelect { FILE: ui/v2.5/src/components/List/Pagination.tsx function onCustomChangePage (line 57) | function onCustomChangePage() { type IPaginationProps (line 143) | interface IPaginationProps { type IPaginationIndexProps (line 152) | interface IPaginationIndexProps { FILE: ui/v2.5/src/components/List/SavedFilterList.tsx type ISavedFilterListProps (line 243) | interface ISavedFilterListProps { function onSaveFilter (line 275) | async function onSaveFilter(name: string, id?: string) { function onDeleteFilter (line 302) | async function onDeleteFilter(f: SavedFilterDataFragment) { function onSetDefaultFilter (line 335) | async function onSetDefaultFilter() { function filterClicked (line 369) | function filterClicked(f: SavedFilterDataFragment) { type ISavedFilterItem (line 382) | interface ISavedFilterItem { function renderSavedFilters (line 421) | function renderSavedFilters() { function maybeRenderSetDefaultButton (line 447) | function maybeRenderSetDefaultButton() { type ISavedFilterItem (line 522) | interface ISavedFilterItem { function onSaveFilter (line 659) | async function onSaveFilter(name: string, id?: string) { function onDeleteFilter (line 684) | async function onDeleteFilter(f: SavedFilterDataFragment) { function onSetDefaultFilter (line 717) | async function onSetDefaultFilter() { function filterClicked (line 752) | function filterClicked(f: SavedFilterDataFragment) { FILE: ui/v2.5/src/components/List/ZoomSlider.tsx function useZoomKeybinds (line 8) | function useZoomKeybinds(props: { type IZoomSelectProps (line 32) | interface IZoomSelectProps { FILE: ui/v2.5/src/components/List/util.ts function locationEquals (line 15) | function locationEquals( function useFilterURL (line 22) | function useFilterURL( function useDefaultFilter (line 96) | function useDefaultFilter(emptyFilter: ListFilterModel, view?: View) { function useEmptyFilter (line 122) | function useEmptyFilter(props: { type IFilterStateHook (line 140) | interface IFilterStateHook { function useFilterState (line 148) | function useFilterState( function useFilterOperations (line 182) | function useFilterOperations(props: { function useListKeyboardShortcuts (line 236) | function useListKeyboardShortcuts(props: { function useListSelect (line 324) | function useListSelect(items: T[]) { type IListSelect (line 464) | type IListSelect = ReturnType< function totalCountImpacted (line 469) | function totalCountImpacted( function useCachedQueryResult (line 487) | function useCachedQueryResult( type IQueryResultHook (line 510) | interface IQueryResultHook< function useQueryResult (line 522) | function useQueryResult< function useCloseEditDelete (line 574) | function useCloseEditDelete(props: { function useScrollToTopOnPageChange (line 597) | function useScrollToTopOnPageChange( function useEnsureValidPage (line 622) | function useEnsureValidPage( FILE: ui/v2.5/src/components/List/views.ts type View (line 1) | enum View { FILE: ui/v2.5/src/components/MainNavbar.tsx type IMenuItem (line 44) | interface IMenuItem { function maybeRenderLogout (line 281) | function maybeRenderLogout() { function renderUtilityButtons (line 297) | function renderUtilityButtons() { FILE: ui/v2.5/src/components/Performers/EditPerformersDialog.tsx type IListOperationProps (line 34) | interface IListOperationProps { function setUpdateField (line 118) | function setUpdateField(input: Partial) { function getPerformerInput (line 122) | function getPerformerInput(): GQL.BulkPerformerUpdateInput { function onSave (line 163) | async function onSave() { function render (line 234) | function render() { FILE: ui/v2.5/src/components/Performers/GenderIcon.tsx type IIconProps (line 12) | interface IIconProps { function genderIcon (line 17) | function genderIcon(gender: GQL.GenderEnum) { FILE: ui/v2.5/src/components/Performers/PerformerCard.tsx type IPerformerCardExtraCriteria (line 30) | interface IPerformerCardExtraCriteria { type IPerformerCardProps (line 38) | interface IPerformerCardProps { function maybeRenderScenesPopoverButton (line 52) | function maybeRenderScenesPopoverButton() { function maybeRenderImagesPopoverButton (line 69) | function maybeRenderImagesPopoverButton() { function maybeRenderGalleriesPopoverButton (line 86) | function maybeRenderGalleriesPopoverButton() { function maybeRenderOCounter (line 103) | function maybeRenderOCounter() { function maybeRenderTagPopoverButton (line 109) | function maybeRenderTagPopoverButton() { function maybeRenderGroupsPopoverButton (line 126) | function maybeRenderGroupsPopoverButton() { function onToggleFavorite (line 177) | function onToggleFavorite(v: boolean) { function maybeRenderRatingBanner (line 190) | function maybeRenderRatingBanner() { function maybeRenderFlag (line 197) | function maybeRenderFlag() { function maybeRenderLinks (line 214) | function maybeRenderLinks() { FILE: ui/v2.5/src/components/Performers/PerformerCardGrid.tsx type IPerformerCardGrid (line 10) | interface IPerformerCardGrid { FILE: ui/v2.5/src/components/Performers/PerformerDetails/Performer.tsx type IProps (line 54) | interface IProps { type IPerformerParams (line 59) | interface IPerformerParams { type TabKey (line 72) | type TabKey = (typeof validTabs)[number]; function isTabKey (line 74) | function isTabKey(tab: string): tab is TabKey { type IPerformerHeaderImageProps (line 208) | interface IPerformerHeaderImageProps { function onAutoTag (line 281) | async function onAutoTag() { function renderMergeButton (line 290) | function renderMergeButton() { function renderMergeDialog (line 299) | function renderMergeDialog() { function onSave (line 336) | async function onSave(input: GQL.PerformerCreateInput) { function onDelete (line 356) | async function onDelete() { function toggleEditing (line 367) | function toggleEditing(value?: boolean) { function setFavorite (line 376) | function setFavorite(v: boolean) { function setRating (line 389) | function setRating(v: number | null) { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerCreate.tsx function onSave (line 26) | async function onSave(input: GQL.PerformerCreateInput, andNew?: boolean) { function renderPerformerImage (line 45) | function renderPerformerImage() { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerDetailsPanel.tsx type IPerformerDetails (line 20) | interface IPerformerDetails { function renderTagsField (line 38) | function renderTagsField() { function renderStashIDs (line 51) | function renderStashIDs() { function scrollToTop (line 203) | function scrollToTop() { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerEditPanel.tsx type IPerformerDetails (line 61) | interface IPerformerDetails { type InputValues (line 162) | type InputValues = yup.InferType; function submit (line 166) | function submit(values: InputValues) { function translateScrapedGender (line 186) | function translateScrapedGender(scrapedGender?: string) { function translateScrapedCircumcised (line 203) | function translateScrapedCircumcised(scrapedCircumcised?: string) { function updatePerformerEditStateFromScraper (line 218) | function updatePerformerEditStateFromScraper( function updateStashIDs (line 316) | function updateStashIDs(remoteSiteID: string | null | undefined) { function onImageLoad (line 341) | function onImageLoad(imageData: string | null) { function onImageChange (line 345) | function onImageChange(event: React.FormEvent) { function onSave (line 349) | async function onSave(input: InputValues, andNew?: boolean) { function onSaveAndNewClick (line 360) | async function onSaveAndNewClick() { function onReloadScrapers (line 398) | async function onReloadScrapers() { function onScrapePerformer (line 409) | async function onScrapePerformer( function onScrapePerformerURL (line 445) | async function onScrapePerformerURL(url: string) { function onScrapeStashBox (line 467) | async function onScrapeStashBox(performerResult: GQL.ScrapedPerformer) { function onScraperSelected (line 485) | function onScraperSelected(s: GQL.Scraper | IStashBox | undefined) { function renderScraperMenu (line 490) | function renderScraperMenu() { function urlScrapable (line 545) | function urlScrapable(scrapedUrl?: string) { function maybeRenderScrapeDialog (line 554) | function maybeRenderScrapeDialog() { function onScrapeDialogClosed (line 577) | function onScrapeDialogClosed(p?: GQL.ScrapedPerformerDataFragment) { function onStashIDSelected (line 585) | function onStashIDSelected(item?: GQL.StashIdInput) { function renderButtons (line 593) | function renderButtons(classNames: string) { function renderCountryField (line 677) | function renderCountryField() { function renderTagsField (line 689) | function renderTagsField() { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerGalleriesPanel.tsx type IPerformerDetailsProps (line 8) | interface IPerformerDetailsProps { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerGroupsPanel.tsx type IPerformerDetailsProps (line 8) | interface IPerformerDetailsProps { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerImagesPanel.tsx type IPerformerImagesPanel (line 8) | interface IPerformerImagesPanel { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerScenesPanel.tsx type IPerformerDetailsProps (line 8) | interface IPerformerDetailsProps { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerScrapeDialog.tsx function renderScrapedGender (line 30) | function renderScrapedGender( function renderScrapedGenderRow (line 59) | function renderScrapedGenderRow( function renderScrapedCircumcised (line 78) | function renderScrapedCircumcised( function renderScrapedCircumcisedRow (line 107) | function renderScrapedCircumcisedRow( type IPerformerScrapeDialogProps (line 126) | interface IPerformerScrapeDialogProps { function getCurrentRemoteSiteID (line 142) | function getCurrentRemoteSiteID() { function translateScrapedGender (line 167) | function translateScrapedGender(scrapedGender?: string | null) { function translateScrapedCircumcised (line 188) | function translateScrapedCircumcised(scrapedCircumcised?: string | null) { function makeNewScrapedItem (line 376) | function makeNewScrapedItem(): GQL.ScrapedPerformer { function renderScrapeRows (line 407) | function renderScrapeRows() { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerScrapeModal.tsx constant CLASSNAME (line 11) | const CLASSNAME = "PerformerScrapeModal"; constant CLASSNAME_LIST (line 12) | const CLASSNAME_LIST = `${CLASSNAME}-list`; type IProps (line 14) | interface IProps { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerStashBoxModal.tsx constant CLASSNAME (line 17) | const CLASSNAME = "PerformerScrapeModal"; constant CLASSNAME_LIST (line 18) | const CLASSNAME_LIST = `${CLASSNAME}-list`; constant CLASSNAME_LIST_CONTAINER (line 19) | const CLASSNAME_LIST_CONTAINER = `${CLASSNAME_LIST}-container`; type IPerformerSearchResultDetailsProps (line 21) | interface IPerformerSearchResultDetailsProps { function renderImage (line 28) | function renderImage() { function calculateAge (line 42) | function calculateAge() { function renderTags (line 50) | function renderTags() { function renderCountry (line 70) | function renderCountry() { type IPerformerSearchResult (line 127) | interface IPerformerSearchResult { type IStashBox (line 141) | interface IStashBox extends GQL.StashBox { type IProps (line 145) | interface IProps { function renderResults (line 178) | function renderResults() { FILE: ui/v2.5/src/components/Performers/PerformerDetails/PerformerSubmitButton.tsx type IPerformerOperationsProps (line 7) | interface IPerformerOperationsProps { FILE: ui/v2.5/src/components/Performers/PerformerDetails/performerAppearsWithPanel.tsx type IPerformerDetailsProps (line 8) | interface IPerformerDetailsProps { FILE: ui/v2.5/src/components/Performers/PerformerList.tsx function formatYearRange (line 140) | function formatYearRange( type IPerformerList (line 194) | interface IPerformerList { function useViewRandom (line 326) | function useViewRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 350) | function useAddKeybinds(filter: ListFilterModel, count: number) { function onExport (line 460) | function onExport(all: boolean) { function onEdit (line 474) | function onEdit() { function onDelete (line 483) | function onDelete() { function onMerge (line 495) | function onMerge() { FILE: ui/v2.5/src/components/Performers/PerformerListTable.tsx type IPerformerListTableProps (line 26) | interface IPerformerListTableProps { constant TABLE_NAME (line 32) | const TABLE_NAME = "performers"; function setRating (line 41) | function setRating(v: number | null, performerId: string) { function setFavorite (line 54) | function setFavorite(v: boolean, performerId: string) { type IColumnSpec (line 217) | interface IColumnSpec { function renderCell (line 380) | function renderCell( FILE: ui/v2.5/src/components/Performers/PerformerMergeDialog.tsx type MergeOptions (line 46) | type MergeOptions = { type IPerformerMergeDetailsProps (line 50) | interface IPerformerMergeDetailsProps { function idToStoredID (line 147) | function idToStoredID(o: { id: string; name: string }) { function loadImages (line 157) | async function loadImages() { function renderScrapeRows (line 457) | function renderScrapeRows() { function createValues (line 642) | function createValues(): MergeOptions { type IPerformerMergeModalProps (line 724) | interface IPerformerMergeModalProps { function loadPerformers (line 768) | async function loadPerformers() { function onMerge (line 781) | async function onMerge(options: MergeOptions) { function canMerge (line 802) | function canMerge() { function switchPerformers (line 806) | function switchPerformers() { FILE: ui/v2.5/src/components/Performers/PerformerPopover.tsx type IPeromerPopoverCardProps (line 10) | interface IPeromerPopoverCardProps { type IPeroformerPopoverProps (line 38) | interface IPeroformerPopoverProps { FILE: ui/v2.5/src/components/Performers/PerformerRecommendationRow.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Performers/PerformerSelect.tsx type SelectObject (line 39) | type SelectObject = { type Performer (line 45) | type Performer = Pick< type Option (line 55) | type Option = SelectOption; type FindPerformersResult (line 57) | type FindPerformersResult = Awaited< function sortPerformersByRelevance (line 61) | function sortPerformersByRelevance( function loadPerformers (line 95) | async function loadPerformers(input: string): Promise { function onSelect (line 355) | function onSelect(items: Performer[]) { function loadObjectsByID (line 360) | async function loadObjectsByID(idsToLoad: string[]): Promise { FILE: ui/v2.5/src/components/SceneDuplicateChecker/SceneDuplicateChecker.tsx constant CLASSNAME (line 49) | const CLASSNAME = "duplicate-checker"; function onDeleteDialogClosed (line 175) | function onDeleteDialogClosed(deleted: boolean) { function checkSameCodec (line 248) | function checkSameCodec(codecGroup: GQL.SlimSceneDataFragment[]) { function checkSameResolution (line 253) | function checkSameResolution(dataGroup: GQL.SlimSceneDataFragment[]) { function onEdit (line 341) | function onEdit() { function maybeRenderMissingPhashWarning (line 347) | function maybeRenderMissingPhashWarning() { function maybeRenderEdit (line 360) | function maybeRenderEdit() { function maybeRenderTagPopoverButton (line 371) | function maybeRenderTagPopoverButton(scene: GQL.SlimSceneDataFragment) { function maybeRenderPerformerPopoverButton (line 388) | function maybeRenderPerformerPopoverButton(scene: GQL.SlimSceneDataFragm... function maybeRenderGroupPopoverButton (line 394) | function maybeRenderGroupPopoverButton(scene: GQL.SlimSceneDataFragment) { function maybeRenderSceneMarkerPopoverButton (line 431) | function maybeRenderSceneMarkerPopoverButton( function maybeRenderOCounter (line 451) | function maybeRenderOCounter(scene: GQL.SlimSceneDataFragment) { function maybeRenderGallery (line 466) | function maybeRenderGallery(scene: GQL.SlimSceneDataFragment) { function maybeRenderFileCount (line 483) | function maybeRenderFileCount(scene: GQL.SlimSceneDataFragment) { function maybeRenderOrganized (line 503) | function maybeRenderOrganized(scene: GQL.SlimSceneDataFragment) { function maybeRenderPopoverButtonGroup (line 515) | function maybeRenderPopoverButtonGroup(scene: GQL.SlimSceneDataFragment) { function renderPagination (line 543) | function renderPagination() { function renderMergeDialog (line 610) | function renderMergeDialog() { function onMergeClicked (line 628) | function onMergeClicked( FILE: ui/v2.5/src/components/SceneFilenameParser/ParserField.ts class ParserField (line 1) | class ParserField { method constructor (line 5) | constructor(field: string, helperText?: string) { method getFieldPattern (line 10) | public getFieldPattern() { FILE: ui/v2.5/src/components/SceneFilenameParser/ParserInput.tsx type IParserInput (line 58) | interface IParserInput { type IParserRecipe (line 69) | interface IParserRecipe { type IParserInputProps (line 77) | interface IParserInputProps { function onFind (line 103) | function onFind() { function setParserRecipe (line 116) | function setParserRecipe(recipe: IParserRecipe) { function addParserField (line 127) | function addParserField(field: ParserField) { FILE: ui/v2.5/src/components/SceneFilenameParser/SceneFilenameParser.tsx function onPageSizeChanged (line 156) | function onPageSizeChanged(newSize: number) { function onPageChanged (line 163) | function onPageChanged(newPage: number) { function onFindClicked (line 171) | function onFindClicked(input: IParserInput) { function getScenesUpdateData (line 179) | function getScenesUpdateData() { function onApply (line 185) | async function onApply() { function onSelectAllTitleSet (line 234) | function onSelectAllTitleSet(selected: boolean) { function onSelectAllDateSet (line 245) | function onSelectAllDateSet(selected: boolean) { function onSelectAllRatingSet (line 256) | function onSelectAllRatingSet(selected: boolean) { function onSelectAllPerformerSet (line 267) | function onSelectAllPerformerSet(selected: boolean) { function onSelectAllTagSet (line 278) | function onSelectAllTagSet(selected: boolean) { function onSelectAllStudioSet (line 289) | function onSelectAllStudioSet(selected: boolean) { function onChange (line 300) | function onChange(scene: SceneParserResult, changedScene: SceneParserRes... function renderHeader (line 309) | function renderHeader( function renderTable (line 333) | function renderTable() { FILE: ui/v2.5/src/components/SceneFilenameParser/SceneParserRow.tsx class ParserResult (line 17) | class ParserResult { method setOriginalValue (line 22) | public setOriginalValue(value?: T) { method setValue (line 27) | public setValue(value?: T) { class SceneParserResult (line 35) | class SceneParserResult { method constructor (line 48) | constructor( method isChanged (line 72) | public isChanged() { method toSceneUpdateInput (line 83) | public toSceneUpdateInput() { type ISceneParserFieldProps (line 96) | interface ISceneParserFieldProps { function SceneParserStringField (line 104) | function SceneParserStringField(props: ISceneParserFieldProps) { function SceneParserRatingField (line 144) | function SceneParserRatingField( function SceneParserPerformerField (line 198) | function SceneParserPerformerField(props: ISceneParserFieldProps) { function SceneParserStudioField (line 285) | function SceneParserStudioField(props: ISceneParserFieldProps) { type ISceneParserRowProps (line 328) | interface ISceneParserRowProps { function changeParser (line 335) | function changeParser(result: ParserResult, isSet: boolean, value?... function onTitleChanged (line 342) | function onTitleChanged(set: boolean, value: string) { function onDateChanged (line 348) | function onDateChanged(set: boolean, value: string) { function onRatingChanged (line 354) | function onRatingChanged(set: boolean, value?: number) { function onPerformerIdsChanged (line 360) | function onPerformerIdsChanged(set: boolean, value: string[]) { function onTagIdsChanged (line 366) | function onTagIdsChanged(set: boolean, value: string[]) { function onStudioIdChanged (line 372) | function onStudioIdChanged(set: boolean, value: string) { FILE: ui/v2.5/src/components/SceneFilenameParser/ShowFields.tsx type IShowFieldsProps (line 12) | interface IShowFieldsProps { function handleClick (line 21) | function handleClick(label: string) { FILE: ui/v2.5/src/components/ScenePlayer/PlaylistButtons.ts type ControlOptions (line 4) | interface ControlOptions extends videojs.ComponentOptions { class SkipButtonPlugin (line 9) | class SkipButtonPlugin extends videojs.getPlugin("plugin") { method constructor (line 13) | constructor(player: VideoJsPlayer) { method setForwardHandler (line 20) | public setForwardHandler(handler?: () => void) { method setBackwardHandler (line 26) | public setBackwardHandler(handler?: () => void) { method handleForward (line 32) | handleForward() { method handleBackward (line 36) | handleBackward() { method ready (line 40) | ready() { class SkipButton (line 63) | class SkipButton extends videojs.getComponent("button") { method constructor (line 67) | constructor(player: VideoJsPlayer, options: ControlOptions) { method buildCSSClass (line 83) | buildCSSClass() { method handleClick (line 90) | handleClick() { type VideoJsPlayer (line 100) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 103) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/ScenePlayer.tsx function handleHotkeys (line 59) | function handleHotkeys(player: VideoJsPlayer, event: videojs.KeyboardEve... type MarkerFragment (line 203) | type MarkerFragment = Pick & { function getMarkerTitle (line 208) | function getMarkerTitle(marker: MarkerFragment) { type IScenePlayerProps (line 221) | interface IScenePlayerProps { function canplay (line 498) | function canplay(this: VideoJsPlayer) { function playing (line 507) | function playing(this: VideoJsPlayer) { function loadstart (line 515) | function loadstart(this: VideoJsPlayer) { function fullscreenchange (line 519) | function fullscreenchange(this: VideoJsPlayer) { function playing (line 544) | function playing(this: VideoJsPlayer) { function pause (line 556) | function pause(this: VideoJsPlayer) { function timeupdate (line 560) | function timeupdate(this: VideoJsPlayer) { function isDirect (line 613) | function isDirect(src: URL) { function getDefaultLanguageCode (line 644) | function getDefaultLanguageCode() { function saveActivity (line 820) | async function saveActivity(resumeTime: number, playDuration: number) { function incrementPlayCount (line 832) | async function incrementPlayCount() { function updateAutoStart (line 862) | async function updateAutoStart(enabled: boolean) { function onScrubberScroll (line 937) | function onScrubberScroll() { function onScrubberSeek (line 945) | function onScrubberSeek(seconds: number) { function onKeyDown (line 958) | function onKeyDown(this: HTMLDivElement, event: KeyboardEvent) { FILE: ui/v2.5/src/components/ScenePlayer/ScenePlayerScrubber.tsx type IScenePlayerScrubberProps (line 18) | interface IScenePlayerScrubberProps { type ISceneSpriteItem (line 26) | interface ISceneSpriteItem { function setLinearTransition (line 156) | function setLinearTransition() { function setEaseOutTransition (line 161) | function setEaseOutTransition() { function clearTransition (line 166) | function clearTransition() { function goBack (line 286) | function goBack() { function goForward (line 293) | function goForward() { function renderTags (line 300) | function renderTags() { function renderSprites (line 321) | function renderSprites() { FILE: ui/v2.5/src/components/ScenePlayer/autostart-button.ts type IAutostartButtonOptions (line 4) | interface IAutostartButtonOptions { type AutostartButtonOptions (line 8) | interface AutostartButtonOptions extends videojs.ComponentOptions { class AutostartButton (line 12) | class AutostartButton extends videojs.getComponent("Button") { method constructor (line 15) | constructor(player: VideoJsPlayer, options: AutostartButtonOptions) { method buildCSSClass (line 21) | buildCSSClass() { method updateIcon (line 25) | private updateIcon() { method handleClick (line 38) | handleClick(event: Event) { method setEnabled (line 47) | public setEnabled(enabled: boolean) { class AutostartButtonPlugin (line 53) | class AutostartButtonPlugin extends videojs.getPlugin("plugin") { method constructor (line 60) | constructor(player: VideoJsPlayer, options?: IAutostartButtonOptions) { method ready (line 74) | private ready() { method isEnabled (line 92) | public isEnabled(): boolean { method getEnabled (line 96) | public getEnabled(): boolean { method setEnabled (line 100) | public setEnabled(enabled: boolean) { method syncWithConfig (line 105) | public syncWithConfig(configEnabled: boolean) { type VideoJsPlayer (line 118) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 121) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/big-buttons.ts class BigPlayPauseButton (line 6) | class BigPlayPauseButton extends BigPlayButton { method handleClick (line 7) | handleClick(event: videojs.EventTarget.Event) { method buildCSSClass (line 15) | buildCSSClass() { class BigButtonGroup (line 20) | class BigButtonGroup extends videojs.getComponent("Component") { method constructor (line 21) | constructor(player: VideoJsPlayer) { method createEl (line 37) | createEl() { class BigButtonsPlugin (line 44) | class BigButtonsPlugin extends videojs.getPlugin("plugin") { method constructor (line 45) | constructor(player: VideoJsPlayer) { type VideoJsPlayer (line 61) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 64) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/live.ts type ISource (line 4) | interface ISource extends videojs.Tech.SourceObject { type ICue (line 9) | interface ICue extends TextTrackCue { function offsetMiddleware (line 17) | function offsetMiddleware(player: VideoJsPlayer) { FILE: ui/v2.5/src/components/ScenePlayer/markers.ts type IMarker (line 4) | interface IMarker { type IMarkersOptions (line 11) | interface IMarkersOptions { class MarkersPlugin (line 15) | class MarkersPlugin extends videojs.getPlugin("plugin") { method constructor (line 29) | constructor(player: VideoJsPlayer) { method showMarkerTooltip (line 50) | private showMarkerTooltip(title: string, layer: number = 0) { method hideMarkerTooltip (line 59) | private hideMarkerTooltip() { method addDotMarker (line 64) | addDotMarker(marker: IMarker) { method addDotMarkers (line 114) | addDotMarkers(markers: IMarker[]) { method renderRangeMarkers (line 118) | private renderRangeMarkers(markers: IMarker[], layer: number) { method renderRangeMarker (line 129) | private renderRangeMarker( method addRangeMarkers (line 199) | addRangeMarkers(markers: IMarker[]) { method findMWIS (line 218) | private findMWIS(markers: IMarker[]): IMarker[] { method removeMarker (line 264) | removeMarker(marker: IMarker) { method removeMarkers (line 279) | removeMarkers(markers: IMarker[]) { method clearMarkers (line 283) | clearMarkers() { method findColors (line 297) | findColors(tagNames: string[]) { method computeBaseHue (line 316) | private computeBaseHue(tag: string): number { method calculateDeltaMin (line 325) | private calculateDeltaMin(N: number): number { method adjustHues (line 342) | private adjustHues(baseHues: { [tag: string]: number }): { method hueToColor (line 397) | private hueToColor(hue: number): string { method hsvToRgb (line 411) | private hsvToRgb(h: number, s: number, v: number): [number, number, nu... method toHex (line 461) | private toHex(value: number): string { type VideoJsPlayer (line 470) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 473) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/media-session.ts class MediaSessionPlugin (line 3) | class MediaSessionPlugin extends videojs.getPlugin("plugin") { method constructor (line 4) | constructor(player: VideoJsPlayer) { method setMetadata (line 23) | public setMetadata(title: string, artist: string, poster: string): void { method updatePlaybackState (line 38) | private updatePlaybackState(): void { method setActionHandlers (line 45) | private setActionHandlers(): void { type VideoJsPlayer (line 66) | interface VideoJsPlayer { FILE: ui/v2.5/src/components/ScenePlayer/persist-volume.ts type IPersistVolumeOptions (line 7) | interface IPersistVolumeOptions { class PersistVolumePlugin (line 11) | class PersistVolumePlugin extends videojs.getPlugin("plugin") { method constructor (line 14) | constructor(player: VideoJsPlayer, options?: IPersistVolumeOptions) { method ready (line 31) | private ready() { type VideoJsPlayer (line 51) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 54) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/source-selector.ts type ISource (line 3) | interface ISource extends videojs.Tech.SourceObject { class SourceMenuItem (line 8) | class SourceMenuItem extends videojs.getComponent("MenuItem") { method constructor (line 12) | constructor(parent: SourceMenuButton, source: ISource) { method selected (line 25) | selected(selected: boolean): void { method handleClick (line 30) | handleClick() { class SourceMenuButton (line 37) | class SourceMenuButton extends videojs.getComponent("MenuButton") { method constructor (line 41) | constructor(player: VideoJsPlayer) { method setSources (line 49) | public setSources(sources: ISource[]) { method createEl (line 69) | createEl() { method createItems (line 76) | createItems() { method setSelectedSource (line 86) | setSelectedSource(source: ISource) { method markSourceErrored (line 95) | markSourceErrored(source: ISource) { class SourceSelectorPlugin (line 103) | class SourceSelectorPlugin extends videojs.getPlugin("plugin") { method constructor (line 113) | constructor(player: VideoJsPlayer) { method setSources (line 212) | setSources(sources: ISource[]) { method textTracks (line 229) | get textTracks(): HTMLTrackElement[] { method addTextTrack (line 233) | addTextTrack(options: videojs.TextTrackOptions, manualCleanup: boolean) { method removeTextTrack (line 243) | removeTextTrack(track: HTMLTrackElement) { type VideoJsPlayer (line 262) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 265) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/track-activity.ts class TrackActivityPlugin (line 6) | class TrackActivityPlugin extends videojs.getPlugin("plugin") { method constructor (line 25) | constructor(player: VideoJsPlayer) { method start (line 53) | private start() { method stop (line 63) | private stop() { method reset (line 71) | reset() { method setEnabled (line 78) | setEnabled(enabled: boolean) { method intervalHandler (line 87) | private intervalHandler() { method sendActivity (line 100) | private sendActivity() { type VideoJsPlayer (line 133) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 136) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/util.ts constant VIDEO_PLAYER_ID (line 3) | const VIDEO_PLAYER_ID = "VideoJsPlayer"; type AbLoopOptions (line 9) | type AbLoopOptions = { type AbLoopPluginApi (line 15) | type AbLoopPluginApi = { FILE: ui/v2.5/src/components/ScenePlayer/vrmode.ts type VRMenuOptions (line 8) | interface VRMenuOptions { type VRType (line 16) | enum VRType { function isVrDevice (line 30) | function isVrDevice() { class VRMenuItem (line 34) | class VRMenuItem extends videojs.getComponent("MenuItem") { method constructor (line 38) | constructor(parent: VRMenuButton, type: VRType) { method selected (line 51) | selected(selected: boolean): void { method handleClick (line 56) | handleClick() { class VRMenuButton (line 63) | class VRMenuButton extends videojs.getComponent("MenuButton") { method constructor (line 67) | constructor(player: VideoJsPlayer) { method onSelected (line 72) | private onSelected(item: VRMenuItem) { method setTypes (line 82) | public setTypes() { method createEl (line 95) | createEl() { method createItems (line 102) | createItems() { class VRMenuPlugin (line 113) | class VRMenuPlugin extends videojs.getPlugin("plugin") { method constructor (line 118) | constructor(player: VideoJsPlayer, options: VRMenuOptions) { method loadVR (line 139) | private loadVR(type: VRType) { method addButton (line 145) | private addButton() { method removeButton (line 152) | private removeButton() { method setShowButton (line 157) | public setShowButton(showButton: boolean) { type VideoJsPlayer (line 178) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 181) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/vtt-thumbnails.ts type IVTTThumbnailsOptions (line 4) | interface IVTTThumbnailsOptions { type IVTTData (line 16) | interface IVTTData { type IVTTStyle (line 22) | interface IVTTStyle { class VTTThumbnailsPlugin (line 28) | class VTTThumbnailsPlugin extends videojs.getPlugin("plugin") { method constructor (line 40) | constructor(player: VideoJsPlayer, options: IVTTThumbnailsOptions) { method src (line 51) | src(source: string | null): void { method detach (line 57) | detach(): void { method resetPlugin (line 61) | private resetPlugin() { method initializeThumbnails (line 93) | private initializeThumbnails() { method getBaseUrl (line 110) | private getBaseUrl() { method getVttFile (line 125) | private getVttFile(url: string): Promise { method setupThumbnailElement (line 140) | private setupThumbnailElement() { method getStyleForTime (line 179) | private getStyleForTime(time: number) { method showThumbnailHolder (line 193) | private showThumbnailHolder() { method hideThumbnailHolder (line 200) | private hideThumbnailHolder() { method updateThumbnailStyle (line 207) | private updateThumbnailStyle(percent: number, width: number) { method processVtt (line 244) | private processVtt(data: string) { method getFullyQualifiedUrl (line 261) | private getFullyQualifiedUrl(path: string, base: string) { method getPropsFromDef (line 283) | private getPropsFromDef(def: string) { method getVttStyle (line 296) | private getVttStyle(vttImageDef: string) { method trim (line 334) | private trim(str: string, charlist: string) { type VideoJsPlayer (line 390) | interface VideoJsPlayer { type VideoJsPlayerPluginOptions (line 393) | interface VideoJsPlayerPluginOptions { FILE: ui/v2.5/src/components/ScenePlayer/wake-sentinel.ts class WakeSentinelPlugin (line 3) | class WakeSentinelPlugin extends videojs.getPlugin("plugin") { method constructor (line 6) | constructor(player: VideoJsPlayer) { method releaseWakeLock (line 30) | private async releaseWakeLock(): Promise { method acquireWakeLock (line 34) | private async acquireWakeLock(log = false): Promise { type VideoJsPlayer (line 60) | interface VideoJsPlayer { FILE: ui/v2.5/src/components/Scenes/DeleteSceneMarkersDialog.tsx type IDeleteSceneMarkersDialogProps (line 9) | interface IDeleteSceneMarkersDialogProps { function getSceneMarkersDeleteInput (line 42) | function getSceneMarkersDeleteInput(): GQL.SceneMarkersDestroyMutationVa... function onDelete (line 48) | async function onDelete() { FILE: ui/v2.5/src/components/Scenes/DeleteScenesDialog.tsx type IDeleteSceneDialogProps (line 12) | interface IDeleteSceneDialogProps { function getScenesDeleteInput (line 52) | function getScenesDeleteInput(): GQL.ScenesDestroyInput { function onDelete (line 60) | async function onDelete() { function funscriptPath (line 73) | function funscriptPath(sp: string) { function maybeRenderDeleteFileAlert (line 82) | function maybeRenderDeleteFileAlert() { FILE: ui/v2.5/src/components/Scenes/EditSceneMarkersDialog.tsx type IListOperationProps (line 17) | interface IListOperationProps { function setUpdateField (line 84) | function setUpdateField(input: Partial) { function getSceneMarkerInput (line 88) | function getSceneMarkerInput(): GQL.BulkSceneMarkerUpdateInput { function onSave (line 97) | async function onSave() { function render (line 120) | function render() { FILE: ui/v2.5/src/components/Scenes/EditScenesDialog.tsx type IListOperationProps (line 25) | interface IListOperationProps { function setUpdateField (line 101) | function setUpdateField(input: Partial) { function getSceneInput (line 105) | function getSceneInput(): GQL.BulkSceneUpdateInput { function onSave (line 123) | async function onSave() { function render (line 140) | function render() { FILE: ui/v2.5/src/components/Scenes/PreviewScrubber.tsx type IScenePreviewProps (line 13) | interface IScenePreviewProps { function scaleToFit (line 19) | function scaleToFit(dimensions: { w: number; h: number }, bounds: DOMRec... function onScrubberClick (line 104) | function onScrubberClick(index: number) { FILE: ui/v2.5/src/components/Scenes/SceneCard.tsx type IScenePreviewProps (line 35) | interface IScenePreviewProps { type ISceneCardProps (line 103) | interface ISceneCardProps { function maybeRenderTagPopoverButton (line 153) | function maybeRenderTagPopoverButton() { function maybeRenderPerformerPopoverButton (line 174) | function maybeRenderPerformerPopoverButton() { function maybeRenderGroupPopoverButton (line 185) | function maybeRenderGroupPopoverButton() { function maybeRenderSceneMarkerPopoverButton (line 206) | function maybeRenderSceneMarkerPopoverButton() { function maybeRenderOCounter (line 228) | function maybeRenderOCounter() { function maybeRenderGallery (line 234) | function maybeRenderGallery() { function maybeRenderOrganized (line 255) | function maybeRenderOrganized() { function maybeRenderDupeCopies (line 272) | function maybeRenderDupeCopies() { function maybeRenderPopoverButtonGroup (line 291) | function maybeRenderPopoverButtonGroup() { type ISceneSpecsOverlay (line 358) | interface ISceneSpecsOverlay { function maybeRenderInteractiveSpeedOverlay (line 403) | function maybeRenderInteractiveSpeedOverlay() { function onScrubberClick (line 411) | function onScrubberClick(timestamp: number) { function isPortrait (line 424) | function isPortrait() { function zoomIndex (line 460) | function zoomIndex() { function filelessClass (line 468) | function filelessClass() { FILE: ui/v2.5/src/components/Scenes/SceneCardGrid.tsx type ISceneCardGrid (line 11) | interface ISceneCardGrid { FILE: ui/v2.5/src/components/Scenes/SceneDetails/ExternalPlayerButton.tsx type IExternalPlayerButtonProps (line 9) | interface IExternalPlayerButtonProps { FILE: ui/v2.5/src/components/Scenes/SceneDetails/OCounterButton.tsx type IOCounterButtonProps (line 10) | interface IOCounterButtonProps { function increment (line 29) | async function increment() { function decrement (line 35) | async function decrement() { function reset (line 41) | async function reset() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/OrganizedButton.tsx type IOrganizedButtonProps (line 8) | interface IOrganizedButtonProps { FILE: ui/v2.5/src/components/Scenes/SceneDetails/PrimaryTags.tsx type IPrimaryTags (line 9) | interface IPrimaryTags { FILE: ui/v2.5/src/components/Scenes/SceneDetails/QueueViewer.tsx type IPlaylistViewer (line 17) | interface IPlaylistViewer { function isCurrentScene (line 57) | function isCurrentScene(scene: QueuedScene) { function handleSceneClick (line 61) | function handleSceneClick( function lessClicked (line 69) | function lessClicked() { function moreClicked (line 74) | function moreClicked() { function renderPlaylistEntry (line 79) | function renderPlaylistEntry(scene: QueuedScene) { FILE: ui/v2.5/src/components/Scenes/SceneDetails/Scene.tsx type IProps (line 139) | interface IProps { type ISceneParams (line 158) | interface ISceneParams { function incrementPlayCount (line 201) | function incrementPlayCount() { function setRating (line 225) | function setRating(v: number | null) { function onSave (line 281) | async function onSave(input: GQL.SceneCreateInput) { function onClickMarker (line 316) | function onClickMarker(marker: GQL.SceneMarkerDataFragment) { function onLoopMarker (line 345) | function onLoopMarker(marker: GQL.SceneMarkerDataFragment) { function onRescan (line 364) | async function onRescan() { function onGenerateScreenshot (line 383) | async function onGenerateScreenshot(at?: number) { function onDeleteDialogClosed (line 393) | function onDeleteDialogClosed(deleted: boolean) { function maybeRenderMergeDialog (line 400) | function maybeRenderMergeDialog() { function maybeRenderDeleteDialog (line 418) | function maybeRenderDeleteDialog() { function maybeRenderSceneGenerateDialog (line 426) | function maybeRenderSceneGenerateDialog() { function getCollapseButtonIcon (line 651) | function getCollapseButtonIcon() { function getSetTimestamp (line 824) | function getSetTimestamp(fn: (value: number) => void) { function setTimestamp (line 828) | function setTimestamp(value: number) { function getQueueFilterScenes (line 843) | async function getQueueFilterScenes(filter: ListFilterModel) { function getQueueScenes (line 851) | async function getQueueScenes(sceneIDs: number[]) { function onQueueLessScenes (line 867) | async function onQueueLessScenes() { function onQueueMoreScenes (line 890) | async function onQueueMoreScenes() { function loadScene (line 908) | function loadScene(sceneID: string, autoPlay?: boolean, newPage?: number) { function queueNext (line 917) | async function queueNext(autoPlay: boolean) { function queuePrevious (line 935) | async function queuePrevious(autoPlay: boolean) { function queueRandom (line 956) | async function queueRandom(autoPlay: boolean) { function onComplete (line 978) | function onComplete() { function onDelete (line 985) | function onDelete() { function getScenePage (line 997) | function getScenePage(sceneID: string) { function onQueueSceneClicked (line 1009) | function onQueueSceneClicked(sceneID: string) { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneCreate.tsx function fetchCoverImage (line 39) | async function fetchCoverImage() { function onSave (line 60) | async function onSave(input: GQL.SceneCreateInput, andNew?: boolean) { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneDetailPanel.tsx type ISceneDetailProps (line 11) | interface ISceneDetailProps { function renderDetails (line 18) | function renderDetails() { function renderTags (line 30) | function renderTags() { function renderPerformers (line 48) | function renderPerformers() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneEditPanel.tsx type IProps (line 62) | interface IProps { type InputValues (line 173) | type InputValues = yup.InferType; function submit (line 177) | function submit(values: InputValues) { function onSetGalleries (line 221) | function onSetGalleries(items: Gallery[]) { function onSetPerformers (line 229) | function onSetPerformers(items: Performer[]) { function onSetStudio (line 237) | function onSetStudio(item: Studio | null) { function onSetGroups (line 276) | function onSetGroups(items: Group[]) { function onSave (line 296) | async function onSave(input: InputValues, andNew?: boolean) { function onSaveAndNewClick (line 307) | async function onSaveAndNewClick() { function onImageLoad (line 317) | function onImageLoad(imageData: string) { function onCoverImageChange (line 321) | function onCoverImageChange(event: React.FormEvent) { function onResetCover (line 325) | function onResetCover() { function onScrapeClicked (line 329) | async function onScrapeClicked(s: GQL.ScraperSourceInput) { function scrapeFromQuery (line 347) | async function scrapeFromQuery( function onScrapeQueryClicked (line 377) | function onScrapeQueryClicked(s: GQL.ScraperSourceInput) { function onReloadScrapers (line 383) | async function onReloadScrapers() { function onScrapeDialogClosed (line 394) | function onScrapeDialogClosed(sceneData?: GQL.ScrapedSceneDataFragment) { function maybeRenderScrapeDialog (line 401) | function maybeRenderScrapeDialog() { function onSceneSelected (line 429) | function onSceneSelected(s: GQL.ScrapedSceneDataFragment) { function urlScrapable (line 458) | function urlScrapable(scrapedUrl: string): boolean { function updateSceneFromScrapedScene (line 464) | function updateSceneFromScrapedScene( function onScrapeSceneURL (line 572) | async function onScrapeSceneURL(url: string) { function onStashIDSelected (line 590) | function onStashIDSelected(item?: GQL.StashIdInput) { function renderGalleriesField (line 663) | function renderGalleriesField() { function renderStudioField (line 676) | function renderStudioField() { function renderPerformersField (line 688) | function renderPerformersField() { function onSetGroupEntries (line 710) | function onSetGroupEntries(input: IGroupEntry[]) { function renderGroupsField (line 721) | function renderGroupsField() { function renderTagsField (line 730) | function renderTagsField() { function renderDetailsField (line 735) | function renderDetailsField() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneFileInfoPanel.tsx type IFileInfoPanelProps (line 24) | interface IFileInfoPanelProps { function onSplit (line 46) | function onSplit() { type ISceneFileInfoPanelProps (line 166) | interface ISceneFileInfoPanelProps { function renderStashIDs (line 180) | function renderStashIDs() { function renderFunscript (line 205) | function renderFunscript() { function renderInteractiveSpeed (line 218) | function renderInteractiveSpeed() { function onSetPrimaryFile (line 239) | async function onSetPrimaryFile(fileID: string) { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneGalleriesPanel.tsx type ISceneGalleriesPanelProps (line 5) | interface ISceneGalleriesPanelProps { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneGroupPanel.tsx type ISceneGroupPanelProps (line 5) | interface ISceneGroupPanelProps { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneGroupTable.tsx type GroupSceneIndexMap (line 9) | type GroupSceneIndexMap = Map; type IGroupEntry (line 11) | interface IGroupEntry { type IProps (line 16) | interface IProps { function onGroupSet (line 42) | function onGroupSet(index: number, groups: Group[]) { function onNewGroupSet (line 65) | function onNewGroupSet(groups: Group[]) { function renderTableData (line 83) | function renderTableData() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneHistoryPanel.tsx function renderDate (line 46) | function renderDate(date: string) { type ISceneHistoryProps (line 168) | interface ISceneHistoryProps { function setDialogPartial (line 186) | function setDialogPartial(partial: Partial) { function dateStringToISOString (line 199) | function dateStringToISOString(time: string) { function handleAddPlayDate (line 205) | function handleAddPlayDate(time?: string) { function handleDeletePlayDate (line 214) | function handleDeletePlayDate(time: string) { function handleClearPlayDates (line 223) | function handleClearPlayDates() { function handleAddODate (line 232) | function handleAddODate(time?: string) { function handleDeleteODate (line 241) | function handleDeleteODate(time: string) { function handleClearODates (line 250) | function handleClearODates() { function handleResetResume (line 259) | async function handleResetResume() { function handleResetDuration (line 282) | async function handleResetDuration() { function maybeRenderDialogs (line 305) | function maybeRenderDialogs() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneMarkerForm.tsx type ISceneMarkerForm (line 24) | interface ISceneMarkerForm { type InputValues (line 101) | type InputValues = yup.InferType; function onSetPrimaryTag (line 110) | function onSetPrimaryTag(item: Tag) { function onSetTags (line 115) | function onSetTags(items: Tag[]) { function onSave (line 141) | async function onSave(input: InputValues) { function onDelete (line 170) | async function onDelete() { function renderTitleField (line 204) | function renderTitleField() { function renderPrimaryTagField (line 216) | function renderPrimaryTagField() { function renderTimeField (line 236) | function renderTimeField() { function renderEndTimeField (line 254) | function renderEndTimeField() { function renderTagsField (line 279) | function renderTagsField() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneMarkersPanel.tsx type ISceneMarkersPanelProps (line 10) | interface ISceneMarkersPanelProps { function onOpenEditor (line 43) | function onOpenEditor(marker?: GQL.SceneMarkerDataFragment) { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneQueryModal.tsx type ISceneSearchResultDetailsProps (line 14) | interface ISceneSearchResultDetailsProps { function renderPerformers (line 21) | function renderPerformers() { function renderTags (line 41) | function renderTags() { function renderImage (line 57) | function renderImage() { type ISceneSearchResult (line 95) | interface ISceneSearchResult { type IProps (line 109) | interface IProps { function renderResults (line 158) | function renderResults() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneScrapeDialog.tsx type ISceneScrapeDialogProps (line 34) | interface ISceneScrapeDialogProps { function makeNewScrapedItem (line 198) | function makeNewScrapedItem(): GQL.ScrapedSceneDataFragment { function renderScrapeRows (line 217) | function renderScrapeRows() { FILE: ui/v2.5/src/components/Scenes/SceneDetails/SceneVideoFilterPanel.tsx type ISceneVideoFilterPanelProps (line 8) | interface ISceneVideoFilterPanelProps { type SliderRange (line 17) | type SliderRange = { function getMatrixValue (line 24) | function getMatrixValue(value: number, range: SliderRange) { type ISliderProps (line 28) | interface ISliderProps { function getVideoElement (line 153) | function getVideoElement(playerVideoContainer: any) { function updateVideoStyle (line 165) | function updateVideoStyle() { function updateVideoFilters (line 251) | function updateVideoFilters() { function onRotateAndScale (line 368) | function onRotateAndScale(direction: number) { function renderRotateAndScale (line 422) | function renderRotateAndScale() { function onResetFilters (line 449) | function onResetFilters() { function onResetTransforms (line 462) | function onResetTransforms() { function renderResetButton (line 468) | function renderResetButton() { function renderFilterContainer (line 495) | function renderFilterContainer() { FILE: ui/v2.5/src/components/Scenes/SceneList.tsx function renderMetadataByline (line 63) | function renderMetadataByline(result: GQL.FindScenesQueryResult) { function usePlayScene (line 92) | function usePlayScene() { function usePlaySelected (line 111) | function usePlaySelected(selectedIds: Set) { function usePlayFirst (line 125) | function usePlayFirst() { function usePlayRandom (line 139) | function usePlayRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 168) | function useAddKeybinds(filter: ListFilterModel, count: number) { type IFilteredScenes (line 355) | interface IFilteredScenes { function onCreateNew (line 490) | function onCreateNew() { function onPlay (line 499) | function onPlay() { function onExport (line 515) | function onExport(all: boolean) { function onMerge (line 529) | function onMerge() { FILE: ui/v2.5/src/components/Scenes/SceneListTable.tsx type ISceneListTableProps (line 16) | interface ISceneListTableProps { constant TABLE_NAME (line 23) | const TABLE_NAME = "scenes"; function setRating (line 32) | function setRating(v: number | null, sceneId: string) { type IColumnSpec (line 247) | interface IColumnSpec { function renderCell (line 396) | function renderCell( FILE: ui/v2.5/src/components/Scenes/SceneMarkerCard.tsx type ISceneMarkerCardProps (line 20) | interface ISceneMarkerCardProps { function maybeRenderPerformerPopoverButton (line 35) | function maybeRenderPerformerPopoverButton() { function renderTagPopoverButton (line 46) | function renderTagPopoverButton() { function renderPopoverButtonGroup (line 75) | function renderPopoverButtonGroup() { function isPortrait (line 131) | function isPortrait() { function maybeRenderSceneSpecsOverlay (line 137) | function maybeRenderSceneSpecsOverlay() { function zoomIndex (line 168) | function zoomIndex() { FILE: ui/v2.5/src/components/Scenes/SceneMarkerCardGrid.tsx type ISceneMarkerCardGrid (line 10) | interface ISceneMarkerCardGrid { FILE: ui/v2.5/src/components/Scenes/SceneMarkerList.tsx function usePlayRandom (line 89) | function usePlayRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 118) | function useAddKeybinds(filter: ListFilterModel, count: number) { type ISceneMarkerList (line 193) | interface ISceneMarkerList { FILE: ui/v2.5/src/components/Scenes/SceneMarkerRecommendationRow.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Scenes/SceneMarkerWallPanel.tsx function wallItemTitle (line 19) | function wallItemTitle(sceneMarker: GQL.SceneMarkerDataFragment) { type IMarkerPhoto (line 32) | interface IMarkerPhoto { type IExtraProps (line 38) | interface IExtraProps { type style (line 64) | type style = Record; type IMarkerWallProps (line 157) | interface IMarkerWallProps { function getFirstValidSrc (line 168) | function getFirstValidSrc(srcSet: string[], invalidSrcSet: string[]) { type IFile (line 179) | interface IFile { function getDimensions (line 184) | function getDimensions(file?: IFile) { function columns (line 252) | function columns(containerWidth: number) { type IMarkerWallPanelProps (line 317) | interface IMarkerWallPanelProps { FILE: ui/v2.5/src/components/Scenes/SceneMergeDialog.tsx type MergeOptions (line 46) | type MergeOptions = { type ISceneMergeDetailsProps (line 52) | interface ISceneMergeDetailsProps { function idToStoredID (line 94) | function idToStoredID(o: { id: string; name: string }) { function groupToStoredID (line 101) | function groupToStoredID(o: { group: { id: string; name: string } }) { function sortIdList (line 114) | function sortIdList(idList?: string[] | null) { function loadImages (line 175) | async function loadImages() { function renderScrapeRows (line 385) | function renderScrapeRows() { function createValues (line 615) | function createValues(): MergeOptions { type ISceneMergeModalProps (line 693) | interface ISceneMergeModalProps { function loadScenes (line 733) | async function loadScenes() { function onMerge (line 744) | async function onMerge(options: MergeOptions) { function canMerge (line 767) | function canMerge() { function switchScenes (line 771) | function switchScenes() { FILE: ui/v2.5/src/components/Scenes/SceneRecommendationRow.tsx type IProps (line 9) | interface IProps { FILE: ui/v2.5/src/components/Scenes/SceneSelect.tsx type Scene (line 40) | type Scene = Pick & { type Option (line 46) | type Option = SelectOption; type ExtraSceneProps (line 48) | type ExtraSceneProps = { type FindScenesResult (line 54) | type FindScenesResult = Awaited< function sortScenesByRelevance (line 58) | function sortScenesByRelevance(input: string, scenes: FindScenesResult) { function filterExcluded (line 79) | function filterExcluded(scene: Scene) { function loadScenes (line 85) | async function loadScenes(input: string): Promise { function onSelect (line 254) | function onSelect(items: Scene[]) { function loadObjectsByID (line 259) | async function loadObjectsByID(idsToLoad: string[]): Promise { FILE: ui/v2.5/src/components/Scenes/SceneWallPanel.tsx type IScenePhoto (line 26) | interface IScenePhoto { type IExtraProps (line 32) | interface IExtraProps { type style (line 61) | type style = Record; function getDimensions (line 181) | function getDimensions(s: GQL.SlimSceneDataFragment) { type ISceneWallProps (line 192) | interface ISceneWallProps { function columns (line 267) | function columns(containerWidth: number) { type ISceneWallPanelProps (line 332) | interface ISceneWallPanelProps { FILE: ui/v2.5/src/components/Settings/GeneratePreviewOptions.tsx type VideoPreviewSettingsInput (line 7) | type VideoPreviewSettingsInput = Pick< type IVideoPreviewInput (line 15) | interface IVideoPreviewInput { function set (line 26) | function set(v: Partial) { FILE: ui/v2.5/src/components/Settings/Inputs.tsx type ISetting (line 11) | interface ISetting { function renderHeading (line 46) | function renderHeading() { function renderSubHeading (line 53) | function renderSubHeading() { type ISettingGroup (line 89) | interface ISettingGroup { function renderCollapseButton (line 102) | function renderCollapseButton() { function onDivClick (line 116) | function onDivClick(e: React.MouseEvent) { type IBooleanSetting (line 149) | interface IBooleanSetting extends ISetting { type ISelectSetting (line 173) | interface ISelectSetting extends ISetting { type IDialogSetting (line 202) | interface IDialogSetting extends ISetting { type ISettingModal (line 271) | interface ISettingModal { type IModalSetting (line 352) | interface IModalSetting extends ISetting { function onClose (line 391) | function onClose(v: T | undefined) { type IStringSetting (line 450) | interface IStringSetting extends ISetting { type INumberSetting (line 476) | interface INumberSetting extends ISetting { type IStringListSetting (line 502) | interface IStringListSetting extends ISetting { type IConstantSetting (line 534) | interface IConstantSetting extends ISetting { FILE: ui/v2.5/src/components/Settings/PluginPackageManager.tsx function onUpdatePackages (line 34) | async function onUpdatePackages(packages: GQL.PackageSpecInput[]) { function onUninstallPackages (line 40) | async function onUninstallPackages(packages: GQL.PackageSpecInput[]) { function onPackageChanges (line 46) | function onPackageChanges() { function onCheckForUpdates (line 52) | function onCheckForUpdates() { function onInstallPackages (line 109) | async function onInstallPackages(packages: GQL.PackageSpecInput[]) { function onPackageChanges (line 115) | function onPackageChanges() { function loadSource (line 121) | async function loadSource(source: string): Promise { function addSource (line 129) | function addSource(source: GQL.PackageSource) { function editSource (line 135) | function editSource(existing: GQL.PackageSource, changed: GQL.PackageSou... function deleteSource (line 143) | function deleteSource(source: GQL.PackageSource) { function renderDescription (line 151) | function renderDescription(pkg: RemotePackage) { FILE: ui/v2.5/src/components/Settings/ScraperPackageManager.tsx function onUpdatePackages (line 34) | async function onUpdatePackages(packages: GQL.PackageSpecInput[]) { function onUninstallPackages (line 40) | async function onUninstallPackages(packages: GQL.PackageSpecInput[]) { function onPackageChanges (line 46) | function onPackageChanges() { function onCheckForUpdates (line 52) | function onCheckForUpdates() { function onInstallPackages (line 109) | async function onInstallPackages(packages: GQL.PackageSpecInput[]) { function onPackageChanges (line 115) | function onPackageChanges() { function loadSource (line 121) | async function loadSource(source: string): Promise { function addSource (line 129) | function addSource(source: GQL.PackageSource) { function editSource (line 135) | function editSource(existing: GQL.PackageSource, changed: GQL.PackageSou... function deleteSource (line 143) | function deleteSource(source: GQL.PackageSource) { function renderDescription (line 151) | function renderDescription(pkg: RemotePackage) { FILE: ui/v2.5/src/components/Settings/SettingSection.tsx type ISettingGroup (line 6) | interface ISettingGroup { FILE: ui/v2.5/src/components/Settings/Settings.tsx type TabKey (line 38) | type TabKey = (typeof validTabs)[number]; function isTabKey (line 42) | function isTabKey(tab: string | null): tab is TabKey { FILE: ui/v2.5/src/components/Settings/SettingsAboutPanel.tsx function renderLatestVersion (line 24) | function renderLatestVersion() { FILE: ui/v2.5/src/components/Settings/SettingsInterfacePanel/CheckboxGroup.tsx type IItem (line 5) | interface IItem { type ICheckboxGroupProps (line 10) | interface ICheckboxGroupProps { function generateId (line 20) | function generateId(itemId: string) { FILE: ui/v2.5/src/components/Settings/SettingsInterfacePanel/SettingsInterfacePanel.tsx function saveLightboxSettings (line 100) | function saveLightboxSettings(v: Partial) { function saveImageWallMargin (line 118) | function saveImageWallMargin(m: number) { function saveImageWallDirection (line 127) | function saveImageWallDirection(d: ImageWallDirection) { function saveRatingSystemType (line 136) | function saveRatingSystemType(t: RatingSystemType) { function saveRatingSystemStarPrecision (line 145) | function saveRatingSystemStarPrecision(p: RatingStarPrecision) { function validateLocaleString (line 154) | function validateLocaleString(v: string) { function validateJavascriptString (line 170) | function validateJavascriptString(v: string) { FILE: ui/v2.5/src/components/Settings/SettingsLibraryPanel.tsx function commaDelimitedToList (line 17) | function commaDelimitedToList(value: string | undefined) { function listToCommaDelimited (line 23) | function listToCommaDelimited(value: string[] | undefined) { FILE: ui/v2.5/src/components/Settings/SettingsLogsPanel.tsx function convertTime (line 9) | function convertTime(logEntry: GQL.LogEntryDataFragment) { function levelClass (line 30) | function levelClass(level: string) { type ILogElementProps (line 34) | interface ILogElementProps { class LogEntry (line 51) | class LogEntry { method constructor (line 59) | public constructor(logEntry: GQL.LogEntryDataFragment) { constant MAX_LOG_ENTRIES (line 70) | const MAX_LOG_ENTRIES = 50000; constant MAX_DISPLAY_LOG_ENTRIES (line 72) | const MAX_DISPLAY_LOG_ENTRIES = 1000; function getInitialLogs (line 82) | async function getInitialLogs() { function maybeRenderError (line 111) | function maybeRenderError() { function filterByLogLevel (line 121) | function filterByLogLevel(logEntry: LogEntry) { FILE: ui/v2.5/src/components/Settings/SettingsPluginsPanel.tsx type IPluginSettingProps (line 32) | interface IPluginSettingProps { function onReloadPlugins (line 117) | async function onReloadPlugins() { function renderLink (line 126) | function renderLink(url?: string) { function renderEnableButton (line 140) | function renderEnableButton(pluginID: string, enabled: boolean) { function onReloadUI (line 160) | function onReloadUI() { function maybeRenderReloadUI (line 164) | function maybeRenderReloadUI(pluginID: string) { function renderPlugins (line 174) | function renderPlugins() { function renderPluginHooks (line 204) | function renderPluginHooks( FILE: ui/v2.5/src/components/Settings/SettingsScrapingPanel.tsx type IURLList (line 109) | interface IURLList { function linkSite (line 115) | function linkSite(url: string) { function filterScraper (line 159) | function filterScraper(filter: string) { function onReloadScrapers (line 215) | async function onReloadScrapers() { FILE: ui/v2.5/src/components/Settings/SettingsSecurityPanel.tsx type AuthenticationSettingsInput (line 12) | type AuthenticationSettingsInput = Pick< type IAuthenticationInput (line 17) | interface IAuthenticationInput { function set (line 28) | function set(v: Partial) { function onGenerateAPIKey (line 79) | async function onGenerateAPIKey() { function onClearAPIKey (line 92) | async function onClearAPIKey() { FILE: ui/v2.5/src/components/Settings/SettingsServicesPanel.tsx function onTempEnable (line 62) | async function onTempEnable() { function onAllowTempIP (line 95) | async function onAllowTempIP() { function onDisallowTempIP (line 124) | async function onDisallowTempIP(address: string) { function renderDeadline (line 143) | function renderDeadline(until?: string | null) { function renderStatus (line 152) | function renderStatus() { function renderEnableButton (line 165) | function renderEnableButton() { function canCancel (line 183) | function canCancel() { function cancelTempBehaviour (line 194) | async function cancelTempBehaviour() { function renderTempCancelButton (line 226) | function renderTempCancelButton() { function renderTempEnableDialog (line 238) | function renderTempEnableDialog() { function renderTempWhitelistDialog (line 280) | function renderTempWhitelistDialog() { function renderAllowedIPs (line 322) | function renderAllowedIPs() { function renderRecentIPs (line 360) | function renderRecentIPs() { FILE: ui/v2.5/src/components/Settings/SettingsSystemPanel.tsx function resolutionToString (line 41) | function resolutionToString(r: GQL.StreamingResolutionEnum | undefined) { function translateQuality (line 60) | function translateQuality(quality: string) { function namingHashToString (line 84) | function namingHashToString(value: GQL.HashAlgorithm | undefined) { function translateNamingHash (line 95) | function translateNamingHash(value: string) { function blobStorageTypeToID (line 106) | function blobStorageTypeToID(value: GQL.BlobsStorageType | undefined) { function onDownloadFFMpeg (line 117) | async function onDownloadFFMpeg() { FILE: ui/v2.5/src/components/Settings/StashBoxConfiguration.tsx type IStashBoxModal (line 8) | interface IStashBoxModal { type IStashBoxSetting (line 157) | interface IStashBoxSetting { function onEdit (line 169) | function onEdit(index: number) { function onDelete (line 173) | function onDelete(index: number) { function onNew (line 177) | function onNew() { FILE: ui/v2.5/src/components/Settings/StashConfiguration.tsx type IStashProps (line 11) | interface IStashProps { type IStashConfigurationProps (line 92) | interface IStashConfigurationProps { function onEdit (line 104) | function onEdit(index: number) { function onDelete (line 108) | function onDelete(index: number) { function onNew (line 112) | function onNew() { type IStashSetting (line 191) | interface IStashSetting { FILE: ui/v2.5/src/components/Settings/Tasks/CleanGeneratedDialog.tsx function setOptions (line 15) | function setOptions(input: Partial) { function confirm (line 93) | function confirm() { FILE: ui/v2.5/src/components/Settings/Tasks/DataManagementTasks.tsx type ICleanDialog (line 37) | interface ICleanDialog { function removePath (line 56) | function removePath(p: string) { function addPath (line 60) | function addPath(p: string) { type ICleanOptions (line 133) | interface ICleanOptions { function setOptions (line 142) | function setOptions(input: Partial) { type IDataManagementTasks (line 284) | interface IDataManagementTasks { type DialogOpenState (line 319) | type DialogOpenState = typeof dialogOpen; function setDialogOpen (line 321) | function setDialogOpen(s: Partial) { function onImport (line 327) | async function onImport() { function renderImportAlert (line 342) | function renderImportAlert() { function renderImportDialog (line 359) | function renderImportDialog() { function onClean (line 367) | async function onClean(paths?: string[]) { function onCleanGenerated (line 387) | async function onCleanGenerated(options: GQL.CleanGeneratedInput) { function onMigrateHashNaming (line 408) | async function onMigrateHashNaming() { function onMigrateSceneScreenshots (line 426) | async function onMigrateSceneScreenshots() { function onMigrateBlobs (line 444) | async function onMigrateBlobs() { function onExport (line 462) | async function onExport() { function onBackup (line 476) | async function onBackup(download?: boolean, includeBlobs?: boolean) { function onOptimiseDatabase (line 496) | async function onOptimiseDatabase() { function onAnonymise (line 514) | async function onAnonymise(download?: boolean) { FILE: ui/v2.5/src/components/Settings/Tasks/DirectorySelectionDialog.tsx type IDirectorySelectionDialogProps (line 14) | interface IDirectorySelectionDialogProps { function removePath (line 32) | function removePath(p: string) { function addPath (line 36) | function addPath(p: string) { FILE: ui/v2.5/src/components/Settings/Tasks/GenerateOptions.tsx type IGenerateOptions (line 9) | interface IGenerateOptions { function setOptions (line 25) | function setOptions(input: Partial) { FILE: ui/v2.5/src/components/Settings/Tasks/ImportDialog.tsx type IImportDialogProps (line 10) | interface IImportDialogProps { function duplicateHandlingToString (line 33) | function duplicateHandlingToString( function translateDuplicateHandling (line 47) | function translateDuplicateHandling(value: string) { function missingRefHandlingToString (line 60) | function missingRefHandlingToString( function translateMissingRefHandling (line 74) | function translateMissingRefHandling(value: string) { function onFileChange (line 87) | function onFileChange(event: React.ChangeEvent) { function onImport (line 97) | async function onImport() { FILE: ui/v2.5/src/components/Settings/Tasks/JobTable.tsx type JobFragment (line 22) | type JobFragment = Pick< type IJob (line 33) | interface IJob { function stopJob (line 58) | async function stopJob() { function canStop (line 63) | function canStop() { function getStatusClass (line 71) | function getStatusClass() { function getStatusIcon (line 88) | function getStatusIcon() { function maybeRenderProgress (line 117) | function maybeRenderProgress() { function maybeRenderETA (line 134) | function maybeRenderETA() { function maybeRenderSubTasks (line 157) | function maybeRenderSubTasks() { function updateJob (line 225) | function updateJob() { FILE: ui/v2.5/src/components/Settings/Tasks/LibraryTasks.tsx type IAutoTagOptions (line 24) | interface IAutoTagOptions { function set (line 36) | function set(v?: boolean) { function setOptions (line 43) | function setOptions(input: Partial) { function getDefaultScanOptions (line 85) | function getDefaultScanOptions(): GQL.ScanMetadataInput { function getDefaultGenerateOptions (line 107) | function getDefaultGenerateOptions(): GQL.GenerateMetadataInput { type DialogOpenState (line 125) | type DialogOpenState = typeof dialogOpen; function configureDefaults (line 168) | function configureDefaults(partial: Record) { function onSetScanOptions (line 172) | function onSetScanOptions(s: GQL.ScanMetadataInput) { function onSetGenerateOptions (line 177) | function onSetGenerateOptions(s: GQL.GenerateMetadataInput) { function onSetAutoTagOptions (line 182) | function onSetAutoTagOptions(s: GQL.AutoTagMetadataInput) { function setDialogOpen (line 187) | function setDialogOpen(s: Partial) { function renderScanDialog (line 193) | function renderScanDialog() { function onScanDialogClosed (line 201) | function onScanDialogClosed(paths?: string[]) { function runScan (line 209) | async function runScan(paths?: string[]) { function renderAutoTagDialog (line 227) | function renderAutoTagDialog() { function onAutoTagDialogClosed (line 235) | function onAutoTagDialogClosed(paths?: string[]) { function runAutoTag (line 243) | async function runAutoTag(paths?: string[]) { function maybeRenderIdentifyDialog (line 261) | function maybeRenderIdentifyDialog() { function renderGenerateDialog (line 269) | function renderGenerateDialog() { function onGenerateDialogClosed (line 277) | function onGenerateDialogClosed(paths?: string[]) { function runGenerate (line 286) | async function runGenerate(paths?: string[]) { function onGenerateClicked (line 304) | async function onGenerateClicked() { FILE: ui/v2.5/src/components/Settings/Tasks/PluginTasks.tsx type Plugin (line 10) | type Plugin = Pick; type PluginTask (line 11) | type PluginTask = Pick; function renderPluginTasks (line 19) | function renderPluginTasks(plugin: Plugin, pluginTasks: PluginTask[]) { function onPluginTaskClicked (line 35) | async function onPluginTaskClicked(plugin: Plugin, operation: PluginTask) { FILE: ui/v2.5/src/components/Settings/Tasks/ScanOptions.tsx type IScanOptions (line 5) | interface IScanOptions { function setOptions (line 26) | function setOptions(input: Partial) { FILE: ui/v2.5/src/components/Settings/context.tsx type PluginConfigs (line 25) | type PluginConfigs = Record>; type ISettingsContextState (line 27) | interface ISettingsContextState { function noop (line 55) | function noop() {} function useSettingsOptional (line 97) | function useSettingsOptional(): ISettingsContextState { function saveGeneral (line 212) | function saveGeneral(input: Partial) { function saveInterface (line 261) | function saveInterface(input: Partial) { function saveDefaults (line 310) | function saveDefaults(input: Partial) { function saveScraping (line 359) | function saveScraping(input: Partial) { function saveDLNA (line 405) | function saveDLNA(input: Partial) { type UIConfigInput (line 426) | type UIConfigInput = GQL.Scalars["Map"]["input"]; function saveUI (line 453) | function saveUI(input: IUIConfig) { function setAdvancedMode (line 471) | function setAdvancedMode(value: boolean) { function savePluginSettings (line 506) | function savePluginSettings( function maybeRenderLoadingIndicator (line 534) | function maybeRenderLoadingIndicator() { FILE: ui/v2.5/src/components/SettingsButton.tsx type JobFragment (line 9) | type JobFragment = Pick< function updateJob (line 32) | function updateJob() { FILE: ui/v2.5/src/components/Setup/Migrate.tsx function onJobFinished (line 30) | function onJobFinished(finishedJob?: JobFragment) { function onMigrate (line 158) | async function onMigrate() { function maybeRenderError (line 175) | function maybeRenderError() { FILE: ui/v2.5/src/components/Setup/Setup.tsx type ISetupContextState (line 32) | interface ISetupContextState { function pathDir (line 83) | function pathDir(path: string) { type IWizardStep (line 120) | interface IWizardStep { function onNext (line 130) | function onNext() { function onConfigLocationChosen (line 175) | function onConfigLocationChosen(inWorkingDir: boolean) { function onSelectClosed (line 357) | function onSelectClosed(dir?: string) { function preNext (line 546) | function preNext() { function onNext (line 554) | function onNext() { function joinCfgDir (line 704) | function joinCfgDir(path: string) { function onFinishClick (line 859) | function onFinishClick() { function createSystem (line 1001) | async function createSystem() { function next (line 1027) | function next(input?: Partial) { function goBack (line 1038) | function goBack() { FILE: ui/v2.5/src/components/Shared/Alert.tsx type IAlertModalProps (line 5) | interface IAlertModalProps { FILE: ui/v2.5/src/components/Shared/BatchModals.tsx type IEntityWithStashIDs (line 8) | interface IEntityWithStashIDs { type IBatchUpdateModalProps (line 12) | interface IBatchUpdateModalProps { type IBatchAddModalProps (line 167) | interface IBatchAddModalProps { FILE: ui/v2.5/src/components/Shared/BulkUpdate.tsx type IBulkUpdateTextInputProps (line 15) | interface IBulkUpdateTextInputProps extends Omit) { function onClearQuery (line 39) | function onClearQuery() { function onInputKeyDown (line 44) | function onInputKeyDown(e: React.KeyboardEvent) { FILE: ui/v2.5/src/components/Shared/CollapseButton.tsx type IProps (line 11) | interface IProps { function toggleOpen (line 25) | function toggleOpen() { FILE: ui/v2.5/src/components/Shared/CountButton.tsx type ICountButtonProps (line 10) | interface ICountButtonProps { type CountButtonPropsNoIcon (line 51) | type CountButtonPropsNoIcon = Omit; FILE: ui/v2.5/src/components/Shared/Counter.tsx type IProps (line 6) | interface IProps { FILE: ui/v2.5/src/components/Shared/CountryFlag.tsx type ICountryFlag (line 6) | interface ICountryFlag { FILE: ui/v2.5/src/components/Shared/CountryLabel.tsx type IProps (line 6) | interface IProps { FILE: ui/v2.5/src/components/Shared/CountrySelect.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Shared/CustomFields.tsx type CustomFieldMap (line 15) | type CustomFieldMap = { type ICustomFields (line 19) | interface ICustomFields { function convertValue (line 24) | function convertValue(value: unknown): string { function isNumeric (line 82) | function isNumeric(v: string) { function convertCustomValue (line 86) | function convertCustomValue(v: string) { function onBlur (line 116) | function onBlur() { function onDelete (line 120) | function onDelete() { type ICustomField (line 181) | interface ICustomField { type ICustomFieldsInput (line 186) | interface ICustomFieldsInput { function formatCustomFieldInput (line 193) | function formatCustomFieldInput(isNew: boolean, input: {}) { function onSetNewField (line 224) | function onSetNewField(v: ICustomField) { function onAdd (line 266) | function onAdd() { function fieldChanged (line 275) | function fieldChanged( FILE: ui/v2.5/src/components/Shared/DateInput.tsx type IProps (line 13) | interface IProps { function maybeRenderButton (line 58) | function maybeRenderButton() { type IBulkUpdateDateInputProps (line 120) | interface IBulkUpdateDateInputProps function outValue (line 168) | function outValue(v: string | undefined) { FILE: ui/v2.5/src/components/Shared/DeleteEntityDialog.tsx type IDeletionEntity (line 9) | interface IDeletionEntity { type DestroyMutation (line 14) | type DestroyMutation = (input: { type IDeleteEntityDialogProps (line 18) | interface IDeleteEntityDialogProps { function onDelete (line 58) | async function onDelete() { FILE: ui/v2.5/src/components/Shared/DeleteFilesDialog.tsx type IFile (line 9) | interface IFile { type IDeleteSceneDialogProps (line 14) | interface IDeleteSceneDialogProps { function onDelete (line 47) | async function onDelete() { function renderDeleteFileAlert (line 60) | function renderDeleteFileAlert() { FILE: ui/v2.5/src/components/Shared/DetailImage.tsx constant DEFAULT_WIDTH (line 5) | const DEFAULT_WIDTH = Math.round(remToPx(30)); type IDetailImageProps (line 8) | type IDetailImageProps = JSX.IntrinsicElements["img"]; function fixWidth (line 15) | function fixWidth() { FILE: ui/v2.5/src/components/Shared/DetailItem.tsx type IDetailItem (line 4) | interface IDetailItem { FILE: ui/v2.5/src/components/Shared/DetailsEditNavbar.tsx type IProps (line 7) | interface IProps { function renderEditButton (line 34) | function renderEditButton() { function renderSaveButton (line 49) | function renderSaveButton() { function renderDeleteButton (line 81) | function renderDeleteButton() { function renderBackImageInput (line 94) | function renderBackImageInput() { function renderAutoTagButton (line 108) | function renderAutoTagButton() { function renderDeleteAlert (line 130) | function renderDeleteAlert() { FILE: ui/v2.5/src/components/Shared/DetailsPage/Tabs.tsx function useTabKey (line 23) | function useTabKey(props: { FILE: ui/v2.5/src/components/Shared/DurationInput.tsx type IProps (line 11) | interface IProps { function onChange (line 36) | function onChange(e: React.ChangeEvent) { function onBlur (line 40) | function onBlur() { function updateValue (line 47) | function updateValue(v: number | null) { function increment (line 54) | function increment() { function decrement (line 59) | function decrement() { function renderButtons (line 68) | function renderButtons() { function maybeRenderReset (line 91) | function maybeRenderReset() { FILE: ui/v2.5/src/components/Shared/ErrorMessage.tsx type IProps (line 7) | interface IProps { FILE: ui/v2.5/src/components/Shared/ExportDialog.tsx type IExportDialogProps (line 11) | interface IExportDialogProps { function onExport (line 27) | async function onExport() { FILE: ui/v2.5/src/components/Shared/ExternalLink.tsx type IExternalLinkProps (line 1) | type IExternalLinkProps = JSX.IntrinsicElements["a"]; FILE: ui/v2.5/src/components/Shared/FilterSelect.tsx type Option (line 19) | type Option = { value: string; object: T }; type ISelectProps (line 21) | interface ISelectProps type IFilterSelectProps (line 33) | interface IFilterSelectProps type IFilterValueProps (line 109) | interface IFilterValueProps { type IFilterProps (line 114) | interface IFilterProps { type IFilterComponentProps (line 125) | interface IFilterComponentProps extends IFilterProps { type IFilterIDProps (line 255) | interface IFilterIDProps { function toOption (line 260) | function toOption(item: T): Option { FILE: ui/v2.5/src/components/Shared/FolderSelect/FolderSelect.tsx type IProps (line 12) | interface IProps { function setInstant (line 46) | function setInstant(value: string) { function setDebounced (line 53) | function setDebounced(value: string) { function goUp (line 58) | function goUp() { FILE: ui/v2.5/src/components/Shared/FolderSelect/FolderSelectDialog.tsx type IProps (line 6) | interface IProps { FILE: ui/v2.5/src/components/Shared/GridCard/GridCard.tsx type ICardProps (line 20) | interface ICardProps { type IDimension (line 55) | interface IDimension { function useCardWidth (line 86) | function useCardWidth( function onMouseEnter (line 142) | function onMouseEnter() { function onMouseLeave (line 146) | function onMouseLeave() { function handleImageClick (line 186) | function handleImageClick( function maybeRenderInteractiveHeatmap (line 202) | function maybeRenderInteractiveHeatmap() { function maybeRenderProgressBar (line 215) | function maybeRenderProgressBar() { FILE: ui/v2.5/src/components/Shared/GridCard/StudioOverlay.tsx type IStudio (line 5) | interface IStudio { function onClick (line 33) | function onClick(e: React.MouseEvent) { FILE: ui/v2.5/src/components/Shared/GridCard/dragMoveSelect.ts type DragSide (line 5) | enum DragSide { function useDragMoveSelect (line 24) | function useDragMoveSelect(props: { FILE: ui/v2.5/src/components/Shared/HoverPopover.tsx type IHoverPopover (line 7) | interface IHoverPopover { FILE: ui/v2.5/src/components/Shared/HoverScrubber.tsx type IHoverScrubber (line 7) | interface IHoverScrubber { function getActiveIndex (line 22) | function getActiveIndex( function onMove (line 46) | function onMove( function onLeave (line 64) | function onLeave() { function onScrubberClick (line 68) | function onScrubberClick( FILE: ui/v2.5/src/components/Shared/ImageInput.tsx type IImageInput (line 18) | interface IImageInput { function acceptExtensions (line 27) | function acceptExtensions(acceptSVG: boolean = false) { function onPasteClipboard (line 64) | async function onPasteClipboard() { function showDialog (line 86) | function showDialog() { function onConfirmURL (line 91) | function onConfirmURL() { function renderDialog (line 100) | function renderDialog() { FILE: ui/v2.5/src/components/Shared/ImageSelector.tsx type IImageSelectorProps (line 9) | interface IImageSelectorProps { FILE: ui/v2.5/src/components/Shared/IndeterminateCheckbox.tsx type IIndeterminateCheckbox (line 16) | interface IIndeterminateCheckbox extends FormCheckProps { function cycleState (line 33) | function cycleState() { FILE: ui/v2.5/src/components/Shared/LoadingIndicator.tsx type ILoadingProps (line 7) | interface ILoadingProps { constant CLASSNAME (line 14) | const CLASSNAME = "LoadingIndicator"; constant CLASSNAME_MESSAGE (line 15) | const CLASSNAME_MESSAGE = `${CLASSNAME}-message`; FILE: ui/v2.5/src/components/Shared/MarkdownPage.tsx type IPageProps (line 5) | interface IPageProps { FILE: ui/v2.5/src/components/Shared/Modal.tsx type IButton (line 8) | interface IButton { type IModal (line 14) | interface IModal { FILE: ui/v2.5/src/components/Shared/MultiSet.tsx type IMultiSetProps (line 17) | interface IMultiSetProps { function onUpdate (line 31) | function onUpdate(items: SelectObject[]) { function getModeText (line 119) | function getModeText(intl: IntlShape, mode: GQL.BulkUpdateIdMode) { function onSetMode (line 187) | function onSetMode(m: GQL.BulkUpdateIdMode) { FILE: ui/v2.5/src/components/Shared/OperationButton.tsx type IOperationButton (line 5) | interface IOperationButton extends ButtonProps { function handleClick (line 35) | async function handleClick() { FILE: ui/v2.5/src/components/Shared/PackageManager/PackageManager.tsx function packageKey (line 22) | function packageKey( function displayVersion (line 28) | function displayVersion(intl: IntlShape, version: string | undefined | n... function displayDate (line 34) | function displayDate(intl: IntlShape, date: string | undefined | null) { type IPackage (line 49) | interface IPackage { function filterPackages (line 54) | function filterPackages(packages: T[], filter: strin... type InstalledPackage (line 65) | type InstalledPackage = Omit; function hasUpgrade (line 67) | function hasUpgrade(pkg: InstalledPackage) { function toggleAllChecked (line 160) | function toggleAllChecked() { function togglePackage (line 164) | function togglePackage(pkg: InstalledPackage) { function renderBody (line 176) | function renderBody() { function confirmUninstall (line 371) | function confirmUninstall() { function checkForUpdates (line 376) | function checkForUpdates() { type InputValues (line 510) | type InputValues = yup.InferType; function validate (line 511) | function validate( function renderField (line 525) | function renderField( type RemotePackage (line 610) | type RemotePackage = Omit & { function renderRequiredBy (line 631) | function renderRequiredBy() { function toggleSource (line 727) | function toggleSource() { function loadPackages (line 737) | async function loadPackages() { function toggleSourceOpen (line 751) | function toggleSourceOpen() { function renderContents (line 763) | function renderContents() { function onDeleteSource (line 926) | function onDeleteSource() { function setSelectedSourcePackages (line 933) | function setSelectedSourcePackages( function renderBody (line 948) | function renderBody() { function toPackageSpecInput (line 1095) | function toPackageSpecInput(): GQL.PackageSpecInput[] { FILE: ui/v2.5/src/components/Shared/PercentInput.tsx type IProps (line 11) | interface IProps { function increment (line 39) | function increment() { function decrement (line 53) | function decrement() { function renderButtons (line 67) | function renderButtons() { function onReset (line 92) | function onReset() { function maybeRenderReset (line 98) | function maybeRenderReset() { FILE: ui/v2.5/src/components/Shared/PerformerPopoverButton.tsx type IProps (line 11) | interface IProps { FILE: ui/v2.5/src/components/Shared/PopoverCountButton.tsx type PopoverLinkType (line 41) | type PopoverLinkType = type IProps (line 51) | interface IProps { function getIcon (line 73) | function getIcon() { function getPluralOptions (line 93) | function getPluralOptions() { function getTitle (line 138) | function getTitle() { FILE: ui/v2.5/src/components/Shared/Rating/RatingNumber.tsx type IRatingNumberProps (line 9) | interface IRatingNumberProps { function stepChange (line 38) | function stepChange() { function nonStepChange (line 42) | function nonStepChange() { function setCursorPosition (line 46) | function setCursorPosition( function handleChange (line 59) | function handleChange(e: React.ChangeEvent) { function onBlur (line 118) | function onBlur() { FILE: ui/v2.5/src/components/Shared/Rating/RatingStars.tsx type IRatingStarsProps (line 16) | interface IRatingStarsProps { function newToggleFraction (line 43) | function newToggleFraction() { function setRating (line 55) | function setRating(thisStar: number) { function onMouseOver (line 101) | function onMouseOver(thisStar: number) { function onMouseOut (line 107) | function onMouseOut(thisStar: number) { function getClassName (line 113) | function getClassName(thisStar: number) { function getTooltip (line 129) | function getTooltip(thisStar: number, current: RatingFraction | undefine... type RatingFraction (line 147) | type RatingFraction = { function getCurrentSelectedRating (line 152) | function getCurrentSelectedRating(): RatingFraction | undefined { function getButtonClassName (line 187) | function getButtonClassName( FILE: ui/v2.5/src/components/Shared/Rating/RatingSystem.tsx type IRatingSystemProps (line 11) | interface IRatingSystemProps { FILE: ui/v2.5/src/components/Shared/RatingBanner.tsx type IProps (line 11) | interface IProps { FILE: ui/v2.5/src/components/Shared/ReassignFilesDialog.tsx type IFile (line 11) | interface IFile { type IReassignFilesDialogProps (line 16) | interface IReassignFilesDialogProps { function onAccept (line 45) | async function onAccept() { FILE: ui/v2.5/src/components/Shared/RevealInFilesystemButton.tsx type IRevealInFilesystemButtonProps (line 12) | interface IRevealInFilesystemButtonProps { function isLocalhost (line 17) | function isLocalhost(): boolean { function onClick (line 31) | function onClick() { FILE: ui/v2.5/src/components/Shared/ScrapeDialog/CreateLinkTagDialog.tsx function handleTagSave (line 31) | function handleTagSave() { FILE: ui/v2.5/src/components/Shared/ScrapeDialog/ScrapeDialog.tsx type IScrapeDialogContextState (line 8) | interface IScrapeDialogContextState { type IScrapeDialogProps (line 16) | interface IScrapeDialogProps { FILE: ui/v2.5/src/components/Shared/ScrapeDialog/ScrapeDialogRow.tsx function renderButtonIcon (line 20) | function renderButtonIcon(selected: boolean) { type IScrapedFieldProps (line 31) | interface IScrapedFieldProps { type IScrapedRowProps (line 35) | interface IScrapedRowProps extends IScrapedFieldProps { function handleSelectClick (line 49) | function handleSelectClick(isNew: boolean) { type IScrapedInputGroupProps (line 110) | interface IScrapedInputGroupProps { type IScrapedInputGroupRowProps (line 134) | interface IScrapedInputGroupRowProps { type IScrapedNumberInputProps (line 175) | interface IScrapedNumberInputProps { type IScrapedNumberRowProps (line 200) | interface IScrapedNumberRowProps { type IScrapedStringListProps (line 239) | interface IScrapedStringListProps { type IScrapedStringListRowProps (line 266) | interface IScrapedStringListRowProps { type IScrapedImageProps (line 352) | interface IScrapedImageProps { type IScrapedImageRowProps (line 373) | interface IScrapedImageRowProps { type IScrapedImagesRowProps (line 407) | interface IScrapedImagesRowProps { function onSetImageIndex (line 419) | function onSetImageIndex(newIdx: number) { type IScrapedCountryRowProps (line 452) | interface IScrapedCountryRowProps { FILE: ui/v2.5/src/components/Shared/ScrapeDialog/ScrapedObjectsRow.tsx type INewScrapedObjects (line 19) | interface INewScrapedObjects { type IScrapedStudioRow (line 78) | interface IScrapedStudioRow { function getObjectName (line 88) | function getObjectName(value: T) { function renderScrapedStudio (line 101) | function renderScrapedStudio( type IScrapedObjectsRow (line 165) | interface IScrapedObjectsRow { type IScrapedObjectRowImpl (line 218) | type IScrapedObjectRowImpl = Omit< function renderScrapedPerformers (line 244) | function renderScrapedPerformers( function renderScrapedGroups (line 315) | function renderScrapedGroups( function renderScrapedTags (line 376) | function renderScrapedTags( FILE: ui/v2.5/src/components/Shared/ScrapeDialog/createObjects.ts function useCreateObject (line 14) | function useCreateObject( type IUseCreateNewStudioProps (line 43) | interface IUseCreateNewStudioProps { function useCreateScrapedStudio (line 52) | function useCreateScrapedStudio(props: IUseCreateNewStudioProps) { type IUseCreateNewObjectProps (line 101) | interface IUseCreateNewObjectProps { function useCreateScrapedPerformer (line 109) | function useCreateScrapedPerformer( function useCreateScrapedGroup (line 149) | function useCreateScrapedGroup( function useLinkScrapedTag (line 186) | function useLinkScrapedTag( function useCreateScrapedTag (line 215) | function useCreateScrapedTag( FILE: ui/v2.5/src/components/Shared/ScrapeDialog/scrapeResult.ts type CustomFieldScrapeResults (line 6) | type CustomFieldScrapeResults = Map>; class ScrapeResult (line 8) | class ScrapeResult { method constructor (line 18) | public constructor( method setOriginalValue (line 40) | public setOriginalValue(value?: T) { method cloneWithValue (line 45) | public cloneWithValue(value?: T) { method getNewValue (line 58) | public getNewValue() { class ZeroableScrapeResult (line 66) | class ZeroableScrapeResult extends ScrapeResult { method constructor (line 67) | public constructor( function storedIDsEqual (line 86) | function storedIDsEqual( class ObjectListScrapeResult (line 100) | class ObjectListScrapeResult< method constructor (line 103) | public constructor( class ObjectScrapeResult (line 112) | class ObjectScrapeResult< method constructor (line 115) | public constructor( function hasScrapedValues (line 129) | function hasScrapedValues(values: { scraped: boolean }[]): boolean { FILE: ui/v2.5/src/components/Shared/ScrapeDialog/scrapedTags.tsx function useScrapedTags (line 13) | function useScrapedTags( FILE: ui/v2.5/src/components/Shared/Select.tsx type SelectObject (line 32) | type SelectObject = { type Option (line 37) | type Option = { value: string; label: string }; type ITypeProps (line 39) | interface ITypeProps { type IFilterProps (line 50) | interface IFilterProps { type ISelectProps (line 62) | interface ISelectProps { type TitledObject (line 89) | type TitledObject = { id: string; title: string }; type ITitledSelect (line 90) | interface ITitledSelect { type IMarkerSuggestProps (line 315) | interface IMarkerSuggestProps { type IStringListSelect (line 394) | interface IStringListSelect { type IListSelect (line 447) | interface IListSelect { type DisableOption (line 497) | type DisableOption = Option & { type ICheckBoxSelectProps (line 502) | interface ICheckBoxSelectProps { FILE: ui/v2.5/src/components/Shared/Sidebar.tsx type SidebarSectionStates (line 20) | type SidebarSectionStates = Record; type IContext (line 93) | interface IContext { type ISidebarSectionProps (line 100) | interface ISidebarSectionProps { function onOpenInternal (line 126) | function onOpenInternal(open: boolean) { function defaultShowSidebar (line 157) | function defaultShowSidebar() { function useSidebarState (line 161) | function useSidebarState(view?: View) { FILE: ui/v2.5/src/components/Shared/StashBoxIDSearchModal.tsx type SearchResultItem (line 23) | type SearchResultItem = type StashBoxEntityType (line 29) | type StashBoxEntityType = "performer" | "scene" | "studio" | "tag"; type IProps (line 31) | interface IProps { constant CLASSNAME (line 39) | const CLASSNAME = "StashBoxIDSearchModal"; constant CLASSNAME_LIST (line 40) | const CLASSNAME_LIST = `${CLASSNAME}-list`; constant CLASSNAME_LIST_CONTAINER (line 41) | const CLASSNAME_LIST_CONTAINER = `${CLASSNAME_LIST}-container`; type IHasRemoteSiteID (line 43) | interface IHasRemoteSiteID { type IPerformerResultProps (line 80) | interface IPerformerResultProps { type ISceneResultProps (line 151) | interface ISceneResultProps { type IStudioResultProps (line 199) | interface IStudioResultProps { type ITagResultProps (line 239) | interface ITagResultProps { function getEntityTypeMessageId (line 260) | function getEntityTypeMessageId(entityType: StashBoxEntityType): string { function getFoundMessageId (line 274) | function getFoundMessageId(entityType: StashBoxEntityType): string { function handleItemClick (line 366) | function handleItemClick(item: IHasRemoteSiteID) { function handleClose (line 377) | function handleClose() { function renderResultItem (line 381) | function renderResultItem(item: SearchResultItem) { function renderResults (line 404) | function renderResults() { FILE: ui/v2.5/src/components/Shared/StashID.tsx type LinkType (line 7) | type LinkType = "performers" | "scenes" | "studios" | "tags"; type IStashIDsField (line 35) | interface IStashIDsField { FILE: ui/v2.5/src/components/Shared/StringListInput.tsx type IListInputComponentProps (line 6) | interface IListInputComponentProps { type IListInputAppendProps (line 14) | interface IListInputAppendProps { type IStringListInputProps (line 18) | interface IStringListInputProps { function valueChanged (line 60) | function valueChanged(idx: number, value: string) { function removeValue (line 72) | function removeValue(idx: number) { function handleDragStart (line 78) | function handleDragStart(event: React.DragEvent, idx: numbe... function handleDragOver (line 83) | function handleDragOver(e: React.DragEvent, idx: number) { function handleDragEnd (line 104) | function handleDragEnd() { FILE: ui/v2.5/src/components/Shared/SuccessIcon.tsx type ISuccessIconProps (line 5) | interface ISuccessIconProps { FILE: ui/v2.5/src/components/Shared/TagLink.tsx type SceneMarkerFragment (line 18) | type SceneMarkerFragment = Pick) { function getStudioInput (line 91) | function getStudioInput(): GQL.BulkStudioUpdateInput { function onSave (line 107) | async function onSave() { function render (line 130) | function render() { FILE: ui/v2.5/src/components/Studios/StudioCard.tsx type IProps (line 19) | interface IProps { function maybeRenderParent (line 29) | function maybeRenderParent( function maybeRenderChildren (line 51) | function maybeRenderChildren(studio: GQL.StudioDataFragment) { function onToggleFavorite (line 87) | function onToggleFavorite(v: boolean) { function maybeRenderScenesPopoverButton (line 100) | function maybeRenderScenesPopoverButton() { function maybeRenderImagesPopoverButton (line 113) | function maybeRenderImagesPopoverButton() { function maybeRenderGalleriesPopoverButton (line 126) | function maybeRenderGalleriesPopoverButton() { function maybeRenderGroupsPopoverButton (line 139) | function maybeRenderGroupsPopoverButton() { function maybeRenderPerformersPopoverButton (line 152) | function maybeRenderPerformersPopoverButton() { function maybeRenderTagPopoverButton (line 165) | function maybeRenderTagPopoverButton() { function maybeRenderOCounter (line 182) | function maybeRenderOCounter() { function maybeRenderOrganized (line 188) | function maybeRenderOrganized() { function maybeRenderPopoverButtonGroup (line 209) | function maybeRenderPopoverButtonGroup() { FILE: ui/v2.5/src/components/Studios/StudioCardGrid.tsx type IStudioCardGrid (line 10) | interface IStudioCardGrid { FILE: ui/v2.5/src/components/Studios/StudioDetails/Studio.tsx type IProps (line 54) | interface IProps { type IStudioParams (line 59) | interface IStudioParams { type TabKey (line 73) | type TabKey = (typeof validTabs)[number]; function isTabKey (line 75) | function isTabKey(tab: string): tab is TabKey { function setFavorite (line 307) | function setFavorite(v: boolean) { function onOrganizedClick (line 322) | async function onOrganizedClick() { function onSave (line 365) | async function onSave(input: GQL.StudioCreateInput) { function onAutoTag (line 383) | async function onAutoTag() { function onDelete (line 393) | async function onDelete() { function renderDeleteAlert (line 404) | function renderDeleteAlert() { function toggleEditing (line 430) | function toggleEditing(value?: boolean) { function setRating (line 439) | function setRating(v: number | null) { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioChildrenPanel.tsx function useFilterHook (line 8) | function useFilterHook(studio: GQL.StudioDataFragment) { type IStudioChildrenPanel (line 42) | interface IStudioChildrenPanel { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioCreate.tsx function onSave (line 29) | async function onSave(input: GQL.StudioCreateInput, andNew?: boolean) { function renderImage (line 46) | function renderImage() { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioDetailsPanel.tsx type IStudioDetailsPanel (line 10) | interface IStudioDetailsPanel { function renderTagsField (line 19) | function renderTagsField() { function renderStashIDs (line 32) | function renderStashIDs() { function renderURLs (line 50) | function renderURLs() { function scrollToTop (line 100) | function scrollToTop() { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioEditPanel.tsx type IStudioEditPanel (line 30) | interface IStudioEditPanel { type InputValues (line 87) | type InputValues = yup.InferType; function submit (line 91) | function submit(values: InputValues) { function onSetParentStudio (line 110) | function onSetParentStudio(item: Studio | null) { function onSave (line 152) | async function onSave(input: InputValues, andNew?: boolean) { function onSaveAndNewClick (line 163) | async function onSaveAndNewClick() { function onImageLoad (line 171) | function onImageLoad(imageData: string | null) { function onImageChange (line 175) | function onImageChange(event: React.FormEvent) { function onStashIDSelected (line 179) | function onStashIDSelected(item?: GQL.StashIdInput) { function renderParentStudioField (line 194) | function renderParentStudioField() { function renderTagsField (line 208) | function renderTagsField() { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioGalleriesPanel.tsx type IStudioGalleriesPanel (line 7) | interface IStudioGalleriesPanel { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioGroupsPanel.tsx type IStudioGroupsPanel (line 7) | interface IStudioGroupsPanel { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioImagesPanel.tsx type IStudioImagesPanel (line 7) | interface IStudioImagesPanel { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioPerformersPanel.tsx type IStudioPerformersPanel (line 8) | interface IStudioPerformersPanel { FILE: ui/v2.5/src/components/Studios/StudioDetails/StudioScenesPanel.tsx type IStudioScenesPanel (line 7) | interface IStudioScenesPanel { FILE: ui/v2.5/src/components/Studios/StudioList.tsx type IStudioList (line 152) | interface IStudioList { function useViewRandom (line 160) | function useViewRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 184) | function useAddKeybinds(filter: ListFilterModel, count: number) { function onExport (line 287) | function onExport(all: boolean) { function onEdit (line 301) | function onEdit() { function onDelete (line 310) | function onDelete() { FILE: ui/v2.5/src/components/Studios/StudioRecommendationRow.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Studios/StudioSelect.tsx type SelectObject (line 35) | type SelectObject = { type Studio (line 41) | type Studio = Pick; type Option (line 42) | type Option = SelectOption; type FindStudiosResult (line 44) | type FindStudiosResult = Awaited< function sortStudiosByRelevance (line 48) | function sortStudiosByRelevance(input: string, studios: FindStudiosResul... function filterExcluded (line 80) | function filterExcluded(studio: Studio) { function loadStudios (line 86) | async function loadStudios(input: string): Promise { function onSelect (line 262) | function onSelect(items: Studio[]) { function loadObjectsByID (line 267) | async function loadObjectsByID(idsToLoad: string[]): Promise { FILE: ui/v2.5/src/components/Tagger/FieldSelector.tsx type IProps (line 9) | interface IProps { FILE: ui/v2.5/src/components/Tagger/IncludeButton.tsx type IIncludeExcludeButton (line 6) | interface IIncludeExcludeButton { type IOptionalField (line 29) | interface IOptionalField { FILE: ui/v2.5/src/components/Tagger/PerformerModal.tsx type IPerformerModalProps (line 23) | interface IPerformerModalProps { function maybeRenderField (line 86) | function maybeRenderField( function maybeRenderURLListField (line 120) | function maybeRenderURLListField( function maybeRenderImage (line 158) | function maybeRenderImage() { function maybeRenderStashBoxLink (line 209) | function maybeRenderStashBoxLink() { function onSaveClicked (line 221) | function onSaveClicked() { FILE: ui/v2.5/src/components/Tagger/StashBoxSelector.tsx type IStashBoxSelectorProps (line 5) | interface IStashBoxSelectorProps { FILE: ui/v2.5/src/components/Tagger/TaggerConfig.tsx type ITaggerConfigProps (line 8) | interface ITaggerConfigProps { FILE: ui/v2.5/src/components/Tagger/config.ts function useTaggerConfig (line 6) | function useTaggerConfig() { FILE: ui/v2.5/src/components/Tagger/constants.ts constant STASH_BOX_PREFIX (line 3) | const STASH_BOX_PREFIX = "stashbox:"; constant SCRAPER_PREFIX (line 4) | const SCRAPER_PREFIX = "scraper:"; type ITaggerSource (line 6) | interface ITaggerSource { constant DEFAULT_BLACKLIST (line 14) | const DEFAULT_BLACKLIST = [ constant DEFAULT_EXCLUDED_PERFORMER_FIELDS (line 25) | const DEFAULT_EXCLUDED_PERFORMER_FIELDS = ["name"]; constant DEFAULT_EXCLUDED_STUDIO_FIELDS (line 26) | const DEFAULT_EXCLUDED_STUDIO_FIELDS = ["name"]; constant DEFAULT_EXCLUDED_TAG_FIELDS (line 27) | const DEFAULT_EXCLUDED_TAG_FIELDS = ["name"]; type ParseMode (line 44) | type ParseMode = "auto" | "filename" | "dir" | "path" | "metadata"; type TagOperation (line 45) | type TagOperation = "merge" | "overwrite"; type ITaggerConfig (line 46) | interface ITaggerConfig { constant PERFORMER_FIELDS (line 63) | const PERFORMER_FIELDS = [ constant STUDIO_FIELDS (line 89) | const STUDIO_FIELDS = ["name", "image", "url", "parent_studio"]; constant TAG_FIELDS (line 90) | const TAG_FIELDS = ["name", "description", "aliases", "parent_tags"]; FILE: ui/v2.5/src/components/Tagger/context.tsx type ITaggerContextState (line 27) | interface ITaggerContextState { type IScrapedScene (line 107) | type IScrapedScene = GQL.ScrapedScene & { resolved?: boolean }; type ISceneQueryResult (line 109) | interface ISceneQueryResult { function getPendingFingerprints (line 218) | function getPendingFingerprints() { function clearSubmissionQueue (line 225) | function clearSubmissionQueue() { function submitFingerprints (line 241) | async function submitFingerprints() { function queueFingerprintSubmission (line 265) | function queueFingerprintSubmission(sceneId: string) { function clearSearchResults (line 278) | function clearSearchResults(sceneID: string) { function doSceneQuery (line 286) | async function doSceneQuery(sceneID: string, searchVal: string) { function sceneFragmentScrape (line 325) | async function sceneFragmentScrape(sceneID: string) { function doSceneFragmentScrape (line 362) | async function doSceneFragmentScrape(sceneID: string) { function doMultiSceneFragmentScrape (line 379) | async function doMultiSceneFragmentScrape(sceneIDs: string[]) { function stopMultiScrape (line 442) | function stopMultiScrape() { function resolveScene (line 446) | async function resolveScene( function saveScene (line 492) | async function saveScene( function mapResults (line 518) | function mapResults(fn: (r: IScrapedScene) => IScrapedScene) { function createNewTag (line 533) | async function createNewTag( function createNewPerformer (line 581) | async function createNewPerformer( function linkPerformer (line 634) | async function linkPerformer( function createNewStudio (line 701) | async function createNewStudio( function updateExistingStudio (line 759) | async function updateExistingStudio(input: GQL.StudioUpdateInput) { function linkStudio (line 809) | async function linkStudio(studio: GQL.ScrapedStudio, studioID: string) { function updateExistingTag (line 870) | async function updateExistingTag( FILE: ui/v2.5/src/components/Tagger/performers/PerformerTagger.tsx type JobFragment (line 32) | type JobFragment = Pick< constant CLASSNAME (line 37) | const CLASSNAME = "PerformerTagger"; type IPerformerBatchUpdateModal (line 39) | interface IPerformerBatchUpdateModal { type IPerformerBatchAddModal (line 180) | interface IPerformerBatchAddModal { type IPerformerTaggerListProps (line 237) | interface IPerformerTaggerListProps { function handleBatchAdd (line 331) | async function handleBatchAdd(input: string) { function handleSaveError (line 353) | function handleSaveError(performerID: string, name: string, message: str... type ITaggerProps (line 617) | interface ITaggerProps { function batchAdd (line 666) | async function batchAdd(performerInput: string) { function batchUpdate (line 689) | async function batchUpdate(ids: string[] | undefined, refresh: boolean) { function renderStatus (line 710) | function renderStatus() { FILE: ui/v2.5/src/components/Tagger/performers/StashSearchResult.tsx type IStashSearchResultProps (line 10) | interface IStashSearchResultProps { function cleanAliases (line 22) | function cleanAliases(currentName: string, aliases: string[]) { FILE: ui/v2.5/src/components/Tagger/scenes/Config.tsx function addBlacklistItem (line 28) | function addBlacklistItem() { function removeBlacklistItem (line 54) | function removeBlacklistItem(index: number) { type IConfigProps (line 115) | interface IConfigProps { function renderGenderCheckbox (line 123) | function renderGenderCheckbox(gender: GenderEnum) { FILE: ui/v2.5/src/components/Tagger/scenes/PerformerResult.tsx type IPerformerResultProps (line 45) | interface IPerformerResultProps { function selectPerformer (line 84) | function selectPerformer(selected: Performer | undefined) { FILE: ui/v2.5/src/components/Tagger/scenes/SceneTagger.tsx type ITaggerProps (line 93) | interface ITaggerProps { function handleSourceSelect (line 126) | function handleSourceSelect(e: React.ChangeEvent) { function renderSourceSelector (line 130) | function renderSourceSelector() { function showLightboxImage (line 164) | function showLightboxImage(imagePath: string) { function maybeRenderShowHideUnmatchedButton (line 181) | function maybeRenderShowHideUnmatchedButton() { function maybeRenderSubmitFingerprintsButton (line 200) | function maybeRenderSubmitFingerprintsButton() { function renderFragmentScrapeButton (line 219) | function renderFragmentScrapeButton() { FILE: ui/v2.5/src/components/Tagger/scenes/StashSearchResult.tsx function matchPhashes (line 101) | function matchPhashes( type IStashSearchResultProps (line 213) | interface IStashSearchResultProps { function doResolveScene (line 314) | async function doResolveScene() { function handleSave (line 343) | async function handleSave() { function showPerformerModal (line 434) | function showPerformerModal(t: GQL.ScrapedPerformer) { function onCreateTag (line 442) | async function onCreateTag( function onUpdateTag (line 465) | async function onUpdateTag( function showTagModal (line 473) | function showTagModal(t: GQL.ScrapedTag) { function studioModalCallback (line 483) | async function studioModalCallback( function showStudioModal (line 506) | function showStudioModal(t: GQL.ScrapedStudio) { function renderStudioDate (line 578) | function renderStudioDate() { function setPerformerID (line 720) | function setPerformerID(performerIndex: number, id: string | undefined) { function maybeRenderTagsField (line 755) | function maybeRenderTagsField() { type ISceneSearchResults (line 866) | interface ISceneSearchResults { function getClassName (line 898) | function getClassName(i: number) { FILE: ui/v2.5/src/components/Tagger/scenes/StudioModal.tsx type IStudioDetailsProps (line 20) | interface IStudioDetailsProps { function maybeRenderImage (line 35) | function maybeRenderImage() { function maybeRenderField (line 59) | function maybeRenderField( function maybeRenderURLListField (line 87) | function maybeRenderURLListField( function maybeRenderStashBoxLink (line 125) | function maybeRenderStashBoxLink() { type IStudioModalProps (line 156) | interface IStudioModalProps { function onSave (line 228) | function onSave() { function maybeRenderParentStudio (line 312) | function maybeRenderParentStudio() { function maybeRenderParentStudioDetails (line 335) | function maybeRenderParentStudioDetails() { FILE: ui/v2.5/src/components/Tagger/scenes/StudioResult.tsx type IStudioResultProps (line 35) | interface IStudioResultProps { FILE: ui/v2.5/src/components/Tagger/scenes/TaggerScene.tsx type ITaggerSceneDetails (line 28) | interface ITaggerSceneDetails { type StashID (line 91) | type StashID = Pick; type ITaggerScene (line 112) | interface ITaggerScene { function query (line 167) | async function query() { function renderQueryForm (line 178) | function renderQueryForm() { function onSpriteClick (line 212) | function onSpriteClick(ev: React.MouseEvent) { function maybeRenderSpriteIcon (line 217) | function maybeRenderSpriteIcon() { function onScrubberClick (line 233) | function onScrubberClick(timestamp: number) { FILE: ui/v2.5/src/components/Tagger/scenes/sceneTaggerModals.tsx type PerformerModalCallback (line 11) | type PerformerModalCallback = (toCreate?: GQL.PerformerCreateInput) => v... type StudioModalCallback (line 12) | type StudioModalCallback = ( type TagModalCallback (line 16) | type TagModalCallback = (result: { type ISceneTaggerModalsContextState (line 21) | interface ISceneTaggerModalsContextState { function handlePerformerSave (line 68) | function handlePerformerSave(toCreate: GQL.PerformerCreateInput) { function handlePerformerCancel (line 77) | function handlePerformerCancel() { function createPerformerModal (line 86) | function createPerformerModal( function handleStudioSave (line 95) | function handleStudioSave( function handleStudioCancel (line 107) | function handleStudioCancel() { function createStudioModal (line 116) | function createStudioModal( function handleTagSave (line 125) | function handleTagSave(result: { function createTagModal (line 137) | function createTagModal(tag: GQL.ScrapedTag, callback: TagModalCallback) { FILE: ui/v2.5/src/components/Tagger/scenes/utils.ts function minDistance (line 5) | function minDistance(hash: string, stashScene: SlimSceneDataFragment) { function calculatePhashComparisonScore (line 24) | function calculatePhashComparisonScore( function minDurationDiff (line 42) | function minDurationDiff( function calculateDurationComparisonScore (line 59) | function calculateDurationComparisonScore( function compareScenesForSort (line 79) | function compareScenesForSort( FILE: ui/v2.5/src/components/Tagger/studios/StashSearchResult.tsx type IStashSearchResultProps (line 13) | interface IStashSearchResultProps { function handleSaveError (line 43) | function handleSaveError(name: string, message: string) { FILE: ui/v2.5/src/components/Tagger/studios/StudioTagger.tsx type JobFragment (line 37) | type JobFragment = Pick< constant CLASSNAME (line 42) | const CLASSNAME = "StudioTagger"; type IStudioTaggerListProps (line 44) | interface IStudioTaggerListProps { function handleBatchAdd (line 160) | async function handleBatchAdd(input: string) { function handleSaveError (line 187) | function handleSaveError(studioID: string, name: string, message: string) { type ITaggerProps (line 468) | interface ITaggerProps { function batchAdd (line 517) | async function batchAdd(studioInput: string, createParent: boolean) { function batchUpdate (line 541) | async function batchUpdate( function renderStatus (line 566) | function renderStatus() { FILE: ui/v2.5/src/components/Tagger/tags/StashSearchResult.tsx type IStashSearchResultProps (line 13) | interface IStashSearchResultProps { function handleSaveError (line 42) | function handleSaveError(name: string, message: string) { FILE: ui/v2.5/src/components/Tagger/tags/TagModal.tsx type ITagModalProps (line 18) | interface ITagModalProps { function maybeRenderField (line 83) | function maybeRenderField( function maybeRenderStashBoxLink (line 111) | function maybeRenderStashBoxLink() { function maybeRenderParentField (line 127) | function maybeRenderParentField( function maybeRenderParentTagDetails (line 155) | function maybeRenderParentTagDetails() { function maybeRenderParentTag (line 168) | function maybeRenderParentTag() { function handleSave (line 191) | function handleSave() { FILE: ui/v2.5/src/components/Tagger/tags/TagTagger.tsx type JobFragment (line 31) | type JobFragment = Pick< constant CLASSNAME (line 36) | const CLASSNAME = "TagTagger"; type ITagTaggerListProps (line 38) | interface ITagTaggerListProps { function handleBatchAdd (line 194) | async function handleBatchAdd(input: string) { type ITaggerProps (line 411) | interface ITaggerProps { function batchAdd (line 459) | async function batchAdd(tagInput: string, createParent: boolean) { function batchUpdate (line 483) | async function batchUpdate( function renderStatus (line 501) | function renderStatus() { FILE: ui/v2.5/src/components/Tagger/utils.ts function prepareQueryString (line 95) | function prepareQueryString( function mergeEntityStashIDs (line 176) | async function mergeEntityStashIDs( FILE: ui/v2.5/src/components/Tags/EditTagsDialog.tsx function Tags (line 17) | function Tags(props: { type IListOperationProps (line 57) | interface IListOperationProps { function setParentTagIDs (line 74) | function setParentTagIDs(value: React.SetStateAction) { function setUpdateField (line 95) | function setUpdateField(input: Partial) { function getTagInput (line 99) | function getTagInput(): GQL.BulkTagUpdateInput { function onSave (line 112) | async function onSave() { FILE: ui/v2.5/src/components/Tags/TagCard.tsx type IProps (line 16) | interface IProps { function renderFavoriteIcon (line 92) | function renderFavoriteIcon() { function onToggleFavorite (line 110) | function onToggleFavorite(v: boolean) { function maybeRenderDescription (line 130) | function maybeRenderDescription() { function maybeRenderParents (line 142) | function maybeRenderParents() { function maybeRenderChildren (line 179) | function maybeRenderChildren() { FILE: ui/v2.5/src/components/Tags/TagCardGrid.tsx type ITagCardGrid (line 10) | interface ITagCardGrid { FILE: ui/v2.5/src/components/Tags/TagDetails/Tag.tsx type IProps (line 49) | interface IProps { type ITagParams (line 54) | interface ITagParams { type TabKey (line 69) | type TabKey = (typeof validTabs)[number]; function isTabKey (line 71) | function isTabKey(tab: string): tab is TabKey { function setFavorite (line 330) | function setFavorite(v: boolean) { function onSave (line 364) | async function onSave(input: GQL.TagCreateInput) { function onAutoTag (line 393) | async function onAutoTag() { function onDelete (line 403) | async function onDelete() { function renderDeleteAlert (line 422) | function renderDeleteAlert() { function toggleEditing (line 448) | function toggleEditing(value?: boolean) { function renderMergeButton (line 457) | function renderMergeButton() { function renderMergeDialog (line 466) | function renderMergeDialog() { FILE: ui/v2.5/src/components/Tags/TagDetails/TagCreate.tsx function onSave (line 28) | async function onSave(input: GQL.TagCreateInput, andNew?: boolean) { function renderImage (line 54) | function renderImage() { FILE: ui/v2.5/src/components/Tags/TagDetails/TagDetailsPanel.tsx type ITagDetails (line 8) | interface ITagDetails { function renderParentsField (line 14) | function renderParentsField() { function renderChildrenField (line 35) | function renderChildrenField() { function renderStashIDs (line 56) | function renderStashIDs() { function scrollToTop (line 100) | function scrollToTop() { FILE: ui/v2.5/src/components/Tags/TagDetails/TagEditPanel.tsx type ITagEditPanel (line 29) | interface ITagEditPanel { type InputValues (line 86) | type InputValues = yup.InferType; function submit (line 90) | function submit(values: InputValues) { function onSetParentTags (line 105) | function onSetParentTags(items: Tag[]) { function onSetChildTags (line 113) | function onSetChildTags(items: Tag[]) { function onSave (line 142) | async function onSave(input: InputValues, andNew?: boolean) { function onSaveAndNewClick (line 153) | async function onSaveAndNewClick() { function onImageLoad (line 171) | function onImageLoad(imageData: string | null) { function onImageChange (line 175) | function onImageChange(event: React.FormEvent) { function onStashIDSelected (line 179) | function onStashIDSelected(item?: GQL.StashIdInput) { function renderParentTagsField (line 195) | function renderParentTagsField() { function renderSubTagsField (line 211) | function renderSubTagsField() { FILE: ui/v2.5/src/components/Tags/TagDetails/TagGalleriesPanel.tsx type ITagGalleriesPanel (line 7) | interface ITagGalleriesPanel { FILE: ui/v2.5/src/components/Tags/TagDetails/TagImagesPanel.tsx type ITagImagesPanel (line 7) | interface ITagImagesPanel { FILE: ui/v2.5/src/components/Tags/TagDetails/TagMarkersPanel.tsx function useFilterHook (line 11) | function useFilterHook(tag: GQL.TagDataFragment, showSubTagContent?: boo... type ITagMarkersPanel (line 49) | interface ITagMarkersPanel { FILE: ui/v2.5/src/components/Tags/TagDetails/TagPerformersPanel.tsx type ITagPerformersPanel (line 7) | interface ITagPerformersPanel { FILE: ui/v2.5/src/components/Tags/TagDetails/TagScenesPanel.tsx type ITagScenesPanel (line 7) | interface ITagScenesPanel { FILE: ui/v2.5/src/components/Tags/TagDetails/TagStudiosPanel.tsx type ITagStudiosPanel (line 6) | interface ITagStudiosPanel { FILE: ui/v2.5/src/components/Tags/TagList.tsx function useViewRandom (line 153) | function useViewRandom(filter: ListFilterModel, count: number) { function useAddKeybinds (line 177) | function useAddKeybinds(filter: ListFilterModel, count: number) { type ITagList (line 191) | interface ITagList { function onExport (line 289) | function onExport(all: boolean) { function onEdit (line 303) | function onEdit() { function onDelete (line 309) | function onDelete(tag?: GQL.TagListDataFragment) { function onMerge (line 332) | function onMerge() { FILE: ui/v2.5/src/components/Tags/TagListTable.tsx type ITagListTableProps (line 16) | interface ITagListTableProps { constant TABLE_NAME (line 22) | const TABLE_NAME = "tags"; function setFavorite (line 31) | function setFavorite(v: boolean, tagId: string) { type IColumnSpec (line 117) | interface IColumnSpec { function renderCell (line 208) | function renderCell( FILE: ui/v2.5/src/components/Tags/TagMergeDialog.tsx type ITagMergeDetailsProps (line 34) | interface ITagMergeDetailsProps { function idToStoredID (line 96) | function idToStoredID(o: { id: string; name: string }) { function loadImages (line 106) | async function loadImages() { function renderScrapeRows (line 264) | function renderScrapeRows() { function createValues (line 349) | function createValues(): GQL.TagUpdateInput { type ITagMergeModalProps (line 406) | interface ITagMergeModalProps { function loadTags (line 443) | async function loadTags() { function onMerge (line 459) | async function onMerge(values: GQL.TagUpdateInput) { function canMerge (line 485) | function canMerge() { function switchTags (line 489) | function switchTags() { FILE: ui/v2.5/src/components/Tags/TagPopover.tsx type ITagPopoverCardProps (line 10) | interface ITagPopoverCardProps { type ITagPopoverProps (line 36) | interface ITagPopoverProps { FILE: ui/v2.5/src/components/Tags/TagRecommendationRow.tsx type IProps (line 8) | interface IProps { FILE: ui/v2.5/src/components/Tags/TagSelect.tsx type SelectObject (line 36) | type SelectObject = { type Tag (line 42) | type Tag = Pick< type Option (line 46) | type Option = SelectOption; type FindTagsResult (line 48) | type FindTagsResult = Awaited< function sortTagsByRelevance (line 52) | function sortTagsByRelevance(input: string, tags: FindTagsResult) { type TagSelectProps (line 63) | type TagSelectProps = IFilterProps & function filterExcluded (line 81) | function filterExcluded(tag: Tag) { function loadTags (line 87) | async function loadTags(input: string): Promise { function onSelect (line 288) | function onSelect(items: Tag[]) { function loadObjectsByID (line 293) | async function loadObjectsByID(idsToLoad: string[]): Promise { FILE: ui/v2.5/src/components/TroubleshootingMode/TroubleshootingModeButton.tsx constant DIALOG_ITEMS (line 8) | const DIALOG_ITEMS = [ FILE: ui/v2.5/src/components/TroubleshootingMode/useTroubleshootingMode.ts constant ORIGINAL_LOG_LEVEL_KEY (line 8) | const ORIGINAL_LOG_LEVEL_KEY = "troubleshootingMode_originalLogLevel"; function useTroubleshootingMode (line 10) | function useTroubleshootingMode() { FILE: ui/v2.5/src/components/Wall/WallItem.tsx type WallItemType (line 19) | type WallItemType = keyof WallItemData; type WallItemData (line 21) | type WallItemData = { type IWallItemProps (line 27) | interface IWallItemProps { type IPreviews (line 36) | interface IPreviews { FILE: ui/v2.5/src/components/Wall/WallPanel.tsx type IWallPanelProps (line 6) | interface IWallPanelProps { function renderItems (line 42) | function renderItems() { type IMarkerWallPanelProps (line 65) | interface IMarkerWallPanelProps { FILE: ui/v2.5/src/core/StashService.ts function useWSState (line 26) | function useWSState(ws: Client) { function evictQueries (line 51) | function evictQueries( function evictTypeFields (line 78) | function evictTypeFields( function deleteObject (line 106) | function deleteObject( function isLoading (line 123) | function isLoading(networkStatus: NetworkStatus) { function updateStats (line 536) | function updateStats(cache: ApolloCache, field: string, diff: n... function updateO (line 549) | function updateO( method update (line 592) | update(cache, result) { method update (line 620) | update(cache, result) { method update (line 630) | update(cache, result) { method update (line 641) | update(cache, result) { method update (line 652) | update(cache, result) { method update (line 670) | update(cache, result) { method update (line 690) | update(cache, result, { variables }) { method update (line 749) | update(cache, result, { variables }) { method update (line 804) | update(cache, result) { method update (line 869) | update(cache, result) { method update (line 889) | update(cache, result) { method update (line 907) | update(cache, result) { method update (line 942) | update(cache, result) { method update (line 964) | update(cache, result, { variables }) { method update (line 993) | update(cache, result, { variables }) { method update (line 1034) | update(cache, result, { variables }) { method update (line 1092) | update(cache, result, { variables }) { method update (line 1143) | update(cache, result) { method update (line 1153) | update(cache, result) { method update (line 1164) | update(cache, result) { function updateImageIncrementO (line 1180) | function updateImageIncrementO(id: string) { function updateImageDecrementO (line 1234) | function updateImageDecrementO(id: string) { function updateImageResetO (line 1289) | function updateImageResetO(id: string) { method update (line 1363) | update(cache, result) { method update (line 1383) | update(cache, result) { method update (line 1397) | update(cache, result) { method update (line 1407) | update(cache, result) { method update (line 1418) | update(cache, result) { method update (line 1442) | update(cache, result) { function useReorderSubGroupsMutation (line 1467) | function useReorderSubGroupsMutation() { method update (line 1479) | update(cache, result) { method update (line 1501) | update(cache, result) { method update (line 1535) | update(cache, result, { variables }) { method update (line 1551) | update(cache, result, { variables }) { method update (line 1567) | update(cache, result) { method update (line 1577) | update(cache, result, { variables }) { method update (line 1593) | update(cache, result) { method update (line 1623) | update(cache, result) { method update (line 1636) | update(cache, result) { method update (line 1646) | update(cache, result) { method update (line 1657) | update(cache, result) { method update (line 1678) | update(cache, result) { function evictCover (line 1702) | function evictCover(cache: ApolloCache, gallery_id: string) { method update (line 1723) | update(cache, result) { method update (line 1733) | update(cache, result) { method update (line 1743) | update(cache, result) { method update (line 1776) | update(cache, result) { method update (line 1795) | update(cache, result) { method update (line 1805) | update(cache, result) { method update (line 1815) | update(cache, result, { variables }) { method update (line 1840) | update(cache, result) { method update (line 1857) | update(cache, result) { method update (line 1868) | update(cache, result) { method update (line 1878) | update(cache, result, { variables }) { method update (line 1905) | update(cache, result) { method update (line 1953) | update(cache, result) { method update (line 1990) | update(cache, result, { variables }) { method update (line 2015) | update(cache, result) { method update (line 2032) | update(cache, result) { method update (line 2043) | update(cache, result) { method update (line 2060) | update(cache, result) { method update (line 2094) | update(cache, result) { method update (line 2116) | update(cache, result) { method update (line 2134) | update(cache, result) { method update (line 2145) | update(cache, result) { method update (line 2162) | update(cache, result) { method update (line 2182) | update(cache, result, { variables }) { method update (line 2205) | update(cache, result) { function saveFilter (line 2212) | function saveFilter(filter: ListFilterModel, name: string, id?: string) { method update (line 2234) | update(cache, result, { variables }) { method update (line 2246) | update(cache, result) { method update (line 2627) | update(cache, result) { method update (line 2645) | update(cache, result) { type BoolMap (line 2652) | type BoolMap = { [key: string]: boolean }; method update (line 2658) | update(cache, result) { function updateConfiguration (line 2674) | function updateConfiguration(cache: ApolloCache, result: FetchR... method update (line 2682) | update(cache, result) { function updateUIConfig (line 2708) | function updateUIConfig( method update (line 2778) | update(cache, result) { function postMigrate (line 2793) | function postMigrate() { type TData (line 2808) | type TData = T extends true type TVariables (line 2811) | type TVariables = T extends true type TData (line 2864) | type TData = T extends true type TVariables (line 2867) | type TVariables = T extends true FILE: ui/v2.5/src/core/config.ts type ISavedFilterRow (line 15) | interface ISavedFilterRow extends ITypename { type IMessage (line 20) | interface IMessage { type ICustomFilter (line 25) | interface ICustomFilter extends ITypename { type DefaultFilters (line 34) | type DefaultFilters = { type FrontPageContent (line 38) | type FrontPageContent = ISavedFilterRow | ICustomFilter; type IUIConfig (line 43) | interface IUIConfig { function getFrontPageContent (line 113) | function getFrontPageContent( function recentlyReleased (line 119) | function recentlyReleased( function recentlyAdded (line 136) | function recentlyAdded( function generateDefaultFrontPageContent (line 153) | function generateDefaultFrontPageContent(intl: IntlShape) { function generatePremadeFrontPageContent (line 163) | function generatePremadeFrontPageContent(intl: IntlShape) { FILE: ui/v2.5/src/core/createClient.ts method shouldRetry (line 147) | shouldRetry() { FILE: ui/v2.5/src/core/files.ts type IFile (line 4) | interface IFile { type IObjectWithFiles (line 8) | interface IObjectWithFiles { type IObjectWithTitleFiles (line 12) | interface IObjectWithTitleFiles extends IObjectWithFiles { function objectTitle (line 16) | function objectTitle(s: Partial) { function objectPath (line 26) | function objectPath(s: IObjectWithFiles) { type IObjectWithVisualFiles (line 33) | interface IObjectWithVisualFiles { type IObjectWithTitleVisualFiles (line 37) | interface IObjectWithTitleVisualFiles extends IObjectWithVisualFiles { function imageTitle (line 41) | function imageTitle(s: Partial) { function imagePath (line 51) | function imagePath(s: IObjectWithVisualFiles) { FILE: ui/v2.5/src/core/galleries.ts type IFile (line 4) | interface IFile { type IGallery (line 8) | interface IGallery { type IGalleryWithTitle (line 13) | interface IGalleryWithTitle extends IGallery { function galleryTitle (line 17) | function galleryTitle(s: Partial) { function galleryPath (line 30) | function galleryPath(s: IGallery) { FILE: ui/v2.5/src/core/markers.ts type SceneMarkerFragment (line 3) | type SceneMarkerFragment = Pick & { function markerTitle (line 7) | function markerTitle(s: SceneMarkerFragment) { FILE: ui/v2.5/src/core/performers.ts type IPerformerFragment (line 51) | interface IPerformerFragment { function sortPerformers (line 56) | function sortPerformers(performers: T[]) { FILE: ui/v2.5/src/core/recommendations.ts function determineSlidesToScroll (line 1) | function determineSlidesToScroll( function getSlickSliderSettings (line 15) | function getSlickSliderSettings(cardCount: number, isTouch: boolean) { FILE: ui/v2.5/src/core/tags.ts type ITagRelationTuple (line 55) | interface ITagRelationTuple { function updater (line 76) | function updater( FILE: ui/v2.5/src/docs/en/ReleaseNotes/index.ts type IReleaseNotes (line 9) | interface IReleaseNotes { FILE: ui/v2.5/src/globals.d.ts type ImportMetaEnv (line 9) | interface ImportMetaEnv { FILE: ui/v2.5/src/hooks/Config.tsx type IContext (line 4) | interface IContext { FILE: ui/v2.5/src/hooks/Interactive/context.tsx type ConnectionState (line 10) | enum ConnectionState { function connectionStateLabel (line 20) | function connectionStateLabel(s: ConnectionState) { type IState (line 40) | interface IState { constant LOCAL_FORAGE_KEY (line 68) | const LOCAL_FORAGE_KEY = "interactive"; constant TIME_BETWEEN_SYNCS (line 69) | const TIME_BETWEEN_SYNCS = 60 * 60 * 1000; type IInteractiveState (line 71) | interface IInteractiveState { FILE: ui/v2.5/src/hooks/Interactive/interactive.ts type IFunscript (line 10) | interface IFunscript { type IAction (line 16) | interface IAction { function convertRange (line 22) | function convertRange( function convertFunscriptToCSV (line 35) | function convertFunscriptToCSV(funscript: IFunscript) { function uploadCsv (line 78) | async function uploadCsv( class Interactive (line 96) | class Interactive { method constructor (line 103) | constructor(handyKey: string, scriptOffset: number) { method connected (line 112) | get connected() { method playing (line 115) | get playing() { method connect (line 119) | async connect() { method handyKey (line 132) | set handyKey(key: string) { method handyKey (line 136) | get handyKey(): string { method useStashHostedFunscript (line 140) | set useStashHostedFunscript(useStashHostedFunscript: boolean) { method useStashHostedFunscript (line 144) | get useStashHostedFunscript(): boolean { method scriptOffset (line 148) | set scriptOffset(offset: number) { method uploadScript (line 152) | async uploadScript(funscriptPath: string, apiKey?: string) { method sync (line 187) | async sync() { method setServerTimeOffset (line 191) | setServerTimeOffset(offset: number) { method configure (line 195) | async configure(config: Partial) { method play (line 204) | async play(position: number) { method pause (line 217) | async pause() { method ensurePlaying (line 224) | async ensurePlaying(position: number) { method setLooping (line 231) | async setLooping(looping: boolean) { FILE: ui/v2.5/src/hooks/Interactive/status.tsx function getStateClass (line 14) | function getStateClass() { FILE: ui/v2.5/src/hooks/Interactive/utils.ts type IDeviceSettings (line 5) | interface IDeviceSettings { type IInteractiveClientProviderOptions (line 13) | interface IInteractiveClientProviderOptions { type IInteractiveClientProvider (line 19) | interface IInteractiveClientProvider { type IInteractiveClient (line 26) | interface IInteractiveClient { type IInteractiveUtils (line 40) | interface IInteractiveUtils { FILE: ui/v2.5/src/hooks/Interval.ts constant MIN_VALID_INTERVAL (line 3) | const MIN_VALID_INTERVAL = 1000; function noop (line 5) | function noop() {} FILE: ui/v2.5/src/hooks/Lightbox/Lightbox.tsx constant CLASSNAME (line 55) | const CLASSNAME = "Lightbox"; constant CLASSNAME_HEADER (line 56) | const CLASSNAME_HEADER = `${CLASSNAME}-header`; constant CLASSNAME_LEFT_SPACER (line 57) | const CLASSNAME_LEFT_SPACER = `${CLASSNAME_HEADER}-left-spacer`; constant CLASSNAME_CHAPTERS (line 58) | const CLASSNAME_CHAPTERS = `${CLASSNAME_HEADER}-chapters`; constant CLASSNAME_CHAPTER_BUTTON (line 59) | const CLASSNAME_CHAPTER_BUTTON = `${CLASSNAME_HEADER}-chapter-button`; constant CLASSNAME_INDICATOR (line 60) | const CLASSNAME_INDICATOR = `${CLASSNAME_HEADER}-indicator`; constant CLASSNAME_OPTIONS (line 61) | const CLASSNAME_OPTIONS = `${CLASSNAME_HEADER}-options`; constant CLASSNAME_OPTIONS_ICON (line 62) | const CLASSNAME_OPTIONS_ICON = `${CLASSNAME_OPTIONS}-icon`; constant CLASSNAME_OPTIONS_INLINE (line 63) | const CLASSNAME_OPTIONS_INLINE = `${CLASSNAME_OPTIONS}-inline`; constant CLASSNAME_RIGHT (line 64) | const CLASSNAME_RIGHT = `${CLASSNAME_HEADER}-right`; constant CLASSNAME_FOOTER (line 65) | const CLASSNAME_FOOTER = `${CLASSNAME}-footer`; constant CLASSNAME_FOOTER_LEFT (line 66) | const CLASSNAME_FOOTER_LEFT = `${CLASSNAME_FOOTER}-left`; constant CLASSNAME_FOOTER_CENTER (line 67) | const CLASSNAME_FOOTER_CENTER = `${CLASSNAME_FOOTER}-center`; constant CLASSNAME_FOOTER_RIGHT (line 68) | const CLASSNAME_FOOTER_RIGHT = `${CLASSNAME_FOOTER}-right`; constant CLASSNAME_DISPLAY (line 69) | const CLASSNAME_DISPLAY = `${CLASSNAME}-display`; constant CLASSNAME_CAROUSEL (line 70) | const CLASSNAME_CAROUSEL = `${CLASSNAME}-carousel`; constant CLASSNAME_INSTANT (line 71) | const CLASSNAME_INSTANT = `${CLASSNAME_CAROUSEL}-instant`; constant CLASSNAME_IMAGE (line 72) | const CLASSNAME_IMAGE = `${CLASSNAME_CAROUSEL}-image`; constant CLASSNAME_NAVBUTTON (line 73) | const CLASSNAME_NAVBUTTON = `${CLASSNAME}-navbutton`; constant CLASSNAME_NAV (line 74) | const CLASSNAME_NAV = `${CLASSNAME}-nav`; constant CLASSNAME_NAVIMAGE (line 75) | const CLASSNAME_NAVIMAGE = `${CLASSNAME_NAV}-image`; constant CLASSNAME_NAVSELECTED (line 76) | const CLASSNAME_NAVSELECTED = `${CLASSNAME_NAV}-selected`; constant DEFAULT_SLIDESHOW_DELAY (line 78) | const DEFAULT_SLIDESHOW_DELAY = 5000; constant SECONDS_TO_MS (line 79) | const SECONDS_TO_MS = 1000; constant MIN_VALID_INTERVAL_SECONDS (line 80) | const MIN_VALID_INTERVAL_SECONDS = 1; constant MIN_ZOOM (line 81) | const MIN_ZOOM = 0.1; constant SCROLL_ZOOM_TIMEOUT (line 82) | const SCROLL_ZOOM_TIMEOUT = 250; constant ZOOM_NONE_EPSILON (line 83) | const ZOOM_NONE_EPSILON = 0.015; type IProps (line 85) | interface IProps { function updateZoom (line 132) | function updateZoom(v: number) { function setLightboxSettings (line 163) | function setLightboxSettings(v: Partial) { function setScaleUp (line 175) | function setScaleUp(value: boolean) { function setResetZoomOnNav (line 179) | function setResetZoomOnNav(v: boolean) { function setScrollMode (line 183) | function setScrollMode(v: GQL.ImageLightboxScrollMode) { function setSlideshowDelay (line 205) | function setSlideshowDelay(v: number) { function setDisplayMode (line 213) | function setDisplayMode(v: GQL.ImageLightboxDisplayMode) { function imageLoaded (line 465) | function imageLoaded() { function gotoPage (line 518) | function gotoPage(imageIndex: number) { function chapterHeader (line 533) | function chapterHeader() { function renderOptionsForm (line 580) | function renderOptionsForm() { function renderBody (line 712) | function renderBody() { FILE: ui/v2.5/src/hooks/Lightbox/LightboxImage.tsx constant ZOOM_STEP (line 4) | const ZOOM_STEP = 1.1; constant ZOOM_FACTOR (line 5) | const ZOOM_FACTOR = 700; constant SCROLL_GROUP_THRESHOLD (line 6) | const SCROLL_GROUP_THRESHOLD = 8; constant SCROLL_GROUP_EXIT_THRESHOLD (line 7) | const SCROLL_GROUP_EXIT_THRESHOLD = 4; constant SCROLL_INFINITE_THRESHOLD (line 8) | const SCROLL_INFINITE_THRESHOLD = 10; constant SCROLL_PAN_STEP (line 9) | const SCROLL_PAN_STEP = 75; constant SCROLL_PAN_FACTOR (line 10) | const SCROLL_PAN_FACTOR = 2; constant CLASSNAME (line 11) | const CLASSNAME = "Lightbox"; constant CLASSNAME_CAROUSEL (line 12) | const CLASSNAME_CAROUSEL = `${CLASSNAME}-carousel`; constant CLASSNAME_IMAGE (line 13) | const CLASSNAME_IMAGE = `${CLASSNAME_CAROUSEL}-image`; function calculateDefaultZoom (line 15) | function calculateDefaultZoom( type IProps (line 53) | interface IProps { function toggleVideoPlay (line 124) | function toggleVideoPlay() { function onLoad (line 149) | function onLoad() { function getScrollMode (line 285) | function getScrollMode(ev: React.WheelEvent) { function onContainerScroll (line 298) | function onContainerScroll(ev: React.WheelEvent) { function onLeftScroll (line 305) | function onLeftScroll( function onRightScroll (line 331) | function onRightScroll( function onImageScrollPanY (line 354) | function onImageScrollPanY(ev: React.WheelEvent, infinite: boolean) { function onImageScroll (line 388) | function onImageScroll(ev: React.WheelEvent) { function onImageMouseOver (line 425) | function onImageMouseOver(ev: React.MouseEvent) { function onImageMouseDown (line 441) | function onImageMouseDown(ev: React.MouseEvent) { function onImageMouseUp (line 448) | function onImageMouseUp(ev: React.MouseEvent) { function onTouchStart (line 474) | function onTouchStart(ev: React.TouchEvent) { function onTouchMove (line 482) | function onTouchMove(ev: React.TouchEvent) { function onPointerDown (line 495) | function onPointerDown(ev: React.PointerEvent) { function onPointerUp (line 505) | function onPointerUp(ev: React.PointerEvent) { function onPointerMove (line 514) | function onPointerMove(ev: React.PointerEvent) { FILE: ui/v2.5/src/hooks/Lightbox/context.tsx type IState (line 7) | interface IState { type IContext (line 21) | interface IContext { function useLightboxContext (line 28) | function useLightboxContext() { FILE: ui/v2.5/src/hooks/Lightbox/types.ts type IImagePaths (line 3) | interface IImagePaths { type IFiles (line 9) | interface IFiles { type IWithPath (line 17) | interface IWithPath { type IGallery (line 21) | interface IGallery { type ILightboxImage (line 28) | interface ILightboxImage { type IChapter (line 38) | interface IChapter { FILE: ui/v2.5/src/hooks/LocalForage.ts type IInterfaceQueryConfig (line 7) | interface IInterfaceQueryConfig { type IViewConfig (line 13) | interface IViewConfig { type IQueryConfig (line 17) | type IQueryConfig = Record; type IInterfaceConfig (line 19) | interface IInterfaceConfig { type IChangelogConfig (line 26) | interface IChangelogConfig { type ILocalForage (line 30) | interface ILocalForage { function useLocalForage (line 39) | function useLocalForage( FILE: ui/v2.5/src/hooks/OutsideClick.tsx function handleClickOutside (line 14) | function handleClickOutside(event: MouseEvent) { FILE: ui/v2.5/src/hooks/Toast.tsx type IToast (line 13) | interface IToast { type IActiveToast (line 20) | interface IActiveToast extends IToast { type ToastFn (line 31) | type ToastFn = (item: IToast) => void; function expand (line 40) | function expand() { function addToast (line 73) | function addToast(item: IToast) { function copyToClipboard (line 80) | function copyToClipboard() { method success (line 133) | success(message: JSX.Element | string) { method error (line 138) | error(error: unknown) { function toastOperation (line 154) | function toastOperation( FILE: ui/v2.5/src/hooks/data.ts type ILoadResults (line 3) | interface ILoadResults { function useCacheResults (line 8) | function useCacheResults(data: ILoadResults) { FILE: ui/v2.5/src/hooks/debounce.ts function useDebounce (line 6) | function useDebounce any>( function useDebouncedState (line 25) | function useDebouncedState( FILE: ui/v2.5/src/hooks/detailsPanel.ts function shouldLoadStickyHeader (line 3) | function shouldLoadStickyHeader() { function useLoadStickyHeader (line 7) | function useLoadStickyHeader() { FILE: ui/v2.5/src/hooks/event.ts class StashEvent (line 1) | class StashEvent extends EventTarget { method dispatch (line 2) | dispatch(event: string, id?: string, data?: object) { FILE: ui/v2.5/src/hooks/keybinds.ts function useRatingKeybinds (line 5) | function useRatingKeybinds( FILE: ui/v2.5/src/hooks/modal.ts function useModal (line 3) | function useModal() { FILE: ui/v2.5/src/hooks/scrollToTop.ts function useScrollToTopOnMount (line 3) | function useScrollToTopOnMount() { FILE: ui/v2.5/src/hooks/sprite.ts type ISceneSpriteInfo (line 4) | interface ISceneSpriteInfo { function getSpriteInfo (line 14) | function getSpriteInfo(vttPath: string, response: string) { function useSpriteInfo (line 41) | function useSpriteInfo(vttPath: string | undefined) { FILE: ui/v2.5/src/hooks/state.ts function useInitialState (line 9) | function useInitialState( function useMemoOnce (line 39) | function useMemoOnce( function useCompare (line 61) | function useCompare(val: T) { function usePrevious (line 67) | function usePrevious(value: T) { FILE: ui/v2.5/src/hooks/tagsEdit.tsx function useTagsEdit (line 12) | function useTagsEdit( FILE: ui/v2.5/src/hooks/throttle.ts function useThrottle (line 6) | function useThrottle any>( FILE: ui/v2.5/src/hooks/title.ts constant TITLE (line 4) | const TITLE = "Stash"; constant TITLE_SEPARATOR (line 5) | const TITLE_SEPARATOR = " | "; function useTitleProps (line 7) | function useTitleProps(...messages: (string | MessageDescriptor)[]) { function makeTitleProps (line 23) | function makeTitleProps(title: string, ...parts: string[]) { FILE: ui/v2.5/src/hooks/useScript.tsx function onLoad (line 27) | function onLoad() { FILE: ui/v2.5/src/hooks/useTableColumns.ts function saveColumns (line 18) | async function saveColumns(updatedColumns: string[]) { FILE: ui/v2.5/src/locales/index.ts function registerCountry (line 52) | async function registerCountry(locale: string) { FILE: ui/v2.5/src/models/list-filter/criteria/captions.ts class CaptionCriterion (line 21) | class CaptionCriterion extends StringCriterion { method constructor (line 22) | constructor() { method toCriterionInput (line 26) | public toCriterionInput() { FILE: ui/v2.5/src/models/list-filter/criteria/circumcised.ts class CircumcisedCriterion (line 23) | class CircumcisedCriterion extends MultiStringCriterion { method constructor (line 24) | constructor() { method toCriterionInput (line 28) | public toCriterionInput(): CircumcisionCriterionInput { FILE: ui/v2.5/src/models/list-filter/criteria/country.ts class CountryCriterion (line 12) | class CountryCriterion extends StringCriterion { method constructor (line 13) | constructor() { method getLabelValue (line 17) | protected getLabelValue(intl: IntlShape) { FILE: ui/v2.5/src/models/list-filter/criteria/criterion.ts type Option (line 28) | type Option = string | number | IOptionType; type CriterionValue (line 29) | type CriterionValue = type ISavedCriterion (line 43) | interface ISavedCriterion { method constructor (line 67) | constructor(type: CriterionOption) { method isValid (line 71) | public isValid(): boolean { method clone (line 75) | public clone() { method cloneValues (line 81) | protected cloneValues() {} method getId (line 85) | public getId(): string { method modifier (line 106) | public get modifier(): CriterionModifier { method modifier (line 109) | public set modifier(value: CriterionModifier) { method value (line 114) | public get value(): V { method value (line 117) | public set value(newValue: V) { method isValid (line 121) | public isValid(): boolean { method constructor (line 127) | constructor(type: ModifierCriterionOption, value: V) { method modifierCriterionOption (line 133) | public modifierCriterionOption() { method clone (line 137) | public clone() { method cloneValues (line 143) | protected cloneValues() {} method getModifierLabel (line 145) | public static getModifierLabel(intl: IntlShape, modifier: CriterionModif... method getLabel (line 153) | public getLabel(intl: IntlShape, sfwContentMode: boolean = false): string { method toQueryParams (line 181) | public toQueryParams(): Record { method encodeValue (line 197) | protected encodeValue(): unknown { method decodeValue (line 201) | protected decodeValue(v: unknown) { method fromDecodedParams (line 207) | public fromDecodedParams(i: unknown): void { method setFromSavedCriterion (line 214) | public setFromSavedCriterion(criterion: unknown) { method applyToCriterionInput (line 222) | public applyToCriterionInput(input: Record) { method applyToSavedCriterion (line 228) | public applyToSavedCriterion(input: Record): void { method toCriterionInput (line 235) | protected toCriterionInput(): unknown { type InputType (line 243) | type InputType = type MakeCriterionFn (line 257) | type MakeCriterionFn = ( type ICriterionOptionParams (line 262) | interface ICriterionOptionParams { class CriterionOption (line 270) | class CriterionOption { method constructor (line 279) | constructor(options: ICriterionOptionParams) { method makeCriterion (line 287) | public makeCriterion(config?: ConfigDataFragment) { type IModifierCriterionOptionParams (line 292) | interface IModifierCriterionOptionParams extends ICriterionOptionParams { class ModifierCriterionOption (line 299) | class ModifierCriterionOption extends CriterionOption { method constructor (line 305) | constructor(options: IModifierCriterionOptionParams) { class ILabeledIdCriterionOption (line 314) | class ILabeledIdCriterionOption extends ModifierCriterionOption { method constructor (line 315) | constructor( class ILabeledIdCriterion (line 348) | class ILabeledIdCriterion extends ModifierCriterion { method constructor (line 349) | constructor(type: ModifierCriterionOption, value: ILabeledId[] = []) { method cloneValues (line 353) | public cloneValues() { method getLabelValue (line 357) | protected getLabelValue(_intl: IntlShape): string { method toCriterionInput (line 361) | public toCriterionInput(): MultiCriterionInput { method isValid (line 368) | public isValid(): boolean { class IHierarchicalLabeledIdCriterion (line 380) | class IHierarchicalLabeledIdCriterion extends ModifierCriterion { method constructor (line 607) | constructor(type: ModifierCriterionOption) { method getLabelValue (line 611) | protected getLabelValue(_intl: IntlShape) { method isValid (line 615) | public isValid(): boolean { method constructor (line 625) | constructor(type: ModifierCriterionOption, value: string[] = []) { method cloneValues (line 629) | public cloneValues() { method getLabelValue (line 633) | protected getLabelValue(_intl: IntlShape) { method isValid (line 637) | public isValid(): boolean { class BooleanCriterionOption (line 646) | class BooleanCriterionOption extends ModifierCriterionOption { method constructor (line 647) | constructor( function createBooleanCriterionOption (line 665) | function createBooleanCriterionOption( class BooleanCriterion (line 672) | class BooleanCriterion extends StringCriterion { method toCriterionInput (line 673) | public toCriterionInput(): boolean { method isValid (line 677) | public isValid() { class StringBooleanCriterionOption (line 682) | class StringBooleanCriterionOption extends ModifierCriterionOption { method constructor (line 683) | constructor( class StringBooleanCriterion (line 699) | class StringBooleanCriterion extends StringCriterion { method toCriterionInput (line 700) | public toCriterionInput(): string { method isValid (line 704) | public isValid() { class NumberCriterionOption (line 709) | class NumberCriterionOption extends ModifierCriterionOption { method constructor (line 710) | constructor(messageID: string, value: CriterionType) { function createNumberCriterionOption (line 731) | function createNumberCriterionOption( class NullNumberCriterionOption (line 738) | class NullNumberCriterionOption extends ModifierCriterionOption { method constructor (line 739) | constructor( function createNullNumberCriterionOption (line 766) | function createNullNumberCriterionOption( class MandatoryNumberCriterionOption (line 773) | class MandatoryNumberCriterionOption extends ModifierCriterionOption { method constructor (line 774) | constructor( function createMandatoryNumberCriterionOption (line 801) | function createMandatoryNumberCriterionOption( function encodeRangeValue (line 814) | function encodeRangeValue( function decodeRangeValue (line 829) | function decodeRangeValue(v: { class NumberCriterion (line 841) | class NumberCriterion extends ModifierCriterion { method constructor (line 842) | constructor(type: ModifierCriterionOption) { method cloneValues (line 846) | public cloneValues() { method value (line 850) | public get value(): INumberValue { method value (line 853) | public set value(newValue: number | INumberValue) { method toCriterionInput (line 865) | public toCriterionInput(): IntCriterionInput { method setFromSavedCriterion (line 873) | public setFromSavedCriterion(c: { method encodeValue (line 882) | protected encodeValue(): unknown { method getLabelValue (line 886) | protected getLabelValue(_intl: IntlShape) { method isValid (line 898) | public isValid(): boolean { class DurationCriterionOption (line 923) | class DurationCriterionOption extends MandatoryNumberCriterionOption { method constructor (line 924) | constructor(messageID: string, value: CriterionType) { function createDurationCriterionOption (line 929) | function createDurationCriterionOption( class NullDurationCriterionOption (line 936) | class NullDurationCriterionOption extends NullNumberCriterionOption { method constructor (line 937) | constructor(messageID: string, value: CriterionType) { function createNullDurationCriterionOption (line 942) | function createNullDurationCriterionOption( class DurationCriterion (line 949) | class DurationCriterion extends ModifierCriterion { method constructor (line 950) | constructor(type: ModifierCriterionOption) { method cloneValues (line 954) | public cloneValues() { method toCriterionInput (line 958) | public toCriterionInput(): IntCriterionInput { method setFromSavedCriterion (line 966) | public setFromSavedCriterion(c: { method encodeValue (line 975) | protected encodeValue(): unknown { method getLabelValue (line 979) | protected getLabelValue(_intl: IntlShape) { method isValid (line 992) | public isValid(): boolean { class DateCriterionOption (line 1017) | class DateCriterionOption extends ModifierCriterionOption { method constructor (line 1018) | constructor(messageID: string, value: CriterionType) { function createDateCriterionOption (line 1039) | function createDateCriterionOption(value: CriterionType) { class DateCriterion (line 1043) | class DateCriterion extends ModifierCriterion { method constructor (line 1044) | constructor(type: ModifierCriterionOption) { method cloneValues (line 1048) | public cloneValues() { method setFromSavedCriterion (line 1052) | public setFromSavedCriterion(c: { method encodeValue (line 1061) | protected encodeValue(): unknown { method toCriterionInput (line 1065) | public toCriterionInput(): DateCriterionInput { method getLabelValue (line 1073) | protected getLabelValue() { method isValid (line 1081) | public isValid(): boolean { class TimestampCriterionOption (line 1106) | class TimestampCriterionOption extends ModifierCriterionOption { method constructor (line 1107) | constructor(messageID: string, value: CriterionType) { function createTimestampCriterionOption (line 1126) | function createTimestampCriterionOption(value: CriterionType) { class MandatoryTimestampCriterionOption (line 1130) | class MandatoryTimestampCriterionOption extends ModifierCriterionOption { method constructor (line 1131) | constructor(messageID: string, value: CriterionType) { function createMandatoryTimestampCriterionOption (line 1148) | function createMandatoryTimestampCriterionOption(value: CriterionType) { class TimestampCriterion (line 1152) | class TimestampCriterion extends ModifierCriterion { method constructor (line 1153) | constructor(type: ModifierCriterionOption) { method cloneValues (line 1157) | public cloneValues() { method toCriterionInput (line 1161) | public toCriterionInput(): TimestampCriterionInput { method setFromSavedCriterion (line 1171) | public setFromSavedCriterion(c: { method encodeValue (line 1180) | protected encodeValue(): unknown { method getLabelValue (line 1184) | protected getLabelValue() { method transformValueToInput (line 1192) | private transformValueToInput(value: string): string { method isValid (line 1201) | public isValid(): boolean { class UnsupportedCriterionOption (line 1226) | class UnsupportedCriterionOption extends StringCriterionOption { method constructor (line 1227) | constructor(type: string) { class UnsupportedCriterion (line 1236) | class UnsupportedCriterion extends StringCriterion { method getLabel (line 1237) | public getLabel(intl: IntlShape): string { method applyToCriterionInput (line 1264) | public applyToCriterionInput(): void { method applyToSavedCriterion (line 1268) | public applyToSavedCriterion(): void { method setFromSavedCriterion (line 1272) | public setFromSavedCriterion(): void { FILE: ui/v2.5/src/models/list-filter/criteria/custom-fields.ts function valueToString (line 9) | function valueToString(value: unknown[] | undefined | null) { class CustomFieldsCriterion (line 20) | class CustomFieldsCriterion extends Criterion { method constructor (line 23) | constructor() { method isValid (line 27) | public isValid(): boolean { method applyToCriterionInput (line 31) | public applyToCriterionInput(input: Record): void { method applyToSavedCriterion (line 35) | public applyToSavedCriterion(input: Record): void { method getLabel (line 39) | public getLabel(intl: IntlShape): string { method getValueLabel (line 78) | public getValueLabel(intl: IntlShape, v: CustomFieldCriterionInput): s... method toQueryParams (line 102) | public toQueryParams(): Record { method fromDecodedParams (line 110) | public fromDecodedParams(i: unknown): void { method setFromSavedCriterion (line 115) | public setFromSavedCriterion(input: CustomFieldCriterionInput[]): void { FILE: ui/v2.5/src/models/list-filter/criteria/favorite.ts class FavoritePerformerCriterion (line 9) | class FavoritePerformerCriterion extends BooleanCriterion { method constructor (line 10) | constructor() { class FavoriteTagCriterion (line 20) | class FavoriteTagCriterion extends BooleanCriterion { method constructor (line 21) | constructor() { class FavoriteStudioCriterion (line 32) | class FavoriteStudioCriterion extends BooleanCriterion { method constructor (line 33) | constructor() { class PerformerFavoriteCriterion (line 44) | class PerformerFavoriteCriterion extends BooleanCriterion { method constructor (line 45) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/folder.ts class FolderCriterion (line 32) | class FolderCriterion extends IHierarchicalLabeledIdCriterion { method constructor (line 33) | constructor() { method applyToCriterionInput (line 37) | public applyToCriterionInput(input: Record) { class ParentFolderCriterion (line 44) | class ParentFolderCriterion extends IHierarchicalLabeledIdCriterion { method constructor (line 45) | constructor() { method applyToCriterionInput (line 49) | public applyToCriterionInput(input: Record) { FILE: ui/v2.5/src/models/list-filter/criteria/galleries.ts class GalleriesCriterion (line 13) | class GalleriesCriterion extends ILabeledIdCriterion { method constructor (line 14) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/gender.ts class GenderCriterion (line 27) | class GenderCriterion extends MultiStringCriterion { method constructor (line 28) | constructor(value: string[] = []) { method toCriterionInput (line 32) | public toCriterionInput(): GenderCriterionInput { method setFromSavedCriterion (line 41) | public setFromSavedCriterion(criterion: ISavedCriterion) { FILE: ui/v2.5/src/models/list-filter/criteria/groups.ts class BaseGroupsCriterionOption (line 19) | class BaseGroupsCriterionOption extends ModifierCriterionOption { method constructor (line 20) | constructor(messageID: string, type: CriterionType) { class GroupsCriterion (line 37) | class GroupsCriterion extends IHierarchicalLabeledIdCriterion {} FILE: ui/v2.5/src/models/list-filter/criteria/has-chapters.ts class HasChaptersCriterion (line 12) | class HasChaptersCriterion extends StringBooleanCriterion { method constructor (line 13) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/has-markers.ts class HasMarkersCriterion (line 12) | class HasMarkersCriterion extends StringBooleanCriterion { method constructor (line 13) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/interactive.ts class InteractiveCriterion (line 9) | class InteractiveCriterion extends BooleanCriterion { method constructor (line 10) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/is-missing.ts class IsMissingCriterion (line 5) | class IsMissingCriterion extends StringCriterion { method toCriterionInput (line 6) | public toCriterionInput(): string { class IsMissingCriterionOption (line 11) | class IsMissingCriterionOption extends ModifierCriterionOption { method constructor (line 12) | constructor(messageID: string, type: CriterionType, options: Option[]) { FILE: ui/v2.5/src/models/list-filter/criteria/organized.ts class OrganizedCriterion (line 9) | class OrganizedCriterion extends BooleanCriterion { method constructor (line 10) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/orientation.ts class OrientationCriterion (line 9) | class OrientationCriterion extends MultiStringCriterion { method toCriterionInput (line 10) | public toCriterionInput(): OrientationCriterionInput { class BaseOrientationCriterionOption (line 19) | class BaseOrientationCriterionOption extends ModifierCriterionOption { method constructor (line 20) | constructor(value: CriterionType) { FILE: ui/v2.5/src/models/list-filter/criteria/path.ts class PathCriterion (line 11) | class PathCriterion extends StringCriterion { method constructor (line 12) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/performers.ts class PerformersCriterion (line 35) | class PerformersCriterion extends ModifierCriterion { method constructor (line 41) | constructor() { method cloneValues (line 45) | public cloneValues() { method getLabelValue (line 49) | protected getLabelValue() { method toCriterionInput (line 62) | public toCriterionInput(): PhashDistanceCriterionInput { class DuplicatedCriterion (line 79) | class DuplicatedCriterion extends ModifierCriterion { method constructor (line 80) | constructor() { method cloneValues (line 84) | public cloneValues() { method getLabel (line 89) | public getLabel(intl: IntlShape): string { method getLabelValue (line 117) | protected getLabelValue(intl: IntlShape): string { method toCriterionInput (line 122) | protected toCriterionInput(): DuplicationCriterionInput { method setFromSavedCriterion (line 134) | public setFromSavedCriterion(criterion: unknown): void { method isValid (line 157) | public isValid(): boolean { FILE: ui/v2.5/src/models/list-filter/criteria/rating.ts function getRatingSystemOptions (line 30) | function getRatingSystemOptions(config?: ConfigDataFragment) { class RatingCriterion (line 44) | class RatingCriterion extends ModifierCriterion { method constructor (line 47) | constructor(ratingSystem: RatingSystemOptions) { method cloneValues (line 52) | public cloneValues() { method value (line 56) | public get value(): INumberValue { method value (line 59) | public set value(newValue: number | INumberValue) { method toCriterionInput (line 71) | public toCriterionInput(): IntCriterionInput { method setFromSavedCriterion (line 79) | public setFromSavedCriterion(c: { method encodeValue (line 88) | protected encodeValue(): unknown { method getLabelValue (line 92) | protected getLabelValue() { FILE: ui/v2.5/src/models/list-filter/criteria/resolution.ts class BaseResolutionCriterionOption (line 14) | class BaseResolutionCriterionOption extends ModifierCriterionOption { method constructor (line 15) | constructor( class BaseResolutionCriterion (line 34) | class BaseResolutionCriterion extends StringCriterion { method toCriterionInput (line 35) | public toCriterionInput(): ResolutionCriterionInput | undefined { class ResolutionCriterion (line 52) | class ResolutionCriterion extends BaseResolutionCriterion { method constructor (line 53) | constructor() { class AverageResolutionCriterion (line 64) | class AverageResolutionCriterion extends BaseResolutionCriterion { method constructor (line 65) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/scenes.ts class ScenesCriterion (line 18) | class ScenesCriterion extends ILabeledIdCriterion { method constructor (line 19) | constructor() { class MarkersScenesCriterion (line 40) | class MarkersScenesCriterion extends ILabeledIdCriterion { method constructor (line 41) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/stash-ids.ts class StashIDCriterion (line 26) | class StashIDCriterion extends ModifierCriterion { method constructor (line 27) | constructor() { method cloneValues (line 34) | public cloneValues() { method value (line 38) | public get value(): IStashIDValue { method value (line 42) | public set value(newValue: string | IStashIDValue) { method toCriterionInput (line 54) | public toCriterionInput(): StashIdCriterionInput { method getLabel (line 62) | public getLabel(intl: IntlShape): string { method getLabelValue (line 88) | protected getLabelValue(_intl: IntlShape) { method setFromSavedCriterion (line 97) | public setFromSavedCriterion( method toQueryParams (line 118) | public toQueryParams(): Record { method isValid (line 140) | public isValid(): boolean { FILE: ui/v2.5/src/models/list-filter/criteria/studios.ts class StudiosCriterion (line 27) | class StudiosCriterion extends IHierarchicalLabeledIdCriterion { method constructor (line 28) | constructor() { class ParentStudiosCriterion (line 41) | class ParentStudiosCriterion extends ILabeledIdCriterion { method constructor (line 42) | constructor() { FILE: ui/v2.5/src/models/list-filter/criteria/tags.ts class BaseTagsCriterionOption (line 26) | class BaseTagsCriterionOption extends ModifierCriterionOption { method constructor (line 27) | constructor( class TagsCriterion (line 80) | class TagsCriterion extends IHierarchicalLabeledIdCriterion {} FILE: ui/v2.5/src/models/list-filter/factory.ts function getFilterOptions (line 12) | function getFilterOptions(mode: FilterMode): ListFilterOptions { FILE: ui/v2.5/src/models/list-filter/filter-options.ts type ISortByOption (line 4) | interface ISortByOption { class ListFilterOptions (line 20) | class ListFilterOptions { method createSortBy (line 26) | public static createSortBy(value: string): ISortByOption { method constructor (line 33) | constructor( FILE: ui/v2.5/src/models/list-filter/filter.ts type IDecodedParams (line 14) | interface IDecodedParams { type IEncodedParams (line 25) | interface IEncodedParams { constant DEFAULT_PARAMS (line 36) | const DEFAULT_PARAMS = { class ListFilterModel (line 44) | class ListFilterModel { method constructor (line 59) | public constructor( method clone (line 91) | public clone() { method empty (line 100) | public empty() { method metadataInfo (line 108) | public metadataInfo() { method count (line 121) | public count() { method configureFromDecodedParams (line 126) | public configureFromDecodedParams(params: IDecodedParams) { method decodeParams (line 184) | public static decodeParams(params: IEncodedParams): IDecodedParams { method translateJSON (line 221) | private static translateJSON(jsonString: string, decoding: boolean) { method configureFromQueryString (line 274) | public configureFromQueryString(queryString: string) { method configureFromSavedFilter (line 290) | public configureFromSavedFilter(savedFilter: SavedFilterDataFragment) { method setRandomSeed (line 323) | private setRandomSeed() { method getSortBy (line 335) | private getSortBy(): string | undefined { method getEncodedParams (line 346) | public getEncodedParams(): IEncodedParams { method makeQueryParameters (line 400) | public makeQueryParameters(): string { method makeCriterion (line 434) | public makeCriterion(type: CriterionType) { method makeFindFilter (line 446) | public makeFindFilter(): FindFilterType { method makeFilter (line 456) | public makeFilter() { method makeSavedFilter (line 465) | public makeSavedFilter() { method makeSavedUIOptions (line 473) | public makeSavedUIOptions(): SavedUIOptions { method criteriaFor (line 480) | public criteriaFor(type: CriterionType) { method replaceCriteria (line 484) | public replaceCriteria(type: CriterionType, newCriteria: Criterion[]) { method clearCriteria (line 493) | public clearCriteria(clearSearchTerm = false) { method clearSearchTerm (line 503) | public clearSearchTerm() { method setCriteria (line 510) | public setCriteria(criteria: Criterion[]) { method removeCriterion (line 516) | public removeCriterion(type: CriterionType) { method removeCustomFieldCriterion (line 531) | public removeCustomFieldCriterion(type: CriterionType, index: number) { method setPageSize (line 545) | public setPageSize(pageSize: number) { method setSortBy (line 552) | public setSortBy(sortBy: string | undefined) { method toggleSortDirection (line 559) | public toggleSortDirection() { method reshuffleRandomSort (line 572) | public reshuffleRandomSort() { method changePage (line 579) | public changePage(page: number) { method setZoom (line 585) | public setZoom(zoomIndex: number) { method setDisplayMode (line 591) | public setDisplayMode(displayMode: DisplayMode) { FILE: ui/v2.5/src/models/list-filter/types.ts type SavedObjectFilter (line 3) | type SavedObjectFilter = { type SavedUIOptions (line 7) | type SavedUIOptions = { type DisplayMode (line 14) | enum DisplayMode { type ILabeledId (line 21) | interface ILabeledId { type ILabeledValue (line 26) | interface ILabeledValue { type ILabeledValueListValue (line 31) | interface ILabeledValueListValue { type IHierarchicalLabelValue (line 36) | interface IHierarchicalLabelValue { type IRangeValue (line 42) | interface IRangeValue { type INumberValue (line 47) | type INumberValue = IRangeValue; type IDateValue (line 48) | type IDateValue = IRangeValue; type ITimestampValue (line 49) | type ITimestampValue = IRangeValue; type IDuplicationValue (line 50) | interface IDuplicationValue { type IStashIDValue (line 61) | interface IStashIDValue { type IPhashDistanceValue (line 66) | interface IPhashDistanceValue { function criterionIsHierarchicalLabelValue (line 71) | function criterionIsHierarchicalLabelValue( function criterionIsNumberValue (line 79) | function criterionIsNumberValue(value: unknown): value is INumberValue { function criterionIsStashIDValue (line 88) | function criterionIsStashIDValue( function criterionIsDateValue (line 99) | function criterionIsDateValue(value: unknown): value is IDateValue { function criterionIsTimestampValue (line 108) | function criterionIsTimestampValue( type IOptionType (line 119) | interface IOptionType { type CriterionType (line 125) | type CriterionType = FILE: ui/v2.5/src/models/list-filter/utils.ts function filterByStashID (line 5) | function filterByStashID(filter: ListFilterModel, stashID: string) { FILE: ui/v2.5/src/models/sceneQueue.ts type QueuedScene (line 5) | type QueuedScene = Pick & { type IPlaySceneOptions (line 10) | interface IPlaySceneOptions { class SceneQueue (line 18) | class SceneQueue { method fromListFilterModel (line 24) | public static fromListFilterModel(filter: ListFilterModel) { method fromSceneIDList (line 37) | public static fromSceneIDList(sceneIDs: string[]) { method makeQueryParameters (line 43) | private makeQueryParameters(sceneIndex?: number, page?: number) { method fromQueryParameters (line 87) | public static fromQueryParameters(params: URLSearchParams) { method makeLink (line 110) | public makeLink(sceneID: string, options: IPlaySceneOptions) { FILE: ui/v2.5/src/patch.tsx function before (line 12) | function before(component: string, fn: Function) { function instead (line 22) | function instead(component: string, fn: Function) { function after (line 29) | function after(component: string, fn: Function) { function RegisterComponent (line 36) | function RegisterComponent( function runInstead (line 57) | function runInstead( function PatchFunction (line 86) | function PatchFunction(name: string, fn: T) { function PatchComponent (line 108) | function PatchComponent( function PatchContainerComponent (line 120) | function PatchContainerComponent( FILE: ui/v2.5/src/pluginApi.d.ts type ISceneCardProps (line 631) | interface ISceneCardProps { type IScenePreviewProps (line 643) | interface IScenePreviewProps { type PatchableComponentNames (line 789) | type PatchableComponentNames = keyof typeof components | string; type ConnectionState (line 1057) | enum ConnectionState { type Handy (line 1067) | type Handy = typeof import("thehandy").default; type InteractiveAPI (line 1068) | type InteractiveAPI = { type MousetrapStatic (line 1129) | interface MousetrapStatic { type MousetrapInstance (line 1135) | interface MousetrapInstance { FILE: ui/v2.5/src/pluginApi.tsx function loadComponents (line 31) | async function loadComponents(c: (() => Promise)[]) { function useLoadComponents (line 37) | function useLoadComponents(toLoad: (() => Promise)[]) { function registerRoute (line 54) | function registerRoute(path: string, component: React.FC) { type IWindow (line 193) | interface IWindow { FILE: ui/v2.5/src/plugins.tsx type PluginList (line 12) | type PluginList = NonNullable>; function sortPlugins (line 15) | function sortPlugins(plugins: PluginList) { function useLoadPlugins (line 63) | function useLoadPlugins(disableCustomizations?: boolean) { type IPluginsLoaderProps (line 122) | interface IPluginsLoaderProps { FILE: ui/v2.5/src/polyfills.ts function checkPolyfills (line 13) | async function checkPolyfills() { FILE: ui/v2.5/src/serviceWorker.ts type IConfig (line 25) | interface IConfig { function registerValidSW (line 30) | function registerValidSW(swUrl: string, config?: IConfig) { function checkValidServiceWorker (line 75) | function checkValidServiceWorker(swUrl: string, config?: IConfig) { function register (line 103) | function register(config?: IConfig) { function unregister (line 137) | function unregister() { FILE: ui/v2.5/src/utils/apple.ts function isPlatformUniquelyRenderedByApple (line 3) | function isPlatformUniquelyRenderedByApple() { FILE: ui/v2.5/src/utils/bulkUpdate.ts type IHasRating (line 5) | interface IHasRating { function getAggregateRating (line 9) | function getAggregateRating(state: IHasRating[]) { type IHasStudio (line 25) | interface IHasStudio { function getAggregateStudioId (line 29) | function getAggregateStudioId(state: IHasStudio[]) { function getAggregateIds (line 48) | function getAggregateIds( function getAggregateGalleryIds (line 69) | function getAggregateGalleryIds(state: { galleries: IHasID[] }[]) { function getAggregatePerformerIds (line 74) | function getAggregatePerformerIds(state: { performers: IHasID[] }[]) { function getAggregateTagIds (line 79) | function getAggregateTagIds(state: { tags: IHasID[] }[]) { function getAggregateSceneIds (line 84) | function getAggregateSceneIds(state: { scenes: IHasID[] }[]) { type IGroup (line 89) | interface IGroup { function getAggregateGroupIds (line 93) | function getAggregateGroupIds(state: { groups: IGroup[] }[]) { function makeBulkUpdateIds (line 100) | function makeBulkUpdateIds( function getAggregateInputValue (line 110) | function getAggregateInputValue( function getAggregateInputIDs (line 129) | function getAggregateInputIDs( function getAggregateState (line 151) | function getAggregateState( function setProperty (line 164) | function setProperty(obj: T, key: K, value: any) { function getProperty (line 168) | function getProperty(obj: T, key: K) { function getAggregateStateObject (line 172) | function getAggregateStateObject( FILE: ui/v2.5/src/utils/data.ts type IHasID (line 4) | interface IHasID { type ITypename (line 8) | interface ITypename { function withoutTypename (line 22) | function withoutTypename( function excludeFields (line 39) | function excludeFields( type IHasStoredID (line 50) | interface IHasStoredID { function sortStoredIdObjects (line 54) | function sortStoredIdObjects( function uniqIDStoredIDs (line 74) | function uniqIDStoredIDs(objs: T[]) { FILE: ui/v2.5/src/utils/dlnaVideoSort.ts type VideoSortOrder (line 1) | enum VideoSortOrder { FILE: ui/v2.5/src/utils/errors.ts function errorToString (line 6) | function errorToString(error: unknown) { FILE: ui/v2.5/src/utils/field.tsx type ITextField (line 7) | interface ITextField { type IURLField (line 41) | interface IURLField { function maybeRenderUrl (line 71) | function maybeRenderUrl() { type IURLsField (line 99) | interface IURLsField { FILE: ui/v2.5/src/utils/flattenMessages.ts type NestedMessage (line 1) | type NestedMessage = { [key: string]: NestedMessage | string }; FILE: ui/v2.5/src/utils/form.tsx function getLabelProps (line 23) | function getLabelProps(labelProps?: FormLabelProps) { function renderLabel (line 35) | function renderLabel(options: { function useStopWheelScroll (line 50) | function useStopWheelScroll(ref: React.RefObject) { type Formik (line 84) | type Formik = ReturnType>; type IProps (line 86) | interface IProps { function formikUtils (line 91) | function formikUtils( FILE: ui/v2.5/src/utils/history.ts type History (line 3) | type History = ReturnType; function goBackOrReplace (line 5) | function goBackOrReplace(history: History, defaultPath: string) { FILE: ui/v2.5/src/utils/imageWall.ts type ImageWallDirection (line 1) | enum ImageWallDirection { type ImageWallOptions (line 6) | type ImageWallOptions = { FILE: ui/v2.5/src/utils/job.ts type JobFragment (line 11) | type JobFragment = Pick< FILE: ui/v2.5/src/utils/keyboard.ts function keyboardClickHandler (line 1) | function keyboardClickHandler(onClick: () => void) { FILE: ui/v2.5/src/utils/lazyComponent.ts type ILazyComponentError (line 3) | interface ILazyComponentError { FILE: ui/v2.5/src/utils/navigation.ts function addExtraCriteria (line 37) | function addExtraCriteria(dest: Criterion[], src?: Criterion[]) { type INamedObject (line 85) | interface INamedObject { function makeTagFilter (line 287) | function makeTagFilter(mode: GQL.FilterMode, tag: INamedObject) { type SceneMarkerDataFragment (line 327) | type SceneMarkerDataFragment = Pick & { function stringEqualsCriterion (line 367) | function stringEqualsCriterion(option: ModifierCriterionOption, value: s... function handleUnsavedChanges (line 465) | function handleUnsavedChanges( FILE: ui/v2.5/src/utils/query.ts type ISortable (line 1) | interface ISortable { function sortByRelevance (line 14) | function sortByRelevance( FILE: ui/v2.5/src/utils/rating.ts type RatingSystemType (line 1) | enum RatingSystemType { type RatingStarPrecision (line 6) | enum RatingStarPrecision { type RatingSystemOptions (line 47) | type RatingSystemOptions = { function round (line 57) | function round(value: number, step: number) { function getRatingPrecision (line 66) | function getRatingPrecision(precision: RatingStarPrecision) { function convertToRatingFormat (line 81) | function convertToRatingFormat( function convertFromRatingFormat (line 101) | function convertFromRatingFormat( FILE: ui/v2.5/src/utils/screen.ts function matchesMediaQuery (line 8) | function matchesMediaQuery(query: string) { FILE: ui/v2.5/src/utils/stashIds.ts constant UUID_PATTERN (line 13) | const UUID_PATTERN = function isUUID (line 16) | function isUUID(input: string): boolean { FILE: ui/v2.5/src/utils/stashbox.ts function stashboxDisplayName (line 3) | function stashboxDisplayName(name: string, index: number) { function mergeStashIDs (line 12) | function mergeStashIDs(dest: StashIdInput[], src: StashIdInput[]) { FILE: ui/v2.5/src/utils/text.ts type Unit (line 4) | type Unit = class DurationUnit (line 39) | class DurationUnit { method constructor (line 93) | private constructor( method toString (line 100) | toString() { class DurationCount (line 105) | class DurationCount { method constructor (line 106) | public constructor( method toString (line 111) | toString() { function dateToString (line 323) | function dateToString(date: Date) { function dateTimeToString (line 329) | function dateTimeToString(date: Date) { type CountUnit (line 501) | type CountUnit = "" | "K" | "M" | "B"; FILE: ui/v2.5/src/utils/units.ts function cmToImperial (line 1) | function cmToImperial(cm: number) { function kgToLbs (line 9) | function kgToLbs(kg: number) { function cmToInches (line 13) | function cmToInches(cm: number) { function remToPx (line 19) | function remToPx(rem: number) { FILE: ui/v2.5/src/utils/visualFile.ts function isVideo (line 4) | function isVideo(o: { FILE: ui/v2.5/src/utils/yup.ts function yupRequiredStringArray (line 9) | function yupRequiredStringArray(intl: IntlShape) { function yupUniqueStringList (line 56) | function yupUniqueStringList(intl: IntlShape) { function validateDateString (line 95) | function validateDateString(value?: string) { function getDateError (line 116) | function getDateError( function yupDateString (line 126) | function yupDateString(intl: IntlShape) { type StringEnum (line 139) | type StringEnum = { function yupInputEnum (line 145) | function yupInputEnum(e: StringEnum) { function yupInputNumber (line 157) | function yupInputNumber() { function yupFormikValidate (line 165) | function yupFormikValidate(