snix/users/Profpatsch/whatcd-resolver
Profpatsch b1403a5e94 feat(users/Profpatsch/whatcd-resolver): add html streaming & maps
For all big page reloads, we want the `<head>` of the page to start
being transmitted even while doing database requests.

So let’s use the `Wai.ResponseStream` to do exactly that. The handler
provides the contents of `<head>`, we start streaming that, meanwhile
it calculates the `<body>` and once that is ready transmits it.

This means we can load all our static resources before the page
even starts sending any body data, meaning the css and html is already
there when we reach `</html>`.

Sweet.

The `<title>` in `artistPage` was depending on the table data, so I
moved it into a separate SELECT.

We can do all of it in parallel as well. Sweet.

~~~

This also adds static file prefetching of source maps if provided.

Change-Id: Ib824430594733b4c8e86ee1096c8afba2df1a66d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13221
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2025-03-08 12:48:37 +00:00
..
services fix(users/Profpatsch/whatcd-resolver/services): dont unset builders 2024-09-13 11:13:59 +00:00
src feat(users/Profpatsch/whatcd-resolver): add html streaming & maps 2025-03-08 12:48:37 +00:00
.gitignore chore(users/Profpatsch/whatcd-resolver): ignore .ninja 2024-09-13 11:13:59 +00:00
build.ninja feat(users/Profpatsch/whatcd-resolver): add services & readme 2024-03-17 01:21:14 +00:00
default.nix feat(users/Profpatsch/whatcd-resolver): add a simple torrent parser 2025-03-06 23:41:43 +00:00
Main.hs feat(users/Profpatsch/whatcd-resolver): add executable 2023-09-17 18:05:42 +00:00
notes.org feat(users/Profpatsch): init whatcd-resolver 2023-07-14 08:03:14 +00:00
README.md feat(users/Profpatsch/whatcd-resolver): add services & readme 2024-03-17 01:21:14 +00:00
server-notes.org feat(users/Profpatsch): init whatcd-resolver 2023-07-14 08:03:14 +00:00
whatcd-resolver.cabal feat(users/Profpatsch/whatcd-resolver): add a simple torrent parser 2025-03-06 23:41:43 +00:00

whatcd-resolver

To run:

ninja run-services

in one terminal (starts the background tasks)

ninja run

to start the server. It runs on 9092.

You need to be in the nix-shell in ./...

You need to set the pass key internet/redacted/api-keys/whatcd-resolver to an API key for RED.

You need to have a transmission-rpc-daemon listening on port 9091 (no auth, try ssh port forwarding lol).