From abccceb5bd822f449bcc6c81241ff6610205b14d Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 15 Oct 2025 00:09:51 -0400 Subject: [PATCH] add full cdn url too --- ...192ec4b210c7928dc12f6b6451fb2312798b.json} | 20 ++++++++++++------- ...c2072ede9145b83935561563b3dcbd8f79b5d.json | 12 ----------- ...b7f3810909ac9b64c6a524f881594f6012673.json | 12 +++++++++++ .../20250708000000_create_tasks_table.sql | 7 ++++++- .../storyteller_task_polling_thread.rs | 3 +++ .../src/queries/list_tasks_for_frontend.rs | 4 ++++ ...te_successful_task_status_with_metadata.rs | 3 +++ 7 files changed, 41 insertions(+), 20 deletions(-) rename .sqlx/{query-5e6a6c099fbf4dbc949d3d46d885f4072e1d0761edc109ff4e1fc92b01caf3c0.json => query-37cfc2732a8a5989c317f6f4968b192ec4b210c7928dc12f6b6451fb2312798b.json} (83%) delete mode 100644 .sqlx/query-49c878f5ea50d249260ce4877a6c2072ede9145b83935561563b3dcbd8f79b5d.json create mode 100644 .sqlx/query-f8f41a7ae3543655cd74bbcb186b7f3810909ac9b64c6a524f881594f6012673.json diff --git a/.sqlx/query-5e6a6c099fbf4dbc949d3d46d885f4072e1d0761edc109ff4e1fc92b01caf3c0.json b/.sqlx/query-37cfc2732a8a5989c317f6f4968b192ec4b210c7928dc12f6b6451fb2312798b.json similarity index 83% rename from .sqlx/query-5e6a6c099fbf4dbc949d3d46d885f4072e1d0761edc109ff4e1fc92b01caf3c0.json rename to .sqlx/query-37cfc2732a8a5989c317f6f4968b192ec4b210c7928dc12f6b6451fb2312798b.json index 788735d5c0..1cc4bbf4ac 100644 --- a/.sqlx/query-5e6a6c099fbf4dbc949d3d46d885f4072e1d0761edc109ff4e1fc92b01caf3c0.json +++ b/.sqlx/query-37cfc2732a8a5989c317f6f4968b192ec4b210c7928dc12f6b6451fb2312798b.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n SELECT\n id,\n task_status,\n task_type,\n model_type,\n provider,\n provider_job_id,\n frontend_caller,\n frontend_subscriber_id,\n frontend_subscriber_payload,\n on_complete_primary_media_file_token,\n on_complete_primary_media_file_type,\n on_complete_batch_token,\n on_complete_primary_media_file_thumbnail_url_template,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n completed_at as \"completed_at: DateTime\"\n FROM tasks\n WHERE is_dismissed_by_user == 0\n ", + "query": "\n SELECT\n id,\n task_status,\n task_type,\n model_type,\n provider,\n provider_job_id,\n frontend_caller,\n frontend_subscriber_id,\n frontend_subscriber_payload,\n on_complete_primary_media_file_token,\n on_complete_primary_media_file_type,\n on_complete_batch_token,\n on_complete_primary_media_file_cdn_url,\n on_complete_primary_media_file_thumbnail_url_template,\n created_at as \"created_at: DateTime\",\n updated_at as \"updated_at: DateTime\",\n completed_at as \"completed_at: DateTime\"\n FROM tasks\n WHERE is_dismissed_by_user == 0\n ", "describe": { "columns": [ { @@ -64,24 +64,29 @@ "type_info": "Text" }, { - "name": "on_complete_primary_media_file_thumbnail_url_template", + "name": "on_complete_primary_media_file_cdn_url", "ordinal": 12, "type_info": "Text" }, { - "name": "created_at: DateTime", + "name": "on_complete_primary_media_file_thumbnail_url_template", "ordinal": 13, - "type_info": "Int64" + "type_info": "Text" }, { - "name": "updated_at: DateTime", + "name": "created_at: DateTime", "ordinal": 14, "type_info": "Int64" }, { - "name": "completed_at: DateTime", + "name": "updated_at: DateTime", "ordinal": 15, "type_info": "Int64" + }, + { + "name": "completed_at: DateTime", + "ordinal": 16, + "type_info": "Int64" } ], "parameters": { @@ -101,10 +106,11 @@ true, true, true, + true, false, false, true ] }, - "hash": "5e6a6c099fbf4dbc949d3d46d885f4072e1d0761edc109ff4e1fc92b01caf3c0" + "hash": "37cfc2732a8a5989c317f6f4968b192ec4b210c7928dc12f6b6451fb2312798b" } diff --git a/.sqlx/query-49c878f5ea50d249260ce4877a6c2072ede9145b83935561563b3dcbd8f79b5d.json b/.sqlx/query-49c878f5ea50d249260ce4877a6c2072ede9145b83935561563b3dcbd8f79b5d.json deleted file mode 100644 index 825aa8c125..0000000000 --- a/.sqlx/query-49c878f5ea50d249260ce4877a6c2072ede9145b83935561563b3dcbd8f79b5d.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n UPDATE tasks\n SET \n task_status = ?,\n on_complete_primary_media_file_token = ?,\n on_complete_batch_token = ?,\n on_complete_primary_media_file_thumbnail_url_template = ?\n WHERE id = ?\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 5 - }, - "nullable": [] - }, - "hash": "49c878f5ea50d249260ce4877a6c2072ede9145b83935561563b3dcbd8f79b5d" -} diff --git a/.sqlx/query-f8f41a7ae3543655cd74bbcb186b7f3810909ac9b64c6a524f881594f6012673.json b/.sqlx/query-f8f41a7ae3543655cd74bbcb186b7f3810909ac9b64c6a524f881594f6012673.json new file mode 100644 index 0000000000..48cba509a1 --- /dev/null +++ b/.sqlx/query-f8f41a7ae3543655cd74bbcb186b7f3810909ac9b64c6a524f881594f6012673.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n UPDATE tasks\n SET \n task_status = ?,\n on_complete_primary_media_file_token = ?,\n on_complete_batch_token = ?,\n on_complete_primary_media_file_cdn_url = ?,\n on_complete_primary_media_file_thumbnail_url_template = ?\n WHERE id = ?\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 6 + }, + "nullable": [] + }, + "hash": "f8f41a7ae3543655cd74bbcb186b7f3810909ac9b64c6a524f881594f6012673" +} diff --git a/_sql/artcraft_migrations/20250708000000_create_tasks_table.sql b/_sql/artcraft_migrations/20250708000000_create_tasks_table.sql index 21c952f57f..b410b41fb8 100644 --- a/_sql/artcraft_migrations/20250708000000_create_tasks_table.sql +++ b/_sql/artcraft_migrations/20250708000000_create_tasks_table.sql @@ -10,10 +10,11 @@ -- tasks_v2.sqlite - added model_type (nullable) -- tasks_v3.sqlite - added frontend_caller, comments -- tasks_v4.sqlite - added is_dismissed_by_user --- tasks_v5.sqlite - added four fields: +-- tasks_v5.sqlite - added five fields: -- on_complete_primary_media_file_token, -- on_complete_primary_media_file_type, -- on_complete_batch_token, +-- on_complete_primary_media_file_cdn_url, -- on_complete_primary_media_file_thumbnail_url_template, -- @@ -75,6 +76,10 @@ CREATE TABLE tasks ( -- This will point to a collection of multiple files. on_complete_batch_token TEXT, + -- OPTIONAL. + -- The URL to the media file. + on_complete_primary_media_file_cdn_url TEXT, + -- OPTIONAL. -- The URL template for the thumbnail of the primary media file. on_complete_primary_media_file_thumbnail_url_template TEXT, diff --git a/crates/desktop/artcraft/src/services/storyteller/threads/storyteller_task_polling_thread.rs b/crates/desktop/artcraft/src/services/storyteller/threads/storyteller_task_polling_thread.rs index ffd81b9f54..c40ab4baab 100644 --- a/crates/desktop/artcraft/src/services/storyteller/threads/storyteller_task_polling_thread.rs +++ b/crates/desktop/artcraft/src/services/storyteller/threads/storyteller_task_polling_thread.rs @@ -148,6 +148,9 @@ async fn polling_loop( .as_ref() .map(|result| result.maybe_batch_token.as_ref()) .flatten(), + maybe_primary_media_file_cdn_url: job.maybe_result + .as_ref() + .map(|result| result.media_links.cdn_url.as_str()), maybe_primary_media_file_thumbnail_url_template: job.maybe_result .as_ref() .map(|result| result.media_links.maybe_thumbnail_template.as_deref()) diff --git a/crates/schema/database/sqlite_tasks/src/queries/list_tasks_for_frontend.rs b/crates/schema/database/sqlite_tasks/src/queries/list_tasks_for_frontend.rs index 1c1528ba5c..2bd72eb2b5 100644 --- a/crates/schema/database/sqlite_tasks/src/queries/list_tasks_for_frontend.rs +++ b/crates/schema/database/sqlite_tasks/src/queries/list_tasks_for_frontend.rs @@ -27,6 +27,7 @@ pub struct TaskItem { pub on_complete_primary_media_file_token: Option, pub on_complete_primary_media_file_type: Option, pub on_complete_batch_token: Option, + pub on_complete_primary_media_file_cdn_url: Option, pub on_complete_primary_media_file_thumbnail_url_template: Option, pub created_at: DateTime, pub updated_at: DateTime, @@ -52,6 +53,7 @@ pub async fn list_tasks_for_frontend( on_complete_primary_media_file_token, on_complete_primary_media_file_type, on_complete_batch_token, + on_complete_primary_media_file_cdn_url, on_complete_primary_media_file_thumbnail_url_template, created_at as "created_at: DateTime", updated_at as "updated_at: DateTime", @@ -85,6 +87,7 @@ pub async fn list_tasks_for_frontend( on_complete_primary_media_file_token: raw.on_complete_primary_media_file_token.map(|t| MediaFileToken::new_from_str(&t)), on_complete_primary_media_file_type: raw.on_complete_primary_media_file_type, on_complete_batch_token: raw.on_complete_batch_token.map(|t| BatchGenerationToken::new_from_str(&t)), + on_complete_primary_media_file_cdn_url: raw.on_complete_primary_media_file_cdn_url, on_complete_primary_media_file_thumbnail_url_template: raw.on_complete_primary_media_file_thumbnail_url_template, created_at: raw.created_at, updated_at: raw.updated_at, @@ -110,6 +113,7 @@ struct TaskItemRaw { on_complete_primary_media_file_token: Option, on_complete_primary_media_file_type: Option, on_complete_batch_token: Option, + on_complete_primary_media_file_cdn_url: Option, on_complete_primary_media_file_thumbnail_url_template: Option, created_at: DateTime, updated_at: DateTime, diff --git a/crates/schema/database/sqlite_tasks/src/queries/update_successful_task_status_with_metadata.rs b/crates/schema/database/sqlite_tasks/src/queries/update_successful_task_status_with_metadata.rs index da510a7bd2..73a96b75fc 100644 --- a/crates/schema/database/sqlite_tasks/src/queries/update_successful_task_status_with_metadata.rs +++ b/crates/schema/database/sqlite_tasks/src/queries/update_successful_task_status_with_metadata.rs @@ -12,6 +12,7 @@ pub struct UpdateSuccessfulTaskArgs<'a> { pub task_id: &'a TaskId, pub maybe_primary_media_file_token: Option<&'a MediaFileToken>, pub maybe_batch_token: Option<&'a BatchGenerationToken>, + pub maybe_primary_media_file_cdn_url: Option<&'a str>, pub maybe_primary_media_file_thumbnail_url_template: Option<&'a str>, } @@ -32,12 +33,14 @@ pub async fn update_successful_task_status_with_metadata( task_status = ?, on_complete_primary_media_file_token = ?, on_complete_batch_token = ?, + on_complete_primary_media_file_cdn_url = ?, on_complete_primary_media_file_thumbnail_url_template = ? WHERE id = ? "#, SUCCESSFUL_STATUS, maybe_primary_media_token_temp, maybe_batch_token_temp, + args.maybe_primary_media_file_cdn_url, args.maybe_primary_media_file_thumbnail_url_template, task_id_temp, );