From fb1e41ddc4efeea462652f584c1abf6117fced31 Mon Sep 17 00:00:00 2001 From: Tobias Reisinger <tobias@msrg.cc> Date: Tue, 1 Oct 2024 00:20:08 +0200 Subject: [PATCH 1/2] Fix some issues --- .forgejo/workflows/build.yaml | 10 +--------- Cargo.lock | 2 +- Cargo.toml | 2 +- ts-control | 11 +++++++---- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index db7e32c..9a70b4a 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -16,17 +16,9 @@ jobs: source "$HOME/.cargo/env" cargo build --release shell: bash - - uses: https://code.forgejo.org/actions/upload-artifact@v3 - with: - name: teamspeak-query-lib - path: ${{ github.workspace }}/target/release/teamspeak-query-lib - - uses: https://code.forgejo.org/actions/download-artifact@v3 - with: - name: teamspeak-query-lib - path: /tmp/artifacts - shell: bash - id: copy-ts-control-artificat run: | + cp ${{ github.workspace }}/target/release/teamspeak-query-lib /tmp/artifacts cp ${{ github.workspace }}/ts-control /tmp/artifacts shell: bash - uses: https://code.forgejo.org/actions/forgejo-release@v1 diff --git a/Cargo.lock b/Cargo.lock index c541dfd..0d9a85b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "teamspeak-query-lib" -version = "0.1.5" +version = "0.1.6" dependencies = [ "clap", "serde", diff --git a/Cargo.toml b/Cargo.toml index 78a7388..dfad335 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "teamspeak-query-lib" -version = "0.1.5" +version = "0.1.6" edition = "2021" [dependencies] diff --git a/ts-control b/ts-control index 601bb90..4c89323 100755 --- a/ts-control +++ b/ts-control @@ -46,12 +46,16 @@ _ts_control_fetch() { } _ts_control_single_or_dmenu() { - options=$(echo "$1" | grep "$2") + filter="$2" + if [ "$filter" == "^$" ]; then + filter="" + fi + options=$(echo "$1" | grep "$filter") count=$(echo "$options" | wc -l) if [ "$count" -eq 1 ]; then echo "$options" else - echo "$options" | $DMENU + echo "$1" | $DMENU fi } @@ -90,8 +94,7 @@ handle_ntfy_events() { done } -# Add '$' to $1 to add 'End of line' to the regex for grep -action=$(_ts_control_single_or_dmenu "$actions" "$1$") +action=$(_ts_control_single_or_dmenu "$actions" "^$1$") case $action in "quick") From 3463907670d4bac7bab76b79e8399edef27cc0d8 Mon Sep 17 00:00:00 2001 From: Tobias Reisinger <tobias@msrg.cc> Date: Sun, 27 Oct 2024 18:55:08 +0100 Subject: [PATCH 2/2] Add response option to ntfy --- ts-control | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/ts-control b/ts-control index 4c89323..d872875 100755 --- a/ts-control +++ b/ts-control @@ -64,6 +64,7 @@ handle_ntfy_events() { msg=$(echo "$data" | jq -r --unbuffered '.message') type=$(echo "$data" | jq -r --unbuffered '.type') mode=$(echo "$data" | jq -r --unbuffered '.params.targetmode') + client_nickname=$(echo "$data" | jq -r --unbuffered '.client.client_nickname') echo "$data" @@ -71,25 +72,39 @@ handle_ntfy_events() { continue # Skip all messages that are not direct messages fi - friendly_type="Event" + title="TS3 Event" case $type in "NotifyClientPoke") - friendly_type="Poke" + title="TS3 Poke" ;; "NotifyTextMessage") - friendly_type="Message" + title="TS3 Message" ;; esac - echo "($friendly_type) $target: $msg" + echo "($title) $target: $msg" + + payload=$(jq -n \ + --arg topic "$TS3_NTFY_TOPIC" \ + --arg webhook "$TS3_NTFY_WEBHOOK&client=$client_nickname" \ + --arg msg "$msg" \ + --arg type "$title" \ + '{ + topic: $topic, + message: $msg, + title: $type, + actions: [{ + action: "http", + label: "TS response", + method: "POST", + url: $webhook, + clear: true + }] + }') curl -sSL \ -H "Authorization: Bearer $TS3_NTFY_TOKEN" \ - -d "{ - \"topic\": \"$TS3_NTFY_TOPIC\", - \"message\": \"$msg\", - \"title\": \"TS3 $friendly_type\" - }" \ + -d "$payload" \ "$TS3_NTFY_HOST" done }