summaryrefslogtreecommitdiff
path: root/app/lib/nostrill.hoon
blob: 32099b232a5a32453437199dc791718cf5e8c50e (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
/-  post=trill-post, nsur=nostr, sur=nostrill, gate=trill-gate, comms=nostrill-comms
/+  trill=trill-post, nostr-keys, sr=sortug, jsonlib=json-nostrill,
    ws=websockets
|%
::
++  default-state  |=  =bowl:gall  ^-  state:sur
  =/  s  *state-0:sur
  :: =/  l  ~['wss://relay.damus.io' 'wss://nos.lol']
  =/  key  (gen-keys:nostr-keys eny.bowl)
  =/  keyl  [key ~]
  s(keys keyl) 

++  print-relay-stats
  |=  rm=(map @ relay-stats:nsur)
  =/  l  ~(tap by rm)
  |-  ?~  l  ~
    =/  [wid=@ rs=relay-stats:nsur]  i.l
    ~&  relay-url=url.rs
    ~&  connected=start.rs
    ~&  sub-count=~(wyt by reqs.rs)
    =/  total-received
      %+  roll  ~(tap by reqs.rs)
        |=  [[* es=event-stats:nsur] acc=@ud]
          %+  add  acc  received.es
    ~&  >>  total=total-received  
    $(l t.l)
  
++  ui-ws-res  |=  [wid=@ msg=@t]
  
  =/  resmsg  (cat 3 msg (cat 3 msg msg))
  =/  octs  (as-octs:mimes:html resmsg)
  =/  res-event=websocket-event:eyre  [%message 1 `octs]
  :~  (give-ws-payload-server:ws wid res-event)
  ==
  
::

++  cards
|_  =bowl:gall
  ++  relay-binding  ^-  card:agent:gall
    [%pass /binding %arvo %e %connect [~ /nostrill] dap.bowl]
  ++  ui-binding  ^-  card:agent:gall
    [%pass /binding %arvo %e %connect [~ /nostrill-ui] dap.bowl]
  ++  bindings
    :~  relay-binding
        ui-binding
    ==
  ++  update-ui  |=  =fact:ui:sur  ^-  card:agent:gall
    =/  jon  (fact:en:jsonlib fact)
    [%give %fact ~[/ui] %json !>(jon)]
  :: ++  update-followers  |=  =fact:comms  ^-  card:agent:gall
  ++  update-followers  |=  =fact:comms  ^-  card:agent:gall
    [%give %fact ~[/follow] %noun !>(fact)]
  ::
  ++  poke-host  |=  [sip=@p =poke:comms]  ^-  card:agent:gall
    [%pass /heads-up %agent [sip dap.bowl] %poke %noun !>(poke)]
  --
--