mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-05 01:38:44 +00:00
refactor
This commit is contained in:
1 parent
b7e635bc0b
commit
14bc3f80c8
7 files changed
+28
-30
No files matched your search
@@ -37,7 +37,6 @@ pub async fn upload_image_and_generate_video<P: AsRef<Path>>(args: UploadImageAn
|
||||
info!("Uploading file to Grok...");
|
||||
|
||||
let request = GrokUploadFile {
|
||||
//file: FileSpec::Path("/Users/bt/dev/storyteller/storyteller-rust/test_data/image/mochi.jpg"),
|
||||
file: args.file,
|
||||
cookie: args.full_credentials.cookies.to_string(),
|
||||
request_timeout: args.individual_request_timeout,
|
||||
@@ -94,7 +93,7 @@ pub async fn upload_image_and_generate_video<P: AsRef<Path>>(args: UploadImageAn
|
||||
};
|
||||
|
||||
// TODO: Get URL
|
||||
let video_gen_result = request.send().await?;
|
||||
let _video_gen_result = request.send().await?;
|
||||
|
||||
info!("Video Generation Enqueued");
|
||||
|
||||
|
||||
@@ -22,17 +22,19 @@ use wreq_util::Emulation;
|
||||
|
||||
const LIKE_MEDIA_POST_URL: &str = "https://grok.com/rest/media/post/like";
|
||||
|
||||
/// "Liking" media is currently necessary to preserve it in your account
|
||||
/// Request builder
|
||||
pub struct GrokLikeMediaPost<'a> {
|
||||
pub file_id: &'a FileId,
|
||||
pub cookie: &'a str,
|
||||
pub request_timeout: Option<Duration>,
|
||||
|
||||
pub cookie: &'a str,
|
||||
pub baggage: &'a Baggage,
|
||||
pub sentry_trace: &'a SentryTrace,
|
||||
pub verification_token: &'a VerificationToken,
|
||||
pub svg_data: &'a SvgPathData,
|
||||
pub numbers: &'a XsidNumbers,
|
||||
|
||||
pub request_timeout: Option<Duration>,
|
||||
}
|
||||
|
||||
/// Response type
|
||||
@@ -127,19 +129,13 @@ impl <'a> GrokLikeMediaPost<'a> {
|
||||
GrokGenericApiError::WreqError(err)
|
||||
})?;
|
||||
|
||||
// TODO: Classify errors
|
||||
if !status.is_success() {
|
||||
warn!("Not successful liking media: {:?}", response_body);
|
||||
warn!("Not successful liking media (status: {:?}) : {:?}", status, response_body);
|
||||
// error!("Upload file request returned an error (code {}) : {:?}", status.as_u16(), response_body);
|
||||
// return Err(classify_general_http_status_code_and_body(status, response_body));
|
||||
}
|
||||
|
||||
// TODO: Just for now..
|
||||
println!("Body: {}", response_body);
|
||||
|
||||
// TODO:
|
||||
//if !status.is_success() {
|
||||
// error!("Upload file request returned an error (code {}) : {:?}", status.as_u16(), response_body);
|
||||
// return Err(classify_general_http_status_code_and_body(status, response_body));
|
||||
//}
|
||||
|
||||
//let response : GrokApiUploadFileResponse = serde_json::from_str(response_body)
|
||||
// .map_err(|err| GrokGenericApiError::SerdeResponseParseErrorWithBody(err, response_body.to_string()))?;
|
||||
|
||||
@@ -152,7 +148,7 @@ impl <'a> GrokLikeMediaPost<'a> {
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::recipes::request_client_secrets::{request_client_secrets, RequestClientSecretsArgs};
|
||||
use crate::test_utils::get_test_cookies::{get_test_cookies, get_typed_test_cookies};
|
||||
use crate::test_utils::get_test_cookies::get_typed_test_cookies;
|
||||
use errors::AnyhowResult;
|
||||
|
||||
#[tokio::test]
|
||||
@@ -161,7 +157,6 @@ mod tests {
|
||||
//setup_test_logging(LevelFilter::Trace);
|
||||
let cookies = get_typed_test_cookies()?;
|
||||
|
||||
let user_id = UserId("85980643-ffab-4984-a3de-59a608c47d7f".to_string()); // User
|
||||
let file_id = FileId("990ddf90-8f34-42b1-81a5-39c509d62ff7".to_string()); // Mochi
|
||||
|
||||
let secrets = request_client_secrets(RequestClientSecretsArgs {
|
||||
@@ -176,14 +171,15 @@ mod tests {
|
||||
|
||||
let request = GrokLikeMediaPost {
|
||||
file_id: &file_id,
|
||||
cookie: cookies.as_str(),
|
||||
request_timeout: None,
|
||||
|
||||
cookie: cookies.as_str(),
|
||||
baggage: &secrets.baggage,
|
||||
sentry_trace: &secrets.sentry_trace,
|
||||
verification_token: &secrets.verification_token,
|
||||
svg_data: &secrets.svg_path_data,
|
||||
numbers: &secrets.numbers,
|
||||
|
||||
request_timeout: None,
|
||||
};
|
||||
|
||||
let result = request.send().await?;
|
||||
|
||||
File renamed without changes.
File renamed without changes.
@@ -172,11 +172,11 @@ impl <P> GrokUploadFile<P> where P: AsRef<Path> {
|
||||
GrokGenericApiError::WreqError(err)
|
||||
})?;
|
||||
|
||||
// TODO:
|
||||
//if !status.is_success() {
|
||||
// error!("Upload file request returned an error (code {}) : {:?}", status.as_u16(), response_body);
|
||||
// return Err(classify_general_http_status_code_and_body(status, response_body));
|
||||
//}
|
||||
// TODO: Handle bad statuses
|
||||
if !status.is_success() {
|
||||
error!("Upload file request returned an error (code {}) : {:?}", status.as_u16(), response_body);
|
||||
//return Err(classify_general_http_status_code_and_body(status, response_body));
|
||||
}
|
||||
|
||||
let response : GrokApiUploadFileResponse = serde_json::from_str(response_body)
|
||||
.map_err(|err| GrokGenericApiError::SerdeResponseParseErrorWithBody(err, response_body.to_string()))?;
|
||||
@@ -185,7 +185,7 @@ impl <P> GrokUploadFile<P> where P: AsRef<Path> {
|
||||
.map(|id| FileId(id));
|
||||
|
||||
Ok(GrokUploadFileResponse {
|
||||
file_id: file_id,
|
||||
file_id,
|
||||
file_uri: response.file_uri,
|
||||
})
|
||||
}
|
||||
@@ -202,10 +202,11 @@ mod tests {
|
||||
#[ignore]
|
||||
async fn upload_file() -> AnyhowResult<()> {
|
||||
//setup_test_logging(LevelFilter::Trace);
|
||||
|
||||
let cookies = get_test_cookies()?;
|
||||
|
||||
let request = GrokUploadFile {
|
||||
//file: FileUploadSpec::Path("/Users/bt/dev/storyteller/storyteller-rust/test_data/image/mochi.jpg"),
|
||||
file: FileUploadSpec::Path("/Users/bt/Pictures/Creatures/Spooky/06.1.jpg"),
|
||||
file: FileUploadSpec::Path("/Users/bt/dev/storyteller/storyteller-rust/test_data/image/mochi.jpg"),
|
||||
cookie: cookies.to_string(),
|
||||
request_timeout: None,
|
||||
};
|
||||
|
||||
@@ -3,9 +3,12 @@ use serde::Deserialize;
|
||||
#[derive(Deserialize)]
|
||||
pub (super) struct GrokApiUploadFileResponse {
|
||||
|
||||
/// The uploaded file_id, which is used to reference the file later.
|
||||
#[serde(rename = "fileMetadataId")]
|
||||
pub file_metadata_id: Option<String>,
|
||||
|
||||
/// Partial path to the media file, not a full URI.
|
||||
/// eg. `users/{user_id}/{file_id}/content`
|
||||
#[serde(rename = "fileUri")]
|
||||
pub file_uri: Option<String>,
|
||||
}
|
||||
@@ -20,4 +23,4 @@ pub (super) struct GrokApiUploadFileResponse {
|
||||
"createTime": "2025-10-21T23:40:41.784448Z",
|
||||
"fileSource": "SELF_UPLOAD_FILE_SOURCE"
|
||||
}
|
||||
*/
|
||||
*/
|
||||
+2
-3
@@ -206,9 +206,9 @@ mod tests {
|
||||
#[ignore]
|
||||
async fn create_video() -> AnyhowResult<()> {
|
||||
//setup_test_logging(LevelFilter::Trace);
|
||||
|
||||
let cookies = get_typed_test_cookies()?;
|
||||
|
||||
let user_id = UserId("85980643-ffab-4984-a3de-59a608c47d7f".to_string()); // User
|
||||
let file_id = FileId("990ddf90-8f34-42b1-81a5-39c509d62ff7".to_string()); // Mochi
|
||||
|
||||
let secrets = request_client_secrets(RequestClientSecretsArgs {
|
||||
@@ -222,7 +222,7 @@ mod tests {
|
||||
println!("Baggage: {:?}", secrets.baggage);
|
||||
|
||||
let request = GrokVideoGenChatConversationBuilder {
|
||||
user_id: &user_id,
|
||||
user_id: &secrets.user_id,
|
||||
file_id: &file_id,
|
||||
media_type: VideoMediaPostType::UserUploadedImage,
|
||||
cookie: cookies.as_str(),
|
||||
@@ -242,5 +242,4 @@ mod tests {
|
||||
assert_eq!(1, 2);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user