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:
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();