summaryrefslogtreecommitdiff
path: root/desk/lib/json/nostril.hoon
blob: 16792a9055543d7f6669a96afb72dfafcddb28cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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)

  --
      
--