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]}") | ||||||
|  | 
 | ||||||
|  | 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" |     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> { | ||||||
|  |     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) |         commands::sendtextmessage(connection, target, msg) | ||||||
|     } |     } | ||||||
|  | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue