refactor tts_render_targets -> tts_render_tasks

This commit is contained in:
Brandon Thomas
2023-02-15 01:12:58 -05:00
parent f8e7ae3ced
commit 90aa091398
27 changed files with 84 additions and 88 deletions
+1 -1
View File
@@ -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;
@@ -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;
@@ -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,
@@ -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 > ?
@@ -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 > ?
@@ -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;
@@ -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;
@@ -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 = ?,
@@ -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",
@@ -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 = ?,
@@ -2,4 +2,4 @@
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
DROP TABLE tts_render_targets;
DROP TABLE tts_render_tasks;
@@ -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);
@@ -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 {
@@ -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,
@@ -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 {
@@ -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,
@@ -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);
@@ -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
View File
@@ -1,5 +1,6 @@
#!/bin/bash
rm -r ./audio
rm -r ./webpages
rm database.db