~cadence/cloudtube

Support Netscape Navigator 9
Null check view count
11x speed up of subscription page generation

My 30 subscriptions now take 25 ms to generate, instead of around 280.

Around 120 ms were saved by creating a database index.
Around 120 ms were saved by pre-compiling the pug template for video
description timestamps.
The other changes in this commit produced slight improvements.
Keep subscriptions in database if channel deleted
Replace mention of "log in" to "visit"
Add narration to "can't think" page
Improve documentation and errors around local mode
Remove logging from background refresh

I'm happy enough with the stability of all code paths to not need
extensive logging any more.
Don't quit background refresh loop on error
Setting to alter recommended videos display
Properly rewrite URL params for youtu.be links

Change occurs in converters.rewriteVideoDescription().
Previously the URL could end up with `?` in it twice, this ensures there
will be at most one.
Highlight current chapter in video description
Proxy captions via new /proxy route

We can add more authorized paths to authorizedPaths if we need
more resources to be pulled from the NewLeaf/Invidious backend
on the same domain.

This route forwards to the client a few headers like Bibliogram
https://git.sr.ht/~cadence/bibliogram/tree/ea7cd5d5/item/src/site/api/proxy.js#L28-29
so we can also use this route to possibly proxy videos in the
future.

We are strict about the url parameter not overriding the
NewLeaf/Invidious backend (instanceOrigin) by ensuring
fetchURL has instanceOrigin as prefix.
Make details/summary keyboard accessible
Correctly set filter referrer everywhere
Implement video filters
Tiny miscellanous changes
Fix footer on chromium
Remove mistaken console.log
Make VSCode type detection happier
Next