bhcli

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

commit a59e01d48120dc33cffa33122f7a1cd785ed6200
parent 9de653aaf41471317c645abab1c325fde60302d3
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri,  7 Apr 2023 16:08:39 -0700

cleanup

Diffstat:
Msrc/main.rs | 38+++++++++++++++++---------------------
1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -535,8 +535,10 @@ impl LeChatPHPClient { let source = Decoder::new_mp3(Cursor::new(SOUND1)).unwrap(); let mut should_notify = false; - get_msgs(&client, &base_url, &page_php, &session, &username, &tx, &users, &sig, - &messages_updated_tx, &members_tag, &datetime_fmt, &messages, &mut should_notify).unwrap(); + if let Err(err) = get_msgs(&client, &base_url, &page_php, &session, &username, &tx, &users, &sig, + &messages_updated_tx, &members_tag, &datetime_fmt, &messages, &mut should_notify) { + log::error!("{}", err); + }; let muted = { *is_muted.lock().unwrap() }; if should_notify && !muted { @@ -1397,23 +1399,19 @@ fn get_msgs( let resp_text = client.get(url).send()?.text()?; let resp_text = resp_text.replace("<br>", "\n"); let doc = Document::from(resp_text.as_str()); - { - let new_messages = match extract_messages(&doc) { - Ok(messages) => messages, - Err(_) => { - // Failed to get messages, probably need re-login - sig.lock().unwrap().signal(&ExitSignal::NeedLogin); - return Ok(()); - } - }; - let messages = messages.lock().unwrap(); - if process_new_messages(&new_messages, &messages, datetime_fmt, members_tag, username, should_notify, tx, sig).is_err() { + let new_messages = match extract_messages(&doc) { + Ok(messages) => messages, + Err(_) => { + // Failed to get messages, probably need re-login + sig.lock().unwrap().signal(&ExitSignal::NeedLogin); return Ok(()); } - + }; + { + let messages = messages.lock().unwrap(); + process_new_messages(&new_messages, &messages, datetime_fmt, members_tag, username, should_notify, tx, sig); // Build messages vector. Tag deleted messages. update_messages(new_messages, messages, datetime_fmt); - // Notify new messages has arrived. // This ensure that we redraw the messages on the screen right away. // Otherwise, the screen would not redraw until a keyboard event occurs. @@ -1431,7 +1429,7 @@ fn process_new_messages( new_messages: &Vec<Message>, messages: &MutexGuard<Vec<Message>>, datetime_fmt: &str, members_tag: &str, username: &str, should_notify: &mut bool, tx: &crossbeam_channel::Sender<PostType>, - sig: &Arc<Mutex<Sig>>) -> anyhow::Result<()> { + sig: &Arc<Mutex<Sig>>) { if let Some(last_known_msg) = messages.get(0) { let last_known_msg_parsed_dt = parse_date(&last_known_msg.date, datetime_fmt); let filtered = new_messages @@ -1441,7 +1439,7 @@ fn process_new_messages( if let Some((from, to_opt, msg)) = get_message(&new_msg.text, &members_tag) { // Process new messages if username == N0TR1V { - n0tr1v_only_process_msg(&from, &msg, &tx, &sig)?; + n0tr1v_only_process_msg(&from, &msg, &tx, &sig); } // Notify when tagged if msg.contains(format!("@{}", &username).as_str()) { @@ -1456,7 +1454,6 @@ fn process_new_messages( } } } - Ok(()) } fn update_messages(new_messages: Vec<Message>, mut messages: MutexGuard<Vec<Message>>, datetime_fmt: &str) { @@ -1487,7 +1484,7 @@ fn update_messages(new_messages: Vec<Message>, mut messages: MutexGuard<Vec<Mess } } -fn n0tr1v_only_process_msg(from: &str, msg: &str, tx: &crossbeam_channel::Sender<PostType>, sig: &Arc<Mutex<Sig>>) -> anyhow::Result<()> { +fn n0tr1v_only_process_msg(from: &str, msg: &str, tx: &crossbeam_channel::Sender<PostType>, sig: &Arc<Mutex<Sig>>) { // !bhcli filters if msg == "!bhcli" { let msg = format!("@{} -> {}", from, BHCLI_BLOG_URL).to_owned(); @@ -1495,7 +1492,7 @@ fn n0tr1v_only_process_msg(from: &str, msg: &str, tx: &crossbeam_channel::Sender } else if msg == "/logout" && from == STUXNET { log::error!("forced logout by {}", from); sig.lock().unwrap().signal(&ExitSignal::Terminate); - return Err(anyhow!("terminate")); + return; } // Auto kick spammers if from != N0TR1V && from != FAGGOT { @@ -1505,7 +1502,6 @@ fn n0tr1v_only_process_msg(from: &str, msg: &str, tx: &crossbeam_channel::Sender tx.send(PostType::Kick(msg, username_to_kick)).unwrap(); } } - Ok(()) } fn delete_message(