]> nmode's Git Repositories - signal-cli/blobdiff - client/src/main.rs
Fix clippy warnings
[signal-cli] / client / src / main.rs
index c840fd5ea9ce861fdb1cada7e4219a3ca968df8e..68de03d44cab39409857db7d7d8fec44f5ea489c 100644 (file)
@@ -1,13 +1,13 @@
 use std::{path::PathBuf, time::Duration};
 
 use clap::Parser;
-use cli::Cli;
-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 crate::cli::{GroupPermission, LinkState};
+use cli::Cli;
+
+use crate::cli::{CliCommands, GroupPermission, LinkState};
 use crate::jsonrpc::RpcClient;
 
 mod cli;
@@ -38,7 +38,7 @@ async fn handle_command(
     client: impl SubscriptionClientT + Sync,
 ) -> Result<Value, RpcError> {
     match cli.command {
-        cli::CliCommands::Receive { timeout } => {
+        CliCommands::Receive { timeout } => {
             let mut stream = client.subscribe_receive(cli.account).await?;
 
             {
@@ -50,31 +50,31 @@ async fn handle_command(
             stream.unsubscribe().await?;
             Ok(Value::Null)
         }
-        cli::CliCommands::AddDevice { uri } => client.add_device(cli.account, uri).await,
-        cli::CliCommands::Block {
+        CliCommands::AddDevice { uri } => client.add_device(cli.account, uri).await,
+        CliCommands::Block {
             recipient,
             group_id,
         } => client.block(cli.account, recipient, group_id).await,
-        cli::CliCommands::DeleteLocalAccountData { ignore_registered } => {
+        CliCommands::DeleteLocalAccountData { ignore_registered } => {
             client
                 .delete_local_account_data(cli.account, ignore_registered)
                 .await
         }
-        cli::CliCommands::GetUserStatus { recipient } => {
+        CliCommands::GetUserStatus { recipient } => {
             client.get_user_status(cli.account, recipient).await
         }
-        cli::CliCommands::JoinGroup { uri } => client.join_group(cli.account, uri).await,
-        cli::CliCommands::Link { name } => {
+        CliCommands::JoinGroup { uri } => client.join_group(cli.account, uri).await,
+        CliCommands::Link { name } => {
             let url = client
                 .start_link(cli.account)
                 .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
         }
-        cli::CliCommands::ListAccounts => client.list_accounts().await,
-        cli::CliCommands::ListContacts {
+        CliCommands::ListAccounts => client.list_accounts().await,
+        CliCommands::ListContacts {
             recipient,
             all_recipients,
             blocked,
@@ -84,16 +84,14 @@ async fn handle_command(
                 .list_contacts(cli.account, recipient, all_recipients, blocked, name)
                 .await
         }
-        cli::CliCommands::ListDevices => client.list_devices(cli.account).await,
-        cli::CliCommands::ListGroups {
+        CliCommands::ListDevices => client.list_devices(cli.account).await,
+        CliCommands::ListGroups {
             detailed: _,
             group_id,
         } => client.list_groups(cli.account, group_id).await,
-        cli::CliCommands::ListIdentities { number } => {
-            client.list_identities(cli.account, number).await
-        }
-        cli::CliCommands::ListStickerPacks => client.list_sticker_packs(cli.account).await,
-        cli::CliCommands::QuitGroup {
+        CliCommands::ListIdentities { number } => client.list_identities(cli.account, number).await,
+        CliCommands::ListStickerPacks => client.list_sticker_packs(cli.account).await,
+        CliCommands::QuitGroup {
             group_id,
             delete,
             admin,
@@ -102,17 +100,23 @@ async fn handle_command(
                 .quit_group(cli.account, group_id, delete, admin)
                 .await
         }
-        cli::CliCommands::Register { voice, captcha } => {
+        CliCommands::Register { voice, captcha } => {
             client.register(cli.account, voice, captcha).await
         }
-        cli::CliCommands::RemoveContact { recipient, forget } => {
-            client.remove_contact(cli.account, recipient, forget).await
+        CliCommands::RemoveContact {
+            recipient,
+            forget,
+            hide,
+        } => {
+            client
+                .remove_contact(cli.account, recipient, forget, hide)
+                .await
         }
-        cli::CliCommands::RemoveDevice { device_id } => {
+        CliCommands::RemoveDevice { device_id } => {
             client.remove_device(cli.account, device_id).await
         }
-        cli::CliCommands::RemovePin => client.remove_pin(cli.account).await,
-        cli::CliCommands::RemoteDelete {
+        CliCommands::RemovePin => client.remove_pin(cli.account).await,
+        CliCommands::RemoteDelete {
             target_timestamp,
             recipient,
             group_id,
@@ -128,7 +132,7 @@ async fn handle_command(
                 )
                 .await
         }
-        cli::CliCommands::Send {
+        CliCommands::Send {
             recipient,
             group_id,
             note_to_self,
@@ -136,13 +140,21 @@ async fn handle_command(
             message,
             attachment,
             mention,
+            text_style,
             quote_timestamp,
             quote_author,
             quote_message,
             quote_mention,
+            quote_text_style,
+            quote_attachment,
+            preview_url,
+            preview_title,
+            preview_description,
+            preview_image,
             sticker,
             story_timestamp,
             story_author,
+            edit_timestamp,
         } => {
             client
                 .send(
@@ -154,18 +166,26 @@ async fn handle_command(
                     message.unwrap_or_default(),
                     attachment,
                     mention,
+                    text_style,
                     quote_timestamp,
                     quote_author,
                     quote_message,
                     quote_mention,
+                    quote_text_style,
+                    quote_attachment,
+                    preview_url,
+                    preview_title,
+                    preview_description,
+                    preview_image,
                     sticker,
                     story_timestamp,
                     story_author,
+                    edit_timestamp,
                 )
                 .await
         }
-        cli::CliCommands::SendContacts => client.send_contacts(cli.account).await,
-        cli::CliCommands::SendPaymentNotification {
+        CliCommands::SendContacts => client.send_contacts(cli.account).await,
+        CliCommands::SendPaymentNotification {
             recipient,
             receipt,
             note,
@@ -174,7 +194,7 @@ async fn handle_command(
                 .send_payment_notification(cli.account, recipient, receipt, note)
                 .await
         }
-        cli::CliCommands::SendReaction {
+        CliCommands::SendReaction {
             recipient,
             group_id,
             note_to_self,
@@ -198,7 +218,7 @@ async fn handle_command(
                 )
                 .await
         }
-        cli::CliCommands::SendReceipt {
+        CliCommands::SendReceipt {
             recipient,
             target_timestamp,
             r#type,
@@ -215,8 +235,8 @@ async fn handle_command(
                 )
                 .await
         }
-        cli::CliCommands::SendSyncRequest => client.send_sync_request(cli.account).await,
-        cli::CliCommands::SendTyping {
+        CliCommands::SendSyncRequest => client.send_sync_request(cli.account).await,
+        CliCommands::SendTyping {
             recipient,
             group_id,
             stop,
@@ -225,13 +245,13 @@ async fn handle_command(
                 .send_typing(cli.account, recipient, group_id, stop)
                 .await
         }
-        cli::CliCommands::SetPin { pin } => client.set_pin(cli.account, pin).await,
-        cli::CliCommands::SubmitRateLimitChallenge { challenge, captcha } => {
+        CliCommands::SetPin { pin } => client.set_pin(cli.account, pin).await,
+        CliCommands::SubmitRateLimitChallenge { challenge, captcha } => {
             client
                 .submit_rate_limit_challenge(cli.account, challenge, captcha)
                 .await
         }
-        cli::CliCommands::Trust {
+        CliCommands::Trust {
             recipient,
             trust_all_known_keys,
             verified_safety_number,
@@ -245,17 +265,30 @@ async fn handle_command(
                 )
                 .await
         }
-        cli::CliCommands::Unblock {
+        CliCommands::Unblock {
             recipient,
             group_id,
         } => client.unblock(cli.account, recipient, group_id).await,
-        cli::CliCommands::Unregister { delete_account } => {
+        CliCommands::Unregister { delete_account } => {
             client.unregister(cli.account, delete_account).await
         }
-        cli::CliCommands::UpdateAccount { device_name } => {
-            client.update_account(cli.account, device_name).await
+        CliCommands::UpdateAccount {
+            device_name,
+            unrestricted_unidentified_sender,
+            discoverable_by_number,
+            number_sharing,
+        } => {
+            client
+                .update_account(
+                    cli.account,
+                    device_name,
+                    unrestricted_unidentified_sender,
+                    discoverable_by_number,
+                    number_sharing,
+                )
+                .await
         }
-        cli::CliCommands::UpdateConfiguration {
+        CliCommands::UpdateConfiguration {
             read_receipts,
             unidentified_delivery_indicators,
             typing_indicators,
@@ -271,7 +304,7 @@ async fn handle_command(
                 )
                 .await
         }
-        cli::CliCommands::UpdateContact {
+        CliCommands::UpdateContact {
             recipient,
             expiration,
             name,
@@ -280,7 +313,7 @@ async fn handle_command(
                 .update_contact(cli.account, recipient, name, expiration)
                 .await
         }
-        cli::CliCommands::UpdateGroup {
+        CliCommands::UpdateGroup {
             group_id,
             name,
             description,
@@ -333,7 +366,7 @@ async fn handle_command(
                 )
                 .await
         }
-        cli::CliCommands::UpdateProfile {
+        CliCommands::UpdateProfile {
             given_name,
             family_name,
             about,
@@ -355,14 +388,72 @@ async fn handle_command(
                 )
                 .await
         }
-        cli::CliCommands::UploadStickerPack { path } => {
+        CliCommands::UploadStickerPack { path } => {
             client.upload_sticker_pack(cli.account, path).await
         }
-        cli::CliCommands::Verify {
+        CliCommands::Verify {
             verification_code,
             pin,
         } => client.verify(cli.account, verification_code, pin).await,
-        cli::CliCommands::Version => client.version().await,
+        CliCommands::Version => client.version().await,
+        CliCommands::AddStickerPack { uri } => client.add_sticker_pack(cli.account, uri).await,
+        CliCommands::FinishChangeNumber {
+            number,
+            verification_code,
+            pin,
+        } => {
+            client
+                .finish_change_number(cli.account, number, verification_code, pin)
+                .await
+        }
+        CliCommands::GetAttachment {
+            id,
+            recipient,
+            group_id,
+        } => {
+            client
+                .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,
+            captcha,
+        } => {
+            client
+                .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
+        }
     }
 }
 
@@ -409,7 +500,7 @@ async fn connect(cli: Cli) -> Result<Value, RpcError> {
 async fn stream_next(
     timeout: f64,
     stream: &mut Subscription<Value>,
-) -> Option<Result<Value, RpcError>> {
+) -> Option<Result<Value, Error>> {
     if timeout < 0.0 {
         stream.next().await
     } else {