From 3a0018f49a8e24524edfb2a632069f8bb2500cc6 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Thu, 14 Aug 2025 13:23:24 -0400 Subject: [PATCH] cleanup --- .../src/endpoints/submit_job.rs | 8 ++++---- .../src/recipes/channel_id.rs | 20 +++++++++++++++++++ .../src/recipes/get_midjourney_user_id.rs | 8 +++----- .../midjourney_client/src/recipes/mod.rs | 3 ++- 4 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 crates/api_clients/midjourney_client/src/recipes/channel_id.rs diff --git a/crates/api_clients/midjourney_client/src/endpoints/submit_job.rs b/crates/api_clients/midjourney_client/src/endpoints/submit_job.rs index 51dad2b404..8f501fd874 100644 --- a/crates/api_clients/midjourney_client/src/endpoints/submit_job.rs +++ b/crates/api_clients/midjourney_client/src/endpoints/submit_job.rs @@ -30,7 +30,6 @@ pub async fn submit_job(req: SubmitJobRequest<'_>) -> Result AnyhowResult<()> { let cookie_header = read_to_trimmed_string("/Users/bt/secrets/midjourney/cookie.txt")?; + let channel_id = read_to_trimmed_string("/Users/bt/secrets/midjourney/channel_id.txt")?; let result = submit_job(SubmitJobRequest { - prompt: "photorealistic, high definition, a submarine falling out of the sky and onto manhattan, busy city, sunset, cloudy and overcast, giant military submarine, upside down submarine, falling at angle, drone shot, submarine is in pieces, cracked machinery, exposed steel, giant skyscrapers below, tall buildings, city streets, cars on streets", - channel_id: "singleplayer_f8a57ac3-e416-4dd4-9be8-2c4223691b01", + prompt: "a modern n64 console", + channel_id: &channel_id, cookie_header, hostname: MidjourneyHostname::Standard, }).await?; diff --git a/crates/api_clients/midjourney_client/src/recipes/channel_id.rs b/crates/api_clients/midjourney_client/src/recipes/channel_id.rs new file mode 100644 index 0000000000..b9f876cf3c --- /dev/null +++ b/crates/api_clients/midjourney_client/src/recipes/channel_id.rs @@ -0,0 +1,20 @@ +use crate::credentials::midjourney_user_id::MidjourneyUserId; + +#[derive(Debug, Clone)] +pub enum ChannelId { + /// Channel based on the user ID. + /// This is what Midjourney uses by default. + UserId(MidjourneyUserId), + + // Bare string ID + Raw(String), +} + +impl ChannelId { + pub fn to_string(&self) -> String { + match self { + Self::UserId(user_id) => format!("singleplayer_{}", user_id.0), + Self::Raw(id) => id.clone(), + } + } +} diff --git a/crates/api_clients/midjourney_client/src/recipes/get_midjourney_user_id.rs b/crates/api_clients/midjourney_client/src/recipes/get_midjourney_user_id.rs index 34f800ccd8..3e8f27776e 100644 --- a/crates/api_clients/midjourney_client/src/recipes/get_midjourney_user_id.rs +++ b/crates/api_clients/midjourney_client/src/recipes/get_midjourney_user_id.rs @@ -10,29 +10,27 @@ pub struct GetMidjourneyUserIdRequest { } pub async fn get_midjourney_user_id(req: GetMidjourneyUserIdRequest) -> Result { - let items = storage_list(GetStorageListRequest { hostname: req.hostname, cookie_header: req.cookie_header, }).await?; - + let user_id = items .into_iter() .find_map(|item| item.bucket_pathname) .and_then(|path| path.split('/').next().map(|id| id.to_owned())) .map(|id| MidjourneyUserId(id.to_string())) .ok_or(MidjourneyApiError::NoUserId)?; - + Ok(user_id) } #[cfg(test)] mod tests { use crate::client::midjourney_hostname::MidjourneyHostname; + use crate::recipes::get_midjourney_user_id::{get_midjourney_user_id, GetMidjourneyUserIdRequest}; use errors::AnyhowResult; use filesys::read_to_trimmed_string::read_to_trimmed_string; - use crate::endpoints::storage_list::{storage_list, GetStorageListRequest}; - use crate::recipes::get_midjourney_user_id::{get_midjourney_user_id, GetMidjourneyUserIdRequest}; #[ignore] #[tokio::test] diff --git a/crates/api_clients/midjourney_client/src/recipes/mod.rs b/crates/api_clients/midjourney_client/src/recipes/mod.rs index 1e7a68ce5c..8c812ba667 100644 --- a/crates/api_clients/midjourney_client/src/recipes/mod.rs +++ b/crates/api_clients/midjourney_client/src/recipes/mod.rs @@ -1 +1,2 @@ -mod get_midjourney_user_id; \ No newline at end of file +mod get_midjourney_user_id; +mod channel_id; \ No newline at end of file