simplify sentinel package

This commit is contained in:
Brandon Thomas committed 2025-10-01 23:49:15 -04:00
1 parent b1cf0bc1b9
commit 173ef4e977
11 files changed
+24 -27

No files matched your search

@@ -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())
@@ -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<u8>,
@@ -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;
@@ -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);
@@ -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();
}
WINDOW_KEY[rand::rng().random_range(0..WINDOW_KEY.len())].to_string()
}
@@ -1,3 +0,0 @@
pub mod request;
pub mod token;
pub(crate) mod config;
@@ -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<String, SoraError> {
pub async fn generate_sentinel_token() -> Result<String, SoraError> {
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);
}
}
@@ -1 +1,3 @@
pub mod generate;
pub mod generate_sentinel_token;
pub mod request;
pub(crate) mod config;
@@ -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;
@@ -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);
@@ -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,