nouveau mediarenderer
This commit is contained in:
@@ -83,7 +83,6 @@ fn create_flac_transformer() -> StreamTransformer {
|
||||
///
|
||||
/// * `dir` - Répertoire de stockage du cache
|
||||
/// * `limit` - Limite de taille du cache (nombre de pistes)
|
||||
/// * `base_url` - URL de base pour la génération d'URLs
|
||||
///
|
||||
/// # Returns
|
||||
///
|
||||
@@ -94,11 +93,11 @@ fn create_flac_transformer() -> StreamTransformer {
|
||||
/// ```rust,no_run
|
||||
/// use pmoaudiocache::cache;
|
||||
///
|
||||
/// let cache = cache::new_cache("./audio_cache", 1000, "http://localhost:8080").unwrap();
|
||||
/// let cache = cache::new_cache("./audio_cache", 1000).unwrap();
|
||||
/// ```
|
||||
pub fn new_cache(dir: &str, limit: usize, base_url: &str) -> Result<Cache> {
|
||||
pub fn new_cache(dir: &str, limit: usize) -> Result<Cache> {
|
||||
let transformer_factory = Arc::new(|| create_flac_transformer());
|
||||
Cache::with_transformer(dir, limit, base_url, Some(transformer_factory))
|
||||
Cache::with_transformer(dir, limit, Some(transformer_factory))
|
||||
}
|
||||
|
||||
/// Ajoute une piste audio depuis une URL avec extraction et stockage des métadonnées
|
||||
@@ -201,3 +200,21 @@ pub fn get_metadata(cache: &Cache, pk: &str) -> Result<crate::metadata::AudioMet
|
||||
|
||||
Ok(metadata)
|
||||
}
|
||||
|
||||
/// Retourne la route relative pour accéder à une piste audio
|
||||
///
|
||||
/// # Arguments
|
||||
///
|
||||
/// * `pk` - Clé primaire de la piste
|
||||
/// * `param` - Paramètre optionnel (ex: "orig", "128k", etc.)
|
||||
///
|
||||
/// # Returns
|
||||
///
|
||||
/// Route relative (ex: "/audio/tracks/abc123" ou "/audio/tracks/abc123/orig")
|
||||
pub fn route_for(pk: &str, param: Option<&str>) -> String {
|
||||
if let Some(p) = param {
|
||||
format!("/audio/tracks/{}/{}", pk, p)
|
||||
} else {
|
||||
format!("/audio/tracks/{}", pk)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,8 +179,7 @@ use utoipa::OpenApi;
|
||||
#[cfg(feature = "pmoserver")]
|
||||
impl AudioCacheExt for pmoserver::Server {
|
||||
async fn init_audio_cache(&mut self, cache_dir: &str, limit: usize) -> anyhow::Result<Arc<Cache>> {
|
||||
let base_url = self.info().base_url;
|
||||
let cache = Arc::new(crate::cache::new_cache(cache_dir, limit, &base_url)?);
|
||||
let cache = Arc::new(crate::cache::new_cache(cache_dir, limit)?);
|
||||
|
||||
// Router de fichiers pour servir les pistes FLAC
|
||||
// Routes: GET /audio/tracks/{pk} et GET /audio/tracks/{pk}/{param}
|
||||
|
||||
Reference in New Issue
Block a user