diff --git a/arvo/eyre.hoon b/arvo/eyre.hoon
index e2d9831520..6b57932c59 100644
--- a/arvo/eyre.hoon
+++ b/arvo/eyre.hoon
@@ -132,7 +132,7 @@
== ::
::
++ stem :: client view
- $: ore=oryx
+ $: him=ship :: static identity
ude=(unit ,[p=duct q=?]) :: stream, long-poll?
era=@da :: next wake
eve=[p=@u q=(map ,@u even)]
@@ -172,7 +172,6 @@
$% [%for p=whir q=beam r=term s=cred] :: %f block
[%fot p=whir q=mark r=cage] :: %f translate
[%gap p=hapt q=ship r=cage] :: %g message
- [%gas p=whir q=hapt r=ship s=path] :: %g subscription
[%fin pest-fin] :: done
[%red %html] :: redirect
[%zap p=@ud q=(list tank)] :: err
@@ -553,13 +552,13 @@
|= [sas=@ud cug=(list ,@t) max=manx]
%- give-gift
%+ add-cookies cug
- (make-resp-gift sas text//html (crip (poxo max)))
+ (resp sas text//html (crip (poxo max)))
::
++ give-json :: success json
|= [sas=@uG cug=(list ,@t) jon=json]
%- give-gift
%+ add-cookies cug
- (make-resp-gift sas application//json (crip (pojo jon)))
+ (resp sas application//json (crip (pojo jon)))
::
++ nice-json |=(* (give-json 200 ~ (joba %ok %b &)))
++ mean-json |=([sas=@uG err=ares] (give-json sas ~ (ares-to-json err)))
@@ -580,10 +579,6 @@
|= gef=gift
+>(mow :_(mow [hen %give gef]))
::
- ++ resp :: mime response
- |= [sas=@uG mit=mite bod=cord]
- (give-gift (make-resp-gift sas mit bod))
- ::
++ pass-note |=(noe=[whir note] +>(mow :_(mow [hen %pass noe])))
++ ames-gram
|=([him=ship gam=gram] (pass-note ~ %a %want [our him] [%e -.gam] +.gam))
@@ -597,7 +592,7 @@
|= [tea=whir dep=@uvH cag=cage]
(ford-req tea our [%cast %mime %done ~ cag]) :: XX deps
::
- ++ make-resp-gift :: mimed response
+ ++ resp :: mimed response
|= [sas=@uG mit=mite rez=@]
:: (weld (turn cug |=(a=@t ['set-cookie' a]))
[%thou `httr`[sas ~[content-type/(moon mit)] [~ (taco rez)]]]
@@ -621,7 +616,6 @@
++ abet ..rq
++ teba |*(a=$+(* ..rq) |*(b=* %_(done ..rq (a b))))
++ fail (teba ^fail)
- ++ resp (teba ^resp)
++ give-html (teba ^give-html)
++ give-gift (teba ^give-gift)
++ give-json (teba ^give-json)
@@ -653,7 +647,7 @@
?+ [(fall p.pok %$) q.pok] ~
[?(%ico %png) %favicon ~]
:- ~
- %^ make-resp-gift 200 image//png
+ %^ resp 200 image//png
0w89wg.GV4jA.l9000.00dPb.YzBT6.giO00.o100d.wZcqc.a9tg-.VTG0b.
AUIvE.HBM3g.cK4SE.0aagi.l090p.I1P5g.Y-80r.y1YS9.1xE~Y.qgpFY.
vKN1V.905y0.2UwvL.43TUw.uL406.0-31h.xwoJF.Ul454.ilk00.00Yps.
@@ -662,7 +656,7 @@
::
[%txt %robots ~]
:- ~
- %^ make-resp-gift 200 text//plain
+ %^ resp 200 text//plain
%- role
:~ 'User-agent: *'
'Disallow: /'
@@ -720,7 +714,8 @@
~|(no-app/but=but !!)
|- ^- perk
?~ p.pok $(p.pok [~ %json])
- ?> ?=(%json u.p.pok) :: XX marks
+ ?. ?=(%json u.p.pok)
+ ~|(is/stub/u.p.pok !!) :: XX marks
?: ((sane %tas) i.but)
$(but [(scot %p our) but])
[%subs [(slav %p i.but) (slav %tas -.t.but)] u.p.pok +.t.but]
@@ -771,9 +766,8 @@
%for (beam-into-ford +.pez)
%fot (ford-req p.pez our [%cast q.pez %done ~ r.pez])
%gap (pass-note ~ %g [%mess +.pez])
- %gas (pass-note p.pez %g [%show +>.pez])
%zap (fail p.pez 0v0 q.pez)
- %fin (finish +.pez)
+ %fin (finish ~ +.pez)
%red
=+ url=(earn hat pok(p [~ %html]) quy)
?+ p.pok (fail 404 0v0 leaf/"bad redirect" leaf/
leaf/url ~)
@@ -786,13 +780,13 @@
::
++ finish
=+ status=200
- |= pef=pest-fin ^+ done
+ |= [cug=(list ,@t) pef=pest-fin] ^+ done
?~ pef done
?- -.pef
- ~ (give-gift %thou p.pef)
- %js (resp status text//javascript p.pef)
- %html (give-html status ~ p.pef)
- %json (give-json status ~ p.pef)
+ ~ (give-gift (add-cookies cug %thou p.pef))
+ %js $(pef [~ +:(resp status text//javascript p.pef)])
+ %html (give-html status cug p.pef)
+ %json (give-json status cug p.pef)
%code $(pef q.pef, status p.pef)
==
::
@@ -817,7 +811,9 @@
?. &(?=([~ %json] p.pok) ?=(%post mef) ?=(^ bod)) &
=+ oxe=(parse-body to-oryx)
?~ oxe |
- (~(has in vew.cyz:for-client) u.oxe)
+ ?: (~(has in vew.cyz:for-client) u.oxe)
+ &
+ ~&(bad-oryx/[u.oxe vew.cyz:for-client] &) :: XX
::
++ to-oryx (ot oryx/so ~):jo
++ root-beak `beak`[our %main ud/0] :: XX
@@ -870,9 +866,10 @@
::
%subs
=+ ire=(oryx-to-ixor (grab-body to-oryx))
- :^ %& %gas
+ :- %|
+ %+ pass-note
[%is ire (pack-hasp p.hem) q.hem]
- [[- + ~]:p.hem him q.hem]
+ [%g %show [- + ~]:p.hem him q.hem]
::
%view
~| lost-ixor/p.hem
@@ -896,12 +893,12 @@
pez
%for
=. ..ya abet:for-client
- [%| (handle-pest p.pez(p [%at ses.yac p.p.pez]))] :: XX better storage?
- %fin
+ [%| (handle-pest p.pez(p [%at ses.yac p.p.pez]))]
+ %fin
~| %not-script
?> ?=(%js &2.p.pez)
- =^ jon ..ya stat-json:for-client
- [%| (finish +.p.pez(p (jass jon p.p.pez)))] :: XX better storage?
+ =^ jon ..ya stat-json.yac
+ [%| (finish cug.yac +.p.pez(p (jass jon p.p.pez)))]
==
::
%try
@@ -918,6 +915,7 @@
=. ..ya (logoff:yac p.hem)
=+ cug=[(cat 3 cookie-prefix '=~; Path=/')]~
[%| (give-json 200 cug (joba %ok %b &))]
+ ::
%get
~| aute/+.hem
?: |(=(anon him.hem) (~(has in aut.yac) him.hem))
@@ -955,6 +953,7 @@
=+ pef=cookie-prefix
=+ lig=(session-from-cookies pef maf)
?^ lig
+ ~| bad-cookie/u.lig
=+ cyz=(~(got by wup) u.lig)
~(. ya u.lig cyz(cug ~))
=+ ses=(rsh 3 1 (scot %p (end 6 1 ney)))
@@ -1041,10 +1040,11 @@
::
++ stat-json
^+ [*json ..ya]
- =+ orx=(rsh 3 1 (scot %p (shaf %orx eny)))
+ =+ orx=`@t`(rsh 3 1 (scot %p (shaf %orx eny)))
=. vew (~(put in vew) orx)
+ ~& oryx-made/[ses orx]
=+ ire=(oryx-to-ixor orx)
- =. wix (~(put by wix) ire [orx ~ now [1 ~]])
+ =. wix (~(put by wix) ire [him ~ now [1 ~]])
:_ abet
%- jobe :~
oryx/s/orx
@@ -1106,8 +1106,13 @@
|= a=even ^+ eve
[+(p.eve) (~(put by q.eve) p.eve a)]
::
+ ++ pass-took
+ |= [a=hasp b=path]
+ (pass-note [%is ire (pack-hasp a) b] [%g %took [- + ~]:a him])
+ ::
++ give-even
|= [pol=? num=@u ven=even] ^+ done
+ =. done ?.(?=(%rush -.ven) done (pass-took p.ven))
?> pol :: XX eventstream
%^ give-json 200 ~
%^ jobe id/(jone num) type/[%s -.ven]
@@ -1167,9 +1172,9 @@
~
::
++ load :: clam previous state
- |= old=bolo ::_[%0 gub hov ged ney dop liz wup sop wix=**]
+ |= old=bolo ::_[.(wix **)]:*bolo
^+ ..^$
- ..^$(+>- old)
+ ..^$(+>- old) ::(wix ~))
::
++ scry
|= [our=(unit (set monk)) ren=@tas who=ship syd=desk lot=coin tyl=path]
diff --git a/main/lib/urb.js b/main/lib/urb.js
index 284e8e41b1..fa4513fb0e 100644
--- a/main/lib/urb.js
+++ b/main/lib/urb.js
@@ -201,6 +201,7 @@ window.urb.bind = function(path, cb){ // or bind(path, params, cb, nicecb?)
params.path = path
params.ship = params.ship ? params.ship : this.ship
params.appl = params.appl ? params.appl : this.appl
+ params.mark = params.mark ? params.mark : "json"
if(!path) throw new Error("You must specify a path for urb.bind.")
if(!params.appl) throw new Error("You must specify an appl for urb.bind.")
@@ -212,7 +213,9 @@ window.urb.bind = function(path, cb){ // or bind(path, params, cb, nicecb?)
this.cabs[this.gsig(params)] = cb
- url = "/~/is/"+this.gsig(params)
+ if(params.mark !== "json")
+ throw new Error("Non-json subscriptions unimplemented.") // XX
+ url = "/~/is/"+this.gsig(params)+"."+params.mark
$this = this
this.qreq("put",url,params,true,function(err,res) {