Help us shape the future of Go! Take the 2026 Go Developer Survey

stashbox

package
v0.31.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: AGPL-3.0 Imports: 24 Imported by: 0

Documentation

Overview

Package stashbox provides a client interface to a stash-box server instance.

Index

Constants

View Source
const DefaultMaxRequestsPerMinute = 240

DefaultMaxRequestsPerMinute is the default maximum number of requests per minute.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client represents the client interface to a stash-box server instance.

func NewClient

func NewClient(box models.StashBox, options ...ClientOption) *Client

NewClient returns a new instance of a stash-box client.

func (Client) FindPerformerByID

func (c Client) FindPerformerByID(ctx context.Context, id string) (*models.ScrapedPerformer, error)

FindPerformerByID queries stash-box for a performer by ID.

func (Client) FindPerformerByName

func (c Client) FindPerformerByName(ctx context.Context, name string) (*models.ScrapedPerformer, error)

FindPerformerByName queries stash-box for a performer by name. Unlike QueryPerformer, this function will only return a performer if the name matches exactly.

func (Client) FindSceneByFingerprints

func (c Client) FindSceneByFingerprints(ctx context.Context, fps models.Fingerprints) ([]*models.ScrapedScene, error)

FindStashBoxScenesByFingerprints queries stash-box for a scene using the scene's MD5/OSHASH checksum, or PHash.

func (Client) FindScenesByFingerprints

func (c Client) FindScenesByFingerprints(ctx context.Context, fps []models.Fingerprints) ([][]*models.ScrapedScene, error)

FindScenesByFingerprints queries stash-box for scenes using every scene's MD5/OSHASH checksum, or PHash, and returns results in the same order as the input slice.

func (Client) FindStudio

func (c Client) FindStudio(ctx context.Context, query string) (*models.ScrapedStudio, error)

func (Client) GetUser

func (c Client) GetUser(ctx context.Context) (*graphql.Me, error)

func (Client) QueryPerformer

func (c Client) QueryPerformer(ctx context.Context, queryStr string) ([]*models.ScrapedPerformer, error)

QueryPerformer queries stash-box for performers using a query string.

func (Client) QueryPerformers

func (c Client) QueryPerformers(ctx context.Context, names []string) ([][]*models.ScrapedPerformer, error)

QueryPerformers queries stash-box for performers using a list of names.

func (Client) QueryScene

func (c Client) QueryScene(ctx context.Context, queryStr string) ([]*models.ScrapedScene, error)

QueryScene queries stash-box for scenes using a query string.

func (Client) QueryTag added in v0.30.0

func (c Client) QueryTag(ctx context.Context, query string) ([]*models.ScrapedTag, error)

QueryTag searches for tags by name or ID. If query is a valid UUID, it searches by ID (returns single result). Otherwise, it searches by name (returns multiple results).

func (Client) SubmitFingerprints

func (c Client) SubmitFingerprints(ctx context.Context, scenes []*models.Scene) (bool, error)

func (Client) SubmitPerformerDraft

func (c Client) SubmitPerformerDraft(ctx context.Context, performer *models.Performer, img []byte) (*string, error)

SubmitPerformerDraft submits a performer draft to stash-box. The performer parameter must have aliases, URLs and stash IDs loaded.

func (Client) SubmitSceneDraft

func (c Client) SubmitSceneDraft(ctx context.Context, d SceneDraft) (*string, error)

type ClientOption

type ClientOption func(*Client)

func ExcludeTagPatterns

func ExcludeTagPatterns(patterns []string) ClientOption

func MaxRequestsPerMinute

func MaxRequestsPerMinute(n int) ClientOption

type SceneDraft

type SceneDraft struct {
	// Files, URLs, StashIDs must be loaded
	Scene *models.Scene
	// StashIDs must be loaded
	Performers []*models.Performer
	// StashIDs must be loaded
	Studio *models.Studio
	// StashIDs must be loaded
	Tags  []*models.Tag
	Cover []byte
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL