blob: 1b78f0a2ba737d374c174c118ef5297325faafb0 (
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
/- sur=nostrill, nsur=nostr
/+ js=json-nostr, sr=sortug, nlib=nostr, constants
/= web /web/router
|_ [=state:sur =bowl:gall]
+$ card card:agent:gall
++ parse-msg
|= [eyre-id=@ta req=inbound-request:eyre]
^- (unit res:shim:nsur)
?~ body.request.req ~
=/ jstring q.u.body.request.req
(parse-body jstring)
++ parse-body |= jstring=@t
=/ ures (de:json:html jstring)
?~ ures ~
=/ ur (shim-res:de:js u.ures)
?~ ur ~& >>> shim-msg-parsing-failed=jstring ~
ur
:: __
++ get-req |= fs=(list filter:nsur)
^- [bulk-req:shim:nsur _state]
=/ rls ~(tap by relays.state)
=| urls=(list @t)
=/ sub-id (gen-sub-id:nlib eny.bowl)
=/ =req:shim:nsur [%req sub-id fs]
|- ?~ rls [[urls req] state]
:: build http card
=/ [url=@t rs=relay-stats:nsur] i.rls
:: mutate relays stats
=/ es=event-stats:nsur [fs 0]
=/ nreqs (~(put by reqs.rs) sub-id es)
=/ nrs rs(reqs nreqs)
=. relays.state (~(put by relays.state) url nrs)
$(urls [url urls], rls t.rls)
++ get-posts
^- (quip card _state)
=/ kinds (silt ~[1])
=/ last-week (sub now.bowl ~d7)
:: =/ since (to-unix-secs:jikan:sr last-week)
=/ =filter:nsur [~ ~ `kinds ~ `last-week ~ ~]
=^ req=bulk-req:shim:nsur state (get-req ~[filter])
:- :~((send req)) state
++ get-profiles
|= pubkeys=(set @ux)
^- (quip card _state)
=/ kinds (silt ~[0])
=/ =filter:nsur [~ `pubkeys `kinds ~ ~ ~ ~]
=^ req=bulk-req:shim:nsur state (get-req ~[filter])
:- :~((send req)) state
++ get-engagement
|= post-ids=(set @ux)
^- (quip card _state)
=/ post-strings %- ~(run in post-ids) |= id=@ux (crip (scow:sr %ux id))
=/ =filter:nsur
=/ kinds (silt ~[6 7])
=/ tags (malt :~([%e post-strings]))
[~ ~ `kinds `tags ~ ~ ~]
=^ req state (get-req ~[filter])
:- :~((send req)) state
++ get-quotes
|= post-id=@ux
^- (quip card _state)
=/ post-string (crip (scow:sr %ux post-id))
=/ kinds (silt ~[1])
=/ tags (malt :~([%q (silt ~[post-string])]))
=/ =filter:nsur [~ ~ `kinds `tags ~ ~ ~]
=^ req state (get-req ~[filter])
:- :~((send req)) state
++ send
|= req=bulk-req:shim:nsur ^- card:agent:gall
=/ req-body (bulk-req:en:js req)
:: ~& shim-req-json=(en:json:html req-body)
=/ host .^(hart:eyre %e /(scot %p our.bowl)/host/(scot %da now.bowl))
=/ origin %- crip (head:en-purl:html host)
=/ headers :~
[key='content-type' value='application/json']
[key='origin' value=origin]
==
=/ =request:http [%'POST' url:shim:nsur headers `(json-body:web req-body)]
=/ pat /shim
[%pass (weld /ws pat) %arvo %k %fard dap.bowl %fetch %noun !>(request)]
++ send-http
|= req=http-req:shim:nsur
^- card:agent:gall
=/ req-body (http-req:en:js req)
:: ~& shim-req-json=(en:json:html req-body)
=/ host .^(hart:eyre %e /(scot %p our.bowl)/host/(scot %da now.bowl))
=/ origin %- crip (head:en-purl:html host)
=/ headers :~
[key='content-type' value='application/json']
[key='origin' value=origin]
==
=/ =request:http [%'POST' url:shim:nsur headers `(json-body:web req-body)]
[%pass /http/[sub-id.req] %arvo %k %fard dap.bowl %fetch %noun !>(request)]
::
:: HTTP
::
++ get-profiles-http
|= pubkeys=(set @ux)
^- (quip card _state)
=/ relays ~(key by relays.state)
:: TODO make a function to use most reliable
=/ relay (head ~(tap in relays))
~& http=relay
=/ sub-id (gen-sub-id:nlib eny.bowl)
=/ kinds (silt ~[0])
=/ total=filter:nsur [~ `pubkeys `kinds ~ ~ ~ ~]
=/ req=http-req:shim:nsur [relay http-delay:constants sub-id ~[total]]
=/ =card (send-http req)
:- :~(card) state
--
|