get weight - add creator + cover for model weights; rename fields

This commit is contained in:
Brandon Thomas committed 2023-12-28 23:08:54 -05:00
1 parent dbd91dd67f
commit b331cc999c
5 files changed
+274 -27

No files matched your search

@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nWHERE\n m.token = ?\n ",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nWHERE\n m.token = ?\n ",
"describe": {
"columns": [
{
@@ -115,17 +115,17 @@
},
{
"ordinal": 11,
"name": "public_bucket_directory_hash",
"name": "maybe_model_cover_image_public_bucket_hash",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 12,
"name": "maybe_public_bucket_prefix",
"name": "maybe_model_cover_image_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
@@ -135,7 +135,7 @@
},
{
"ordinal": 13,
"name": "maybe_public_bucket_extension",
"name": "maybe_model_cover_image_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
@@ -145,6 +145,76 @@
},
{
"ordinal": 14,
"name": "maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
"flags": "UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 15,
"name": "maybe_model_weight_creator_username",
"type_info": {
"type": "VarString",
"flags": "UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 16,
"name": "maybe_model_weight_creator_display_name",
"type_info": {
"type": "VarString",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 17,
"name": "maybe_model_weight_creator_gravatar_hash",
"type_info": {
"type": "String",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 18,
"name": "public_bucket_directory_hash",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 19,
"name": "maybe_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 20,
"name": "maybe_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 21,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -154,7 +224,7 @@
}
},
{
"ordinal": 15,
"ordinal": 22,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -179,6 +249,13 @@
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
true,
true,
@@ -186,5 +263,5 @@
false
]
},
"hash": "4f0517f34dec33c7714a55272fd06cd9e5139f6a8acf83a2e20de431eb4a0f9d"
"hash": "5126434fe542604233d8c8a4f553998d8e71b4957989a9a856ebaf7fb52bab42"
}
@@ -1,6 +1,6 @@
{
"db_name": "MySQL",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nWHERE\n m.token = ?\n AND m.user_deleted_at IS NULL\n AND m.mod_deleted_at IS NULL\n ",
"query": "\nSELECT\n m.token as `token: tokens::tokens::media_files::MediaFileToken`,\n\n m.media_type as `media_type: enums::by_table::media_files::media_file_type::MediaFileType`,\n\n users.token as `maybe_creator_user_token: tokens::tokens::users::UserToken`,\n users.username as maybe_creator_username,\n users.display_name as maybe_creator_display_name,\n users.email_gravatar_hash as maybe_creator_gravatar_hash,\n\n m.creator_set_visibility as `creator_set_visibility: enums::common::visibility::Visibility`,\n\n model_weights.token as `maybe_model_weights_token: tokens::tokens::model_weights::ModelWeightToken`,\n model_weights.title as maybe_model_weights_title,\n model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,\n model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,\n\n cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,\n cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,\n cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,\n\n model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,\n model_weight_creator.username as maybe_model_weight_creator_username,\n model_weight_creator.display_name as maybe_model_weight_creator_display_name,\n model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,\n\n m.public_bucket_directory_hash,\n m.maybe_public_bucket_prefix,\n m.maybe_public_bucket_extension,\n\n m.created_at,\n m.updated_at\n\nFROM media_files AS m\nLEFT OUTER JOIN users\n ON m.maybe_creator_user_token = users.token\nLEFT OUTER JOIN model_weights\n ON m.maybe_origin_model_token = model_weights.token\nLEFT OUTER JOIN media_files as cover_image\n ON cover_image.token = model_weights.maybe_cover_image_media_file_token\nLEFT OUTER JOIN users as model_weight_creator\n ON model_weight_creator.token = model_weights.creator_user_token\nWHERE\n m.token = ?\n AND m.user_deleted_at IS NULL\n AND m.mod_deleted_at IS NULL\n ",
"describe": {
"columns": [
{
@@ -115,17 +115,17 @@
},
{
"ordinal": 11,
"name": "public_bucket_directory_hash",
"name": "maybe_model_cover_image_public_bucket_hash",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 12,
"name": "maybe_public_bucket_prefix",
"name": "maybe_model_cover_image_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
@@ -135,7 +135,7 @@
},
{
"ordinal": 13,
"name": "maybe_public_bucket_extension",
"name": "maybe_model_cover_image_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
@@ -145,6 +145,76 @@
},
{
"ordinal": 14,
"name": "maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken",
"type_info": {
"type": "VarString",
"flags": "UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 15,
"name": "maybe_model_weight_creator_username",
"type_info": {
"type": "VarString",
"flags": "UNIQUE_KEY | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 16,
"name": "maybe_model_weight_creator_display_name",
"type_info": {
"type": "VarString",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 80
}
},
{
"ordinal": 17,
"name": "maybe_model_weight_creator_gravatar_hash",
"type_info": {
"type": "String",
"flags": "BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 18,
"name": "public_bucket_directory_hash",
"type_info": {
"type": "VarString",
"flags": "NOT_NULL | BINARY | NO_DEFAULT_VALUE",
"char_set": 224,
"max_size": 128
}
},
{
"ordinal": 19,
"name": "maybe_public_bucket_prefix",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 20,
"name": "maybe_public_bucket_extension",
"type_info": {
"type": "VarString",
"flags": "BINARY",
"char_set": 224,
"max_size": 64
}
},
{
"ordinal": 21,
"name": "created_at",
"type_info": {
"type": "Timestamp",
@@ -154,7 +224,7 @@
}
},
{
"ordinal": 15,
"ordinal": 22,
"name": "updated_at",
"type_info": {
"type": "Timestamp",
@@ -179,6 +249,13 @@
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
true,
true,
@@ -186,5 +263,5 @@
false
]
},
"hash": "59b2bf500a8f32919d08db935e01fbb2723d5356d3f045ca18889c9317589edd"
"hash": "58648783cb376fc7ad093ff50a8a7bcb3c55fe57b2ad7d3ebbbdbc63573069ba"
}
@@ -39,6 +39,15 @@ pub struct MediaFile {
pub maybe_model_weights_type: Option<WeightsType>,
pub maybe_model_weights_category: Option<WeightsCategory>,
pub maybe_model_cover_image_public_bucket_hash: Option<String>,
pub maybe_model_cover_image_public_bucket_prefix: Option<String>,
pub maybe_model_cover_image_public_bucket_extension: Option<String>,
pub maybe_model_weight_creator_user_token: Option<UserToken>,
pub maybe_model_weight_creator_username: Option<String>,
pub maybe_model_weight_creator_display_name: Option<String>,
pub maybe_model_weight_creator_gravatar_hash: Option<String>,
pub public_bucket_directory_hash: String,
pub maybe_public_bucket_prefix: Option<String>,
pub maybe_public_bucket_extension: Option<String>,
@@ -81,6 +90,15 @@ pub struct MediaFileRaw {
pub maybe_model_weights_type: Option<WeightsType>,
pub maybe_model_weights_category: Option<WeightsCategory>,
pub maybe_model_cover_image_public_bucket_hash: Option<String>,
pub maybe_model_cover_image_public_bucket_prefix: Option<String>,
pub maybe_model_cover_image_public_bucket_extension: Option<String>,
pub maybe_model_weight_creator_user_token: Option<UserToken>,
pub maybe_model_weight_creator_username: Option<String>,
pub maybe_model_weight_creator_display_name: Option<String>,
pub maybe_model_weight_creator_gravatar_hash: Option<String>,
pub public_bucket_directory_hash: String,
pub maybe_public_bucket_prefix: Option<String>,
pub maybe_public_bucket_extension: Option<String>,
@@ -126,6 +144,13 @@ pub async fn get_media_file(
maybe_model_weights_title: record.maybe_model_weights_title,
maybe_model_weights_type: record.maybe_model_weights_type,
maybe_model_weights_category: record.maybe_model_weights_category,
maybe_model_cover_image_public_bucket_hash: record.maybe_model_cover_image_public_bucket_hash,
maybe_model_cover_image_public_bucket_prefix: record.maybe_model_cover_image_public_bucket_prefix,
maybe_model_cover_image_public_bucket_extension: record.maybe_model_cover_image_public_bucket_extension,
maybe_model_weight_creator_user_token: record.maybe_model_weight_creator_user_token,
maybe_model_weight_creator_username: record.maybe_model_weight_creator_username,
maybe_model_weight_creator_display_name: record.maybe_model_weight_creator_display_name,
maybe_model_weight_creator_gravatar_hash: record.maybe_model_weight_creator_gravatar_hash,
public_bucket_directory_hash: record.public_bucket_directory_hash,
maybe_public_bucket_prefix: record.maybe_public_bucket_prefix,
maybe_public_bucket_extension: record.maybe_public_bucket_extension,
@@ -158,6 +183,15 @@ SELECT
model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,
model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,
cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,
cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,
cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,
model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,
model_weight_creator.username as maybe_model_weight_creator_username,
model_weight_creator.display_name as maybe_model_weight_creator_display_name,
model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,
m.public_bucket_directory_hash,
m.maybe_public_bucket_prefix,
m.maybe_public_bucket_extension,
@@ -170,6 +204,10 @@ LEFT OUTER JOIN users
ON m.maybe_creator_user_token = users.token
LEFT OUTER JOIN model_weights
ON m.maybe_origin_model_token = model_weights.token
LEFT OUTER JOIN media_files as cover_image
ON cover_image.token = model_weights.maybe_cover_image_media_file_token
LEFT OUTER JOIN users as model_weight_creator
ON model_weight_creator.token = model_weights.creator_user_token
WHERE
m.token = ?
"#,
@@ -203,6 +241,15 @@ SELECT
model_weights.weights_type as `maybe_model_weights_type: enums::by_table::model_weights::weights_types::WeightsType`,
model_weights.weights_category as `maybe_model_weights_category: enums::by_table::model_weights::weights_category::WeightsCategory`,
cover_image.public_bucket_directory_hash as maybe_model_cover_image_public_bucket_hash,
cover_image.maybe_public_bucket_prefix as maybe_model_cover_image_public_bucket_prefix,
cover_image.maybe_public_bucket_extension as maybe_model_cover_image_public_bucket_extension,
model_weight_creator.token as `maybe_model_weight_creator_user_token: tokens::tokens::users::UserToken`,
model_weight_creator.username as maybe_model_weight_creator_username,
model_weight_creator.display_name as maybe_model_weight_creator_display_name,
model_weight_creator.email_gravatar_hash as maybe_model_weight_creator_gravatar_hash,
m.public_bucket_directory_hash,
m.maybe_public_bucket_prefix,
m.maybe_public_bucket_extension,
@@ -215,6 +262,10 @@ LEFT OUTER JOIN users
ON m.maybe_creator_user_token = users.token
LEFT OUTER JOIN model_weights
ON m.maybe_origin_model_token = model_weights.token
LEFT OUTER JOIN media_files as cover_image
ON cover_image.token = model_weights.maybe_cover_image_media_file_token
LEFT OUTER JOIN users as model_weight_creator
ON model_weight_creator.token = model_weights.creator_user_token
WHERE
m.token = ?
AND m.user_deleted_at IS NULL
@@ -64,18 +64,33 @@ use crate::http_server::web_utils::response_success_helpers::*;
),
components(schemas(
// Tokens
InferenceJobToken,
MediaFileToken,
ModelWeightToken,
UserBookmarkToken,
UserToken,
// Common
SimpleGenericJsonSuccess,Visibility,
PaginationCursors,PaginationPage,
// Enums
MediaFileOriginCategory,
MediaFileOriginModelType,
MediaFileOriginProductCategory,
MediaFileType,
WeightsCategory,
WeightsType,
// Common response structs
DefaultAvatarInfo,
PaginationCursors,
PaginationPage,
SimpleGenericJsonSuccess,
UserDetailsLight,
Visibility,
// Inference
EnqueueTTSRequest,EnqueueTTSRequestSuccessResponse,EnqueueTTSRequestError,InferenceJobToken,
EnqueueTTSRequest,EnqueueTTSRequestSuccessResponse,EnqueueTTSRequestError,
// Media Files
GetMediaFilePathInfo,GetMediaFileError,GetMediaFileSuccessResponse,GetMediaFileModelInfo,MediaFileInfo,
// Model Weights
WeightsCategory,WeightsType,
GetWeightPathInfo,GetWeightResponse,GetWeightError,
UpdateWeightRequest,UpdateWeightRequest,UpdateWeightPathInfo,UpdateWeightRequest,UpdateWeightError,
SetModelWeightCoverImageRequest,SetModelWeightCoverImageResponse,SetModelWeightCoverImagePathInfo,SetModelWeightCoverImageError,
@@ -84,15 +99,13 @@ use crate::http_server::web_utils::response_success_helpers::*;
ListWeightError,ModelWeightForList,ListWeightError,
ListAvailableWeightsQuery,ListAvailableWeightsSuccessResponse,ModelWeightForList,
ListWeightsByUserError,ListWeightsByUserSuccessResponse,ListWeightsByUserPathInfo,Weight,
UserDetailsLight,DefaultAvatarInfo,
WeightsData,MediaFileData,
MediaFileOriginModelType,MediaFileOriginProductCategory,MediaFileOriginCategory,
ListFeaturedMediaFilesSuccessResponse,MediaFile,MediaFileType, ListFeaturedMediaFilesError,
ListFeaturedMediaFilesSuccessResponse,MediaFile, ListFeaturedMediaFilesError,
ListMediaFilesSuccessResponse, ListMediaFilesError, MediaFileListItem, ListMediaFilesQueryParams,
MediaFileSocialMetaLight,
ListMediaFilesForUserSuccessResponse,ListMediaFilesForUserQueryParams,ListMediaFilesForUserError,ListMediaFilesForUserPathInfo,
MediaFileForUserListItem, MediaFileForUserListItem,
UserBookmarkToken,UserBookmarkDetailsForUserList,UserBookmarkEntityType,
UserBookmarkDetailsForUserList,UserBookmarkEntityType,
CreateUserBookmarkRequest,CreateUserBookmarkError,CreateUserBookmarkSuccessResponse,
DeleteUserBookmarkPathInfo,DeleteUserBookmarkError,DeleteUserBookmarkRequest,
ListUserBookmarksPathInfo,ListUserBookmarksForUserError,ListUserBookmarksForUserSuccessResponse,UserBookmarkListItem,
@@ -56,7 +56,6 @@ pub struct MediaFileInfo {
/// Possible model info (if generated by inference)
pub maybe_model_weight_info: Option<GetMediaFileModelInfo>,
/// User info
pub maybe_creator_user: Option<UserDetailsLight>,
@@ -84,10 +83,18 @@ pub struct MediaFileInfo {
#[derive(Serialize, ToSchema)]
pub struct GetMediaFileModelInfo {
pub token: ModelWeightToken,
pub weight_token: ModelWeightToken,
pub weight_type: WeightsType,
pub weight_category: WeightsCategory,
pub title: String,
/// Cover images are small descriptive images that can be set for any model.
/// If a cover image is set, this is the path to the asset.
pub maybe_cover_image_public_bucket_path: Option<String>,
/// NB: Technically this shouldn't be a nullable field, but since there are so many
/// joins we'll relax that this must exist (for now).
pub maybe_weight_creator: Option<UserDetailsLight>,
}
#[derive(Debug, ToSchema)]
@@ -220,6 +227,19 @@ async fn modern_media_file_lookup(
.get_full_object_path_str()
.to_string();
let maybe_cover_image_public_bucket_path = match result.maybe_model_cover_image_public_bucket_hash
.as_deref()
{
None => None,
Some(hash) => Some(MediaFileBucketPath::from_object_hash(
&hash,
result.maybe_model_cover_image_public_bucket_prefix.as_deref(),
result.maybe_model_cover_image_public_bucket_extension.as_deref())
.get_full_object_path_str()
.to_string()
)
};
Ok(GetMediaFileSuccessResponse {
success: true,
media_file: MediaFileInfo {
@@ -229,12 +249,19 @@ async fn modern_media_file_lookup(
maybe_model_weight_info: match result.maybe_model_weights_token {
None => None,
Some(weight_token) => Some(GetMediaFileModelInfo {
token: weight_token,
weight_token,
// TODO(bt,2023-12-28): Instead of giving bogus defaults on None, make these optional or return
// None for *everything* on any field being absent.
weight_type: result.maybe_model_weights_type.unwrap_or(WeightsType::Tacotron2),
weight_category: result.maybe_model_weights_category.unwrap_or(WeightsCategory::TextToSpeech),
title: result.maybe_model_weights_title.unwrap_or_else(|| "model".to_string()),
maybe_cover_image_public_bucket_path,
maybe_weight_creator: UserDetailsLight::from_optional_db_fields_owned(
result.maybe_model_weight_creator_user_token,
result.maybe_model_weight_creator_username,
result.maybe_model_weight_creator_display_name,
result.maybe_model_weight_creator_gravatar_hash,
),
})
},
maybe_creator_user: UserDetailsLight::from_optional_db_fields_owned(
@@ -300,10 +327,12 @@ async fn emulate_media_file_with_legacy_tts_result_lookup(
public_bucket_path,
maybe_model_weight_info: Some(GetMediaFileModelInfo {
// NB: These should be reasonable synthetic defaults for emulated TT2 results, even the "ModelWeightToken".
token: ModelWeightToken::new_from_str(&result.tts_model_token),
weight_token: ModelWeightToken::new_from_str(&result.tts_model_token),
weight_type: WeightsType::Tacotron2,
weight_category: WeightsCategory::TextToSpeech,
title: result.tts_model_title.unwrap_or_else(|| "tacotron2 model".to_string()),
maybe_cover_image_public_bucket_path: None,
maybe_weight_creator: None, // NB: Not worth the trouble of synthesizing this
}),
maybe_creator_user: UserDetailsLight::from_optional_db_fields_owned(
result.maybe_creator_user_token,