diff options
author | polwex <polwex@sortug.com> | 2025-08-28 12:59:01 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-08-28 12:59:01 +0700 |
commit | 7c0681a06e0358887d2f64001dc43125554766c9 (patch) | |
tree | cd19f060a5f4147d6ee6928eecfe1abf03bdbb8e /desk/ted |
init
Diffstat (limited to 'desk/ted')
-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)) |