feat: left and right mouse clicks
This commit is contained in:
parent
ddb5c9aea6
commit
db9505548b
2 changed files with 49 additions and 10 deletions
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue