完善一些
This commit is contained in:
parent
4bda64d8fa
commit
06ee237bf5
@ -1,26 +1,29 @@
|
||||
use chrono::NaiveDateTime;
|
||||
use serde_json::Value as JsonValue;
|
||||
use tracing::warn;
|
||||
|
||||
/// {"message": {"_id":"idddddd","anonymousId":null,"anonymousflag":null,"bubble_id":0,"content":"test","date":"2024/02/18","files":[],"role":"admin","senderId":123456,"subid":1,"time":1708267062000_i64,"timestamp":"22:37:42","title":"索引管理员","username":"shenjack"},"roomId":-123456}
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct NewMessage {
|
||||
/// 发送者 id
|
||||
pub sender_id: i64,
|
||||
/// 房间 id
|
||||
pub roomd_id: i64,
|
||||
/// 发送者名字
|
||||
pub sender_name: String,
|
||||
/// 消息 id
|
||||
pub msg_id: String,
|
||||
/// 发送者 id
|
||||
pub sender_id: i64,
|
||||
/// 子? id
|
||||
pub subid: i64,
|
||||
/// 房间 id
|
||||
pub room_id: i64,
|
||||
/// 发送者名字
|
||||
pub sender_name: String,
|
||||
/// 消息时间
|
||||
pub time: NaiveDateTime,
|
||||
/// 身份
|
||||
pub role: String,
|
||||
/// 消息内容
|
||||
pub content: String,
|
||||
/// "群主授予的头衔"
|
||||
pub title: String,
|
||||
/// 消息内容
|
||||
pub content: String,
|
||||
/// 气泡 id
|
||||
pub bubble_id: i64,
|
||||
/// 原始消息
|
||||
pub raw: JsonValue,
|
||||
}
|
||||
@ -30,6 +33,7 @@ impl NewMessage {
|
||||
let message = json["message"].as_object()?;
|
||||
let room_id = json["roomId"].as_i64()?;
|
||||
let sender_id = message.get("senderId")?.as_i64()?;
|
||||
let subid = message.get("subid")?.as_i64()?;
|
||||
let sender_name = message.get("username")?.as_str()?.to_string();
|
||||
let msg_id = message.get("_id")?.as_str()?.to_string();
|
||||
let time = message.get("time")?.as_i64()?;
|
||||
@ -37,15 +41,18 @@ impl NewMessage {
|
||||
let role = message.get("role")?.as_str()?.to_string();
|
||||
let content = message.get("content")?.as_str()?.to_string();
|
||||
let title = message.get("title")?.as_str()?.to_string();
|
||||
let bubble_id = message.get("bubble_id")?.as_i64()?;
|
||||
Some(Self {
|
||||
sender_id,
|
||||
roomd_id: room_id,
|
||||
sender_name,
|
||||
msg_id,
|
||||
sender_id,
|
||||
subid,
|
||||
room_id,
|
||||
sender_name,
|
||||
time,
|
||||
role,
|
||||
content,
|
||||
title,
|
||||
content,
|
||||
bubble_id,
|
||||
raw: json.clone(),
|
||||
})
|
||||
}
|
||||
@ -62,7 +69,7 @@ mod test {
|
||||
let value = json!({"message": {"_id":"idddddd","anonymousId":null,"anonymousflag":null,"bubble_id":0,"content":"test","date":"2024/02/18","files":[],"role":"admin","senderId":123456,"subid":1,"time":1708267062000_i64,"timestamp":"22:37:42","title":"索引管理员","username":"shenjack"},"roomId":-123456});
|
||||
let new_message = NewMessage::new_from_json(&value).unwrap();
|
||||
assert_eq!(new_message.sender_id, 123456);
|
||||
assert_eq!(new_message.roomd_id, -123456);
|
||||
assert_eq!(new_message.room_id, -123456);
|
||||
assert_eq!(new_message.sender_name, "shenjack");
|
||||
assert_eq!(new_message.msg_id, "idddddd");
|
||||
assert_eq!(new_message.role, "admin");
|
||||
|
@ -2,6 +2,7 @@ use colored::Colorize;
|
||||
use rust_socketio::{Event, Payload, RawClient};
|
||||
use tracing::{info, warn};
|
||||
|
||||
use crate::data_struct::new_message::NewMessage;
|
||||
use crate::data_struct::online_data::OnlineData;
|
||||
use crate::py;
|
||||
|
||||
@ -20,7 +21,8 @@ pub fn get_online_data(payload: Payload, _client: RawClient) {
|
||||
pub fn add_message(payload: Payload, _client: RawClient) {
|
||||
if let Payload::Text(values) = payload {
|
||||
if let Some(value) = values.first() {
|
||||
info!("add_message {}", value);
|
||||
let message = NewMessage::new_from_json(value);
|
||||
info!("add_message {}", format!("{:#?}", message).cyan());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
use std::time::Duration;
|
||||
|
||||
use tracing::info;
|
||||
use rust_socketio::ClientBuilder;
|
||||
|
||||
mod client;
|
||||
@ -26,9 +27,15 @@ fn ws_main() {
|
||||
.connect()
|
||||
.expect("Connection failed");
|
||||
|
||||
std::thread::sleep(Duration::from_secs(10));
|
||||
|
||||
socket.disconnect().expect("Disconnect failed")
|
||||
info!("Connected");
|
||||
std::thread::sleep(Duration::from_secs(3));
|
||||
// 等待一个输入
|
||||
info!("Press any key to exit");
|
||||
let mut input = String::new();
|
||||
std::io::stdin().read_line(&mut input).unwrap();
|
||||
socket.disconnect().expect("Disconnect failed");
|
||||
info!("Disconnected");
|
||||
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
Loading…
Reference in New Issue
Block a user