mirror of
http://shenjack.top:5100/shenjack/icalingua-python-bot.git
synced 2024-11-23 12:41:05 +08:00
完善一些
This commit is contained in:
parent
4bda64d8fa
commit
06ee237bf5
|
@ -1,26 +1,29 @@
|
||||||
use chrono::NaiveDateTime;
|
use chrono::NaiveDateTime;
|
||||||
use serde_json::Value as JsonValue;
|
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}
|
/// {"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)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct NewMessage {
|
pub struct NewMessage {
|
||||||
/// 发送者 id
|
|
||||||
pub sender_id: i64,
|
|
||||||
/// 房间 id
|
|
||||||
pub roomd_id: i64,
|
|
||||||
/// 发送者名字
|
|
||||||
pub sender_name: String,
|
|
||||||
/// 消息 id
|
/// 消息 id
|
||||||
pub msg_id: String,
|
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 time: NaiveDateTime,
|
||||||
/// 身份
|
/// 身份
|
||||||
pub role: String,
|
pub role: String,
|
||||||
/// 消息内容
|
|
||||||
pub content: String,
|
|
||||||
/// "群主授予的头衔"
|
/// "群主授予的头衔"
|
||||||
pub title: String,
|
pub title: String,
|
||||||
|
/// 消息内容
|
||||||
|
pub content: String,
|
||||||
|
/// 气泡 id
|
||||||
|
pub bubble_id: i64,
|
||||||
/// 原始消息
|
/// 原始消息
|
||||||
pub raw: JsonValue,
|
pub raw: JsonValue,
|
||||||
}
|
}
|
||||||
|
@ -30,6 +33,7 @@ impl NewMessage {
|
||||||
let message = json["message"].as_object()?;
|
let message = json["message"].as_object()?;
|
||||||
let room_id = json["roomId"].as_i64()?;
|
let room_id = json["roomId"].as_i64()?;
|
||||||
let sender_id = message.get("senderId")?.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 sender_name = message.get("username")?.as_str()?.to_string();
|
||||||
let msg_id = message.get("_id")?.as_str()?.to_string();
|
let msg_id = message.get("_id")?.as_str()?.to_string();
|
||||||
let time = message.get("time")?.as_i64()?;
|
let time = message.get("time")?.as_i64()?;
|
||||||
|
@ -37,15 +41,18 @@ impl NewMessage {
|
||||||
let role = message.get("role")?.as_str()?.to_string();
|
let role = message.get("role")?.as_str()?.to_string();
|
||||||
let content = message.get("content")?.as_str()?.to_string();
|
let content = message.get("content")?.as_str()?.to_string();
|
||||||
let title = message.get("title")?.as_str()?.to_string();
|
let title = message.get("title")?.as_str()?.to_string();
|
||||||
|
let bubble_id = message.get("bubble_id")?.as_i64()?;
|
||||||
Some(Self {
|
Some(Self {
|
||||||
sender_id,
|
|
||||||
roomd_id: room_id,
|
|
||||||
sender_name,
|
|
||||||
msg_id,
|
msg_id,
|
||||||
|
sender_id,
|
||||||
|
subid,
|
||||||
|
room_id,
|
||||||
|
sender_name,
|
||||||
time,
|
time,
|
||||||
role,
|
role,
|
||||||
content,
|
|
||||||
title,
|
title,
|
||||||
|
content,
|
||||||
|
bubble_id,
|
||||||
raw: json.clone(),
|
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 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();
|
let new_message = NewMessage::new_from_json(&value).unwrap();
|
||||||
assert_eq!(new_message.sender_id, 123456);
|
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.sender_name, "shenjack");
|
||||||
assert_eq!(new_message.msg_id, "idddddd");
|
assert_eq!(new_message.msg_id, "idddddd");
|
||||||
assert_eq!(new_message.role, "admin");
|
assert_eq!(new_message.role, "admin");
|
||||||
|
|
|
@ -2,6 +2,7 @@ use colored::Colorize;
|
||||||
use rust_socketio::{Event, Payload, RawClient};
|
use rust_socketio::{Event, Payload, RawClient};
|
||||||
use tracing::{info, warn};
|
use tracing::{info, warn};
|
||||||
|
|
||||||
|
use crate::data_struct::new_message::NewMessage;
|
||||||
use crate::data_struct::online_data::OnlineData;
|
use crate::data_struct::online_data::OnlineData;
|
||||||
use crate::py;
|
use crate::py;
|
||||||
|
|
||||||
|
@ -20,7 +21,8 @@ pub fn get_online_data(payload: Payload, _client: RawClient) {
|
||||||
pub fn add_message(payload: Payload, _client: RawClient) {
|
pub fn add_message(payload: Payload, _client: RawClient) {
|
||||||
if let Payload::Text(values) = payload {
|
if let Payload::Text(values) = payload {
|
||||||
if let Some(value) = values.first() {
|
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 std::time::Duration;
|
||||||
|
|
||||||
|
use tracing::info;
|
||||||
use rust_socketio::ClientBuilder;
|
use rust_socketio::ClientBuilder;
|
||||||
|
|
||||||
mod client;
|
mod client;
|
||||||
|
@ -26,9 +27,15 @@ fn ws_main() {
|
||||||
.connect()
|
.connect()
|
||||||
.expect("Connection failed");
|
.expect("Connection failed");
|
||||||
|
|
||||||
std::thread::sleep(Duration::from_secs(10));
|
info!("Connected");
|
||||||
|
std::thread::sleep(Duration::from_secs(3));
|
||||||
socket.disconnect().expect("Disconnect failed")
|
// 等待一个输入
|
||||||
|
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() {
|
fn main() {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user