bhcli

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

commit 9de653aaf41471317c645abab1c325fde60302d3
parent 16bbefbc94c038dfbc51efed5f9d891f9c34a7e2
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri,  7 Apr 2023 16:02:12 -0700

fix sound somehow

Diffstat:
Msrc/main.rs | 31++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -531,8 +531,19 @@ impl LeChatPHPClient { let tx = self.tx.clone(); let members_tag = self.config.members_tag.clone(); thread::spawn(move || loop { - get_msgs(&client, &base_url, &page_php, &session, &username, &tx, &users, &is_muted, &sig, - &messages_updated_tx, &members_tag, &datetime_fmt, &messages).unwrap(); + let (_stream, stream_handle) = OutputStream::try_default().unwrap(); + 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(); + + let muted = { *is_muted.lock().unwrap() }; + if should_notify && !muted { + if let Err(err) = stream_handle.play_raw(source.convert_samples()) { + log::error!("{}", err); + } + } let timeout = after(Duration::from_secs(refresh_rate)); select! { @@ -1375,21 +1386,17 @@ fn get_msgs( username: &str, tx: &crossbeam_channel::Sender<PostType>, users: &Arc<Mutex<Users>>, - is_muted: &Arc<Mutex<bool>>, sig: &Arc<Mutex<Sig>>, messages_updated_tx: &crossbeam_channel::Sender<bool>, members_tag:&str, datetime_fmt: &str, - messages: &Arc<Mutex<Vec<Message>>>) -> anyhow::Result<()> + messages: &Arc<Mutex<Vec<Message>>>, + should_notify: &mut bool) -> anyhow::Result<()> { - let (_stream, stream_handle) = OutputStream::try_default().unwrap(); - let source = Decoder::new_mp3(Cursor::new(SOUND1)).unwrap(); - let url = format!("{}/{}?action=view&session={}&lang={}", base_url, page_php, session, LANG); 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 mut should_notify = false; { let new_messages = match extract_messages(&doc) { Ok(messages) => messages, @@ -1400,7 +1407,7 @@ fn get_msgs( } }; let messages = messages.lock().unwrap(); - if process_new_messages(&new_messages, &messages, datetime_fmt, members_tag, username, &mut should_notify, tx, sig).is_err() { + if process_new_messages(&new_messages, &messages, datetime_fmt, members_tag, username, should_notify, tx, sig).is_err() { return Ok(()); } @@ -1412,12 +1419,6 @@ fn get_msgs( // Otherwise, the screen would not redraw until a keyboard event occurs. messages_updated_tx.send(true).unwrap(); } - let muted = { *is_muted.lock().unwrap() }; - if should_notify && !muted { - if let Err(err) = stream_handle.play_raw(source.convert_samples()) { - log::error!("{}", err); - } - } { let mut users = users.lock().unwrap(); ban_imposters(&tx, &username, &users);