diff --git a/src/bus/message.rs b/src/bus/message.rs index f13621d..9da269e 100644 --- a/src/bus/message.rs +++ b/src/bus/message.rs @@ -251,7 +251,7 @@ pub struct ControlMessage { // Helpers // ============================================================================ -fn current_timestamp() -> i64 { +pub(crate) fn current_timestamp() -> i64 { std::time::SystemTime::now() .duration_since(std::time::UNIX_EPOCH) .unwrap() diff --git a/src/channels/cli_chat.rs b/src/channels/cli_chat.rs index 21a33bd..24d127b 100644 --- a/src/channels/cli_chat.rs +++ b/src/channels/cli_chat.rs @@ -117,7 +117,7 @@ impl CliChatChannel { sender_id: "cli".to_string(), chat_id: session_id.clone(), content, - timestamp: current_timestamp(), + timestamp: crate::bus::message::current_timestamp(), media: Vec::new(), metadata: Default::default(), forwarded_metadata: Default::default(), @@ -397,10 +397,3 @@ impl Channel for CliChatChannel { Ok(()) } } - -fn current_timestamp() -> i64 { - std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap() - .as_millis() as i64 -} diff --git a/src/channels/feishu.rs b/src/channels/feishu.rs index 50c2721..a1fd8e5 100644 --- a/src/channels/feishu.rs +++ b/src/channels/feishu.rs @@ -1107,10 +1107,7 @@ impl FeishuChannel { sender_id: parsed.open_id.clone(), chat_id: parsed.chat_id.clone(), content: parsed.content.clone(), - timestamp: std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap() - .as_millis() as i64, + timestamp: crate::bus::message::current_timestamp(), media: parsed.media.map(|m| vec![m]).unwrap_or_default(), metadata: std::collections::HashMap::new(), forwarded_metadata, diff --git a/src/storage/mod.rs b/src/storage/mod.rs index 4d61eaa..2fc86d5 100644 --- a/src/storage/mod.rs +++ b/src/storage/mod.rs @@ -113,7 +113,7 @@ impl SessionStore { } pub fn create_cli_session(&self, title: Option<&str>) -> Result { - let now = current_timestamp(); + let now = crate::bus::message::current_timestamp(); let id = uuid::Uuid::new_v4().to_string(); let title = title .map(str::trim) @@ -146,7 +146,7 @@ impl SessionStore { return Ok(record); } - let now = current_timestamp(); + let now = crate::bus::message::current_timestamp(); let title = format!("{}:{}", channel_name, chat_id); let conn = self.conn.lock().expect("session db mutex poisoned"); conn.execute( @@ -213,7 +213,7 @@ impl SessionStore { } pub fn rename_session(&self, session_id: &str, title: &str) -> Result<(), StorageError> { - let now = current_timestamp(); + let now = crate::bus::message::current_timestamp(); let conn = self.conn.lock().expect("session db mutex poisoned"); conn.execute( "UPDATE sessions SET title = ?2, updated_at = ?3 WHERE id = ?1 AND deleted_at IS NULL", @@ -223,7 +223,7 @@ impl SessionStore { } pub fn archive_session(&self, session_id: &str) -> Result<(), StorageError> { - let now = current_timestamp(); + let now = crate::bus::message::current_timestamp(); let conn = self.conn.lock().expect("session db mutex poisoned"); conn.execute( "UPDATE sessions SET archived_at = ?2, updated_at = ?2 WHERE id = ?1 AND deleted_at IS NULL", @@ -240,7 +240,7 @@ impl SessionStore { } pub fn clear_messages(&self, session_id: &str) -> Result<(), StorageError> { - let now = current_timestamp(); + let now = crate::bus::message::current_timestamp(); let conn = self.conn.lock().expect("session db mutex poisoned"); conn.execute("DELETE FROM messages WHERE session_id = ?1", params![session_id])?; conn.execute( @@ -255,7 +255,7 @@ impl SessionStore { } pub fn reset_session(&self, session_id: &str) -> Result<(), StorageError> { - let now = current_timestamp(); + let now = crate::bus::message::current_timestamp(); let conn = self.conn.lock().expect("session db mutex poisoned"); let tx = conn.unchecked_transaction()?; @@ -314,7 +314,7 @@ impl SessionStore { ], )?; - let now = current_timestamp(); + let now = crate::bus::message::current_timestamp(); tx.execute( " UPDATE sessions @@ -467,13 +467,6 @@ fn load_messages_after( Ok(messages) } -fn current_timestamp() -> i64 { - std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .expect("system clock before unix epoch") - .as_millis() as i64 -} - #[cfg(test)] mod tests { use super::*;