From 173ef4e9776d63e8095a40cd3f766694972125b5 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 1 Oct 2025 23:49:15 -0400 Subject: [PATCH] simplify sentinel package --- .../recipes/image_remix_with_session_auto_renew.rs | 4 ++-- ...ge_upload_from_bytes_with_session_auto_renew.rs | 3 +-- .../src/recipes/maybe_upgrade_or_renew_session.rs | 4 ++-- .../simple_image_gen_with_session_auto_renew.rs | 4 ++-- .../sentinel_refresh/{generate => }/config.rs | 14 +++++++------- .../src/requests/sentinel_refresh/generate/mod.rs | 3 --- .../token.rs => generate_sentinel_token.rs} | 5 ++--- .../src/requests/sentinel_refresh/mod.rs | 4 +++- .../sentinel_refresh/{generate => }/request.rs | 2 +- .../services/sora/state/sora_credential_manager.rs | 4 ++-- .../enqueue_studio_image_generation_handler.rs | 4 ++-- 11 files changed, 24 insertions(+), 27 deletions(-) rename crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/{generate => }/config.rs (98%) delete mode 100644 crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/mod.rs rename crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/{generate/token.rs => generate_sentinel_token.rs} (95%) rename crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/{generate => }/request.rs (97%) diff --git a/crates/api_clients/openai_sora_client/src/recipes/image_remix_with_session_auto_renew.rs b/crates/api_clients/openai_sora_client/src/recipes/image_remix_with_session_auto_renew.rs index 984a35d23c..ef99fb166b 100644 --- a/crates/api_clients/openai_sora_client/src/recipes/image_remix_with_session_auto_renew.rs +++ b/crates/api_clients/openai_sora_client/src/recipes/image_remix_with_session_auto_renew.rs @@ -7,7 +7,7 @@ use crate::error::sora_specific_api_error::SoraSpecificApiError; use crate::requests::bearer::generate_bearer_with_cookie::generate_bearer_with_cookie; use crate::requests::image_gen::common::{ImageSize, NumImages, SoraImageGenResponse}; use crate::requests::image_gen::sora_image_gen_remix::{sora_image_gen_remix, SoraImageGenRemixRequest}; -use crate::requests::sentinel_refresh::generate::token::generate_token; +use crate::requests::sentinel_refresh::generate_sentinel_token::generate_sentinel_token; use anyhow::anyhow; use errors::AnyhowResult; use log::{error, info, warn}; @@ -108,7 +108,7 @@ pub async fn image_remix_with_session_auto_renew(request: ImageRemixAutoRenewReq if refresh_sentinel { info!("Generating new sentinel..."); - let response = generate_token().await; + let response = generate_sentinel_token().await; match response { Err(err) => { return Err(SoraGenericApiError::UncategorizedBadResponse(format!("failed to generate new sentinel: {:?}", err)).into()) diff --git a/crates/api_clients/openai_sora_client/src/recipes/image_upload_from_bytes_with_session_auto_renew.rs b/crates/api_clients/openai_sora_client/src/recipes/image_upload_from_bytes_with_session_auto_renew.rs index 824a6dacf0..793aba64af 100644 --- a/crates/api_clients/openai_sora_client/src/recipes/image_upload_from_bytes_with_session_auto_renew.rs +++ b/crates/api_clients/openai_sora_client/src/recipes/image_upload_from_bytes_with_session_auto_renew.rs @@ -1,19 +1,18 @@ use crate::creds::sora_credential_set::SoraCredentialSet; use crate::creds::sora_jwt_bearer_token::SoraJwtBearerToken; use crate::creds::sora_sentinel::SoraSentinel; +use crate::error::sora_error::SoraError; use crate::recipes::maybe_refresh_credentials_on_sora_error::maybe_refresh_credentials_on_sora_error; use crate::requests::bearer::generate_bearer_with_cookie::generate_bearer_with_cookie; use crate::requests::image_gen::common::{ImageSize, NumImages, SoraImageGenResponse}; use crate::requests::image_gen::image_gen_http_request; use crate::requests::image_gen::sora_image_gen_remix::{sora_image_gen_remix, SoraImageGenRemixRequest}; -use crate::requests::sentinel_refresh::generate::token::generate_token; use crate::requests::upload::upload_media_from_bytes::sora_media_upload_from_bytes; use crate::requests::upload::upload_media_http_request::{upload_media_http_request, SoraMediaUploadResponse}; use anyhow::anyhow; use errors::AnyhowResult; use log::{error, info, warn}; use std::time::Duration; -use crate::error::sora_error::SoraError; pub struct ImageUploadFromBytesAutoRenewRequest<'a> { pub file_bytes: Vec, diff --git a/crates/api_clients/openai_sora_client/src/recipes/maybe_upgrade_or_renew_session.rs b/crates/api_clients/openai_sora_client/src/recipes/maybe_upgrade_or_renew_session.rs index 6e658d5fc5..458d0384f7 100644 --- a/crates/api_clients/openai_sora_client/src/recipes/maybe_upgrade_or_renew_session.rs +++ b/crates/api_clients/openai_sora_client/src/recipes/maybe_upgrade_or_renew_session.rs @@ -3,7 +3,7 @@ use crate::creds::sora_jwt_bearer_token::SoraJwtBearerToken; use crate::creds::sora_sentinel::SoraSentinel; use crate::error::sora_error::SoraError; use crate::requests::bearer::generate_bearer_with_cookie::generate_bearer_with_cookie; -use crate::requests::sentinel_refresh::generate::token::generate_token; +use crate::requests::sentinel_refresh::generate_sentinel_token::generate_sentinel_token; use chrono::{DateTime, TimeDelta, Utc}; use errors::AnyhowResult; use log::info; @@ -44,7 +44,7 @@ pub async fn maybe_upgrade_or_renew_session(sora_credentials: &mut SoraCredentia if refresh_sentinel { info!("Generating new sentinel..."); - let token = generate_token().await?; + let token = generate_sentinel_token().await?; let token = SoraSentinel::new(token); sora_credentials.sora_sentinel = Some(token); credential_updated = true; diff --git a/crates/api_clients/openai_sora_client/src/recipes/simple_image_gen_with_session_auto_renew.rs b/crates/api_clients/openai_sora_client/src/recipes/simple_image_gen_with_session_auto_renew.rs index 1e07191051..13cb253893 100644 --- a/crates/api_clients/openai_sora_client/src/recipes/simple_image_gen_with_session_auto_renew.rs +++ b/crates/api_clients/openai_sora_client/src/recipes/simple_image_gen_with_session_auto_renew.rs @@ -8,7 +8,7 @@ use crate::requests::bearer::generate_bearer_with_cookie::generate_bearer_with_c use crate::requests::image_gen::common::{ImageSize, NumImages, SoraImageGenResponse}; use crate::requests::image_gen::sora_image_gen_remix::{sora_image_gen_remix, SoraImageGenRemixRequest}; use crate::requests::image_gen::sora_image_gen_simple::{sora_image_gen_simple, SoraImageGenSimpleRequest}; -use crate::requests::sentinel_refresh::generate::token::generate_token; +use crate::requests::sentinel_refresh::generate_sentinel_token::generate_sentinel_token; use anyhow::anyhow; use errors::AnyhowResult; use log::{error, info, warn}; @@ -109,7 +109,7 @@ pub async fn simple_image_gen_with_session_auto_renew(request: SimpleImageGenAut if refresh_sentinel { info!("Generating new sentinel..."); - let response = generate_token().await; + let response = generate_sentinel_token().await; match response { Err(err) => { error!("failed to generate new sentinel: {:?}", err); diff --git a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/config.rs b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/config.rs similarity index 98% rename from crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/config.rs rename to crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/config.rs index 18fc4f8c8b..07aa12ad76 100644 --- a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/config.rs +++ b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/config.rs @@ -1,3 +1,5 @@ +use rand::Rng; + // cores = [8, 16, 24, 32] // cached_scripts = ["https://cdn.oaistatic.com/_next/static/cXh69klOLzS0Gy2joLDRS/_ssgManifest.js?dpl=453ebaec0d44c2decab71692e1bfe39be35a24b3"] @@ -356,7 +358,6 @@ // "__intercomReloadLocation" // ] -use rand::Rng; const CORES: &[usize] = &[8, 16, 24, 32]; @@ -654,18 +655,17 @@ const WINDOW_KEY: &[&str] = &[ ]; pub fn get_random_core_count() -> usize { - return CORES[rand::rng().random_range(0..CORES.len())]; + CORES[rand::rng().random_range(0..CORES.len())] } - pub fn get_random_navigator_key() -> String { - return NAVIGATOR_KEY[rand::rng().random_range(0..NAVIGATOR_KEY.len())].to_string(); + NAVIGATOR_KEY[rand::rng().random_range(0..NAVIGATOR_KEY.len())].to_string() } pub fn get_random_document_key() -> String { - return DOCUMENT_KEY[rand::rng().random_range(0..DOCUMENT_KEY.len())].to_string(); + DOCUMENT_KEY[rand::rng().random_range(0..DOCUMENT_KEY.len())].to_string() } pub fn get_random_window_key() -> String { - return WINDOW_KEY[rand::rng().random_range(0..WINDOW_KEY.len())].to_string(); -} \ No newline at end of file + WINDOW_KEY[rand::rng().random_range(0..WINDOW_KEY.len())].to_string() +} diff --git a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/mod.rs b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/mod.rs deleted file mode 100644 index 0bf2def16b..0000000000 --- a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod request; -pub mod token; -pub(crate) mod config; diff --git a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/token.rs b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate_sentinel_token.rs similarity index 95% rename from crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/token.rs rename to crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate_sentinel_token.rs index 3405b45641..8b995a4c20 100644 --- a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/token.rs +++ b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate_sentinel_token.rs @@ -13,7 +13,6 @@ use wreq::Client; const SORA_IMAGE_GEN_URL: &str = "https://chatgpt.com/backend-api/sentinel/req"; - const SENTINEL_FLOW: &str = "sora_create_task"; @@ -45,7 +44,7 @@ pub struct SentinelResponse { } -pub async fn generate_token() -> Result { +pub async fn generate_sentinel_token() -> Result { let (_request, base64_request) = GenerateSentinelRefreshRequest::new().with_fourth_and_tenth(); let request = SentinelRequest::new(base64_request); let client = Client::new(); @@ -88,7 +87,7 @@ mod tests { #[tokio::test] async fn test_generate_token() { - let token = generate_token().await.unwrap(); + let token = generate_sentinel_token().await.unwrap(); println!("{}", token); } } \ No newline at end of file diff --git a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/mod.rs b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/mod.rs index 118c66d72d..0c1f2e887f 100644 --- a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/mod.rs +++ b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/mod.rs @@ -1 +1,3 @@ -pub mod generate; \ No newline at end of file +pub mod generate_sentinel_token; +pub mod request; +pub(crate) mod config; \ No newline at end of file diff --git a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/request.rs b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/request.rs similarity index 97% rename from crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/request.rs rename to crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/request.rs index 9393443f15..62a999fdd9 100644 --- a/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/generate/request.rs +++ b/crates/api_clients/openai_sora_client/src/requests/sentinel_refresh/request.rs @@ -1,4 +1,4 @@ -use crate::requests::sentinel_refresh::generate::config::{get_random_core_count, get_random_document_key, get_random_navigator_key, get_random_window_key}; +use crate::requests::sentinel_refresh::config::{get_random_core_count, get_random_document_key, get_random_navigator_key, get_random_window_key}; use base64::prelude::BASE64_STANDARD; use base64::Engine; use chrono::FixedOffset; diff --git a/crates/desktop/artcraft/src/services/sora/state/sora_credential_manager.rs b/crates/desktop/artcraft/src/services/sora/state/sora_credential_manager.rs index 73b9b7e162..90e901bb23 100644 --- a/crates/desktop/artcraft/src/services/sora/state/sora_credential_manager.rs +++ b/crates/desktop/artcraft/src/services/sora/state/sora_credential_manager.rs @@ -9,7 +9,7 @@ use openai_sora_client::creds::sora_cookies::SoraCookies; use openai_sora_client::creds::sora_credential_set::SoraCredentialSet; use openai_sora_client::creds::sora_jwt_bearer_token::SoraJwtBearerToken; use openai_sora_client::creds::sora_sentinel::SoraSentinel; -use openai_sora_client::requests::sentinel_refresh::generate::token::generate_token; +use openai_sora_client::requests::sentinel_refresh::generate_sentinel_token::generate_sentinel_token; use std::fs::OpenOptions; use std::io::Write; use std::path::Path; @@ -149,7 +149,7 @@ impl SoraCredentialManager { info!("Generating token..."); - let sentinel = generate_token() + let sentinel = generate_sentinel_token() .await .map_err(|err| { error!("Failed to refresh: {:?}", err); diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/prompt/enqueue_studio_image_generation_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/prompt/enqueue_studio_image_generation_handler.rs index 32e0413bf9..8fd98fc415 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/prompt/enqueue_studio_image_generation_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/image_studio/prompt/enqueue_studio_image_generation_handler.rs @@ -14,7 +14,7 @@ use cloud_storage::bucket_client::BucketClient; use log::warn; use log::{debug, error}; use mysql_queries::queries::media_files::get::get_media_file::get_media_file; -use openai_sora_client::requests::sentinel_refresh::generate::token::generate_token; +use openai_sora_client::requests::sentinel_refresh::generate::generate_sentinel_token::generate_sentinel_token; use serde::Deserialize; use serde::Serialize; use shared_service_components::sora_redis_credentials::keys::RedisSoraCredentialSubkey; @@ -326,7 +326,7 @@ pub async fn enqueue_studio_image_generation_handler(http_request: HttpRequest, if let Err(SoraError::ApiSpecific(SoraSpecificApiError::SentinelBlockError)) = &response { error!("Sora sentinel block, attempting refresh"); - match generate_token().await { + match generate_sentinel_token().await { Ok(sentinel_token) => { set_sora_credential_field_in_redis( &mut redis,