mirror of
https://github.com/onyx-and-iris/obsws-cli.git
synced 2025-06-07 20:20:32 +01:00
add filter commands
This commit is contained in:
parent
e72d1d2eb8
commit
eaa66f0bd5
29
README.md
29
README.md
@ -486,6 +486,35 @@ obsws-cli hotkey trigger-sequence OBS_KEY_F1 --ctrl
|
|||||||
obsws-cli hotkey trigger-sequence OBS_KEY_F1 --shift --ctrl
|
obsws-cli hotkey trigger-sequence OBS_KEY_F1 --shift --ctrl
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Filter
|
||||||
|
|
||||||
|
- list: List filters for a source.
|
||||||
|
- args: <source_name>
|
||||||
|
|
||||||
|
```console
|
||||||
|
obsws-cli filter list "Mic/Aux"
|
||||||
|
```
|
||||||
|
|
||||||
|
- enable: Enable a filter for a source.
|
||||||
|
- args: <source_name> <filter_name>
|
||||||
|
|
||||||
|
```console
|
||||||
|
obsws-cli filter enable "Mic/Aux" "Test Compression Filter"
|
||||||
|
```
|
||||||
|
|
||||||
|
- disable: Disable a filter for a source.
|
||||||
|
- args: <source_name> <filter_name>
|
||||||
|
|
||||||
|
```console
|
||||||
|
obsws-cli filter disable "Mic/Aux" "Test Compression Filter"
|
||||||
|
```
|
||||||
|
|
||||||
|
- toggle: Toggle a filter for a source.
|
||||||
|
- args: <source_name> <filter_name>
|
||||||
|
|
||||||
|
```console
|
||||||
|
obsws-cli filter toggle "Mic/Aux" "Test Compression Filter"
|
||||||
|
```
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import obsws_python as obsws
|
|||||||
import typer
|
import typer
|
||||||
|
|
||||||
from . import (
|
from . import (
|
||||||
|
filter,
|
||||||
group,
|
group,
|
||||||
hotkey,
|
hotkey,
|
||||||
input,
|
input,
|
||||||
@ -24,6 +25,7 @@ from .alias import AliasGroup
|
|||||||
|
|
||||||
app = typer.Typer(cls=AliasGroup)
|
app = typer.Typer(cls=AliasGroup)
|
||||||
for module in (
|
for module in (
|
||||||
|
filter,
|
||||||
group,
|
group,
|
||||||
hotkey,
|
hotkey,
|
||||||
input,
|
input,
|
||||||
|
87
obsws_cli/filter.py
Normal file
87
obsws_cli/filter.py
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
"""module containing commands for manipulating filters in scenes."""
|
||||||
|
|
||||||
|
import typer
|
||||||
|
|
||||||
|
from .alias import AliasGroup
|
||||||
|
|
||||||
|
app = typer.Typer(cls=AliasGroup)
|
||||||
|
|
||||||
|
|
||||||
|
@app.callback()
|
||||||
|
def main():
|
||||||
|
"""Control filters in OBS scenes."""
|
||||||
|
|
||||||
|
|
||||||
|
@app.command('list | ls')
|
||||||
|
def list(ctx: typer.Context, source_name: str):
|
||||||
|
"""List filters for a source."""
|
||||||
|
resp = ctx.obj.get_source_filter_list(source_name)
|
||||||
|
|
||||||
|
if not resp.filters:
|
||||||
|
typer.echo(f'No filters found for source {source_name}')
|
||||||
|
return
|
||||||
|
|
||||||
|
for filter in resp.filters:
|
||||||
|
typer.echo(f'Filter: {filter["filterName"]}')
|
||||||
|
for key, value in filter.items():
|
||||||
|
if key != 'filterName':
|
||||||
|
typer.echo(f' {key}: {value}')
|
||||||
|
|
||||||
|
|
||||||
|
def _get_filter_enabled(ctx: typer.Context, source_name: str, filter_name: str):
|
||||||
|
"""Get the status of a filter for a source."""
|
||||||
|
resp = ctx.obj.get_source_filter(source_name, filter_name)
|
||||||
|
return resp.filter_enabled
|
||||||
|
|
||||||
|
|
||||||
|
@app.command('enable | on')
|
||||||
|
def enable(
|
||||||
|
ctx: typer.Context,
|
||||||
|
source_name: str = typer.Argument(..., help='The source to enable the filter for'),
|
||||||
|
filter_name: str = typer.Argument(..., help='The name of the filter to enable'),
|
||||||
|
):
|
||||||
|
"""Enable a filter for a source."""
|
||||||
|
if _get_filter_enabled(ctx, source_name, filter_name):
|
||||||
|
typer.echo(
|
||||||
|
f'Filter {filter_name} is already enabled for source {source_name}',
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
|
raise typer.Exit(1)
|
||||||
|
|
||||||
|
ctx.obj.set_source_filter_enabled(source_name, filter_name, enabled=True)
|
||||||
|
typer.echo(f'Enabled filter {filter_name} for source {source_name}')
|
||||||
|
|
||||||
|
|
||||||
|
@app.command('disable | off')
|
||||||
|
def disable(
|
||||||
|
ctx: typer.Context,
|
||||||
|
source_name: str = typer.Argument(..., help='The source to disable the filter for'),
|
||||||
|
filter_name: str = typer.Argument(..., help='The name of the filter to disable'),
|
||||||
|
):
|
||||||
|
"""Disable a filter for a source."""
|
||||||
|
if not _get_filter_enabled(ctx, source_name, filter_name):
|
||||||
|
typer.echo(
|
||||||
|
f'Filter {filter_name} is already disabled for source {source_name}',
|
||||||
|
err=True,
|
||||||
|
)
|
||||||
|
raise typer.Exit(1)
|
||||||
|
|
||||||
|
ctx.obj.set_source_filter_enabled(source_name, filter_name, enabled=False)
|
||||||
|
typer.echo(f'Disabled filter {filter_name} for source {source_name}')
|
||||||
|
|
||||||
|
|
||||||
|
@app.command('toggle | tg')
|
||||||
|
def toggle(
|
||||||
|
ctx: typer.Context,
|
||||||
|
source_name: str = typer.Argument(..., help='The source to toggle the filter for'),
|
||||||
|
filter_name: str = typer.Argument(..., help='The name of the filter to toggle'),
|
||||||
|
):
|
||||||
|
"""Toggle a filter for a source."""
|
||||||
|
is_enabled = _get_filter_enabled(ctx, source_name, filter_name)
|
||||||
|
new_state = not is_enabled
|
||||||
|
|
||||||
|
ctx.obj.set_source_filter_enabled(source_name, filter_name, enabled=new_state)
|
||||||
|
if new_state:
|
||||||
|
typer.echo(f'Enabled filter {filter_name} for source {source_name}')
|
||||||
|
else:
|
||||||
|
typer.echo(f'Disabled filter {filter_name} for source {source_name}')
|
Loading…
x
Reference in New Issue
Block a user