summaryrefslogtreecommitdiff
path: root/desk/lib/nostrill/follows.hoon
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-09-18 00:24:39 +0700
committerpolwex <polwex@sortug.com>2025-09-18 00:24:39 +0700
commit4b016c908dda2019f3bf89e5a3d2eae535e5fbd2 (patch)
tree639613aa8bcc3d36b5165a32ece4a421dabde4c8 /desk/lib/nostrill/follows.hoon
parent985fa2f7c99832cdf3c3351d2273c8fd05402b78 (diff)
oioi
Diffstat (limited to 'desk/lib/nostrill/follows.hoon')
-rw-r--r--desk/lib/nostrill/follows.hoon40
1 files changed, 40 insertions, 0 deletions
diff --git a/desk/lib/nostrill/follows.hoon b/desk/lib/nostrill/follows.hoon
new file mode 100644
index 0000000..c2eb987
--- /dev/null
+++ b/desk/lib/nostrill/follows.hoon
@@ -0,0 +1,40 @@
+/- sur=nostrill, nsur=nostr, comms=nostrill-comms, feed=trill-feed
+/+ js=json-nostr, sr=sortug, nlib=nostr, constants, gatelib=trill-gate, feedlib=trill-feed, jsonlib=json-nostrill
+|_ [=state:sur =bowl:gall]
+++ handle-add |= =user:sur
+ ^- (quip card:agent:gall _state)
+ ?- -.user
+ %urbit =/ c (urbit-watch +.user)
+ :- :~(c) state
+ %nostr `state
+ ==
+++ handle-del |= =user:sur
+ ^- (quip card:agent:gall _state)
+ =. following.state (~(del by following.state) user)
+ =/ graph (~(get by follow-graph.state) [%urbit our.bowl])
+ ?~ graph `state
+ =/ nset (~(del in u.graph) user)
+ =. follow-graph.state (~(put by follow-graph.state) [%urbit our.bowl] nset)
+ `state
+++ handle-follow-ok |= [=user:sur =feed:feed profile=(unit user-meta:nsur)]
+ ^- (quip card:agent:gall _state)
+ =. following (~(put by following) user feed)
+ =. profiles ?~ profile profiles (~(put by profiles) user u.profile)
+ `state
+
+
+++ urbit-watch |= sip=@p ^- card:agent:gall
+ [%pass /watch %agent [sip dap.bowl] %watch /follow]
+
+:: ++ res-fact |= =res:comms ^- (list card:agent:gall)
+:: =/ paths ~[/beg/feed]
+:: =/ =poke:comms [%res res]
+:: ~& > giving-res-fact=res
+:: =/ jon (beg-res:en:jsonlib res)
+:: =/ cage [%json !>(jon)]
+:: :~
+:: [%give %fact paths cage]
+:: [%give %kick paths ~]
+:: ==
+
+--