stashbox

package
v0.30.0 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2025 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