bhcli

"Strange's fork of n0tr1v's bhcli (onion)"
git clone https://git.dasho.dev/Strange/bhcli.git
Log | Files | Refs | README

commit 67b4d54f6b232d2ec0b0b6fc52677dff3fbe2eca
parent eafd59ae2dda6ab0857e560f84ca667ca58bbf5c
Author: Strange <StrangeGuy6228@protonmail.com>
Date:   Sat, 22 Jun 2024 12:27:19 +0530

added --session to bypass capthca problems

Diffstat:
Msrc/main.rs | 26+++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -117,8 +117,9 @@ struct MyConfig { #[derive(Parser)] #[command(name = "bhcli")] -#[command(author = "n0tr1v <n0tr1v@protonmail.com>")] -#[command(version = "0.0.1")] +#[command(author = "Strange <StrangeGuy6228@protonmail.com>")] +#[command(version = "0.1.0")] + struct Opts { #[arg(long, env = "DKF_API_KEY")] dkf_api_key: Option<String>, @@ -159,8 +160,13 @@ struct Opts { dnmx_password: Option<String>, #[arg(short = 'c', long, default_value = "default")] profile: String, + + //Strange #[arg(long,default_value = "0")] keepalive_send_to: Option<String>, + + #[arg(long)] + session: Option<String>, } struct LeChatPHPConfig { @@ -170,6 +176,7 @@ struct LeChatPHPConfig { keepalive_send_to: String, members_tag: String, staffs_tag: String, + // session: String } impl LeChatPHPConfig { @@ -485,8 +492,10 @@ impl LeChatPHPClient { fn login(&mut self) -> Result<(), LoginErr> { // If we provided a session, skip login process if self.session.is_some() { + // println!("Session in params: {:?}", self.session); return Ok(()); } + // println!("self.session is not Some"); self.session = Some(lechatphp::login( &self.client, &self.config.url, @@ -2014,6 +2023,7 @@ fn delete_message( impl ChatClient { fn new(params: Params) -> Self { + // println!("session[2026] : {:?}",params.session); let mut c = new_default_le_chat_php_client(params.clone()); c.config.url = params.url.unwrap_or( "http://blkhatjxlrvc5aevqzz5t6kxldayog6jlx5h7glnu44euzongl4fh5ad.onion/index.php" @@ -2023,6 +2033,7 @@ impl ChatClient { c.config.datetime_fmt = params.datetime_fmt.unwrap_or("%m-%d %H:%M:%S".to_owned()); c.config.members_tag = params.members_tag.unwrap_or("[M] ".to_owned()); c.config.keepalive_send_to = params.keepalive_send_to.unwrap_or("0".to_owned()); + // c.session = params.session; Self { le_chat_php_client: c, } @@ -2036,6 +2047,8 @@ impl ChatClient { fn new_default_le_chat_php_client(params: Params) -> LeChatPHPClient { let (color_tx, color_rx) = crossbeam_channel::unbounded(); let (tx, rx) = crossbeam_channel::unbounded(); + let session = params.session.clone(); + // println!("session[2050] : {:?}",params.session); LeChatPHPClient { base_client: BaseClient { username: params.username, @@ -2043,7 +2056,8 @@ fn new_default_le_chat_php_client(params: Params) -> LeChatPHPClient { }, max_login_retry: params.max_login_retry, guest_color: params.guest_color, - session: None, + // session: params.session, + session, last_key_event: None, client: params.client, manual_captcha: params.manual_captcha, @@ -2079,6 +2093,7 @@ struct Params { refresh_rate: u64, max_login_retry: isize, keepalive_send_to: Option<String>, + session: Option<String>, } #[derive(Clone)] @@ -2299,6 +2314,8 @@ fn read_commands_file(file_path: &str) -> Result<Commands, Box<dyn std::error::E fn main() -> anyhow::Result<()> { let mut opts: Opts = Opts::parse(); + // println!("Parsed Session: {:?}", opts.session); + // Configs file if let Ok(config_path) = confy::get_configuration_file_path("bhcli", None) { @@ -2358,7 +2375,10 @@ fn main() -> anyhow::Result<()> { refresh_rate: opts.refresh_rate, max_login_retry: opts.max_login_retry, keepalive_send_to: opts.keepalive_send_to, + session: opts.session.clone(), }; + // println!("Session[2378]: {:?}", opts.session); + ChatClient::new(params).run_forever();