summaryrefslogtreecommitdiff
path: root/desk/lib/json/nostrill.hoon
diff options
context:
space:
mode:
Diffstat (limited to 'desk/lib/json/nostrill.hoon')
-rw-r--r--desk/lib/json/nostrill.hoon123
1 files changed, 123 insertions, 0 deletions
diff --git a/desk/lib/json/nostrill.hoon b/desk/lib/json/nostrill.hoon
new file mode 100644
index 0000000..43f7708
--- /dev/null
+++ b/desk/lib/json/nostrill.hoon
@@ -0,0 +1,123 @@
+/- sur=nostrill, 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)
+ key+(hex:en:common pub.i.keys)
+ profiles+(en-profiles profiles)
+ :: TODO proper cursors
+ feed+(feed-with-cursor:en:trill feed ~ ~)
+ nostr+(en-nostr-feed nostr-feed)
+ following+(enfollowing following)
+ ['followGraph' (engraph follow-graph)]
+ ~
+ ==
+ ++ en-nostr-feed
+ |= feed=nostr-feed:sur ^- json
+ :- %a %+ turn (tap:norm:sur feed) |= [id=@ud ev=event:nsur]
+ (event:en:nostr ev)
+
+ ++ en-relays
+ |= r=(map @t relay-stats:nsur) ^- json
+ %- pairs %+ turn ~(tap by r)
+ |= [url=@t rs=relay-stats:nsur]
+ :- url %- pairs
+ :~ :- %connected ?~ connected.rs ~ (time u.connected.rs)
+ :- %reqs (relay-stats reqs.rs)
+ ==
+ ++ relay-stats |= rm=(map @t event-stats:nsur)
+ %- pairs %+ turn ~(tap by rm) |= [sub-id=@t es=event-stats:nsur]
+ :: TODO do we even need this
+ :- sub-id (numb received.es)
+
+ ++ 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 :~
+ keys+ul
+ fols+ui-fols
+ prof+ui-prof
+ 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-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)
+
+ --
+
+--
+