Home Tab + Tauri backend
This commit is contained in:
42
src-tauri/src/home.rs
Normal file
42
src-tauri/src/home.rs
Normal file
@@ -0,0 +1,42 @@
|
||||
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<Vec<LocalPost>, String> {
|
||||
// 1. Verbindung aufbauen
|
||||
let easy = EasyNostr::new("nsec1...")
|
||||
.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)
|
||||
}
|
||||
Reference in New Issue
Block a user