add --parent flag to scene-item visible

upd readme

patch bump
This commit is contained in:
onyx-and-iris 2025-04-21 13:03:28 +01:00
parent 0267c2ec78
commit ae52e754d2
3 changed files with 39 additions and 15 deletions

View File

@ -127,14 +127,18 @@ obsws-cli scene-item hide START "Colour Source"
- args: <scene_name> <item_name>
```console
obsws-cli scene-item toggle --parent=test_group START "Colour Source 4"
obsws-cli scene-item toggle --parent=test_group START "Colour Source 3"
```
- visible: Check if an item in a scene is visible.
- flags:
*optional*
- --parent: Parent group name
- args: <scene_name> <item_name>
```console
obsws-cli scene-item visible START "Colour Source"
obsws-cli scene-item visible --parent=test_group START "Colour Source 4"
```
#### Scene Collections

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2025-present onyx-and-iris <code@onyxandiris.online>
#
# SPDX-License-Identifier: MIT
__version__ = "0.6.4"
__version__ = "0.6.5"

View File

@ -150,21 +150,41 @@ def toggle(
@app.command()
def visible(ctx: typer.Context, scene_name: str, item_name: str):
def visible(
ctx: typer.Context,
scene_name: str,
item_name: str,
parent: Annotated[str, typer.Option(help='Parent group name')] = None,
):
"""Check if an item in a scene is visible."""
if not validate.scene_in_scenes(ctx, scene_name):
typer.echo(f"Scene '{scene_name}' not found.")
if parent:
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
typer.echo(f"Parent group '{parent}' not found in scene '{scene_name}'.")
raise typer.Exit(code=1)
else:
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
typer.echo(f"Item '{item_name}' not found in scene '{scene_name}'.")
raise typer.Exit(code=1)
resp = ctx.obj['obsws'].get_scene_item_id(scene_name, item_name)
old_scene_name = scene_name
scene_name, scene_item_id = _get_scene_name_and_item_id(
ctx, scene_name, item_name, parent
)
enabled = ctx.obj['obsws'].get_scene_item_enabled(
scene_name=scene_name,
item_id=int(resp.scene_item_id),
item_id=int(scene_item_id),
)
if parent:
typer.echo(
f"Item '{item_name}' in group '{parent}' in scene '{old_scene_name}' is currently {'visible' if enabled.scene_item_enabled else 'hidden'}."
)
else:
# If not in a parent group, just show the scene name
# This is to avoid confusion with the parent group name
# which is not the same as the scene name
# and is not needed in this case
typer.echo(
f"Item '{item_name}' in scene '{scene_name}' is currently {'visible' if enabled.scene_item_enabled else 'hidden'}."
)