Files
k-photos/libertas_core/src/plugins.rs
Gabriel Kaszewski 60860cf508 feat: Add thumbnail generation feature and update media model
- Updated workspace members to include `libertas_importer`.
- Added a new migration to add `thumbnail_path` column to `media` table.
- Enhanced configuration structures to include `thumbnail_config`.
- Modified `Media` model to include `thumbnail_path`.
- Updated `MediaRepository` trait and its implementation to handle thumbnail path updates.
- Created `ThumbnailPlugin` for generating thumbnails based on media configurations.
- Integrated thumbnail generation into the media processing workflow.
- Updated dependencies in `libertas_worker` and `libertas_importer` for image processing.
2025-11-12 00:28:12 +01:00

27 lines
666 B
Rust

use std::sync::Arc;
use async_trait::async_trait;
use crate::{
config::Config, error::CoreResult, models::Media, repositories::{AlbumRepository, MediaRepository, UserRepository}
};
pub struct PluginData {
pub message: String,
}
pub struct PluginContext {
pub media_repo: Arc<dyn MediaRepository>,
pub album_repo: Arc<dyn AlbumRepository>,
pub user_repo: Arc<dyn UserRepository>,
pub media_library_path: String,
pub config: Arc<Config>,
}
#[async_trait]
pub trait MediaProcessorPlugin: Send + Sync {
fn name(&self) -> &'static str;
async fn process(&self, media: &Media, context: &PluginContext) -> CoreResult<PluginData>;
}