summaryrefslogtreecommitdiff
path: root/desk/lib/nostrill.hoon
blob: c7e940c28f5be1237abeb31e613bc04abab8c9d7 (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
/-  post=trill-post, nsur=nostr, sur=nostrill
/+  trill=trill-post, nostr, sr=sortug
|%
::
++  default-state  |=  =bowl:gall  ^-  state:sur
  =/  s  *state-0:sur
  =/  l  public-relays:nsur
  =/  l  (scag 1 l)
  :: =/  l  ~['wss://relay.damus.io' 'wss://nos.lol']
  =/  rl  %+  turn  l  |=  t=@t  [t *relay-stats:nsur]
  :: =/  l  ~[['wss://relay.damus.io' ~]]
  =/  key  (gen-keys:nostr eny.bowl)
  =/  keyl  [key ~]
  s(relays (malt rl), keys keyl) 

++  print-relay-stats
  |=  rm=(map @t relay-stats:nsur)
  =/  l  ~(tap by rm)
  |-  ?~  l  ~
    =/  [url=@t rs=relay-stats:nsur]  i.l
    ~&  relay=url
    ~&  connected=connected.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)
  
::
++  post-to-event  |=  [=keys:nsur eny=@ p=post:post]  ^-  event:nsur
  =/  cl  (latest-post-content:trill contents.p)
  =/  string  (crip (content-list-to-md:trill cl))
  =/  ts  (to-unix-secs:jikan:sr id.p)
  =/  raw=raw-event:nsur  [pub.keys ts 1 ~ string]
  =/  event-id  (hash-event:nostr raw)
  =/  signature  (sign-event:nostr priv.keys event-id eny)
  ~&  hash-and-signed=[event-id signature]
  =/  =event:nsur  :*
    event-id
    pub.keys
    created-at.raw
    kind.raw
    tags.raw
    content.raw
    signature
    ==
  event
++  cards
|_  =bowl:gall
  ++  shim-binding  ^-  card:agent:gall
    [%pass /binding %arvo %e %connect [~ /nostr-shim] dap.bowl]
  --
--