feat: left and right mouse clicks

This commit is contained in:
trafficlunar 2025-03-21 17:53:21 +00:00
parent ddb5c9aea6
commit db9505548b
2 changed files with 49 additions and 10 deletions

View file

@ -5,7 +5,7 @@ use std::{
time::Duration,
};
use inputbot::KeybdKey;
use inputbot::{KeybdKey, MouseButton};
use sysinfo::System;
use tungstenite::{stream::MaybeTlsStream, WebSocket};
@ -14,15 +14,32 @@ use crate::websocket;
pub fn start_sending(socket: &mut WebSocket<MaybeTlsStream<TcpStream>>) {
let mut sys = System::new();
// Key counter
let key_counter = Arc::new(Mutex::new(0_u16));
let left_click_counter = Arc::new(Mutex::new(0_u16));
let right_click_counter = Arc::new(Mutex::new(0_u16));
let key_counter_clone = Arc::clone(&key_counter);
let left_click_counter_clone = Arc::clone(&left_click_counter);
let right_click_counter_clone = Arc::clone(&right_click_counter);
thread::spawn(move || {
KeybdKey::bind_all(move |_| {
let mut count = key_counter_clone.lock().unwrap();
*count += 1;
});
MouseButton::bind_all(move |event| match event {
MouseButton::LeftButton => {
let mut count = left_click_counter_clone.lock().unwrap();
*count += 1;
}
MouseButton::RightButton => {
let mut count = right_click_counter_clone.lock().unwrap();
*count += 1;
}
_ => {}
});
inputbot::handle_input_events();
});
@ -36,13 +53,28 @@ pub fn start_sending(socket: &mut WebSocket<MaybeTlsStream<TcpStream>>) {
let used_memory = sys.used_memory();
let memory_usage = ((used_memory as f64) / (total_memory as f64) * 100.0).floor() as u8;
let mut guard = key_counter.lock().unwrap();
let key_presses = *guard;
let mut key_guard = key_counter.lock().unwrap();
let key_presses = *key_guard;
websocket::send(socket, cpu_usage, memory_usage, key_presses);
let mut left_guard = left_click_counter.lock().unwrap();
let left_clicks = *left_guard;
// Reset key press counter after sending
*guard = 0;
let mut right_guard = right_click_counter.lock().unwrap();
let right_clicks = *right_guard;
websocket::send(
socket,
cpu_usage,
memory_usage,
key_presses,
left_clicks,
right_clicks,
);
// Reset counters after sending
*key_guard = 0;
*left_guard = 0;
*right_guard = 0;
thread::sleep(Duration::from_secs(60));
}

View file

@ -43,10 +43,17 @@ pub fn connect() -> Result<WebSocket<MaybeTlsStream<TcpStream>>, tungstenite::Er
Ok(socket)
}
pub fn send(socket: &mut WebSocket<MaybeTlsStream<TcpStream>>, cpu: u8, ram: u8, key_presses: u16) {
pub fn send(
socket: &mut WebSocket<MaybeTlsStream<TcpStream>>,
cpu: u8,
ram: u8,
key_presses: u16,
left_clicks: u16,
right_clicks: u16,
) {
let message = format!(
"{{ \"cpu\": {}, \"ram\": {}, \"key_presses\": {} }}",
cpu, ram, key_presses
"{{ \"cpu\": {}, \"ram\": {}, \"key_presses\": {}, \"left_clicks\": {}, \"right_clicks\": {} }}",
cpu, ram, key_presses, left_clicks, right_clicks
);
println!("Sending to WebSocket: {}", message);