feat: add /time
This commit is contained in:
60
Cargo.lock
generated
60
Cargo.lock
generated
@@ -45,6 +45,19 @@ version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "chrono"
|
||||
version = "0.4.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
"time",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.1.1"
|
||||
@@ -313,6 +326,25 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-integer"
|
||||
version = "0.1.44"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-traits"
|
||||
version = "0.2.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num_cpus"
|
||||
version = "1.13.0"
|
||||
@@ -425,6 +457,12 @@ dependencies = [
|
||||
"unicode-xid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quick-error"
|
||||
version = "1.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.9"
|
||||
@@ -497,12 +535,14 @@ dependencies = [
|
||||
name = "room-rs"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"futures-channel",
|
||||
"futures-util",
|
||||
"lazy_static",
|
||||
"rust_util",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"simpledateformat",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"tungstenite",
|
||||
@@ -591,6 +631,16 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "simpledateformat"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d06fa9a6e21926f4eaf8d506dfac4243b473ca49491dc8b4feb7668cc17e0084"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"quick-error",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "slab"
|
||||
version = "0.4.3"
|
||||
@@ -655,6 +705,16 @@ dependencies = [
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.1.43"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tinyvec"
|
||||
version = "1.2.0"
|
||||
|
||||
@@ -8,9 +8,11 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
rust_util = "0.6"
|
||||
simpledateformat = "0.1"
|
||||
chrono = "0.4"
|
||||
tungstenite = {version = "0.13", default-features = false}
|
||||
tokio-tungstenite = "0.14"
|
||||
tokio = { version = "1.0.0", features = ["full"]}
|
||||
tokio = { version = "1.0", features = ["full"]}
|
||||
futures-util = "0.3"
|
||||
lazy_static = "1.4"
|
||||
futures-channel = "0.3"
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user