mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-10 03:51:25 +00:00
something is wrong with websocket
This commit is contained in:
1 parent
d0fc1b47d6
commit
d4473b852c
1 file changed
+36
-26
+36
-26
@@ -1,5 +1,6 @@
|
||||
use std::ops::Deref;
|
||||
use log::info;
|
||||
use tokio::io::AsyncReadExt;
|
||||
use wreq::Client;
|
||||
use wreq::header::{ACCEPT, ACCEPT_ENCODING, ACCEPT_LANGUAGE, CACHE_CONTROL, CONNECTION, COOKIE, ORIGIN, PRAGMA, UPGRADE, USER_AGENT};
|
||||
use wreq::ws::message::Message;
|
||||
@@ -9,6 +10,7 @@ use crate::error::grok_error::GrokError;
|
||||
use crate::error::grok_generic_api_error::GrokGenericApiError;
|
||||
|
||||
const WEBSOCKET_URL: &str = "wss://grok.com/ws/imagine/listen";
|
||||
//const WEBSOCKET_URL: &str = "https://grok.com/ws/imagine/listen";
|
||||
|
||||
pub struct CreateListenWebsocketArgs<'a> {
|
||||
pub cookies: &'a str,
|
||||
@@ -18,34 +20,38 @@ pub async fn create_listen_websocket(args: CreateListenWebsocketArgs<'_>) -> Res
|
||||
println!("Building client...");
|
||||
info!("Building client...");
|
||||
|
||||
//let client = Client::builder()
|
||||
// .emulation(Emulation::Firefox139)
|
||||
// .build()
|
||||
// .map_err(|err| GrokClientError::WreqClientError(err))?;
|
||||
let client = Client::builder()
|
||||
.emulation(Emulation::Firefox139)
|
||||
.build()
|
||||
.map_err(|err| GrokClientError::WreqClientError(err))?;
|
||||
|
||||
let cookies = args.cookies.to_string();
|
||||
println!("Cookies: {}", cookies);
|
||||
|
||||
println!("Configuring client...");
|
||||
info!("Configuring client...");
|
||||
|
||||
let builder = wreq::websocket(WEBSOCKET_URL)
|
||||
.header(ACCEPT, "*/*")
|
||||
.header(USER_AGENT, "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:144.0) Gecko/20100101 Firefox/144.0")
|
||||
//.header(ACCEPT_LANGUAGE, "en-US,en;q=0.5")
|
||||
//.header(ACCEPT_ENCODING, "gzip, deflate, br, zstd")
|
||||
//.header("Sec-WebSocket-Version", "13")
|
||||
.header(ORIGIN, "https://grok.com")
|
||||
//.header("Sec-WebSocket-Extensions", "permessage-deflate")
|
||||
//.header("Sec-WebSocket-Key", "BhBXbFSG6/1xcZVq4ySxcg==") // TODO
|
||||
//.header("Sec-GPC", "1")
|
||||
//.header(CONNECTION, "keep-alive, Upgrade")
|
||||
//.header(COOKIE, args.cookies.to_string())
|
||||
//.header("Sec-Fetch-Dest", "empty")
|
||||
//.header("Sec-Fetch-Mode", "websocket")
|
||||
//.header("Sec-Fetch-Site", "same-origin")
|
||||
.header(PRAGMA, "no-cache")
|
||||
.header(CACHE_CONTROL, "no-cache")
|
||||
.read_buffer_size(1024 * 1024);
|
||||
//.header(UPGRADE, "websocket")
|
||||
//.map_err(|err| GrokClientError::WreqClientError(err))?;
|
||||
let builder = client.websocket(WEBSOCKET_URL)
|
||||
//.force_http2()
|
||||
.header("Accept", "*/*")
|
||||
.header("Accept-Language", "en-US,en;q=0.5")
|
||||
.header("Accept-Encoding", "gzip, deflate, br, zstd")
|
||||
.header("Sec-WebSocket-Version", "13")
|
||||
.header("Origin", "https://grok.com")
|
||||
.header("Sec-WebSocket-Extensions", "permessage-deflate")
|
||||
.header("Sec-WebSocket-Key", "BhBXbFSG6/1xcZVq4ySxcg==") // TODO
|
||||
.header("Sec-GPC", "1")
|
||||
.header("Connection", "keep-alive, Upgrade")
|
||||
.header("Cookie", cookies)
|
||||
.header("Sec-Fetch-Dest", "empty")
|
||||
.header("Sec-Fetch-Mode", "websocket")
|
||||
.header("Sec-Fetch-Site", "same-origin")
|
||||
.header("Pragma", "no-cache")
|
||||
.header("Cache-Control", "no-cache")
|
||||
.header("Upgrade", "websocket")
|
||||
.header("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:144.0) Gecko/20100101 Firefox/144.0")
|
||||
.read_buffer_size(1024 * 1024)
|
||||
.write_buffer_size(1024 * 1024);
|
||||
|
||||
println!("Sending...");
|
||||
info!("Sending...");
|
||||
@@ -54,9 +60,12 @@ pub async fn create_listen_websocket(args: CreateListenWebsocketArgs<'_>) -> Res
|
||||
.await
|
||||
.map_err(|err| GrokClientError::WreqClientError(err))?;
|
||||
|
||||
println!("Response version: {:?}", response.version());
|
||||
|
||||
let status = response.status();
|
||||
println!("Status: {}", status);
|
||||
|
||||
|
||||
//for (k, v) in response.headers().iter() {
|
||||
// println!("Header: {}: {:?}", k, v);
|
||||
//}
|
||||
@@ -72,6 +81,7 @@ pub async fn create_listen_websocket(args: CreateListenWebsocketArgs<'_>) -> Res
|
||||
println!("Into websocket...");
|
||||
info!("Into websocket...");
|
||||
|
||||
/*
|
||||
// ApiGeneric(WreqError(wreq::Error { kind: Upgrade, source: "unexpected status code: 403 Forbidden" }))
|
||||
let mut websocket = response.into_websocket()
|
||||
.await
|
||||
@@ -82,7 +92,7 @@ pub async fn create_listen_websocket(args: CreateListenWebsocketArgs<'_>) -> Res
|
||||
}
|
||||
|
||||
let message = r#"
|
||||
{"type":"conversation.item.create","timestamp":1760675883072,"item":{"type":"message","content":[{"requestId":"3cedf20e-f51c-db5d-a124-bcec05feedf1","text":"A pirannah","type":"input_text","properties":{"section_count":0,"is_kids_mode":false,"enable_nsfw":true,"skip_upsampler":false,"is_initial":false}}]}}
|
||||
{"type":"conversation.item.create","timestamp":1760673207293,"item":{"type":"message","content":[{"requestId":"3cedf20e-f51f-da5d-a124-ccec05faedf1","text":"A pirannah","type":"input_text","properties":{"section_count":0,"is_kids_mode":false,"enable_nsfw":true,"skip_upsampler":false,"is_initial":false}}]}}
|
||||
"#.trim().to_string();
|
||||
|
||||
let wire_message = Message::text(message);
|
||||
@@ -122,7 +132,7 @@ pub async fn create_listen_websocket(args: CreateListenWebsocketArgs<'_>) -> Res
|
||||
tokio::time::sleep(std::time::Duration::from_millis(15_000)).await;
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user