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,
|
time::Duration,
|
||||||
};
|
};
|
||||||
|
|
||||||
use inputbot::KeybdKey;
|
use inputbot::{KeybdKey, MouseButton};
|
||||||
use sysinfo::System;
|
use sysinfo::System;
|
||||||
use tungstenite::{stream::MaybeTlsStream, WebSocket};
|
use tungstenite::{stream::MaybeTlsStream, WebSocket};
|
||||||
|
|
||||||
|
|
@ -14,15 +14,32 @@ use crate::websocket;
|
||||||
pub fn start_sending(socket: &mut WebSocket<MaybeTlsStream<TcpStream>>) {
|
pub fn start_sending(socket: &mut WebSocket<MaybeTlsStream<TcpStream>>) {
|
||||||
let mut sys = System::new();
|
let mut sys = System::new();
|
||||||
|
|
||||||
// Key counter
|
|
||||||
let key_counter = Arc::new(Mutex::new(0_u16));
|
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 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 || {
|
thread::spawn(move || {
|
||||||
KeybdKey::bind_all(move |_| {
|
KeybdKey::bind_all(move |_| {
|
||||||
let mut count = key_counter_clone.lock().unwrap();
|
let mut count = key_counter_clone.lock().unwrap();
|
||||||
*count += 1;
|
*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();
|
inputbot::handle_input_events();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -36,13 +53,28 @@ pub fn start_sending(socket: &mut WebSocket<MaybeTlsStream<TcpStream>>) {
|
||||||
let used_memory = sys.used_memory();
|
let used_memory = sys.used_memory();
|
||||||
let memory_usage = ((used_memory as f64) / (total_memory as f64) * 100.0).floor() as u8;
|
let memory_usage = ((used_memory as f64) / (total_memory as f64) * 100.0).floor() as u8;
|
||||||
|
|
||||||
let mut guard = key_counter.lock().unwrap();
|
let mut key_guard = key_counter.lock().unwrap();
|
||||||
let key_presses = *guard;
|
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
|
let mut right_guard = right_click_counter.lock().unwrap();
|
||||||
*guard = 0;
|
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));
|
thread::sleep(Duration::from_secs(60));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,10 +43,17 @@ pub fn connect() -> Result<WebSocket<MaybeTlsStream<TcpStream>>, tungstenite::Er
|
||||||
Ok(socket)
|
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!(
|
let message = format!(
|
||||||
"{{ \"cpu\": {}, \"ram\": {}, \"key_presses\": {} }}",
|
"{{ \"cpu\": {}, \"ram\": {}, \"key_presses\": {}, \"left_clicks\": {}, \"right_clicks\": {} }}",
|
||||||
cpu, ram, key_presses
|
cpu, ram, key_presses, left_clicks, right_clicks
|
||||||
);
|
);
|
||||||
|
|
||||||
println!("Sending to WebSocket: {}", message);
|
println!("Sending to WebSocket: {}", message);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue