From c4b392a179048f936c062f5ffccc2bc25627e500 Mon Sep 17 00:00:00 2001 From: polwex Date: Mon, 6 Oct 2025 01:01:41 +0700 Subject: working --- app/ted/beg.hoon | 41 +++++++++++++++++++++++++++++++++++++++++ app/ted/fetch.hoon | 21 +++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 app/ted/beg.hoon create mode 100644 app/ted/fetch.hoon (limited to 'app/ted') diff --git a/app/ted/beg.hoon b/app/ted/beg.hoon new file mode 100644 index 0000000..61d79c1 --- /dev/null +++ b/app/ted/beg.hoon @@ -0,0 +1,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' + -- diff --git a/app/ted/fetch.hoon b/app/ted/fetch.hoon new file mode 100644 index 0000000..e876511 --- /dev/null +++ b/app/ted/fetch.hoon @@ -0,0 +1,21 @@ +/- spider +/+ strandio +=, strand=strand:spider +=, dejs-soft:format +=, strand-fail=strand-fail:libstrand:spider +^- thread:spider +|= arg=vase + =/ request ;;(request:http q.arg) + =/ 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 + (pure:m !>(body)) -- cgit v1.2.3