mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-20 17:02:53 -04:00
refactor tts_render_targets -> tts_render_tasks
This commit is contained in:
@@ -5,6 +5,6 @@ pub mod trending_model_analytics;
|
||||
pub mod user_ratings;
|
||||
|
||||
// ===== Sqlite =====
|
||||
pub mod tts_render_targets;
|
||||
pub mod tts_render_tasks;
|
||||
pub mod web_rendition_targets;
|
||||
pub mod web_scraping_targets;
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ use strum::EnumCount;
|
||||
#[cfg(test)]
|
||||
use strum::EnumIter;
|
||||
|
||||
/// Used in the SqLite `web_scraping_targets` table in a `TEXT` field named `scraping_status`.
|
||||
/// Used in the SqLite `tts_render_tasks` table in a `TEXT` field named `tts_render_status`.
|
||||
#[cfg_attr(test, derive(EnumIter, EnumCount))]
|
||||
#[derive(Clone, Copy, Eq, PartialEq, Hash, Deserialize, Serialize)]
|
||||
pub enum TtsRenderStatus {
|
||||
@@ -30,7 +30,7 @@ pub enum TtsRenderStatus {
|
||||
Success,
|
||||
}
|
||||
|
||||
// TODO(bt, 2023-01-17): This desperately needs MySQL integration tests!
|
||||
// TODO(bt, 2023-01-17): This desperately needs Sqlite integration tests!
|
||||
impl_enum_display_and_debug_using_to_str!(TtsRenderStatus);
|
||||
impl_sqlite_enum_coders!(TtsRenderStatus);
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
pub mod news_story_productions;
|
||||
pub mod web_scraping_targets;
|
||||
pub mod tts_render_targets;
|
||||
pub mod tts_render_tasks;
|
||||
pub mod web_scraping_targets;
|
||||
@@ -1,4 +0,0 @@
|
||||
pub mod list_tts_render_targets_awaiting_download;
|
||||
pub mod list_tts_render_targets_awaiting_render;
|
||||
pub mod list_tts_render_targets_for_story_token;
|
||||
pub mod tts_render_target;
|
||||
@@ -1,3 +0,0 @@
|
||||
pub mod insert_tts_render_target;
|
||||
pub mod list;
|
||||
pub mod update;
|
||||
@@ -1,3 +0,0 @@
|
||||
pub mod update_tts_render_target_successfully_downloaded;
|
||||
pub mod update_tts_render_target_successfully_submitted;
|
||||
pub mod update_tts_render_target_unsuccessfully_submitted;
|
||||
+2
-5
@@ -1,8 +1,5 @@
|
||||
use enums::by_table::web_scraping_targets::web_content_type::WebContentType;
|
||||
use enums::common::sqlite::skip_reason::SkipReason;
|
||||
use errors::{anyhow, AnyhowResult};
|
||||
use sqlx::SqlitePool;
|
||||
use enums::by_table::web_scraping_targets::scraping_status::ScrapingStatus;
|
||||
use tokens::tokens::news_stories::NewsStoryToken;
|
||||
use tokens::tokens::tts_models::TtsModelToken;
|
||||
use tokens::tokens::tts_render_tasks::TtsRenderTaskToken;
|
||||
@@ -20,7 +17,7 @@ pub struct Args <'a> {
|
||||
pub sqlite_pool: &'a SqlitePool,
|
||||
}
|
||||
|
||||
pub async fn insert_tts_render_target(args: Args<'_>) -> AnyhowResult<()> {
|
||||
pub async fn insert_tts_render_task(args: Args<'_>) -> AnyhowResult<()> {
|
||||
let news_story_token = args.news_story_token.to_string();
|
||||
let tts_voice_identifier= args.tts_voice_identifier.to_string();
|
||||
|
||||
@@ -28,7 +25,7 @@ pub async fn insert_tts_render_target(args: Args<'_>) -> AnyhowResult<()> {
|
||||
|
||||
let query = sqlx::query!(
|
||||
r#"
|
||||
INSERT INTO tts_render_targets(
|
||||
INSERT INTO tts_render_tasks(
|
||||
token,
|
||||
story_type,
|
||||
story_token,
|
||||
+6
-8
@@ -1,20 +1,18 @@
|
||||
use crate::queries::by_table::tts_render_targets::list::tts_render_target::TtsRenderTarget;
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use crate::queries::by_table::tts_render_tasks::list::tts_render_task::TtsRenderTask;
|
||||
use errors::{anyhow, AnyhowResult};
|
||||
use sqlx::SqlitePool;
|
||||
use tokens::tokens::tts_models::TtsModelToken;
|
||||
use tokens::tokens::tts_render_tasks::TtsRenderTaskToken;
|
||||
|
||||
// TODO: need to move download status to a different column as it's a different job
|
||||
|
||||
pub async fn list_tts_render_targets_awaiting_download(
|
||||
pub async fn list_tts_render_tasks_awaiting_download(
|
||||
last_id: i64,
|
||||
limit: i64,
|
||||
sqlite_pool: &SqlitePool,
|
||||
) -> AnyhowResult<Vec<TtsRenderTarget>> {
|
||||
) -> AnyhowResult<Vec<TtsRenderTask>> {
|
||||
|
||||
let query = sqlx::query_as!(
|
||||
TtsRenderTarget,
|
||||
TtsRenderTask,
|
||||
r#"
|
||||
SELECT
|
||||
id,
|
||||
@@ -29,9 +27,9 @@ SELECT
|
||||
maybe_result_token,
|
||||
maybe_result_url,
|
||||
maybe_result_relative_filesystem_location,
|
||||
tts_render_status as `tts_render_status: enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus`,
|
||||
tts_render_status as `tts_render_status: enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus`,
|
||||
tts_render_attempts
|
||||
FROM tts_render_targets
|
||||
FROM tts_render_tasks
|
||||
WHERE
|
||||
tts_render_status = "processing"
|
||||
AND id > ?
|
||||
+7
-7
@@ -1,23 +1,23 @@
|
||||
use crate::queries::by_table::tts_render_targets::list::tts_render_target::TtsRenderTarget;
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use crate::queries::by_table::tts_render_tasks::list::tts_render_task::TtsRenderTask;
|
||||
use enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus;
|
||||
use errors::{anyhow, AnyhowResult};
|
||||
use sqlx::SqlitePool;
|
||||
use tokens::tokens::tts_models::TtsModelToken;
|
||||
use tokens::tokens::tts_render_tasks::TtsRenderTaskToken;
|
||||
|
||||
pub async fn list_tts_render_targets_awaiting_render(
|
||||
pub async fn list_tts_render_tasks_awaiting_render(
|
||||
tts_render_status: TtsRenderStatus,
|
||||
last_id: i64,
|
||||
limit: i64,
|
||||
sqlite_pool: &SqlitePool,
|
||||
) -> AnyhowResult<Vec<TtsRenderTarget>> {
|
||||
) -> AnyhowResult<Vec<TtsRenderTask>> {
|
||||
|
||||
// NB: Sqlx doesn't support `WHERE ... IN (...)` "yet". :(
|
||||
// https://github.com/launchbadge/sqlx/blob/6d0d7402c8a9cbea2676a1795e9fb50b0cf60c03/FAQ.md?plain=1#L73
|
||||
let tts_render_status = tts_render_status.to_str().to_string();
|
||||
|
||||
let query = sqlx::query_as!(
|
||||
TtsRenderTarget,
|
||||
TtsRenderTask,
|
||||
r#"
|
||||
SELECT
|
||||
id,
|
||||
@@ -32,9 +32,9 @@ SELECT
|
||||
maybe_result_token,
|
||||
maybe_result_url,
|
||||
maybe_result_relative_filesystem_location,
|
||||
tts_render_status as `tts_render_status: enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus`,
|
||||
tts_render_status as `tts_render_status: enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus`,
|
||||
tts_render_attempts
|
||||
FROM tts_render_targets
|
||||
FROM tts_render_tasks
|
||||
WHERE
|
||||
tts_render_status = ?
|
||||
AND id > ?
|
||||
+7
-7
@@ -1,5 +1,5 @@
|
||||
use crate::queries::by_table::tts_render_targets::list::tts_render_target::TtsRenderTarget;
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use crate::queries::by_table::tts_render_tasks::list::tts_render_task::TtsRenderTask;
|
||||
use enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus;
|
||||
use errors::{anyhow, AnyhowResult};
|
||||
use sqlx::SqlitePool;
|
||||
use tokens::tokens::tts_models::TtsModelToken;
|
||||
@@ -7,14 +7,14 @@ use tokens::tokens::tts_render_tasks::TtsRenderTaskToken;
|
||||
|
||||
// TODO: need to move download status to a different column as it's a different job
|
||||
|
||||
pub async fn list_tts_render_targets_for_story_token(
|
||||
pub async fn list_tts_render_tasks_for_story_token(
|
||||
story_type: &str,
|
||||
story_token: &str,
|
||||
sqlite_pool: &SqlitePool,
|
||||
) -> AnyhowResult<Vec<TtsRenderTarget>> {
|
||||
) -> AnyhowResult<Vec<TtsRenderTask>> {
|
||||
|
||||
let query = sqlx::query_as!(
|
||||
TtsRenderTarget,
|
||||
TtsRenderTask,
|
||||
r#"
|
||||
SELECT
|
||||
id,
|
||||
@@ -29,9 +29,9 @@ SELECT
|
||||
maybe_result_token,
|
||||
maybe_result_url,
|
||||
maybe_result_relative_filesystem_location,
|
||||
tts_render_status as `tts_render_status: enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus`,
|
||||
tts_render_status as `tts_render_status: enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus`,
|
||||
tts_render_attempts
|
||||
FROM tts_render_targets
|
||||
FROM tts_render_tasks
|
||||
WHERE
|
||||
story_type = ?
|
||||
AND story_token = ?
|
||||
@@ -0,0 +1,4 @@
|
||||
pub mod list_tts_render_tasks_awaiting_download;
|
||||
pub mod list_tts_render_tasks_awaiting_render;
|
||||
pub mod list_tts_render_tasks_for_story_token;
|
||||
pub mod tts_render_task;
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus;
|
||||
use tokens::tokens::tts_render_tasks::TtsRenderTaskToken;
|
||||
|
||||
pub struct TtsRenderTarget {
|
||||
pub struct TtsRenderTask {
|
||||
pub id: i64,
|
||||
pub token: TtsRenderTaskToken,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
pub mod insert_tts_render_task;
|
||||
pub mod list;
|
||||
pub mod update;
|
||||
@@ -0,0 +1,3 @@
|
||||
pub mod update_tts_render_task_successfully_downloaded;
|
||||
pub mod update_tts_render_task_successfully_submitted;
|
||||
pub mod update_tts_render_task_unsuccessfully_submitted;
|
||||
+2
-2
@@ -16,10 +16,10 @@ pub struct Args <'a> {
|
||||
|
||||
// TODO: Split inference + downloads
|
||||
|
||||
pub async fn update_tts_render_target_successfully_downloaded(args: Args<'_>) -> AnyhowResult<()> {
|
||||
pub async fn update_tts_render_task_successfully_downloaded(args: Args<'_>) -> AnyhowResult<()> {
|
||||
let query = sqlx::query!(
|
||||
r#"
|
||||
UPDATE tts_render_targets
|
||||
UPDATE tts_render_tasks
|
||||
SET
|
||||
maybe_result_token = ?,
|
||||
maybe_result_url = ?,
|
||||
+2
-2
@@ -12,10 +12,10 @@ pub struct Args <'a> {
|
||||
pub sqlite_pool: &'a SqlitePool,
|
||||
}
|
||||
|
||||
pub async fn update_tts_render_target_successfully_submitted(args: Args<'_>) -> AnyhowResult<()> {
|
||||
pub async fn update_tts_render_task_successfully_submitted(args: Args<'_>) -> AnyhowResult<()> {
|
||||
let query = sqlx::query!(
|
||||
r#"
|
||||
UPDATE tts_render_targets
|
||||
UPDATE tts_render_tasks
|
||||
SET
|
||||
maybe_inference_job_token = ?,
|
||||
tts_render_status = "processing",
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
use enums::common::sqlite::awaitable_job_status::AwaitableJobStatus;
|
||||
use errors::{anyhow, AnyhowResult};
|
||||
use sqlx::SqlitePool;
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus;
|
||||
use tokens::tokens::news_stories::NewsStoryToken;
|
||||
use tokens::tokens::tts_render_tasks::TtsRenderTaskToken;
|
||||
|
||||
@@ -12,12 +12,12 @@ pub struct Args <'a> {
|
||||
pub sqlite_pool: &'a SqlitePool,
|
||||
}
|
||||
|
||||
pub async fn update_tts_render_target_unsuccessfully_submitted(args: Args<'_>) -> AnyhowResult<()> {
|
||||
pub async fn update_tts_render_task_unsuccessfully_submitted(args: Args<'_>) -> AnyhowResult<()> {
|
||||
let mut tts_render_status = next_status(args.tts_render_attempts);
|
||||
|
||||
let query = sqlx::query!(
|
||||
r#"
|
||||
UPDATE tts_render_targets
|
||||
UPDATE tts_render_tasks
|
||||
SET
|
||||
tts_render_status = ?,
|
||||
tts_render_attempts = ?,
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
-- noinspection SqlNoDataSourceInspectionForFile
|
||||
-- noinspection SqlResolveForFile
|
||||
|
||||
DROP TABLE tts_render_targets;
|
||||
DROP TABLE tts_render_tasks;
|
||||
+3
-3
@@ -4,7 +4,7 @@
|
||||
|
||||
-- NB: These tables are designed for sqlite, not MySQL!
|
||||
|
||||
CREATE TABLE tts_render_targets (
|
||||
CREATE TABLE tts_render_tasks (
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
|
||||
-- Effective primary key.
|
||||
@@ -60,5 +60,5 @@ CREATE TABLE tts_render_targets (
|
||||
version INT DEFAULT 0 NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX index_tts_render_status ON tts_render_targets(tts_render_status);
|
||||
CREATE INDEX index_tts_render_foreign_key ON tts_render_targets(story_type, story_token);
|
||||
CREATE INDEX index_tts_render_status ON tts_render_tasks(tts_render_status);
|
||||
CREATE INDEX index_tts_render_foreign_key ON tts_render_tasks(story_type, story_token);
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
use crate::shared_state::job_state::JobState;
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus;
|
||||
use enums::by_table::web_scraping_targets::scraping_status::ScrapingStatus;
|
||||
use errors::AnyhowResult;
|
||||
use log::{debug, error, info};
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::list::list_tts_render_targets_awaiting_render::list_tts_render_targets_awaiting_render;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::list::list_tts_render_tasks_awaiting_render::list_tts_render_tasks_awaiting_render;
|
||||
use sqlite_queries::queries::by_table::web_scraping_targets::insert_web_scraping_target::{Args, insert_web_scraping_target};
|
||||
use sqlite_queries::queries::by_table::web_scraping_targets::list_web_scraping_targets::WebScrapingTarget as WebScrapingTargetRecord;
|
||||
use sqlite_queries::queries::by_table::web_scraping_targets::list_web_scraping_targets::list_web_scraping_targets;
|
||||
@@ -55,7 +55,7 @@ async fn scrape_jobs_of_status(status: TtsRenderStatus, job_state: &Arc<JobState
|
||||
|
||||
debug!("fakeyou_audio_create querying {:?} targets from id > {} ...", &status, last_id);
|
||||
|
||||
let query_result = list_tts_render_targets_awaiting_render(
|
||||
let query_result = list_tts_render_tasks_awaiting_render(
|
||||
status, last_id, BATCH_SIZE, &job_state.sqlite_pool).await;
|
||||
|
||||
let targets = match query_result {
|
||||
|
||||
+9
-9
@@ -3,15 +3,15 @@ use errors::{anyhow, AnyhowResult};
|
||||
use fakeyou_client::api::tts_inference::CreateTtsInferenceRequest;
|
||||
use idempotency::uuid::generate_random_uuid;
|
||||
use log::{error, info};
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::list::tts_render_target::TtsRenderTarget;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::update::update_tts_render_target_successfully_submitted::Args as SuccessArgs;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::update::update_tts_render_target_successfully_submitted::update_tts_render_target_successfully_submitted;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::update::update_tts_render_target_unsuccessfully_submitted::Args as UnsuccessfulArgs;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::update::update_tts_render_target_unsuccessfully_submitted::update_tts_render_target_unsuccessfully_submitted;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::list::tts_render_task::TtsRenderTask;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::update::update_tts_render_task_successfully_submitted::Args as SuccessArgs;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::update::update_tts_render_task_successfully_submitted::update_tts_render_task_successfully_submitted;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::update::update_tts_render_task_unsuccessfully_submitted::Args as UnsuccessfulArgs;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::update::update_tts_render_task_unsuccessfully_submitted::update_tts_render_task_unsuccessfully_submitted;
|
||||
use std::sync::Arc;
|
||||
use tokens::tokens::tts_models::TtsModelToken;
|
||||
|
||||
pub async fn process_single_record(target: &TtsRenderTarget, job_state: &Arc<JobState>) -> AnyhowResult<()> {
|
||||
pub async fn process_single_record(target: &TtsRenderTask, job_state: &Arc<JobState>) -> AnyhowResult<()> {
|
||||
|
||||
info!("Posting FakeYou create TTS request...");
|
||||
|
||||
@@ -31,7 +31,7 @@ pub async fn process_single_record(target: &TtsRenderTarget, job_state: &Arc<Job
|
||||
Err(err) => {
|
||||
error!("problem submitting to FakeYou: {:}", err);
|
||||
|
||||
update_tts_render_target_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
update_tts_render_task_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
tts_render_task_token: &target.token,
|
||||
tts_render_attempts,
|
||||
sqlite_pool: &job_state.sqlite_pool,
|
||||
@@ -41,13 +41,13 @@ pub async fn process_single_record(target: &TtsRenderTarget, job_state: &Arc<Job
|
||||
if !res.success {
|
||||
error!("unknown problem in submitting to FakeYou");
|
||||
|
||||
update_tts_render_target_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
update_tts_render_task_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
tts_render_task_token: &target.token,
|
||||
tts_render_attempts,
|
||||
sqlite_pool: &job_state.sqlite_pool,
|
||||
}).await?;
|
||||
} else {
|
||||
update_tts_render_target_successfully_submitted(SuccessArgs {
|
||||
update_tts_render_task_successfully_submitted(SuccessArgs {
|
||||
tts_render_task_token: &target.token,
|
||||
tts_inference_job_token: &res.inference_job_token.ok_or(anyhow!("no token"))?,
|
||||
sqlite_pool: &job_state.sqlite_pool,
|
||||
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
use crate::shared_state::job_state::JobState;
|
||||
use crate::workers::audio::fakeyou_audio_download::process_single_record::process_single_record;
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus;
|
||||
use enums::by_table::web_scraping_targets::scraping_status::ScrapingStatus;
|
||||
use errors::AnyhowResult;
|
||||
use log::{debug, error, info};
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::list::list_tts_render_targets_awaiting_download::list_tts_render_targets_awaiting_download;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::list::list_tts_render_targets_awaiting_render::list_tts_render_targets_awaiting_render;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::list::list_tts_render_tasks_awaiting_download::list_tts_render_tasks_awaiting_download;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::list::list_tts_render_tasks_awaiting_render::list_tts_render_tasks_awaiting_render;
|
||||
use sqlite_queries::queries::by_table::web_scraping_targets::insert_web_scraping_target::{Args, insert_web_scraping_target};
|
||||
use sqlite_queries::queries::by_table::web_scraping_targets::list_web_scraping_targets::WebScrapingTarget as WebScrapingTargetRecord;
|
||||
use sqlite_queries::queries::by_table::web_scraping_targets::list_web_scraping_targets::list_web_scraping_targets;
|
||||
@@ -49,7 +49,7 @@ async fn query_and_process_jobs(job_state: &Arc<JobState>) {
|
||||
|
||||
debug!("fakeyou_audio_create querying targets from id > {} ...", last_id);
|
||||
|
||||
let query_result = list_tts_render_targets_awaiting_download(
|
||||
let query_result = list_tts_render_tasks_awaiting_download(
|
||||
last_id, BATCH_SIZE, &job_state.sqlite_pool).await;
|
||||
|
||||
let targets = match query_result {
|
||||
|
||||
+8
-8
@@ -4,15 +4,15 @@ use errors::{anyhow, AnyhowResult};
|
||||
use fakeyou_client::api::tts_inference::{CreateTtsInferenceRequest, TtsInferenceJobStatusStatePayload};
|
||||
use fakeyou_client::get_audio_url::get_audio_url;
|
||||
use log::{error, info};
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::list::tts_render_target::TtsRenderTarget;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::update::update_tts_render_target_successfully_downloaded::Args;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::update::update_tts_render_target_successfully_downloaded::update_tts_render_target_successfully_downloaded;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::list::tts_render_task::TtsRenderTask;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::update::update_tts_render_task_successfully_downloaded::Args;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::update::update_tts_render_task_successfully_downloaded::update_tts_render_task_successfully_downloaded;
|
||||
use std::sync::Arc;
|
||||
use tokens::tokens::news_stories::NewsStoryToken;
|
||||
use tokens::tokens::tts_models::TtsModelToken;
|
||||
use tokens::tokens::tts_render_tasks::TtsRenderTaskToken;
|
||||
|
||||
pub async fn process_single_record(target: &TtsRenderTarget, job_state: &Arc<JobState>) -> AnyhowResult<()> {
|
||||
pub async fn process_single_record(target: &TtsRenderTask, job_state: &Arc<JobState>) -> AnyhowResult<()> {
|
||||
|
||||
info!("Attempting to download audio...");
|
||||
|
||||
@@ -30,7 +30,7 @@ pub async fn process_single_record(target: &TtsRenderTarget, job_state: &Arc<Job
|
||||
error!("problem submitting to FakeYou: {:}", err);
|
||||
|
||||
// TODO: Errors
|
||||
//update_tts_render_target_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
//update_tts_render_task_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
// tts_render_task_token: &target.token,
|
||||
// tts_render_attempts,
|
||||
// sqlite_pool: &job_state.sqlite_pool,
|
||||
@@ -41,7 +41,7 @@ pub async fn process_single_record(target: &TtsRenderTarget, job_state: &Arc<Job
|
||||
None => {
|
||||
error!("unknown problem in submitting to FakeYou");
|
||||
// TODO: Errors
|
||||
//update_tts_render_target_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
//update_tts_render_task_unsuccessfully_submitted(UnsuccessfulArgs {
|
||||
// tts_render_task_token: &target.token,
|
||||
// tts_render_attempts,
|
||||
// sqlite_pool: &job_state.sqlite_pool,
|
||||
@@ -57,7 +57,7 @@ pub async fn process_single_record(target: &TtsRenderTarget, job_state: &Arc<Job
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn process_download(target: &TtsRenderTarget, payload: &TtsInferenceJobStatusStatePayload, job_state: &Arc<JobState>) -> AnyhowResult<()> {
|
||||
async fn process_download(target: &TtsRenderTask, payload: &TtsInferenceJobStatusStatePayload, job_state: &Arc<JobState>) -> AnyhowResult<()> {
|
||||
let tts_result_token = match &payload.maybe_result_token {
|
||||
None => return Ok(()), // TODO: Wait
|
||||
Some(result_token) => result_token.to_string(),
|
||||
@@ -86,7 +86,7 @@ async fn process_download(target: &TtsRenderTarget, payload: &TtsInferenceJobSta
|
||||
std::io::copy(&mut content, &mut file)?;
|
||||
}
|
||||
|
||||
update_tts_render_target_successfully_downloaded(Args {
|
||||
update_tts_render_task_successfully_downloaded(Args {
|
||||
tts_render_task_token: &target.token,
|
||||
tts_result_token: &tts_result_token,
|
||||
result_url: &audio_url,
|
||||
|
||||
+6
-6
@@ -1,12 +1,12 @@
|
||||
use crate::shared_state::job_state::JobState;
|
||||
use enums::by_table::tts_render_targets::tts_render_status::TtsRenderStatus;
|
||||
use enums::by_table::tts_render_tasks::tts_render_status::TtsRenderStatus;
|
||||
use errors::AnyhowResult;
|
||||
use log::{debug, info};
|
||||
use once_cell::sync::Lazy;
|
||||
use regex::Regex;
|
||||
use sqlite_queries::queries::by_table::news_story_productions::list::news_story_production_item::NewsStoryProductionItem;
|
||||
use sqlite_queries::queries::by_table::news_story_productions::update::update_news_story_audio_finalized::{Args, update_news_story_audio_finalized};
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::list::list_tts_render_targets_for_story_token::list_tts_render_targets_for_story_token;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::list::list_tts_render_tasks_for_story_token::list_tts_render_tasks_for_story_token;
|
||||
use std::sync::Arc;
|
||||
|
||||
pub async fn process_single_item(target: &NewsStoryProductionItem, job_state: &Arc<JobState>) -> AnyhowResult<()> {
|
||||
@@ -14,18 +14,18 @@ pub async fn process_single_item(target: &NewsStoryProductionItem, job_state: &A
|
||||
let story_type = "news_story";
|
||||
let story_token = target.news_story_token.to_string();
|
||||
|
||||
let tts_render_targets = list_tts_render_targets_for_story_token(
|
||||
let tts_render_tasks = list_tts_render_tasks_for_story_token(
|
||||
story_type,
|
||||
&story_token,
|
||||
&job_state.sqlite_pool).await?;
|
||||
|
||||
let complete_count = tts_render_targets.iter()
|
||||
let complete_count = tts_render_tasks.iter()
|
||||
.filter(|target| target.tts_render_status == TtsRenderStatus::Success)
|
||||
.count();
|
||||
|
||||
// TODO: Include new column "tts_render_targets.sequence_length" to verify. Math.max() it.
|
||||
// TODO: Include new column "tts_render_tasks.sequence_length" to verify. Math.max() it.
|
||||
// This is to prevent a race condition.
|
||||
let total_count = tts_render_targets.len();
|
||||
let total_count = tts_render_tasks.len();
|
||||
|
||||
if complete_count != total_count {
|
||||
debug!("Audio not yet rendered for story: {:?}", target.news_story_token);
|
||||
|
||||
+3
-3
@@ -5,8 +5,8 @@ use errors::AnyhowResult;
|
||||
use sqlite_queries::queries::by_table::news_story_productions::list::news_story_production_item::NewsStoryProductionItem;
|
||||
use sqlite_queries::queries::by_table::news_story_productions::update::update_news_story_audio_preprocessing_status::update_news_story_audio_preprocessing_status;
|
||||
use sqlite_queries::queries::by_table::news_story_productions::update::update_news_story_audio_preprocessing_status::Args as UpdateArgs;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::insert_tts_render_target::Args as InsertArgs;
|
||||
use sqlite_queries::queries::by_table::tts_render_targets::insert_tts_render_target::insert_tts_render_target;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::insert_tts_render_task::Args as InsertArgs;
|
||||
use sqlite_queries::queries::by_table::tts_render_tasks::insert_tts_render_task::insert_tts_render_task;
|
||||
use tokens::tokens::tts_models::TtsModelToken;
|
||||
use crate::persistence::rendition_data::RenditionData;
|
||||
use crate::persistence::speakable_monologue::SpeakableMonologue;
|
||||
@@ -52,7 +52,7 @@ pub async fn process_single_item(target: &NewsStoryProductionItem, job_state: &A
|
||||
for (i, paragraph) in paragraphs.iter().enumerate() {
|
||||
let sequence_order = (i + 1) as i64;
|
||||
|
||||
insert_tts_render_target(InsertArgs {
|
||||
insert_tts_render_task(InsertArgs {
|
||||
news_story_token: &target.news_story_token,
|
||||
sequence_order,
|
||||
tts_voice_identifier: &tts_model_token,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -r ./audio
|
||||
rm -r ./webpages
|
||||
rm database.db
|
||||
|
||||
|
||||
Reference in New Issue
Block a user