commit fb0816f130e79e4fb3c6064ac30717b8608be09d
parent 94ee480c04a4e84423eeb30b82099b2665e9876f
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 7 Apr 2023 00:21:43 -0700
cleanup
Diffstat:
| M | src/main.rs | | | 68 | +++++++++++++++++++++++++++++++++++++------------------------------- |
1 file changed, 37 insertions(+), 31 deletions(-)
diff --git a/src/main.rs b/src/main.rs
@@ -213,7 +213,7 @@ struct LeChatPHPClient {
base_client: BaseClient,
guest_color: String,
client: Client,
- session: String,
+ session: Option<String>,
config: LeChatPHPConfig,
manual_captcha: bool,
refresh_rate: u64,
@@ -236,26 +236,30 @@ impl LeChatPHPClient {
let mut attempt = 0;
loop {
match self.login() {
- Err(LoginErr::KickedErr) | Err(LoginErr::RegErr) | Err(LoginErr::NicknameErr) | Err(LoginErr::UnknownErr) => {
- log::error!("{}", e);
- break;
- },
- Err(LoginErr::CaptchaFailedSolveErr) => {
- log::error!("{}", e);
- continue;
- },
- Err(LoginErr::CaptchaWgErr) | Err(LoginErr::CaptchaUsedErr) => {},
- Err(LoginErr::ServerDownErr) | Err(LoginErr::ServerDown500Err) => {
- log::error!("{}", e);
- },
- Err(LoginErr::Reqwest(err)) => {
- if err.is_connect() {
- log::error!("{}\nIs tor proxy enabled ?", err);
- break;
- } else if err.is_timeout() {
- log::error!("timeout: {}", err);
- } else {
- log::error!("{}", err);
+ Err(e) => {
+ match e {
+ LoginErr::KickedErr | LoginErr::RegErr | LoginErr::NicknameErr | LoginErr::UnknownErr => {
+ log::error!("{}", e);
+ break;
+ },
+ LoginErr::CaptchaFailedSolveErr => {
+ log::error!("{}", e);
+ continue;
+ },
+ LoginErr::CaptchaWgErr | LoginErr::CaptchaUsedErr => {},
+ LoginErr::ServerDownErr | LoginErr::ServerDown500Err => {
+ log::error!("{}", e);
+ },
+ LoginErr::Reqwest(err) => {
+ if err.is_connect() {
+ log::error!("{}\nIs tor proxy enabled ?", err);
+ break;
+ } else if err.is_timeout() {
+ log::error!("timeout: {}", err);
+ } else {
+ log::error!("{}", err);
+ }
+ },
}
},
Ok(()) => {
@@ -271,7 +275,7 @@ impl LeChatPHPClient {
if max_retry > 0 && attempt > max_retry {
break;
}
- self.session = "".to_owned();
+ self.session = None;
let retry_in = Duration::from_secs(2);
let mut msg = format!("retry login in {:?}, attempt: {}", retry_in, attempt);
if max_retry > 0 {
@@ -314,8 +318,8 @@ impl LeChatPHPClient {
let client = self.client.clone();
let rx = Arc::clone(&self.rx);
let full_url = format!("{}/{}", &self.config.url, &self.config.page_php);
- let url = format!("{}?action=post&session={}", &full_url, self.session);
- let session = self.session.clone();
+ let session = self.session.clone().unwrap();
+ let url = format!("{}?action=post&session={}", &full_url, &session);
thread::spawn(move || loop {
let rx = rx.lock().unwrap();
@@ -509,7 +513,7 @@ impl LeChatPHPClient {
let client = self.client.clone();
let messages = Arc::clone(&messages);
let users = Arc::clone(&users);
- let session = self.session.clone();
+ let session = self.session.clone().unwrap();
let username = self.base_client.username.clone();
let refresh_rate = self.refresh_rate.clone();
let base_url = self.config.url.clone();
@@ -739,7 +743,7 @@ impl LeChatPHPClient {
fn login(&mut self) -> Result<(), LoginErr> {
// If we provided a session, skip login process
- if self.session != "" {
+ if self.session.is_some() {
return Ok(());
}
if self.chat_type == ClientType::BHC {
@@ -761,15 +765,17 @@ impl LeChatPHPClient {
return Err(LoginErr::CaptchaWgErr);
}
}
- self.session = lechatphp::login(
+ self.session = Some(lechatphp::login(
&self.client, &self.config.url, &self.config.page_php, &self.base_client.username,
- &self.base_client.password, &self.guest_color, self.manual_captcha)?;
+ &self.base_client.password, &self.guest_color, self.manual_captcha)?);
Ok(())
}
fn logout(&mut self) -> anyhow::Result<()> {
- lechatphp::logout(&self.client, &self.config.url, &self.config.page_php, &self.session)?;
- self.session = "".to_owned();
+ if let Some(session) = &self.session {
+ lechatphp::logout(&self.client, &self.config.url, &self.config.page_php, &session)?;
+ self.session = None;
+ }
Ok(())
}
@@ -1606,7 +1612,7 @@ fn new_default_le_chat_php_client(params: Params) -> LeChatPHPClient {
},
max_login_retry: params.max_login_retry,
guest_color: params.guest_color,
- session: "".to_owned(),
+ session: None,
client: params.client,
manual_captcha: params.manual_captcha,
refresh_rate: params.refresh_rate,