summaryrefslogtreecommitdiff
path: root/desk/lib/nostrill.hoon
diff options
context:
space:
mode:
Diffstat (limited to 'desk/lib/nostrill.hoon')
-rw-r--r--desk/lib/nostrill.hoon55
1 files changed, 55 insertions, 0 deletions
diff --git a/desk/lib/nostrill.hoon b/desk/lib/nostrill.hoon
new file mode 100644
index 0000000..c7e940c
--- /dev/null
+++ b/desk/lib/nostrill.hoon
@@ -0,0 +1,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]
+ --
+--