mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
feat: Make !admin debug get-pdu more informative
This commit is contained in:
+19
-13
@@ -6,24 +6,24 @@ use std::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use conduwuit::{
|
use conduwuit::{
|
||||||
Err, Result, debug_error, err, info,
|
debug_error, err, info, matrix::{
|
||||||
matrix::{
|
|
||||||
Event,
|
|
||||||
pdu::{PduEvent, PduId, RawPduId},
|
pdu::{PduEvent, PduId, RawPduId},
|
||||||
},
|
Event,
|
||||||
trace, utils,
|
}, trace,
|
||||||
|
utils,
|
||||||
utils::{
|
utils::{
|
||||||
stream::{IterStream, ReadyExt},
|
stream::{IterStream, ReadyExt},
|
||||||
string::EMPTY,
|
string::EMPTY,
|
||||||
},
|
}, warn,
|
||||||
warn,
|
Err,
|
||||||
|
Result,
|
||||||
};
|
};
|
||||||
use futures::{FutureExt, StreamExt, TryStreamExt};
|
use futures::{FutureExt, StreamExt, TryStreamExt};
|
||||||
use lettre::message::Mailbox;
|
use lettre::message::Mailbox;
|
||||||
use ruma::{
|
use ruma::{
|
||||||
CanonicalJsonObject, CanonicalJsonValue, EventId, OwnedEventId, OwnedRoomId,
|
api::federation::event::get_room_state, events::AnyStateEvent, serde::Raw, CanonicalJsonObject, CanonicalJsonValue,
|
||||||
OwnedRoomOrAliasId, OwnedServerName, RoomId, RoomVersionId,
|
EventId, OwnedEventId, OwnedRoomId, OwnedRoomOrAliasId,
|
||||||
api::federation::event::get_room_state, events::AnyStateEvent, serde::Raw,
|
OwnedServerName, RoomId, RoomVersionId,
|
||||||
};
|
};
|
||||||
use service::rooms::{
|
use service::rooms::{
|
||||||
short::{ShortEventId, ShortRoomId},
|
short::{ShortEventId, ShortRoomId},
|
||||||
@@ -111,15 +111,21 @@ pub(super) async fn get_pdu(&self, event_id: OwnedEventId) -> Result {
|
|||||||
outlier = true;
|
outlier = true;
|
||||||
pdu_json = self.services.rooms.timeline.get_pdu_json(&event_id).await;
|
pdu_json = self.services.rooms.timeline.get_pdu_json(&event_id).await;
|
||||||
}
|
}
|
||||||
|
let rejected = self.services.rooms.pdu_metadata.is_event_rejected(&event_id).await;
|
||||||
|
let soft_failed = self.services.rooms.pdu_metadata.is_event_soft_failed(&event_id).await;
|
||||||
|
|
||||||
match pdu_json {
|
match pdu_json {
|
||||||
| Err(_) => return Err!("PDU not found locally."),
|
| Err(_) => return Err!("PDU not found locally."),
|
||||||
| Ok(json) => {
|
| Ok(json) => {
|
||||||
let text = serde_json::to_string_pretty(&json)?;
|
let text = serde_json::to_string_pretty(&json)?;
|
||||||
let msg = if outlier {
|
let msg = if rejected {
|
||||||
"Outlier (Rejected / Soft Failed) PDU found in our database"
|
"Rejected PDU:"
|
||||||
|
} else if soft_failed {
|
||||||
|
"Soft-failed PDU:"
|
||||||
|
} else if outlier {
|
||||||
|
"Outlier PDU:"
|
||||||
} else {
|
} else {
|
||||||
"PDU found in our database"
|
"PDU:"
|
||||||
};
|
};
|
||||||
write!(self, "{msg}\n```json\n{text}\n```")
|
write!(self, "{msg}\n```json\n{text}\n```")
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user