mirror of
https://github.com/onyx-and-iris/obsws-cli.git
synced 2025-08-08 04:31:49 +00:00
Compare commits
No commits in common. "4bae164124335c16b39396d3050388c0f02728e5" and "bf9cb5bc2213f6469bc8d1df40a756d8a1232cee" have entirely different histories.
4bae164124
...
bf9cb5bc22
@ -1,4 +1,4 @@
|
|||||||
# SPDX-FileCopyrightText: 2025-present onyx-and-iris <code@onyxandiris.online>
|
# SPDX-FileCopyrightText: 2025-present onyx-and-iris <code@onyxandiris.online>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
__version__ = "0.10.2"
|
__version__ = "0.10.1"
|
||||||
|
@ -18,7 +18,10 @@ def main():
|
|||||||
def list(ctx: typer.Context, scene_name: str):
|
def list(ctx: typer.Context, scene_name: str):
|
||||||
"""List groups in a scene."""
|
"""List groups in a scene."""
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Scene '{scene_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
resp = ctx.obj.get_scene_item_list(scene_name)
|
resp = ctx.obj.get_scene_item_list(scene_name)
|
||||||
@ -45,12 +48,18 @@ def _get_group(group_name: str, resp: DataclassProtocol) -> dict | None:
|
|||||||
def show(ctx: typer.Context, scene_name: str, group_name: str):
|
def show(ctx: typer.Context, scene_name: str, group_name: str):
|
||||||
"""Show a group in a scene."""
|
"""Show a group in a scene."""
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Scene '{scene_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
resp = ctx.obj.get_scene_item_list(scene_name)
|
resp = ctx.obj.get_scene_item_list(scene_name)
|
||||||
if (group := _get_group(group_name, resp)) is None:
|
if (group := _get_group(group_name, resp)) is None:
|
||||||
typer.echo(f"Group '{group_name}' not found in scene {scene_name}.", err=True)
|
typer.echo(
|
||||||
|
f"Group '{group_name}' not found in scene {scene_name}.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.set_scene_item_enabled(
|
ctx.obj.set_scene_item_enabled(
|
||||||
@ -66,12 +75,18 @@ def show(ctx: typer.Context, scene_name: str, group_name: str):
|
|||||||
def hide(ctx: typer.Context, scene_name: str, group_name: str):
|
def hide(ctx: typer.Context, scene_name: str, group_name: str):
|
||||||
"""Hide a group in a scene."""
|
"""Hide a group in a scene."""
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Scene '{scene_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
resp = ctx.obj.get_scene_item_list(scene_name)
|
resp = ctx.obj.get_scene_item_list(scene_name)
|
||||||
if (group := _get_group(group_name, resp)) is None:
|
if (group := _get_group(group_name, resp)) is None:
|
||||||
typer.echo(f"Group '{group_name}' not found in scene {scene_name}.", err=True)
|
typer.echo(
|
||||||
|
f"Group '{group_name}' not found in scene {scene_name}.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.set_scene_item_enabled(
|
ctx.obj.set_scene_item_enabled(
|
||||||
@ -87,12 +102,18 @@ def hide(ctx: typer.Context, scene_name: str, group_name: str):
|
|||||||
def toggle(ctx: typer.Context, scene_name: str, group_name: str):
|
def toggle(ctx: typer.Context, scene_name: str, group_name: str):
|
||||||
"""Toggle a group in a scene."""
|
"""Toggle a group in a scene."""
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Scene '{scene_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
resp = ctx.obj.get_scene_item_list(scene_name)
|
resp = ctx.obj.get_scene_item_list(scene_name)
|
||||||
if (group := _get_group(group_name, resp)) is None:
|
if (group := _get_group(group_name, resp)) is None:
|
||||||
typer.echo(f"Group '{group_name}' not found in scene {scene_name}.", err=True)
|
typer.echo(
|
||||||
|
f"Group '{group_name}' not found in scene {scene_name}.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
new_state = not group.get('sceneItemEnabled')
|
new_state = not group.get('sceneItemEnabled')
|
||||||
@ -112,12 +133,18 @@ def toggle(ctx: typer.Context, scene_name: str, group_name: str):
|
|||||||
def status(ctx: typer.Context, scene_name: str, group_name: str):
|
def status(ctx: typer.Context, scene_name: str, group_name: str):
|
||||||
"""Get the status of a group in a scene."""
|
"""Get the status of a group in a scene."""
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Scene '{scene_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
resp = ctx.obj.get_scene_item_list(scene_name)
|
resp = ctx.obj.get_scene_item_list(scene_name)
|
||||||
if (group := _get_group(group_name, resp)) is None:
|
if (group := _get_group(group_name, resp)) is None:
|
||||||
typer.echo(f"Group '{group_name}' not found in scene {scene_name}.", err=True)
|
typer.echo(
|
||||||
|
f"Group '{group_name}' not found in scene {scene_name}.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
enabled = ctx.obj.get_scene_item_enabled(
|
enabled = ctx.obj.get_scene_item_enabled(
|
||||||
|
@ -46,7 +46,10 @@ def list(
|
|||||||
def mute(ctx: typer.Context, input_name: str):
|
def mute(ctx: typer.Context, input_name: str):
|
||||||
"""Mute an input."""
|
"""Mute an input."""
|
||||||
if not validate.input_in_inputs(ctx, input_name):
|
if not validate.input_in_inputs(ctx, input_name):
|
||||||
typer.echo(f"Input '{input_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Input '{input_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.set_input_mute(
|
ctx.obj.set_input_mute(
|
||||||
@ -61,7 +64,10 @@ def mute(ctx: typer.Context, input_name: str):
|
|||||||
def unmute(ctx: typer.Context, input_name: str):
|
def unmute(ctx: typer.Context, input_name: str):
|
||||||
"""Unmute an input."""
|
"""Unmute an input."""
|
||||||
if not validate.input_in_inputs(ctx, input_name):
|
if not validate.input_in_inputs(ctx, input_name):
|
||||||
typer.echo(f"Input '{input_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Input '{input_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.set_input_mute(
|
ctx.obj.set_input_mute(
|
||||||
@ -76,7 +82,10 @@ def unmute(ctx: typer.Context, input_name: str):
|
|||||||
def toggle(ctx: typer.Context, input_name: str):
|
def toggle(ctx: typer.Context, input_name: str):
|
||||||
"""Toggle an input."""
|
"""Toggle an input."""
|
||||||
if not validate.input_in_inputs(ctx, input_name):
|
if not validate.input_in_inputs(ctx, input_name):
|
||||||
typer.echo(f"Input '{input_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Input '{input_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
# Get the current mute state
|
# Get the current mute state
|
||||||
|
@ -32,13 +32,17 @@ def current(ctx: typer.Context):
|
|||||||
def switch(ctx: typer.Context, profile_name: str):
|
def switch(ctx: typer.Context, profile_name: str):
|
||||||
"""Switch to a profile."""
|
"""Switch to a profile."""
|
||||||
if not validate.profile_exists(ctx, profile_name):
|
if not validate.profile_exists(ctx, profile_name):
|
||||||
typer.echo(f"Profile '{profile_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Profile '{profile_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
resp = ctx.obj.get_profile_list()
|
resp = ctx.obj.get_profile_list()
|
||||||
if resp.current_profile_name == profile_name:
|
if resp.current_profile_name == profile_name:
|
||||||
typer.echo(
|
typer.echo(
|
||||||
f"Profile '{profile_name}' is already the current profile.", err=True
|
f"Profile '{profile_name}' is already the current profile.",
|
||||||
|
err=True,
|
||||||
)
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
@ -50,7 +54,10 @@ def switch(ctx: typer.Context, profile_name: str):
|
|||||||
def create(ctx: typer.Context, profile_name: str):
|
def create(ctx: typer.Context, profile_name: str):
|
||||||
"""Create a new profile."""
|
"""Create a new profile."""
|
||||||
if validate.profile_exists(ctx, profile_name):
|
if validate.profile_exists(ctx, profile_name):
|
||||||
typer.echo(f"Profile '{profile_name}' already exists.", err=True)
|
typer.echo(
|
||||||
|
f"Profile '{profile_name}' already exists.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.create_profile(profile_name)
|
ctx.obj.create_profile(profile_name)
|
||||||
@ -61,7 +68,10 @@ def create(ctx: typer.Context, profile_name: str):
|
|||||||
def remove(ctx: typer.Context, profile_name: str):
|
def remove(ctx: typer.Context, profile_name: str):
|
||||||
"""Remove a profile."""
|
"""Remove a profile."""
|
||||||
if not validate.profile_exists(ctx, profile_name):
|
if not validate.profile_exists(ctx, profile_name):
|
||||||
typer.echo(f"Profile '{profile_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Profile '{profile_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.remove_profile(profile_name)
|
ctx.obj.remove_profile(profile_name)
|
||||||
|
@ -27,7 +27,7 @@ def start(ctx: typer.Context):
|
|||||||
if paused:
|
if paused:
|
||||||
err_msg += ' Try resuming it.'
|
err_msg += ' Try resuming it.'
|
||||||
|
|
||||||
typer.echo(err_msg, err=True)
|
typer.echo(err_msg)
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
ctx.obj.start_record()
|
ctx.obj.start_record()
|
||||||
@ -39,7 +39,7 @@ def stop(ctx: typer.Context):
|
|||||||
"""Stop recording."""
|
"""Stop recording."""
|
||||||
active, _ = _get_recording_status(ctx)
|
active, _ = _get_recording_status(ctx)
|
||||||
if not active:
|
if not active:
|
||||||
typer.echo('Recording is not in progress, cannot stop.', err=True)
|
typer.echo('Recording is not in progress, cannot stop.')
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
ctx.obj.stop_record()
|
ctx.obj.stop_record()
|
||||||
@ -74,10 +74,10 @@ def resume(ctx: typer.Context):
|
|||||||
"""Resume recording."""
|
"""Resume recording."""
|
||||||
active, paused = _get_recording_status(ctx)
|
active, paused = _get_recording_status(ctx)
|
||||||
if not active:
|
if not active:
|
||||||
typer.echo('Recording is not in progress, cannot resume.', err=True)
|
typer.echo('Recording is not in progress, cannot resume.')
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
if not paused:
|
if not paused:
|
||||||
typer.echo('Recording is in progress but not paused, cannot resume.', err=True)
|
typer.echo('Recording is in progress but not paused, cannot resume.')
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
ctx.obj.resume_record()
|
ctx.obj.resume_record()
|
||||||
@ -89,12 +89,10 @@ def pause(ctx: typer.Context):
|
|||||||
"""Pause recording."""
|
"""Pause recording."""
|
||||||
active, paused = _get_recording_status(ctx)
|
active, paused = _get_recording_status(ctx)
|
||||||
if not active:
|
if not active:
|
||||||
typer.echo('Recording is not in progress, cannot pause.', err=True)
|
typer.echo('Recording is not in progress, cannot pause.')
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
if paused:
|
if paused:
|
||||||
typer.echo(
|
typer.echo('Recording is in progress but already paused, cannot pause.')
|
||||||
'Recording is in progress but already paused, cannot pause.', err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
ctx.obj.pause_record()
|
ctx.obj.pause_record()
|
||||||
|
@ -32,7 +32,7 @@ def current(
|
|||||||
):
|
):
|
||||||
"""Get the current program scene or preview scene."""
|
"""Get the current program scene or preview scene."""
|
||||||
if preview and not validate.studio_mode_enabled(ctx):
|
if preview and not validate.studio_mode_enabled(ctx):
|
||||||
typer.echo('Studio mode is not enabled, cannot get preview scene.', err=True)
|
typer.echo('Studio mode is not enabled, cannot get preview scene.')
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
if preview:
|
if preview:
|
||||||
@ -54,13 +54,14 @@ def switch(
|
|||||||
):
|
):
|
||||||
"""Switch to a scene."""
|
"""Switch to a scene."""
|
||||||
if preview and not validate.studio_mode_enabled(ctx):
|
if preview and not validate.studio_mode_enabled(ctx):
|
||||||
typer.echo(
|
typer.echo('Studio mode is not enabled, cannot set the preview scene.')
|
||||||
'Studio mode is not enabled, cannot set the preview scene.', err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(
|
||||||
|
f"Scene '{scene_name}' not found.",
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
if preview:
|
if preview:
|
||||||
|
@ -20,7 +20,7 @@ def main():
|
|||||||
def list(ctx: typer.Context, scene_name: str):
|
def list(ctx: typer.Context, scene_name: str):
|
||||||
"""List all items in a scene."""
|
"""List all items in a scene."""
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(f"Scene '{scene_name}' not found.")
|
||||||
typer.Exit(code=1)
|
typer.Exit(code=1)
|
||||||
|
|
||||||
resp = ctx.obj.get_scene_item_list(scene_name)
|
resp = ctx.obj.get_scene_item_list(scene_name)
|
||||||
@ -40,21 +40,18 @@ def _validate_scene_name_and_item_name(
|
|||||||
parent: Optional[str] = None,
|
parent: Optional[str] = None,
|
||||||
):
|
):
|
||||||
if not validate.scene_in_scenes(ctx, scene_name):
|
if not validate.scene_in_scenes(ctx, scene_name):
|
||||||
typer.echo(f"Scene '{scene_name}' not found.", err=True)
|
typer.echo(f"Scene '{scene_name}' not found.")
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
if parent:
|
if parent:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
||||||
typer.echo(
|
typer.echo(
|
||||||
f"Parent group '{parent}' not found in scene '{scene_name}'.",
|
f"Parent group '{parent}' not found in scene '{scene_name}'."
|
||||||
err=True,
|
|
||||||
)
|
)
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
else:
|
else:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
||||||
typer.echo(
|
typer.echo(f"Item '{item_name}' not found in scene '{scene_name}'.")
|
||||||
f"Item '{item_name}' not found in scene '{scene_name}'.", err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
return func(ctx, scene_name, item_name, parent)
|
return func(ctx, scene_name, item_name, parent)
|
||||||
@ -73,7 +70,7 @@ def _get_scene_name_and_item_id(
|
|||||||
scene_item_id = item.get('sceneItemId')
|
scene_item_id = item.get('sceneItemId')
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
typer.echo(f"Item '{item_name}' not found in group '{parent}'.", err=True)
|
typer.echo(f"Item '{item_name}' not found in group '{parent}'.")
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
else:
|
else:
|
||||||
resp = ctx.obj.get_scene_item_id(scene_name, item_name)
|
resp = ctx.obj.get_scene_item_id(scene_name, item_name)
|
||||||
@ -141,15 +138,11 @@ def toggle(
|
|||||||
|
|
||||||
if parent:
|
if parent:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
||||||
typer.echo(
|
typer.echo(f"Parent group '{parent}' not found in scene '{scene_name}'.")
|
||||||
f"Parent group '{parent}' not found in scene '{scene_name}'.", err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
else:
|
else:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
||||||
typer.echo(
|
typer.echo(f"Item '{item_name}' not found in scene '{scene_name}'.")
|
||||||
f"Item '{item_name}' not found in scene '{scene_name}'.", err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
scene_name, scene_item_id = _get_scene_name_and_item_id(
|
scene_name, scene_item_id = _get_scene_name_and_item_id(
|
||||||
@ -184,15 +177,11 @@ def visible(
|
|||||||
"""Check if an item in a scene is visible."""
|
"""Check if an item in a scene is visible."""
|
||||||
if parent:
|
if parent:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
||||||
typer.echo(
|
typer.echo(f"Parent group '{parent}' not found in scene '{scene_name}'.")
|
||||||
f"Parent group '{parent}' not found in scene '{scene_name}'.", err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
else:
|
else:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
||||||
typer.echo(
|
typer.echo(f"Item '{item_name}' not found in scene '{scene_name}'.")
|
||||||
f"Item '{item_name}' not found in scene '{scene_name}'.", err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
old_scene_name = scene_name
|
old_scene_name = scene_name
|
||||||
@ -275,15 +264,11 @@ def transform(
|
|||||||
"""Set the transform of an item in a scene."""
|
"""Set the transform of an item in a scene."""
|
||||||
if parent:
|
if parent:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
if not validate.item_in_scene_item_list(ctx, scene_name, parent):
|
||||||
typer.echo(
|
typer.echo(f"Parent group '{parent}' not found in scene '{scene_name}'.")
|
||||||
f"Parent group '{parent}' not found in scene '{scene_name}'.", err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
else:
|
else:
|
||||||
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
if not validate.item_in_scene_item_list(ctx, scene_name, item_name):
|
||||||
typer.echo(
|
typer.echo(f"Item '{item_name}' not found in scene '{scene_name}'.")
|
||||||
f"Item '{item_name}' not found in scene '{scene_name}'.", err=True
|
|
||||||
)
|
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
old_scene_name = scene_name
|
old_scene_name = scene_name
|
||||||
@ -324,7 +309,7 @@ def transform(
|
|||||||
transform['scaleY'] = scale_y
|
transform['scaleY'] = scale_y
|
||||||
|
|
||||||
if not transform:
|
if not transform:
|
||||||
typer.echo('No transform options provided.', err=True)
|
typer.echo('No transform options provided.')
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
transform = ctx.obj.set_scene_item_transform(
|
transform = ctx.obj.set_scene_item_transform(
|
||||||
|
@ -23,7 +23,7 @@ def start(ctx: typer.Context):
|
|||||||
"""Start streaming."""
|
"""Start streaming."""
|
||||||
active, _ = _get_streaming_status(ctx)
|
active, _ = _get_streaming_status(ctx)
|
||||||
if active:
|
if active:
|
||||||
typer.echo('Streaming is already in progress, cannot start.', err=True)
|
typer.echo('Streaming is already in progress, cannot start.')
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.start_stream()
|
ctx.obj.start_stream()
|
||||||
@ -35,7 +35,7 @@ def stop(ctx: typer.Context):
|
|||||||
"""Stop streaming."""
|
"""Stop streaming."""
|
||||||
active, _ = _get_streaming_status(ctx)
|
active, _ = _get_streaming_status(ctx)
|
||||||
if not active:
|
if not active:
|
||||||
typer.echo('Streaming is not in progress, cannot stop.', err=True)
|
typer.echo('Streaming is not in progress, cannot stop.')
|
||||||
raise typer.Exit(code=1)
|
raise typer.Exit(code=1)
|
||||||
|
|
||||||
ctx.obj.stop_stream()
|
ctx.obj.stop_stream()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user