From 6894524df2b758a29537dbec57b0067564d98e8d Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Thu, 16 Mar 2023 15:31:59 +1300 Subject: [PATCH] Relationship::Root treated like Relationship::Reply --- src/globals.rs | 2 +- src/process.rs | 16 ++++++++++++++++ src/relationship.rs | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/globals.rs b/src/globals.rs index 5435786a..36888ad1 100644 --- a/src/globals.rs +++ b/src/globals.rs @@ -176,7 +176,7 @@ impl Globals { let mut output: Vec = Vec::new(); if let Some(vec) = GLOBALS.relationships.blocking_read().get(&id) { for (id, relationship) in vec.iter() { - if *relationship == Relationship::Reply { + if *relationship == Relationship::Reply || *relationship == Relationship::Root { output.push(*id); } } diff --git a/src/process.rs b/src/process.rs index 34aa8443..e1fe080b 100644 --- a/src/process.rs +++ b/src/process.rs @@ -156,6 +156,22 @@ pub async fn process_new_event( Globals::add_relationship(id, event.id, Relationship::Reply).await; } + // replies to root + if let Some((id, _)) = event.replies_to_root() { + if from_relay { + let db_event_relationship = DbEventRelationship { + original: event.id.as_hex_string(), + refers_to: id.as_hex_string(), + relationship: "root".to_string(), + content: None, + }; + db_event_relationship.insert().await?; + } + + // Insert into relationships + Globals::add_relationship(id, event.id, Relationship::Root).await; + } + // mentions for (id, _) in event.mentions() { if from_relay { diff --git a/src/relationship.rs b/src/relationship.rs index f0db6fc6..7f7f2a98 100644 --- a/src/relationship.rs +++ b/src/relationship.rs @@ -1,6 +1,7 @@ /// A relationship between events #[derive(Clone, Debug, PartialEq, Eq)] pub enum Relationship { + Root, Reply, Mention, Reaction(String),