Merge pull request #11 from Programvareverkstedet/more_cli_features
More stuff please
This commit is contained in:
commit
b9444658fb
18
flake.nix
18
flake.nix
|
@ -57,14 +57,28 @@
|
||||||
nativeBuildInputs = [ poetry-core ];
|
nativeBuildInputs = [ poetry-core ];
|
||||||
propagatedBuildInputs = [ setuptools flakes.self.pkgs.remi requests typer rich urllib3 ];
|
propagatedBuildInputs = [ setuptools flakes.self.pkgs.remi requests typer rich urllib3 ];
|
||||||
};
|
};
|
||||||
default = flakes.self.pkgs.grzegorz-clients;
|
grzegorzctl = pkgs.runCommandNoCCLocal "grzegorzctl" (
|
||||||
|
{
|
||||||
|
nativeBuildInputs = [ pkgs.installShellFiles ];
|
||||||
|
} //
|
||||||
|
{ inherit (flakes.self.pkgs.grzegorz-clients) meta; } //
|
||||||
|
{ meta.mainProgram = "grzegorzctl"; }
|
||||||
|
)''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
ln -s "${flakes.self.pkgs.grzegorz-clients}/bin/grzegorzctl" $out/bin/grzegorzctl
|
||||||
|
installShellCompletion --cmd grzegorzctl \
|
||||||
|
--bash <($out/bin/grzegorzctl --show-completion bash) \
|
||||||
|
--zsh <($out/bin/grzegorzctl --show-completion zsh) \
|
||||||
|
--fish <($out/bin/grzegorzctl --show-completion fish)
|
||||||
|
'';
|
||||||
|
default = flakes.self.pkgs.grzegorzctl;
|
||||||
});
|
});
|
||||||
|
|
||||||
apps = forAllSystems ({ system, ...}: rec {
|
apps = forAllSystems ({ system, ...}: rec {
|
||||||
grzegorz-webui.type = "app";
|
grzegorz-webui.type = "app";
|
||||||
grzegorz-webui.program = "${self.packages.${system}.grzegorz-clients}/bin/grzegorz-webui";
|
grzegorz-webui.program = "${self.packages.${system}.grzegorz-clients}/bin/grzegorz-webui";
|
||||||
grzegorzctl.type = "app";
|
grzegorzctl.type = "app";
|
||||||
grzegorzctl.program = "${self.packages.${system}.grzegorz-clients}/bin/grzegorzctl";
|
grzegorzctl.program = "${self.packages.${system}.grzegorzctl}/bin/grzegorzctl";
|
||||||
default = grzegorzctl;
|
default = grzegorzctl;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ def _add(
|
||||||
api.playlist_goto(current_index if put_pre else current_index + 1)
|
api.playlist_goto(current_index if put_pre else current_index + 1)
|
||||||
api.set_playing(True)
|
api.set_playing(True)
|
||||||
|
|
||||||
@cli.command(help="Add one ore more items to the playlist")
|
@cli.command(help="Add one or more items to the playlist")
|
||||||
def play(
|
def play(
|
||||||
urls: list[str],
|
urls: list[str],
|
||||||
pre: bool = False,
|
pre: bool = False,
|
||||||
|
@ -72,14 +72,14 @@ def play(
|
||||||
):
|
):
|
||||||
_add(urls, put_post=not pre, put_pre=pre, play=True, api_base=api_base)
|
_add(urls, put_post=not pre, put_pre=pre, play=True, api_base=api_base)
|
||||||
|
|
||||||
@cli.command(help="Add one ore more items to the playlist")
|
@cli.command(help="Add one or more items to the playlist")
|
||||||
def next(
|
def next(
|
||||||
urls: list[str],
|
urls: list[str],
|
||||||
api_base: str = DEFAULT_API_BASE,
|
api_base: str = DEFAULT_API_BASE,
|
||||||
):
|
):
|
||||||
_add(urls, put_post=True, api_base=api_base)
|
_add(urls, put_post=True, api_base=api_base)
|
||||||
|
|
||||||
@cli.command(help="Add one ore more items to the playlist")
|
@cli.command(help="Add one or more items to the playlist")
|
||||||
def queue(
|
def queue(
|
||||||
urls: list[str],
|
urls: list[str],
|
||||||
play: bool = True,
|
play: bool = True,
|
||||||
|
@ -107,6 +107,12 @@ def pause( api_base: str = DEFAULT_API_BASE ):
|
||||||
api.set_endpoint(api_base)
|
api.set_endpoint(api_base)
|
||||||
rich.print(api.set_playing(False), file=sys.stderr)
|
rich.print(api.set_playing(False), file=sys.stderr)
|
||||||
|
|
||||||
|
@cli.command(help="Toggle playback")
|
||||||
|
def toggle(api_base: str = DEFAULT_API_BASE):
|
||||||
|
api.set_endpoint(api_base)
|
||||||
|
playing = api.is_playing()
|
||||||
|
rich.print(api.set_playing(not playing), file=sys.stderr)
|
||||||
|
|
||||||
@cli.command(help="Goto next item in playlist")
|
@cli.command(help="Goto next item in playlist")
|
||||||
def skip( api_base: str = DEFAULT_API_BASE ):
|
def skip( api_base: str = DEFAULT_API_BASE ):
|
||||||
api.set_endpoint(api_base)
|
api.set_endpoint(api_base)
|
||||||
|
@ -154,10 +160,19 @@ def status(
|
||||||
|
|
||||||
@cli.command(help="Set the playback volume")
|
@cli.command(help="Set the playback volume")
|
||||||
def set_volume(
|
def set_volume(
|
||||||
volume: int,
|
volume: str,
|
||||||
api_base: str = DEFAULT_API_BASE,
|
api_base: str = DEFAULT_API_BASE,
|
||||||
):
|
):
|
||||||
api.set_endpoint(api_base)
|
api.set_endpoint(api_base)
|
||||||
|
|
||||||
|
volume = volume.removesuffix("%")
|
||||||
|
|
||||||
|
if volume.startswith("+") or volume.startswith("-"):
|
||||||
|
current_volume = api.get_volume()
|
||||||
|
new_volume = max(0, min(100, current_volume + int(volume)))
|
||||||
|
else:
|
||||||
|
new_volume = int(volume)
|
||||||
|
|
||||||
rich.print(api.set_volume(volume), file=sys.stderr)
|
rich.print(api.set_volume(volume), file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue