commit a59e01d48120dc33cffa33122f7a1cd785ed6200
parent 9de653aaf41471317c645abab1c325fde60302d3
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 7 Apr 2023 16:08:39 -0700
cleanup
Diffstat:
| M | src/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(