summaryrefslogtreecommitdiff
path: root/app/ted
diff options
context:
space:
mode:
Diffstat (limited to 'app/ted')
-rw-r--r--app/ted/beg.hoon41
-rw-r--r--app/ted/fetch.hoon21
2 files changed, 62 insertions, 0 deletions
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))