bhcli

A TUI for chatting on LE PHP Chats (onion)
git clone https://git.dasho.dev/n0tr1v/bhcli.git
Log | Files | Refs | README

commit 3d184d908c6c25b974ae6fc5e90c2f85d00ef16f
parent 3ab306c158442e2e8dca0ae4c9a590075acb19f8
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri,  7 Apr 2023 00:06:20 -0700

cleanup

Diffstat:
Msrc/main.rs | 91++++++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 46 insertions(+), 45 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -235,38 +235,37 @@ impl LeChatPHPClient { let max_retry = self.max_login_retry; let mut attempt = 0; loop { - if let Err(e) = self.login() { - match e { - LoginErr::KickedErr | LoginErr::RegErr | LoginErr::NicknameErr | LoginErr::UnknownErr => { - log::error!("{}", e); + 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; - }, - 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); - } - }, - } - } else { - attempt = 0; - match self.get_msgs() { - Ok(ExitSignal::NeedLogin) => {} - Ok(ExitSignal::Terminate) => return, - Err(e) => log::error!("{:?}", e), - } + } else if err.is_timeout() { + log::error!("timeout: {}", err); + } else { + log::error!("{}", err); + } + }, + Ok(()) => { + attempt = 0; + match self.get_msgs() { + Ok(ExitSignal::NeedLogin) => {} + Ok(ExitSignal::Terminate) => return, + Err(e) => log::error!("{:?}", e), + } + }, } attempt += 1; if max_retry > 0 && attempt > max_retry { @@ -537,11 +536,7 @@ impl LeChatPHPClient { let parse_date = |date: &str| -> NaiveDateTime { let now = Utc::now(); let date_fmt = format!("%Y-{}", datetime_fmt); - NaiveDateTime::parse_from_str( - format!("{}-{}", now.year(), date).as_str(), - date_fmt.as_str(), - ) - .unwrap() + NaiveDateTime::parse_from_str(format!("{}-{}", now.year(), date).as_str(), date_fmt.as_str()).unwrap() }; if let Some(last_known_msg) = messages.get(0) { @@ -2007,6 +2002,20 @@ struct Message { hide: bool, // Either ot not to hide a specific message } +impl Message { + fn new(id: Option<usize>, typ: MessageType, date: String, upload_link: Option<String>, text: StyledText) -> Self { + Self { + id, + typ, + date, + upload_link, + text, + deleted: false, + hide: false, + } + } +} + #[derive(Debug, PartialEq, Clone)] enum StyledText { Styled(tuiColor, Vec<StyledText>), @@ -2228,15 +2237,7 @@ fn extract_messages(doc: &Document) -> anyhow::Result<Vec<Message>> { _ => return None, }; let (text, upload_link) = process_node(msg_span, tuiColor::White); - return Some(Message { - id, - typ, - date, - upload_link, - text, - deleted: false, - hide: false, - }); + return Some(Message::new(id, typ, date, upload_link, text)); } } None