diff options
| author | polwex <polwex@sortug.com> | 2025-11-12 07:11:07 +0700 |
|---|---|---|
| committer | polwex <polwex@sortug.com> | 2025-11-12 07:11:07 +0700 |
| commit | 284ce9ce7d9f81e54e91f917329d48926487fbf4 (patch) | |
| tree | 7a156986323fd799e1457c8b7663806e32b2af7d /app/lib/nostrill | |
| parent | 7305d67ff7f9e78b73326ef0e1f68a9613d34205 (diff) | |
fixes to engagement handling
Diffstat (limited to 'app/lib/nostrill')
| -rw-r--r-- | app/lib/nostrill/comms.hoon | 62 | ||||
| -rw-r--r-- | app/lib/nostrill/follows.hoon | 3 |
2 files changed, 62 insertions, 3 deletions
diff --git a/app/lib/nostrill/comms.hoon b/app/lib/nostrill/comms.hoon index 5f9b0a9..a386c0e 100644 --- a/app/lib/nostrill/comms.hoon +++ b/app/lib/nostrill/comms.hoon @@ -1,5 +1,5 @@ -/- sur=nostrill, nsur=nostr, comms=nostrill-comms, feed=trill-feed -/+ js=json-nostr, sr=sortug,constants, gatelib=trill-gate, feedlib=trill-feed, jsonlib=json-nostrill +/- sur=nostrill, nsur=nostr, comms=nostrill-comms, feed=trill-feed, post=trill-post +/+ js=json-nostr, sr=sortug,constants, gatelib=trill-gate, feedlib=trill-feed, jsonlib=json-nostrill, lib=nostrill |_ [=state:sur =bowl:gall] ++ cast-poke |= raw=* ^- poke:comms @@ -87,6 +87,64 @@ =/ c1 [%give %fact paths cage] :~(c1) +:: engagement pokes, heads up when replying etc. to a post on your feed +++ handle-eng + |= e=engagement:comms + ?- -.e + %reply + =/ poast (get:orm:feed feed.state parent.e) + ?~ poast `state + =. children.u.poast (~(put in children.u.poast) id.child.e) + =. feed.state (put:orm:feed feed.state parent.e u.poast) + =. feed.state (put:orm:feed feed.state id.child.e child.e) + =/ f=fact:comms [%post %add child.e] + =/ f2=fact:comms [%post %changes u.poast] + :_ state + :~ (update-followers:cards:lib f) + (update-followers:cards:lib f2) + == + %del-reply + =. feed.state =< + (del:orm:feed feed.state child.e) + =/ poast (get:orm:feed feed.state parent.e) + ?~ poast `state + =. children.u.poast (~(del in children.u.poast) child.e) + =. feed.state (put:orm:feed feed.state parent.e u.poast) + :_ state + :~ (update-followers:cards:lib [%post %changes u.poast]) + (update-followers:cards:lib [%post %del child.e]) + == + :: TODO ideally we want the full quote to display it within the post engagement. So do we change quoted.engagement.post? What if the quoter edits the quote down the line, etc. + %quote + =/ poast (get:orm:feed feed.state src.e) + ?~ poast `state + =/ spid [*signature:post src.bowl id.post.e] + =. quoted.engagement.u.poast (~(put in quoted.engagement.u.poast) spid) + =. feed.state (put:orm:feed feed.state src.e u.poast) + =/ f=fact:comms [%post %changes u.poast] + :_ state + :~ (update-followers:cards:lib f) + == + %rp + =/ poast (get:orm:feed feed.state src.e) + ?~ poast `state + =/ spid [*signature:post src.bowl rt.e] + =. shared.engagement.u.poast (~(put in shared.engagement.u.poast) spid) + =. feed.state (put:orm:feed feed.state src.e u.poast) + =/ f=fact:comms [%post %changes u.poast] + :_ state + :~ (update-followers:cards:lib f) + == + %reaction + =/ poast (get:orm:feed feed.state post.e) + ?~ poast `state + :: TODO signatures et al. + =. reacts.engagement.u.poast (~(put by reacts.engagement.u.poast) src.bowl [reaction.e *signature:post]) + =. feed.state (put:orm:feed feed.state post.e u.poast) + =/ f=fact:comms [%post %changes u.poast] + :_ state + :~ (update-followers:cards:lib f) + == + == -- diff --git a/app/lib/nostrill/follows.hoon b/app/lib/nostrill/follows.hoon index 34c1d19..942a876 100644 --- a/app/lib/nostrill/follows.hoon +++ b/app/lib/nostrill/follows.hoon @@ -48,7 +48,8 @@ ++ handle-follow-ok |= [=user:sur =fc:feed profile=(unit user-meta:nsur)] ^- (quip card:agent:gall _state) - =. following.state (~(put by following.state) user feed.fc) + =. following.state (~(put by following.state) user feed.fc) + =. following2.state (add-new-feed:feedlib following2.state feed.fc) =/ graph (~(get by follow-graph.state) [%urbit our.bowl]) =/ follows ?~ graph (silt ~[user]) (~(put in u.graph) user) =. follow-graph.state (~(put by follow-graph.state) [%urbit our.bowl] follows) |
