diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/media/cover_image_links.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/media/cover_image_links.rs index e1a4ef190e..b992d4eb08 100644 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/media/cover_image_links.rs +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/media/cover_image_links.rs @@ -1,4 +1,4 @@ -use crate::http_server::common_responses::media::media_links::{MediaDomain, MediaLinks}; +use crate::http_server::common_responses::media::media_domain::MediaDomain; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; use url::Url; use utoipa::ToSchema; diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_domain.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_domain.rs new file mode 100644 index 0000000000..406cdff815 --- /dev/null +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_domain.rs @@ -0,0 +1,35 @@ +use once_cell::sync::Lazy; +use url::Url; + +//const FAKEYOU_CDN_STR: &str = "https://storage.googleapis.com/dev-vocodes-public"; +const FAKEYOU_CDN_STR: &str = "https://cdn.fakeyou.com"; + +const STORYTELLER_CDN_STR: &str = "https://cdn.storyteller.ai"; + +const FAKEYOU_CDN: Lazy = Lazy::new(|| Url::parse(FAKEYOU_CDN_STR) + .expect("should never fail")); + +const STORYTELLER_CDN: Lazy = Lazy::new(|| Url::parse(STORYTELLER_CDN_STR) + .expect("should never fail")); + +/// Which domain to generate CDN, etc. links for. +#[derive(Copy, Clone, Debug)] +pub enum MediaDomain { + FakeYou, + Storyteller, +} + +impl MediaDomain { + pub fn new_cdn_url(&self) -> Url { + match self { + MediaDomain::FakeYou => FAKEYOU_CDN.clone(), + MediaDomain::Storyteller => STORYTELLER_CDN.clone(), + } + } + pub fn cdn_url_str(&self) -> &'static str { + match self { + MediaDomain::FakeYou => FAKEYOU_CDN_STR, + MediaDomain::Storyteller => STORYTELLER_CDN_STR, + } + } +} diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_file_cover_image_details.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_file_cover_image_details.rs index e701c8ffcb..09a1b617b4 100644 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_file_cover_image_details.rs +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_file_cover_image_details.rs @@ -4,7 +4,7 @@ use url::Url; use utoipa::ToSchema; use crate::http_server::common_responses::media::cover_image_links::CoverImageLinks; -use crate::http_server::common_responses::media::media_links::MediaDomain; +use crate::http_server::common_responses::media::media_domain::MediaDomain; use crate::http_server::web_utils::bucket_urls::bucket_url_from_media_path::bucket_url_from_media_path; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; use tokens::tokens::media_files::MediaFileToken; diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_links.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_links.rs index b7af4c4b40..9a79512302 100644 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_links.rs +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/media/media_links.rs @@ -1,44 +1,12 @@ -use once_cell::sync::Lazy; use url::Url; use utoipa::ToSchema; +use crate::http_server::common_responses::media::media_domain::MediaDomain; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; -//const FAKEYOU_CDN_STR: &str = "https://storage.googleapis.com/dev-vocodes-public"; -const FAKEYOU_CDN_STR: &str = "https://cdn.fakeyou.com"; - -const STORYTELLER_CDN_STR: &str = "https://cdn.storyteller.ai"; - -const FAKEYOU_CDN: Lazy = Lazy::new(|| Url::parse(FAKEYOU_CDN_STR) - .expect("should never fail")); - -const STORYTELLER_CDN: Lazy = Lazy::new(|| Url::parse(STORYTELLER_CDN_STR) - .expect("should never fail")); - // TODO(bt,2024-09-05): Worth reducing the quality at all? const QUALITY : u8 = 95; -/// Which domain to generate CDN, etc. links for. -#[derive(Copy, Clone, Debug)] -pub enum MediaDomain { - FakeYou, - Storyteller, -} - -impl MediaDomain { - pub fn new_cdn_url(&self) -> Url { - match self { - MediaDomain::FakeYou => FAKEYOU_CDN.clone(), - MediaDomain::Storyteller => STORYTELLER_CDN.clone(), - } - } - pub fn cdn_url_str(&self) -> &'static str { - match self { - MediaDomain::FakeYou => FAKEYOU_CDN_STR, - MediaDomain::Storyteller => STORYTELLER_CDN_STR, - } - } -} /// Links to media file locations (bucket, CDN, etc.) #[derive(Serialize, ToSchema, Debug, Clone, Eq, PartialEq)] @@ -155,7 +123,7 @@ fn video_preview_thumbnail_template(media_domain: MediaDomain, rooted_path: &str mod tests { use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; - use crate::http_server::common_responses::media::media_links::MediaDomain; + use crate::http_server::common_responses::media::media_domain::MediaDomain; use crate::http_server::common_responses::media::media_links::MediaLinks; mod fakeyou { diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/media/mod.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/media/mod.rs index 52f17cbd73..416fd93782 100644 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/media/mod.rs +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/media/mod.rs @@ -1,4 +1,5 @@ pub mod cover_image_links; +pub mod media_domain; pub mod media_file_cover_image_details; pub mod media_links; pub mod weights_cover_image_details; \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/common_responses/media/weights_cover_image_details.rs b/crates/service/web/storyteller_web/src/http_server/common_responses/media/weights_cover_image_details.rs index e66e44f3c0..f68cbccf05 100644 --- a/crates/service/web/storyteller_web/src/http_server/common_responses/media/weights_cover_image_details.rs +++ b/crates/service/web/storyteller_web/src/http_server/common_responses/media/weights_cover_image_details.rs @@ -2,7 +2,7 @@ use url::Url; use utoipa::ToSchema; use crate::http_server::common_responses::media::cover_image_links::CoverImageLinks; -use crate::http_server::common_responses::media::media_links::MediaDomain; +use crate::http_server::common_responses::media::media_domain::MediaDomain; use crate::http_server::web_utils::bucket_urls::bucket_url_from_media_path::bucket_url_from_media_path; use crate::util::placeholder_images::cover_images::default_cover_image_color_from_token::default_cover_image_color_from_token; use crate::util::placeholder_images::cover_images::default_cover_image_from_token::default_cover_image_from_token; @@ -94,7 +94,7 @@ impl WeightsDefaultCoverInfo { #[cfg(test)] mod tests { - use crate::http_server::common_responses::media::media_links::MediaDomain; + use crate::http_server::common_responses::media::media_domain::MediaDomain; use crate::http_server::common_responses::media::weights_cover_image_details::WeightsCoverImageDetails; use tokens::tokens::model_weights::ModelWeightToken; use url::Url; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/batch_get_inference_job_status_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/batch_get_inference_job_status_handler.rs index 1eaff06560..234b98d99d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/batch_get_inference_job_status_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/batch_get_inference_job_status_handler.rs @@ -12,7 +12,8 @@ use log::error; use r2d2_redis::redis::{Commands, RedisResult}; use utoipa::{IntoParams, ToSchema}; -use crate::http_server::common_responses::media::media_links::{MediaDomain, MediaLinks}; +use crate::http_server::common_responses::media::media_domain::MediaDomain; +use crate::http_server::common_responses::media::media_links::MediaLinks; use crate::http_server::endpoints::inference_job::common_responses::lipsync::JobDetailsLipsyncRequest; use crate::http_server::endpoints::inference_job::common_responses::live_portrait::JobDetailsLivePortraitRequest; use crate::http_server::endpoints::inference_job::utils::estimates::estimate_job_progress::estimate_job_progress; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/get_inference_job_status_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/get_inference_job_status_handler.rs index 5c6be2e58d..66f11f1ae8 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/get_inference_job_status_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/get/get_inference_job_status_handler.rs @@ -10,7 +10,8 @@ use log::error; use r2d2_redis::redis::{Commands, RedisResult}; use utoipa::ToSchema; -use crate::http_server::common_responses::media::media_links::{MediaDomain, MediaLinks}; +use crate::http_server::common_responses::media::media_domain::MediaDomain; +use crate::http_server::common_responses::media::media_links::MediaLinks; use crate::http_server::endpoints::inference_job::common_responses::lipsync::JobDetailsLipsyncRequest; use crate::http_server::endpoints::inference_job::common_responses::live_portrait::JobDetailsLivePortraitRequest; use crate::http_server::endpoints::inference_job::utils::estimates::estimate_job_progress::estimate_job_progress; @@ -411,7 +412,7 @@ fn record_to_payload( #[cfg(test)] mod tests { - use crate::http_server::common_responses::media::media_links::MediaDomain; + use crate::http_server::common_responses::media::media_domain::MediaDomain; use crate::http_server::endpoints::inference_job::get::get_inference_job_status_handler::record_to_payload; use enums::by_table::generic_inference_jobs::inference_category::InferenceCategory; use mysql_queries::queries::generic_inference::web::job_status::{GenericInferenceJobStatus, RequestDetails, ResultDetails}; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/list/list_session_jobs_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/list/list_session_jobs_handler.rs index aaf3e0b94e..d23b7fcc2a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/list/list_session_jobs_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/inference_job/list/list_session_jobs_handler.rs @@ -12,7 +12,8 @@ use log::{error, warn}; use r2d2_redis::redis::{Commands, RedisResult}; use utoipa::{IntoParams, ToSchema}; -use crate::http_server::common_responses::media::media_links::{MediaDomain, MediaLinks}; +use crate::http_server::common_responses::media::media_domain::MediaDomain; +use crate::http_server::common_responses::media::media_links::MediaLinks; use crate::http_server::endpoints::inference_job::common_responses::lipsync::JobDetailsLipsyncRequest; use crate::http_server::endpoints::inference_job::common_responses::live_portrait::JobDetailsLivePortraitRequest; use crate::http_server::endpoints::inference_job::utils::estimates::estimate_job_progress::estimate_job_progress; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs index 50ee2abb48..57db8d439d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/get/get_media_file_handler.rs @@ -1,15 +1,26 @@ use std::fmt; use std::sync::Arc; -use actix_web::{HttpMessage, HttpRequest, HttpResponse, web}; use actix_web::error::ResponseError; use actix_web::http::{StatusCode, Uri}; use actix_web::web::{Json, Path}; +use actix_web::{web, HttpMessage, HttpRequest, HttpResponse}; use chrono::{DateTime, Utc}; use log::warn; use url::Url; use utoipa::ToSchema; +use crate::http_server::common_responses::media::media_domain::MediaDomain; +use crate::http_server::common_responses::media::media_file_cover_image_details::{MediaFileCoverImageDetails, MediaFileDefaultCover}; +use crate::http_server::common_responses::media::media_links::MediaLinks; +use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats; +use crate::http_server::common_responses::user_details_lite::UserDetailsLight; +use crate::http_server::endpoints::media_files::common_responses::live_portrait::MediaFileLivePortraitDetails; +use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; +use crate::http_server::web_utils::bucket_urls::bucket_url_from_media_path::bucket_url_from_media_path; +use crate::http_server::web_utils::bucket_urls::bucket_url_from_str_path::bucket_url_from_str_path; +use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; +use crate::state::server_state::ServerState; use buckets::public::media_files::bucket_file_path::MediaFileBucketPath; use enums::by_table::media_files::media_file_animation_type::MediaFileAnimationType; use enums::by_table::media_files::media_file_class::MediaFileClass; @@ -28,17 +39,6 @@ use tokens::tokens::media_files::MediaFileToken; use tokens::tokens::model_weights::ModelWeightToken; use tokens::tokens::prompts::PromptToken; -use crate::http_server::common_responses::media::media_file_cover_image_details::{MediaFileCoverImageDetails, MediaFileDefaultCover}; -use crate::http_server::common_responses::media::media_links::{MediaDomain, MediaLinks}; -use crate::http_server::common_responses::simple_entity_stats::SimpleEntityStats; -use crate::http_server::common_responses::user_details_lite::UserDetailsLight; -use crate::http_server::endpoints::media_files::common_responses::live_portrait::MediaFileLivePortraitDetails; -use crate::http_server::endpoints::media_files::helpers::get_media_domain::get_media_domain; -use crate::http_server::web_utils::bucket_urls::bucket_url_from_media_path::bucket_url_from_media_path; -use crate::http_server::web_utils::bucket_urls::bucket_url_from_str_path::bucket_url_from_str_path; -use crate::http_server::web_utils::response_error_helpers::to_simple_json_error; -use crate::state::server_state::ServerState; - /// For the URL PathInfo #[derive(Deserialize, ToSchema)] pub struct GetMediaFilePathInfo { diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_media_domain.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_media_domain.rs index 156a0f7dea..6e5d510161 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_media_domain.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/helpers/get_media_domain.rs @@ -1,6 +1,6 @@ use actix_web::HttpRequest; -use crate::http_server::common_responses::media::media_links::MediaDomain; +use crate::http_server::common_responses::media::media_domain::MediaDomain; use crate::http_server::requests::get_request_domain_branding::{DomainBranding, get_request_domain_branding}; pub fn get_media_domain(http_request: &HttpRequest) -> MediaDomain {