diff options
Diffstat (limited to 'desk/ted/fetch.hoon')
-rw-r--r-- | desk/ted/fetch.hoon | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/desk/ted/fetch.hoon b/desk/ted/fetch.hoon new file mode 100644 index 0000000..6444ca7 --- /dev/null +++ b/desk/ted/fetch.hoon @@ -0,0 +1,24 @@ +/- spider +/+ strandio +=, strand=strand:spider +=, dejs-soft:format +=, strand-fail=strand-fail:libstrand:spider +^- thread:spider +|= arg=vase + =/ request ;;(request:http q.arg) + ~& req=request + =/ m (strand ,vase) ^- form:m + :: =/ m (strand ,json) ^- form:m + ;< ~ bind:m (send-request:strandio request) + ;< res=client-response:iris bind:m take-client-response:strandio + ?. ?=(%finished -.res) (strand-fail:strand %no-body ~) + :: =/ headers headers.response-header.res + :: =/ redirect (get-header:http 'location' headers) + :: ?^ redirect (pure:m [%| u.redirect]) + + :: + ?~ full-file.res (strand-fail:strand %no-body ~) + =/ body=@t q.data.u.full-file.res + :: ~& resbody=body + =/ json [%s body] + (pure:m !>(json)) |