Show error on unparseable embedded note content

This commit is contained in:
Bu5hm4nn 2024-04-19 19:09:48 -06:00
parent 6c8e2c29c7
commit 3206a36047

View File

@ -123,33 +123,43 @@ impl NoteData {
mentions mentions
}; };
let embedded_event = { let (embedded_event, embedded_event_error) = {
if event.kind == EventKind::Repost || event.kind == EventKind::GenericRepost { if event.kind == EventKind::Repost || event.kind == EventKind::GenericRepost {
if !event.content.trim().is_empty() { if !event.content.trim().is_empty() {
if let Ok(embedded_event) = serde_json::from_str::<Event>(&event.content) { let result = serde_json::from_str::<Event>(&event.content);
if event.kind == EventKind::Repost if let Ok(embedded_event) = result {
|| (event.kind == EventKind::GenericRepost if embedded_event.kind.is_feed_displayable() {
&& embedded_event.kind.is_feed_displayable()) (Some(embedded_event), None)
{
Some(embedded_event)
} else { } else {
None (None, {
let kind_number: u32 = embedded_event.kind.into();
Some(format!(
"ERROR EMBEDDED EVENT UNSUPPORTED KIND : {}",
kind_number
))
})
} }
} else { } else {
None (
None,
Some(format!(
"ERROR PARSING EMBEDDED EVENT: '{}'",
result.err().unwrap().to_string()
)),
)
} }
} else { } else {
None (None, None)
} }
} else { } else {
None (None, None)
} }
}; };
// Compute the content to our needs // Compute the content to our needs
let (display_content, error_content) = match event.kind { let (display_content, error_content) = match event.kind {
EventKind::TextNote => (event.content.trim().to_string(), None), EventKind::TextNote => (event.content.trim().to_string(), None),
EventKind::Repost => ("".to_owned(), None), EventKind::Repost => ("".to_owned(), embedded_event_error),
EventKind::GenericRepost => ("".to_owned(), None), EventKind::GenericRepost => ("".to_owned(), None),
EventKind::EncryptedDirectMessage => { EventKind::EncryptedDirectMessage => {
match GLOBALS.identity.decrypt_event_contents(&event) { match GLOBALS.identity.decrypt_event_contents(&event) {