formatting fix
This commit is contained in:
75
src/main.rs
75
src/main.rs
@@ -9,7 +9,7 @@ use tokio_tungstenite::{
|
|||||||
connect_async_with_config,
|
connect_async_with_config,
|
||||||
tungstenite::{
|
tungstenite::{
|
||||||
client::IntoClientRequest,
|
client::IntoClientRequest,
|
||||||
http::header::{AUTHORIZATION, HeaderValue, USER_AGENT},
|
http::header::{HeaderValue, AUTHORIZATION, USER_AGENT},
|
||||||
Message,
|
Message,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -36,7 +36,11 @@ struct Args {
|
|||||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let args = Args::parse();
|
let args = Args::parse();
|
||||||
|
|
||||||
let log_level = if args.debug { Level::DEBUG } else { Level::INFO };
|
let log_level = if args.debug {
|
||||||
|
Level::DEBUG
|
||||||
|
} else {
|
||||||
|
Level::INFO
|
||||||
|
};
|
||||||
tracing_subscriber::fmt()
|
tracing_subscriber::fmt()
|
||||||
.with_target(false)
|
.with_target(false)
|
||||||
.with_thread_ids(false)
|
.with_thread_ids(false)
|
||||||
@@ -77,20 +81,41 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
info!("[{}] Connecting to {}", letter, url);
|
info!("[{}] Connecting to {}", letter, url);
|
||||||
|
|
||||||
if debug_enabled {
|
if debug_enabled {
|
||||||
debug!("[{}] Request: {} {}", letter, request.method(), request.uri());
|
debug!(
|
||||||
|
"[{}] Request: {} {}",
|
||||||
|
letter,
|
||||||
|
request.method(),
|
||||||
|
request.uri()
|
||||||
|
);
|
||||||
for (name, value) in request.headers() {
|
for (name, value) in request.headers() {
|
||||||
debug!("[{}] {}: {}", letter, name, value.to_str().unwrap_or("<binary>"));
|
debug!(
|
||||||
|
"[{}] {}: {}",
|
||||||
|
letter,
|
||||||
|
name,
|
||||||
|
value.to_str().unwrap_or("<binary>")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let (ws_stream, response) = match connect_async_with_config(request, None, false).await {
|
let (ws_stream, response) = match connect_async_with_config(request, None, false).await
|
||||||
|
{
|
||||||
Ok(result) => result,
|
Ok(result) => result,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
if debug_enabled {
|
if debug_enabled {
|
||||||
if let tokio_tungstenite::tungstenite::Error::Http(ref response) = e {
|
if let tokio_tungstenite::tungstenite::Error::Http(ref response) = e {
|
||||||
debug!("[{}] Error response: {} {}", letter, response.status().as_u16(), response.status().canonical_reason().unwrap_or(""));
|
debug!(
|
||||||
|
"[{}] Error response: {} {}",
|
||||||
|
letter,
|
||||||
|
response.status().as_u16(),
|
||||||
|
response.status().canonical_reason().unwrap_or("")
|
||||||
|
);
|
||||||
for (name, value) in response.headers() {
|
for (name, value) in response.headers() {
|
||||||
debug!("[{}] {}: {}", letter, name, value.to_str().unwrap_or("<binary>"));
|
debug!(
|
||||||
|
"[{}] {}: {}",
|
||||||
|
letter,
|
||||||
|
name,
|
||||||
|
value.to_str().unwrap_or("<binary>")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if let Some(body) = response.body() {
|
if let Some(body) = response.body() {
|
||||||
if let Ok(body_str) = std::str::from_utf8(body) {
|
if let Ok(body_str) = std::str::from_utf8(body) {
|
||||||
@@ -103,12 +128,26 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
info!("[{}] Connected successfully (status: {})", letter, response.status());
|
info!(
|
||||||
|
"[{}] Connected successfully (status: {})",
|
||||||
|
letter,
|
||||||
|
response.status()
|
||||||
|
);
|
||||||
|
|
||||||
if debug_enabled {
|
if debug_enabled {
|
||||||
debug!("[{}] Response: {} {}", letter, response.status().as_u16(), response.status().canonical_reason().unwrap_or(""));
|
debug!(
|
||||||
|
"[{}] Response: {} {}",
|
||||||
|
letter,
|
||||||
|
response.status().as_u16(),
|
||||||
|
response.status().canonical_reason().unwrap_or("")
|
||||||
|
);
|
||||||
for (name, value) in response.headers() {
|
for (name, value) in response.headers() {
|
||||||
debug!("[{}] {}: {}", letter, name, value.to_str().unwrap_or("<binary>"));
|
debug!(
|
||||||
|
"[{}] {}: {}",
|
||||||
|
letter,
|
||||||
|
name,
|
||||||
|
value.to_str().unwrap_or("<binary>")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,7 +190,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
let truncated = if text.len() > 50 { "..." } else { "" };
|
let truncated = if text.len() > 50 { "..." } else { "" };
|
||||||
info!("[{}:{}] Text: {}{}", letter, seq_num, preview, truncated);
|
info!("[{}:{}] Text: {}{}", letter, seq_num, preview, truncated);
|
||||||
|
|
||||||
let filename = session_dir.join(format!("{}{}.txt", letter, seq_num));
|
let filename =
|
||||||
|
session_dir.join(format!("{}{}.txt", letter, seq_num));
|
||||||
if let Err(e) = fs::write(&filename, &text) {
|
if let Err(e) = fs::write(&filename, &text) {
|
||||||
error!("[{}] Failed to write {:?}: {}", letter, filename, e);
|
error!("[{}] Failed to write {:?}: {}", letter, filename, e);
|
||||||
}
|
}
|
||||||
@@ -159,7 +199,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
Message::Binary(data) => {
|
Message::Binary(data) => {
|
||||||
info!("[{}:{}] Binary: {} bytes", letter, seq_num, data.len());
|
info!("[{}:{}] Binary: {} bytes", letter, seq_num, data.len());
|
||||||
|
|
||||||
let filename = session_dir.join(format!("{}{}.bin", letter, seq_num));
|
let filename =
|
||||||
|
session_dir.join(format!("{}{}.bin", letter, seq_num));
|
||||||
if let Err(e) = fs::write(&filename, &data) {
|
if let Err(e) = fs::write(&filename, &data) {
|
||||||
error!("[{}] Failed to write {:?}: {}", letter, filename, e);
|
error!("[{}] Failed to write {:?}: {}", letter, filename, e);
|
||||||
}
|
}
|
||||||
@@ -174,7 +215,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
}
|
}
|
||||||
Message::Close(frame) => {
|
Message::Close(frame) => {
|
||||||
if let Some(cf) = frame {
|
if let Some(cf) = frame {
|
||||||
info!("[{}] Connection closed: {} - {}", letter, cf.code, cf.reason);
|
info!(
|
||||||
|
"[{}] Connection closed: {} - {}",
|
||||||
|
letter, cf.code, cf.reason
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
info!("[{}] Connection closed", letter);
|
info!("[{}] Connection closed", letter);
|
||||||
}
|
}
|
||||||
@@ -209,7 +253,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("All connections closed. Session saved to: {}", session_dir.display());
|
info!(
|
||||||
|
"All connections closed. Session saved to: {}",
|
||||||
|
session_dir.display()
|
||||||
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user