Initial commit: Momentry Core v0.1

- Rust-based digital asset management system
- Video analysis: ASR, OCR, YOLO, Face, Pose
- RAG capabilities with Qdrant vector database
- Multi-database support: PostgreSQL, Redis, MongoDB
- Monitoring system with launchd plists
- n8n workflow automation integration
This commit is contained in:
accusys
2026-03-16 15:07:33 +08:00
parent ca24794853
commit 75edf0aa71
101 changed files with 19858 additions and 0 deletions

3
src/watcher/mod.rs Normal file
View File

@@ -0,0 +1,3 @@
pub mod watcher;
pub use watcher::{watch_directories, WatcherConfig};

41
src/watcher/watcher.rs Normal file
View File

@@ -0,0 +1,41 @@
use anyhow::Result;
use notify::{Config, Event, EventKind, RecommendedWatcher, RecursiveMode, Watcher};
use std::path::Path;
use std::sync::Arc;
use tokio::sync::mpsc;
pub struct WatcherConfig {
pub directories: Vec<String>,
pub poll_interval_ms: u64,
}
impl Default for WatcherConfig {
fn default() -> Self {
Self {
directories: vec![],
poll_interval_ms: 5000,
}
}
}
pub async fn watch_directories(config: WatcherConfig, tx: mpsc::Sender<String>) -> Result<()> {
// TODO: Implement directory watcher
//
// Options:
// 1. Use notify crate for file system events
// 2. Use polling as fallback
//
// When new video file is detected:
// - Send job to Redis queue
// - Trigger registration process
println!("Watching directories: {:?}", config.directories);
for dir in &config.directories {
if Path::new(dir).exists() {
println!("Directory exists: {}", dir);
}
}
Ok(())
}