feat: add /time

This commit is contained in:
2021-05-17 23:10:07 +08:00
parent b2ee806448
commit d0f8cd4619
4 changed files with 81 additions and 2 deletions

View File

@@ -17,7 +17,7 @@ use tungstenite::protocol::Message;
use rust_util::XResult;
use crate::types::{PeerMap, RoomMap, Tx};
use crate::msg::{RoomMessageDown, RoomMessage, RoomMessageType, RoomMessageDownType};
use crate::slash_handles::{HandleContext, HandleTextMessage};
use crate::slash_handles::{HandleContext, HandleTextMessage, HandleTextMessageTime};
use crate::slash_handles::{HandleTextMessageExit, HandleTextMessageStatics};
use crate::slash_handles::{HandleTextMessagePass, HandleTextMessageRoom};
use crate::slash_handles::{HandleTextMessageRooms, HandleTextMessageVersion};
@@ -34,6 +34,7 @@ lazy_static! {
Box::new(HandleTextMessageRooms),
Box::new(HandleTextMessageRoom),
Box::new(HandleTextMessageVersion),
Box::new(HandleTextMessageTime),
];
handles
};

View File

@@ -3,6 +3,7 @@ use std::net::SocketAddr;
use tungstenite::Message;
use crate::msg::RoomMessageDown;
use crate::{NAME, VERSION};
use chrono::Local;
#[derive(Debug, Clone)]
pub struct HandleContext {
@@ -125,3 +126,18 @@ impl HandleTextMessage for HandleTextMessageVersion {
tx.unbounded_send(Message::Text(format!("{} - v{}", NAME, VERSION))).ok();
}
}
pub struct HandleTextMessageTime;
impl HandleTextMessage for HandleTextMessageTime {
fn is_matches(&self, _handle_context: &mut HandleContext, _tx: &Tx, _addr: SocketAddr, msg: &str) -> bool {
msg == "/time"
}
fn handle(&self, _handle_context: &mut HandleContext, tx: &Tx, _addr: SocketAddr, _msg: &str) {
simpledateformat::fmt("yyyy-MM-dd HH:mm:ss z").map(
|f| {
tx.unbounded_send(Message::Text(format!("Time: {}", f.format(&Local::now())))).ok();
}
).ok();
}
}