- Remove unused imports (n8n_search, universal_search, Client, Arc, etc.) - Update API endpoints for identity, face recognition, search - Fix postgres_db.rs search_videos parent_uuid column - Add snapshot API and identity agent API - Clean up backup files (.bak, .bak2)
54 lines
1.5 KiB
Rust
54 lines
1.5 KiB
Rust
//! Story generation processing module
|
|
|
|
use anyhow::Result;
|
|
use momentry_core::ui::progress::{ProcessorType, ProgressState, ProgressUi};
|
|
use momentry_core::OutputDir;
|
|
use std::path::Path;
|
|
use std::sync::{Arc, Mutex};
|
|
|
|
/// Process Story module
|
|
pub async fn process_story_module(
|
|
story_path: &Path,
|
|
video_path: &str,
|
|
uuid: &str,
|
|
progress_state: &Arc<Mutex<ProgressState>>,
|
|
ui: &Arc<Mutex<Option<ProgressUi>>>,
|
|
) -> Result<()> {
|
|
{
|
|
let mut state = progress_state.lock().unwrap();
|
|
state.get_processor(ProcessorType::Story).start(1);
|
|
}
|
|
|
|
let story_result = momentry_core::core::processor::process_story(
|
|
video_path,
|
|
story_path.to_str().unwrap(),
|
|
Some(uuid),
|
|
)
|
|
.await?;
|
|
|
|
let story_json = serde_json::to_string_pretty(&story_result)?;
|
|
std::fs::write(story_path, &story_json)?;
|
|
|
|
let output_dir = OutputDir::new();
|
|
let _ = output_dir.backup_file(uuid, "story.json");
|
|
|
|
println!(
|
|
" ✓ Story saved: {} parent chunks, {} child chunks",
|
|
story_result.stats.total_parent_chunks, story_result.stats.total_child_chunks
|
|
);
|
|
|
|
{
|
|
let mut state = progress_state.lock().unwrap();
|
|
state.get_processor(ProcessorType::Story).complete(&format!(
|
|
"{} parents, {} children",
|
|
story_result.stats.total_parent_chunks, story_result.stats.total_child_chunks
|
|
));
|
|
}
|
|
|
|
if let Some(ref mut ui) = *ui.lock().unwrap() {
|
|
let _ = ui.render();
|
|
}
|
|
|
|
Ok(())
|
|
}
|