teamspeak-query-lib/ts-control

92 lines
1.8 KiB
Text
Raw Normal View History

2023-11-13 16:01:23 +00:00
#!/usr/bin/env sh
2023-11-27 19:24:38 +00:00
actions="quick
move
2023-11-17 16:32:15 +00:00
fetch-client
fetch-channel
away
not away
2023-11-26 21:40:41 +00:00
back
message
message-user"
action="$1"
if [ -n "$1" ]; then
shift
else
action=$(echo "$actions" | $DMENU)
fi
2023-11-17 16:32:15 +00:00
2023-11-26 21:40:41 +00:00
_ts_control_get_entity() {
entity=$(teamspeak-query-lib "$1s" | $DMENU)
if [ -z "$entity" ]; then
exit 1
fi
echo "$entity"
}
2023-11-13 16:01:23 +00:00
2023-11-26 21:40:41 +00:00
_ts_control_get_message() {
message=$(printf "\n" | $DMENU -p "message")
if [ -z "$message" ]; then
exit 1
fi
2023-11-26 21:40:41 +00:00
echo "$message"
}
_ts_control_move_self() {
channel=$(_ts_control_get_entity channel)
teamspeak-query-lib move --strict-channel "$channel"
2023-11-13 16:01:23 +00:00
}
2023-11-26 21:30:59 +00:00
_ts_control_fetch() {
2023-11-26 21:40:41 +00:00
target=$(_ts_control_get_entity "$1")
teamspeak-query-lib fetch "--strict-$1" "--$1" "$target"
2023-11-17 16:32:15 +00:00
}
2023-11-13 16:01:23 +00:00
case $action in
2023-11-27 19:24:38 +00:00
"quick")
action=$($DMENU < "$XDG_CONFIG_HOME/ts-control-quick")
if [ -z "$action" ]; then
exit 1
fi
eval "teamspeak-query-lib $action"
;;
2023-11-13 16:01:23 +00:00
"move")
2023-11-26 21:30:59 +00:00
_ts_control_move_self
;;
2023-11-17 16:32:15 +00:00
"fetch-client")
2023-11-26 21:30:59 +00:00
_ts_control_fetch client
2023-11-17 16:32:15 +00:00
;;
"fetch-channel")
2023-11-26 21:30:59 +00:00
_ts_control_fetch channel
;;
"not away")
teamspeak-query-lib move "Not Away From Keyboard"
teamspeak-query-lib update --microphone=false --speakers=false
2023-11-13 16:01:23 +00:00
;;
"away")
2023-11-26 21:40:41 +00:00
message=$(_ts_control_get_message)
2023-11-13 16:01:23 +00:00
teamspeak-query-lib move "Away From Keyboard"
teamspeak-query-lib update --away "$message"
teamspeak-query-lib update --microphone=false --speakers=false --away "$message"
;;
"back")
teamspeak-query-lib update --back
if [ -n "$1" ]; then
teamspeak-query-lib move "$1"
else
_ts_control_move_self "$1"
fi
2023-11-13 16:01:23 +00:00
teamspeak-query-lib update --microphone=true --speakers=true
;;
2023-11-26 21:40:41 +00:00
"message")
message=$(_ts_control_get_message)
teamspeak-query-lib message "$message"
;;
"message-user")
message=$(_ts_control_get_message)
user=$(_ts_control_get_entity client)
teamspeak-query-lib message --strict-client --client "$user" "$message"
;;
2023-11-13 16:01:23 +00:00
esac