summaryrefslogtreecommitdiff
path: root/desk/lib/json/nostril.hoon
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-09-11 01:48:14 +0700
committerpolwex <polwex@sortug.com>2025-09-11 01:48:14 +0700
commitb1d68ac307ed87d63e83820cbdf843fff0fd9f7f (patch)
treed6a684a70a80509e68ff667b842aa4e4c091906f /desk/lib/json/nostril.hoon
init
Diffstat (limited to 'desk/lib/json/nostril.hoon')
-rw-r--r--desk/lib/json/nostril.hoon113
1 files changed, 113 insertions, 0 deletions
diff --git a/desk/lib/json/nostril.hoon b/desk/lib/json/nostril.hoon
new file mode 100644
index 0000000..16792a9
--- /dev/null
+++ b/desk/lib/json/nostril.hoon
@@ -0,0 +1,113 @@
+/- sur=nostril, nsur=nostr, feed=trill-feed
+/+ sr=sortug, common=json-common, trill=json-trill, nostr=json-nostr
+|%
+++ en
+=, enjs:format
+|%
+ :: UI comms
+ ++ state |= state-0:sur ^- json
+ %: pairs
+ relays+(en-relays relays)
+ keys+a+(turn ~(tap in ~(key by keys)) hex:en:common)
+ profiles+(en-profiles profiles)
+ feed+(feed-with-cursor:en:trill feed ~ ~)
+ following+(enfollowing following)
+ ['followGraph' (engraph follow-graph)]
+ ~
+ ==
+ ++ en-relays
+ |= r=(map @t (list event:nsur)) ^- json
+ %- pairs %+ turn ~(tap by r)
+ |= [url=@t events=(list event:nsur)]
+ :- url :- %a %+ turn events event:en:nostr
+ ++ en-profiles |= m=(map @ux user-meta:nsur)
+ %- pairs
+ %+ turn ~(tap by m) |= [key=@ux p=user-meta:nsur]
+ :- (crip (scow:sr %ux key)) (user-meta:en:nostr p)
+
+ ++ enfollowing
+ |= m=(map @ux feed:feed)
+ ^- json
+ %- pairs %+ turn ~(tap by m) |= [key=@ux f=feed:feed]
+ :- (crip (scow:sr %ux key)) (feed:en:trill f)
+
+ ++ engraph
+ |= m=(map @ux (set follow:sur))
+ ^- json
+ %- pairs %+ turn ~(tap by m) |= [key=@ux s=(set follow:sur)]
+ :- (crip (scow:sr %ux key))
+ :- %a %+ turn ~(tap in s) |= f=follow:sur
+ %- pairs
+ :~ pubkey+(hex:en:common pubkey.f)
+ name+s+name.f
+ :- %relay ?~ relay.f ~ s+u.relay.f
+ ==
+
+
+ --
+++ de
+=, dejs-soft:format
+|%
+ :: ui
+++ ui
+ %- of :~
+ fols+ui-fols
+ prof+ui-prof
+ keys+ui-keys
+ post+ui-post
+ rela+ui-relay
+ ==
+++ ui-fols
+ %- of :~
+ add+hex:de:common
+ del+hex:de:common
+ ==
+++ ui-prof
+ %- of :~
+ add+add-prof
+ del+hex:de:common
+ ==
+++ add-prof %- ot :~
+ pubkey+hex:de:common
+ meta+user-meta:de:nostr
+==
+++ ui-keys
+ %- of :~
+ add+ul
+ del+hex:de:common
+ ==
+++ ui-post
+ %- of :~
+ add+de-post
+ rt+de-rt
+ del+hex:de:common
+ ==
+++ de-post
+ %- ot :~
+ pubkey+hex:de:common
+ content+so
+ ==
+++ de-rt
+ %- ot :~
+ id+hex:de:common
+ pubkey+hex:de:common
+ relay+so
+ ==
+++ ui-relay
+ %- of :~
+ send+de-relay
+ ==
+++ de-relay %- ot :~
+ host+(se:de:common %p)
+ id+de-atom-id
+ relays+(ar so)
+ ==
+++ de-atom-id
+ |= jon=json
+ ?. ?=([%s @t] jon) ~
+ (rush p.jon dem)
+
+ --
+
+--
+