summaryrefslogtreecommitdiff
path: root/src/requests/start.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/requests/start.rs')
-rw-r--r--src/requests/start.rs24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/requests/start.rs b/src/requests/start.rs
index 7abbbe0..d07177e 100644
--- a/src/requests/start.rs
+++ b/src/requests/start.rs
@@ -2,7 +2,10 @@ use futures_util::{SinkExt, StreamExt};
2use indicatif::{MultiProgress, ProgressBar}; 2use indicatif::{MultiProgress, ProgressBar};
3use reqwest::StatusCode; 3use reqwest::StatusCode;
4use serde::Deserialize; 4use serde::Deserialize;
5use tokio_tungstenite::{connect_async, tungstenite::Message}; 5use tokio_tungstenite::{
6 connect_async,
7 tungstenite::{http::Request, Message},
8};
6 9
7use crate::{ 10use crate::{
8 add_pb, config::Config, default_headers, error::Error, finish_pb, format_url, ErrorResponse, 11 add_pb, config::Config, default_headers, error::Error, finish_pb, format_url, ErrorResponse,
@@ -66,17 +69,26 @@ async fn status_socket(
66 id: String, 69 id: String,
67) -> Result<bool, Error> { 70) -> Result<bool, Error> {
68 let ws_pb = add_pb(pb, DEFAULT_STYLE, "connect to websocket".to_string()); 71 let ws_pb = add_pb(pb, DEFAULT_STYLE, "connect to websocket".to_string());
69 let (mut ws_stream, _response) = 72
70 connect_async(format_url(config, "status", &Protocols::Websocket)) 73 let request = Request::builder()
71 .await 74 .uri(format_url(config, "status", &Protocols::Websocket))
72 .expect("Failed to connect"); 75 .header("Authorization", &config.apikey)
76 .header("sec-websocket-key", "")
77 .header("host", &config.server)
78 .header("upgrade", "websocket")
79 .header("connection", "upgrade")
80 .header("sec-websocket-version", 13)
81 .body(())
82 .unwrap();
83
84 let (mut ws_stream, _response) = connect_async(request).await?;
73 finish_pb(&ws_pb, "connected to websocket".to_string(), DONE_STYLE); 85 finish_pb(&ws_pb, "connected to websocket".to_string(), DONE_STYLE);
74 86
75 ws_stream.send(Message::Text(uuid.clone())).await.unwrap(); 87 ws_stream.send(Message::Text(uuid.clone())).await.unwrap();
76 88
77 // Get ETA 89 // Get ETA
78 let eta_msg = ws_stream.next().await.unwrap().unwrap(); 90 let eta_msg = ws_stream.next().await.unwrap().unwrap();
79 let eta = get_eta(&eta_msg.into_text().unwrap(), &uuid)? + overview.elapsed().as_secs(); 91 let eta = get_eta(&eta_msg.into_text().unwrap(), &uuid)?;
80 overview.set_message(format!("/{eta}) start {id}")); 92 overview.set_message(format!("/{eta}) start {id}"));
81 93
82 let msg_pb = add_pb(pb, DEFAULT_STYLE, "await message".to_string()); 94 let msg_pb = add_pb(pb, DEFAULT_STYLE, "await message".to_string());