Skip to content

Filter Operations

Operations for saving and managing search filters.

See also

find_saved_filter() and find_saved_filters() are in Configuration.

Bases: StashClientProtocol

Mixin for filter-related client methods.

Functions

save_filter async

save_filter(
    input_data: SaveFilterInput | dict[str, Any],
) -> SavedFilter

Save or update a filter.

Parameters:

Name Type Description Default
input_data SaveFilterInput | dict[str, Any]

SaveFilterInput object or dictionary containing: - mode: FilterMode (required) - Type of filter (SCENES, PERFORMERS, etc.) - name: str (required) - Name of the filter - id: str (optional) - If provided, updates existing filter - find_filter: FindFilterType (optional) - General filter parameters - object_filter: dict (optional) - Type-specific filter criteria - ui_options: dict (optional) - UI display options

required

Returns:

Type Description
SavedFilter

SavedFilter object with the saved filter data

Examples:

Save a new filter:

from stash_graphql_client.types import SaveFilterInput, FilterMode

input_data = SaveFilterInput(
    mode=FilterMode.SCENES,
    name="My Favorite Scenes",
    find_filter={"per_page": 25},
    object_filter={"is_missing": "performers"}
)
saved_filter = await client.save_filter(input_data)

Update an existing filter:

input_data = SaveFilterInput(
    id="123",
    mode=FilterMode.SCENES,
    name="Updated Filter Name"
)
saved_filter = await client.save_filter(input_data)

destroy_saved_filter async

destroy_saved_filter(
    input_data: DestroyFilterInput | dict[str, Any],
) -> bool

Delete a saved filter.

Parameters:

Name Type Description Default
input_data DestroyFilterInput | dict[str, Any]

DestroyFilterInput object or dictionary containing: - id: Filter ID to delete (required)

required

Returns:

Type Description
bool

True if the filter was successfully deleted

Examples:

from stash_graphql_client.types import DestroyFilterInput

input_data = DestroyFilterInput(id="123")
success = await client.destroy_saved_filter(input_data)

Using a dictionary:

success = await client.destroy_saved_filter({"id": "123"})