This commit is contained in:
parent
b753bb235d
commit
71ab3b52ec
8 changed files with 36 additions and 10 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -1,6 +1,6 @@
|
||||||
# This file is automatically @generated by Cargo.
|
# This file is automatically @generated by Cargo.
|
||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 4
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "anstream"
|
name = "anstream"
|
||||||
|
|
@ -182,7 +182,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "teamspeak-query-lib"
|
name = "teamspeak-query-lib"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"serde",
|
"serde",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "teamspeak-query-lib"
|
name = "teamspeak-query-lib"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,8 @@ commands:
|
||||||
required: false
|
required: false
|
||||||
- name: message
|
- name: message
|
||||||
required: false
|
required: false
|
||||||
|
flags:
|
||||||
|
- long: --poke
|
||||||
- name: events
|
- name: events
|
||||||
- name: events-ntfy
|
- name: events-ntfy
|
||||||
environment_variables:
|
environment_variables:
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,10 @@
|
||||||
client=$(_ts_control_get_entity client "${args[client]}")
|
client=$(_ts_control_get_entity client "${args[client]}")
|
||||||
message=$(_ts_control_get_message "${args[message]}")
|
message=$(_ts_control_get_message "${args[message]}")
|
||||||
teamspeak-query-lib message --strict-client --client "$client" "$message"
|
|
||||||
|
if [ "${args[--poke]:-0}" -gt 0 ]; then
|
||||||
|
echo "Sending poke to client $client: $message"
|
||||||
|
teamspeak-query-lib message --strict-client --poke --client "$client" "$message"
|
||||||
|
else
|
||||||
|
echo "Sending message to client $client: $message"
|
||||||
|
teamspeak-query-lib message --strict-client --client "$client" "$message"
|
||||||
|
fi
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ pub struct MessageArgs {
|
||||||
client: Option<String>,
|
client: Option<String>,
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
server: bool,
|
server: bool,
|
||||||
|
#[arg(long)]
|
||||||
|
pub poke: bool,
|
||||||
pub message: String,
|
pub message: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,12 @@ pub fn sendtextmessage(connection: &mut Telnet, target: SendTextMessageTarget, m
|
||||||
send_command(connection, &format!("sendtextmessage {} {}", msg, String::from(target)), false)
|
send_command(connection, &format!("sendtextmessage {} {}", msg, String::from(target)), false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn clientpoke(connection: &mut Telnet, clid: i32, msg: String) -> Result<Response, String> {
|
||||||
|
let msg = parameter_to_string((String::from("msg"), msg));
|
||||||
|
let clid = parameter_to_string((String::from("clid"), clid.to_string()));
|
||||||
|
send_command(connection, &format!("clientpoke {} {}", msg, clid), false)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn clientnotifyregister(connection: &mut Telnet, schandlerid: u32, event: EventType) -> Result<Response, String> {
|
pub fn clientnotifyregister(connection: &mut Telnet, schandlerid: u32, event: EventType) -> Result<Response, String> {
|
||||||
send_command(connection, &format!("clientnotifyregister schandlerid={} event={}", schandlerid, String::from(&event)), false)
|
send_command(connection, &format!("clientnotifyregister schandlerid={} event={}", schandlerid, String::from(&event)), false)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ fn main() -> Result<(), Error> {
|
||||||
let target = args.target(&mut connection)
|
let target = args.target(&mut connection)
|
||||||
.map_err(|msg| make_action_error("message target", msg))?;
|
.map_err(|msg| make_action_error("message target", msg))?;
|
||||||
|
|
||||||
match wrappers::send_text_message(&mut connection, target, args.message) {
|
match wrappers::send_text_message(&mut connection, target, args.message, args.poke) {
|
||||||
Ok(_) => println!("Successfully sent message."),
|
Ok(_) => println!("Successfully sent message."),
|
||||||
Err(msg) => {
|
Err(msg) => {
|
||||||
return Err(make_action_error("send message", msg));
|
return Err(make_action_error("send message", msg));
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,15 @@ pub fn update_client(connection: &mut Telnet, parameters: ParameterList) -> Resu
|
||||||
commands::clientupdate(connection, parameters)
|
commands::clientupdate(connection, parameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn send_text_message(connection: &mut Telnet, target: SendTextMessageTarget, msg: String) -> Result<Response, String> {
|
pub fn send_text_message(connection: &mut Telnet, target: SendTextMessageTarget, msg: String, poke: bool) -> Result<Response, String> {
|
||||||
commands::sendtextmessage(connection, target, msg)
|
if poke {
|
||||||
|
if let SendTextMessageTarget::Client(client) = target {
|
||||||
|
return commands::clientpoke(connection, client.clid, msg);
|
||||||
|
} else {
|
||||||
|
return Err(String::from("Poke can only be sent to clients."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
commands::sendtextmessage(connection, target, msg)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue