use crate::handler::{ResolvedContent, ResolvedTrack, UrlHandler, UrlResolverError}; use async_trait::async_trait; use reqwest::{redirect, Client}; /// Handler générique de dernier recours — priorité 10. /// /// Pipeline : /// 1. Garde-fou SSRF (rejette les IPs privées/locales) /// 2. GET avec suivi de redirections (max 5) /// 3. Détection par Content-Type : /// - audio/* → Stream direct /// - application/rss+xml, … → parse RSS/Atom → Playlist /// - .m3u / .pls / .xspf → parse playlist → Playlist /// 4. text/html → cherche : /// - → fetch RSS → Playlist /// -