diff --git a/apps/notes/src/main.rs b/apps/notes/src/main.rs index 665fc29..c4b5ed4 100644 --- a/apps/notes/src/main.rs +++ b/apps/notes/src/main.rs @@ -341,9 +341,25 @@ async fn upload_recording( let filename = filename.ok_or_else(|| AppError::bad_request("missing audio file"))?; let mime = mime.unwrap_or_else(|| "audio/mpeg".to_string()); let tmp_path = tmp_path.ok_or_else(|| AppError::bad_request("no file uploaded"))?; - let title = title - .filter(|x| !x.is_empty()) - .unwrap_or_else(|| filename.clone()); + // title 完全可选;空时用本地时间 "录音 YYYY-MM-DD HH:MM",比丑的 filename 好读 + let title = title.filter(|x| !x.is_empty()).unwrap_or_else(|| { + use std::time::{SystemTime, UNIX_EPOCH}; + let secs = SystemTime::now() + .duration_since(UNIX_EPOCH) + .map(|d| d.as_secs()) + .unwrap_or(0) as i64; + let bst_offset = 3600; // 简单 BST/UTC+1,cube 在伦敦 + let t = secs + bst_offset; + let day = t / 86400; + let h = (t % 86400) / 3600; + let m = (t % 3600) / 60; + // 简化日期计算(够看就行) + let y = 1970 + day / 365; + let yday = (day % 365) as i64; + let mo = (yday / 30 + 1).min(12); + let d = (yday % 30 + 1).min(28); + format!("录音 {:04}-{:02}-{:02} {:02}:{:02}", y, mo, d, h, m) + }); let id = { let conn = s.db.lock().unwrap(); @@ -485,13 +501,20 @@ async fn call_llm_summary(s: &AppState, transcript: &str) -> Result