X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/15c9d047033f2dd64a677aca8139a3ecd34e9472..4ce194afe28e8918d066b267dec8ea9cf6b4b2a0:/client/src/main.rs diff --git a/client/src/main.rs b/client/src/main.rs index 03aff481..6466b2e6 100644 --- a/client/src/main.rs +++ b/client/src/main.rs @@ -1,9 +1,8 @@ use std::{path::PathBuf, time::Duration}; use clap::Parser; -use jsonrpsee::core::client::{Subscription, SubscriptionClientT}; -use jsonrpsee::core::Error as RpcError; -use serde_json::Value; +use jsonrpsee::core::client::{Error as RpcError, Subscription, SubscriptionClientT}; +use serde_json::{Error, Value}; use tokio::{select, time::sleep}; use cli::Cli; @@ -61,8 +60,13 @@ async fn handle_command( .delete_local_account_data(cli.account, ignore_registered) .await } - CliCommands::GetUserStatus { recipient } => { - client.get_user_status(cli.account, recipient).await + CliCommands::GetUserStatus { + recipient, + username, + } => { + client + .get_user_status(cli.account, recipient, username) + .await } CliCommands::JoinGroup { uri } => client.join_group(cli.account, uri).await, CliCommands::Link { name } => { @@ -71,7 +75,7 @@ async fn handle_command( .await .map_err(|e| RpcError::Custom(format!("JSON-RPC command startLink failed: {e:?}")))? .device_link_uri; - println!("{}", url); + println!("{url}"); client.finish_link(url, name).await } CliCommands::ListAccounts => client.list_accounts().await, @@ -276,9 +280,17 @@ async fn handle_command( CliCommands::UpdateAccount { device_name, unrestricted_unidentified_sender, + discoverable_by_number, + number_sharing, } => { client - .update_account(cli.account, device_name, unrestricted_unidentified_sender) + .update_account( + cli.account, + device_name, + unrestricted_unidentified_sender, + discoverable_by_number, + number_sharing, + ) .await } CliCommands::UpdateConfiguration { @@ -408,6 +420,19 @@ async fn handle_command( .get_attachment(cli.account, id, recipient, group_id) .await } + CliCommands::GetAvatar { + contact, + profile, + group_id, + } => { + client + .get_avatar(cli.account, contact, profile, group_id) + .await + } + CliCommands::GetSticker { + pack_id, + sticker_id, + } => client.get_sticker(cli.account, pack_id, sticker_id).await, CliCommands::StartChangeNumber { number, voice, @@ -417,6 +442,23 @@ async fn handle_command( .start_change_number(cli.account, number, voice, captcha) .await } + CliCommands::SendMessageRequestResponse { + recipient, + group_id, + r#type, + } => { + client + .send_message_request_response( + cli.account, + recipient, + group_id, + match r#type { + cli::MessageRequestResponseType::Accept => "accept".to_owned(), + cli::MessageRequestResponseType::Delete => "delete".to_owned(), + }, + ) + .await + } } } @@ -463,7 +505,7 @@ async fn connect(cli: Cli) -> Result { async fn stream_next( timeout: f64, stream: &mut Subscription, -) -> Option> { +) -> Option> { if timeout < 0.0 { stream.next().await } else {