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"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
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]]
|
[[package]]
|
||||||
name = "cpufeatures"
|
name = "cpufeatures"
|
||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
@@ -313,6 +326,25 @@ dependencies = [
|
|||||||
"winapi",
|
"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]]
|
[[package]]
|
||||||
name = "num_cpus"
|
name = "num_cpus"
|
||||||
version = "1.13.0"
|
version = "1.13.0"
|
||||||
@@ -425,6 +457,12 @@ dependencies = [
|
|||||||
"unicode-xid",
|
"unicode-xid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "quick-error"
|
||||||
|
version = "1.2.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.9"
|
version = "1.0.9"
|
||||||
@@ -497,12 +535,14 @@ dependencies = [
|
|||||||
name = "room-rs"
|
name = "room-rs"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"chrono",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"rust_util",
|
"rust_util",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
"simpledateformat",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-tungstenite",
|
"tokio-tungstenite",
|
||||||
"tungstenite",
|
"tungstenite",
|
||||||
@@ -591,6 +631,16 @@ dependencies = [
|
|||||||
"libc",
|
"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]]
|
[[package]]
|
||||||
name = "slab"
|
name = "slab"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
@@ -655,6 +705,16 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time"
|
||||||
|
version = "0.1.43"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tinyvec"
|
name = "tinyvec"
|
||||||
version = "1.2.0"
|
version = "1.2.0"
|
||||||
|
|||||||
@@ -8,9 +8,11 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rust_util = "0.6"
|
rust_util = "0.6"
|
||||||
|
simpledateformat = "0.1"
|
||||||
|
chrono = "0.4"
|
||||||
tungstenite = {version = "0.13", default-features = false}
|
tungstenite = {version = "0.13", default-features = false}
|
||||||
tokio-tungstenite = "0.14"
|
tokio-tungstenite = "0.14"
|
||||||
tokio = { version = "1.0.0", features = ["full"]}
|
tokio = { version = "1.0", features = ["full"]}
|
||||||
futures-util = "0.3"
|
futures-util = "0.3"
|
||||||
lazy_static = "1.4"
|
lazy_static = "1.4"
|
||||||
futures-channel = "0.3"
|
futures-channel = "0.3"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ use tungstenite::protocol::Message;
|
|||||||
use rust_util::XResult;
|
use rust_util::XResult;
|
||||||
use crate::types::{PeerMap, RoomMap, Tx};
|
use crate::types::{PeerMap, RoomMap, Tx};
|
||||||
use crate::msg::{RoomMessageDown, RoomMessage, RoomMessageType, RoomMessageDownType};
|
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::{HandleTextMessageExit, HandleTextMessageStatics};
|
||||||
use crate::slash_handles::{HandleTextMessagePass, HandleTextMessageRoom};
|
use crate::slash_handles::{HandleTextMessagePass, HandleTextMessageRoom};
|
||||||
use crate::slash_handles::{HandleTextMessageRooms, HandleTextMessageVersion};
|
use crate::slash_handles::{HandleTextMessageRooms, HandleTextMessageVersion};
|
||||||
@@ -34,6 +34,7 @@ lazy_static! {
|
|||||||
Box::new(HandleTextMessageRooms),
|
Box::new(HandleTextMessageRooms),
|
||||||
Box::new(HandleTextMessageRoom),
|
Box::new(HandleTextMessageRoom),
|
||||||
Box::new(HandleTextMessageVersion),
|
Box::new(HandleTextMessageVersion),
|
||||||
|
Box::new(HandleTextMessageTime),
|
||||||
];
|
];
|
||||||
handles
|
handles
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use std::net::SocketAddr;
|
|||||||
use tungstenite::Message;
|
use tungstenite::Message;
|
||||||
use crate::msg::RoomMessageDown;
|
use crate::msg::RoomMessageDown;
|
||||||
use crate::{NAME, VERSION};
|
use crate::{NAME, VERSION};
|
||||||
|
use chrono::Local;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct HandleContext {
|
pub struct HandleContext {
|
||||||
@@ -125,3 +126,18 @@ impl HandleTextMessage for HandleTextMessageVersion {
|
|||||||
tx.unbounded_send(Message::Text(format!("{} - v{}", NAME, VERSION))).ok();
|
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