summaryrefslogtreecommitdiff
path: root/desk/app/nostril.hoon
diff options
context:
space:
mode:
Diffstat (limited to 'desk/app/nostril.hoon')
-rw-r--r--desk/app/nostril.hoon118
1 files changed, 118 insertions, 0 deletions
diff --git a/desk/app/nostril.hoon b/desk/app/nostril.hoon
new file mode 100644
index 0000000..f941493
--- /dev/null
+++ b/desk/app/nostril.hoon
@@ -0,0 +1,118 @@
+/- sur=nostril
+/+ lib=nostril, shim, dbug
+/= web /web/router
+|%
++$ versioned-state $%(state-0:sur)
+--
+=| versioned-state
+=* state -
+%- agent:dbug
+^- agent:gall
+|_ =bowl:gall
++* this .
+ rout ~(. router:web [state bowl])
+ cards ~(. cards:lib bowl)
+++ on-init
+ ^- (quip card:agent:gall agent:gall)
+ :_ this(state default:sur)
+ :~ shim-binding:cards
+ ==
+::
+++ on-save
+ ^- vase
+ !>(state)
+::
+++ on-load
+ |~ old-state=vase
+ ^- (quip card:agent:gall agent:gall)
+ =/ old-state !<(versioned-state old-state)
+ ?- -.old-state
+ %0 `this(state old-state)
+ ==
+::
+++ on-poke
+ |~ [=mark =vase]
+ ^- (quip card:agent:gall agent:gall)
+ ~& >> on-poke-nostril=mark
+ |^
+ ?+ mark `this
+ %noun debug
+ %json on-ws
+ %handle-http-request serve
+ ==
+ :: web ui
+ ++ serve
+ =/ order !<(order:web vase)
+ :: ~& request.req.order
+ ?: .=(url.request.req.order '/nostr-shim')
+ =/ event (handle:shim order)
+ ?~ event `this
+ =/ nevents=(list event:sur) [u.event events]
+ =/ nevents2=(list event:sur) (scag 100 nevents)
+ =. events nevents2
+ =/ response (ebail:rout id.order)
+ [response this]
+
+ ::
+ :_ this (rout:rout order)
+
+ ::
+ ++ on-ws
+ =/ jon=json !<(json vase)
+ ~& > on-ws-jon=jon
+
+ `this
+ ::
+ ++ debug
+ =/ noun !<(* vase)
+ ?+ -.noun `this
+ %genkey
+ =/ keys (gen-keys:lib eny.bowl)
+ ~& keys=keys
+ `this
+ %rt :: relay test
+ :_ this :_ ~
+ :: khan
+ =/ relay-list=(list json) %+ turn ~(tap in relays)
+ |= t=@t ^- json [%s t]
+ =/ req-body=json %- frond:enjs:format [%relays %a relay-list]
+ =/ headers :~
+ [key='content-type' value='application/json']
+ ==
+ =/ =request:http [%'POST' shim-url:sur headers `(json-body:web req-body)]
+ =/ pat /lol/lmao
+ [%pass (weld /ws pat) %arvo %k %fard dap.bowl %fetch %noun !>(request)]
+ ==
+ ::
+ --
+::
+++ on-watch
+ |~ =(pole knot)
+ ^- (quip card:agent:gall agent:gall)
+ `this
+::
+++ on-leave
+ |~ =(pole knot)
+ ^- (quip card:agent:gall agent:gall)
+ `this
+::
+++ on-peek
+ |~ =(pole knot)
+ ^- (unit (unit cage))
+ ~
+::
+++ on-agent
+ |~ [wire sign:agent:gall]
+ ^- (quip card:agent:gall agent:gall)
+ `this
+::
+++ on-arvo
+ |~ [wire =sign-arvo]
+ ^- (quip card:agent:gall agent:gall)
+ `this
+::
+++ on-fail
+ |~ [term tang]
+ ^- (quip card:agent:gall agent:gall)
+ `this
+--