blob: 61d79c1a832269a7a83298be4d19247813f6af73 (
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
|
/- spider
/+ strandio, jsonlib=json-nostrill, sr=sortug
=, strand=strand:spider
=, strand-fail=strand-fail:libstrand:spider
^- thread:spider
|= arg=vase
=/ m (strand ,vase) ^- form:m
|^
=/ ujon !<((unit json) arg)
:: ~& ujon=ujon
?~ ujon (pure:m !>(bail))
=/ req (ui:de:jsonlib u.ujon)
?~ req (pure:m !>(bail))
?. ?=(%begs -.u.req) (pure:m !>(bail))
?- +<.u.req
%feed
;< =bowl:spider bind:m get-bowl:strandio
=/ desk q.byk.bowl
~& dock=[+>.u.req desk]
;< =cage bind:m (watch-one:strandio /beg/feed [+>.u.req desk] /beg/feed)
~& > watch-cage=-.cage
=/ j !<(json +.cage)
(pure:m !>(j))
%thread
;< =bowl:spider bind:m get-bowl:strandio
=/ desk q.byk.bowl
~& dock=[+>.u.req desk]
=/ ship=@p +>-.u.req
=/ id=@da +>+.u.req
=/ ids (crip (scow:sr %uw `@`id))
=/ wire /beg/thread/[ids]
;< =cage bind:m (watch-one:strandio wire [ship desk] wire)
~& > watch-cage=-.cage
=/ j !<(json +.cage)
(pure:m !>(j))
==
++ bail ^- json
%+ frond:enjs:format %error
s+'error'
--
|