90 lines
2.6 KiB
Plaintext
90 lines
2.6 KiB
Plaintext
/- sur=forum, tp=post
|
|
/+ lib=forum, sr=sortug
|
|
/+ server
|
|
::
|
|
/= layout /web/layout
|
|
/= index /web/pages/index
|
|
/= thread /web/pages/thread
|
|
|
|
:: /* sw %noun /web/sw/js
|
|
:: /* manifest %noun /web/manifest/json
|
|
:: assets
|
|
/* css %css /web/assets/style/css
|
|
/* spinner %noun /web/assets/spinner/svg
|
|
/* favicon %noun /web/assets/favicon/ico
|
|
/* favicon1 %noun /web/assets/favicon-32x32/png
|
|
/* favicon2 %noun /web/assets/favicon-16x16/png
|
|
|
|
|%
|
|
+$ order [id=@ta req=inbound-request:eyre]
|
|
++ pbail
|
|
%- html-response:gen:server
|
|
%- manx-to-octs:server
|
|
manx-bail
|
|
++ manx-bail ^- manx ;div:"404"
|
|
++ route
|
|
|= [=order =state:sur =bowl:gall] ^- (list card:agent:gall)
|
|
=/ rl (parse-request-line:server url.request.req.order)
|
|
=. site.rl ?~ site.rl ~ t.site.rl
|
|
|
|
=/ met method.request.req.order
|
|
=/ fpath=(pole knot) [met site.rl]
|
|
~& > rl=fpath
|
|
=/ bail %+ give-simple-payload:app:server id.order pbail
|
|
|^
|
|
:: if file extension assume its asset
|
|
?. ?=(~ ext.rl) (serve-assets rl)
|
|
?+ fpath bail
|
|
[%'GET' rest=*] (serve-get rl(site rest.fpath))
|
|
[%'POST' rest=*] (serve-post rl(site rest.fpath))
|
|
==
|
|
::
|
|
++ serve-assets
|
|
|= rl=request-line:server
|
|
~& >> assets=rl
|
|
=/ pl
|
|
?+ [site ext]:rl pbail
|
|
[[%style ~] [~ %css]] (css-response:gen:server (as-octs:mimes:html css))
|
|
:: [[%spinner ~] [~ %svg]] [%full (serve-other:kaji %svg spinner)]
|
|
:: [[%sw ~] [~ %js]] [%mime /text/javascript sw]
|
|
:: [[%manifest ~] [~ %json]] [%mime /application/json manifest]
|
|
==
|
|
(give-simple-payload:app:server id.order pl)
|
|
|
|
++ serve-get
|
|
|= rl=request-line:server
|
|
=/ pl %- html-response:gen:server %- manx-to-octs:server
|
|
^- manx
|
|
=/ p=(pole knot) site.rl ::?. mob.rl pat.rl [%m pat.rl]
|
|
?: ?=([%f rest=*] p) (fragment rest.p)
|
|
%- layout ^- marl :_ ~
|
|
?+ p manx-bail
|
|
~ (serve-index '1')
|
|
[%p p=@t ~] (serve-index p.p)
|
|
[%ted ted=@t ~] (serve-thread ted.p)
|
|
==
|
|
(give-simple-payload:app:server id.order pl)
|
|
++ serve-index |= t=@t ^- manx
|
|
=/ pag (slaw %ud t) ?~ pag manx-bail
|
|
=/ threads (get-thread-page:lib u.pag state)
|
|
(index [u.pag threads] bowl)
|
|
++ serve-thread |= uidt=@t ^- manx
|
|
=/ uid (slaw:sr %uw uidt) ?~ uid manx-bail
|
|
=/ cued (cue u.uid)
|
|
=/ pid %- (soft pid:tp) cued
|
|
?~ pid manx-bail
|
|
=/ ted (get-thread:lib u.pid state)
|
|
?~ ted manx-bail
|
|
(thread u.ted bowl)
|
|
|
|
++ fragment
|
|
|= p=(pole knot)
|
|
?+ p manx-bail
|
|
~ manx-bail
|
|
==
|
|
|
|
++ serve-post
|
|
|= rl=request-line:server ~
|
|
--
|
|
--
|