use easy_nostr::EasyNostr; use serde::Serialize; // Diese Struktur ist für den Transport zum Frontend (JSON) #[derive(Serialize)] pub struct LocalPost { pub content: String, pub author: String, pub created_at: u64, } #[tauri::command] pub async fn fetch_nostr_posts() -> Result, String> { // 1. Verbindung aufbauen let easy = EasyNostr::new("nsec1fkhszd5sv8yp6g966qdh5kuph25g4nn9pa2k5rwpuglt6rde8u8qwr3r87") .await .map_err(|e| e.to_string())?; // 2. Relays hinzufügen easy.add_relays(vec![ "wss://relay.damus.io", "wss://nos.lol", "wss://relay.snort.social", ]) .await .map_err(|e| e.to_string())?; // 3. Posts von der Library holen let raw_posts = easy.get_random_posts().await.map_err(|e| e.to_string())?; // 4. Mappen: Library-Typ -> Unser serialisierbarer Typ let mapped_posts = raw_posts .into_iter() .map(|p| LocalPost { content: p.content, author: p.author.to_string(), created_at: p.created_at.as_secs(), // Hier geändert von as_u64() }) .collect(); Ok(mapped_posts) }