summaryrefslogtreecommitdiff
path: root/desk/sur
diff options
context:
space:
mode:
Diffstat (limited to 'desk/sur')
-rw-r--r--desk/sur/nostr.hoon80
-rw-r--r--desk/sur/nostrill.hoon (renamed from desk/sur/nostril.hoon)22
2 files changed, 79 insertions, 23 deletions
diff --git a/desk/sur/nostr.hoon b/desk/sur/nostr.hoon
index 78c00ab..ff5ad6b 100644
--- a/desk/sur/nostr.hoon
+++ b/desk/sur/nostr.hoon
@@ -25,23 +25,81 @@ $: pubkey=@ux :: 32bytes
$: name=@t
about=@t
picture=@t
- other=(map @t @t)
+ other=(map @t json)
+==
++$ relay-stats
+$: connected=(unit @da)
+ reqs=(map sub-id event-stats)
+==
++$ event-stats
+ [filters=(list filter) received=event-count]
++$ sub-id @t
++$ event-count @ud
+
++$ relay-req
+$: sub-id=@t
+ filters=(list filter)
==
:: Relay comms
+$ filter
-$: ids=(list @ux)
- authors=(list @ux)
- kinds=(list @ud)
- tag=(unit [key=@ values=(list @t)])
- since=(unit @ud)
- until=(unit @ud)
- limit=(unit @ud)
+$: ids=(unit (set @ux))
+ authors=(unit (set @ux))
+ kinds=(unit (set @ud))
+ tags=(unit (map @t (set @t)))
+ since=(unit @da)
+ until=(unit @da)
+ limit=(unit @ud)
+==
+:: messages from relay
+++ relay-msg
+$% [%event sub-id=@t =event]
+ [%ok id=@ux accepted=? msg=@t]
+ [%eose sub-id=@t]
+ [%closed sub-id=@t msg=@t]
+ [%notice msg=@t]
+ [%auth challenge=@t]
+ :: from our shim
+ [%error msg=@t]
==
++ shim
|%
++ url 'http://localhost:8888/shim'
- +$ get (list [relay=@t filters=(list filter)])
- +$ post [=event relays=(list @t)]
- +$ req $%([%get get] [%post post])
+ +$ req
+ $% [%req relay-req]
+ [%event =event]
+ [%auth =event]
+ [%close sub-id=@t]
+ ==
+ +$ bulk-req [relays=(list @t) =req]
+ +$ http-req [relay=@t delay=@ud sub-id=@t filters=(list filter)]
+ +$ res $%([%http p=(list relay-msg)] [%ws relay=@t msg=relay-msg])
--
+
+:: https://github.com/sesseor/nostr-relays-list/blob/main/relays.txt
+++ public-relays ^- (list @t)
+ :~ 'wss://nos.lol'
+ :: 'wss://relay.damus.io'
+ :: 'wss://nostr.wine'
+ :: 'wss://offchain.pub'
+ ==
+ :: 'wss://knostr.neutrine.com'
--
+:: event: {
+:: content: "😂",
+:: created_at: 1758049319,
+:: id: "36c8a0bb6a9a1ff3ca3e6868fdf2c055a09aea39b1c078b75c38f5a7b580da87",
+:: kind: 7,
+:: pubkey: "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1",
+:: sig: "7b5a9c799776935f959eccfd311af6152db6a1360296c9790b35544d0b83a8d75f8937ad1ad6f5da3e0d3e2bdb1bfb92686adbde42c3ef53ca06771080d08153",
+:: tags: [
+:: [ "e", "091d00811bb9a57088ab7c1d39697b0ed9bbbe05dae135b406f3560290fba311",
+:: "wss://relay.nostr.band/", "root", "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1"
+:: ], [ "e", "1cd926b58a1bac70adcedf38212d72ee1380e17dad1aef6bbc18782c5c540236",
+:: "wss://relay.nostr.band/", "reply", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083"
+:: ], [ "p", "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1",
+:: "wss://nostr.bitcoiner.social/"
+:: ], [ "p", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083",
+:: "ws://relay.snort.social/"
+:: ], [ "e", "b9a0c3b28a291d80bcb41ee730f2c48366fd2fefba0e68f9fb928bb9ca96f757" ], [ "p", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083" ]
+:: ],
+:: },
diff --git a/desk/sur/nostril.hoon b/desk/sur/nostrill.hoon
index a1cc5ee..ad82661 100644
--- a/desk/sur/nostril.hoon
+++ b/desk/sur/nostrill.hoon
@@ -4,22 +4,24 @@
+$ state-0
$: %0
:: nostr config
- relays=(map @t (list event:nostr))
- keys=(map @ux @ux) :: pubkey to privkey
+ relays=(map @t relay-stats:nostr)
+ keys=(lest keys:nostr) :: cycled, i.keys is current one
:: own feed
feed=feed:trill
+ :: nostr feed from relays
+ =nostr-feed
+ :: profiles
profiles=(map @ux user-meta:nostr)
following=(map @ux =feed:trill)
follow-graph=(map @ux (set follow))
+ :: for http requests
+ pending=(map @t [pending=filter:nostr done=filter:nostr])
:: TODO global feed somehow?
==
++$ nostr-feed ((mop @ud event:nostr) gth)
+++ norm ((on @ud event:nostr) gth)
+$ follow [pubkey=@ux name=@t relay=(unit @t)]
-++ default ^- state-0
- =/ s *state-0
- =/ l ~[['wss://relay.damus.io' ~] ['wss://nos.lol' ~]]
- s(relays (malt l))
-
++ ui
|%
+$ poke
@@ -27,7 +29,7 @@
[%post post-poke]
:: [%reac reac-poke]
[%prof prof-poke]
- [%keys keys-poke]
+ [%keys ~] :: cycle-keys
[%rela relay-poke]
==
+$ post-poke
@@ -43,10 +45,6 @@
$% [%add pubkey=@ux meta=user-meta:nostr]
[%del pubkey=@ux]
==
- +$ keys-poke
- $% [%add ~]
- [%del pubkey=@ux]
- ==
+$ relay-poke
$% [%send host=@p id=@ relays=(list @t)]
==