A commit that deletes a file from pb_public does not delete it from the server — the deploy only copies in. So /settings.html and /onboarding.html kept answering 200 after the swap, the second still offering a signup form that can now only fail. Explicit routes shadow them, and go on working as bookmarks even after someone clears the directory by hand.
30 lines
1.5 KiB
JavaScript
30 lines
1.5 KiB
JavaScript
/// <reference path="../pb_data/types.d.ts" />
|
|
|
|
// Pretty URLs for the family-facing web surfaces.
|
|
//
|
|
// One page now does what three did: `index.html` is sign-in, profiles,
|
|
// playback preferences, sources, devices and downloads behind a persisted
|
|
// session. `/settings` keeps working because it is in people's muscle memory and
|
|
// in older messages — it lands on the sources section of the new page.
|
|
//
|
|
// `/tv` is the short form of `/get/tv`, because that URL gets typed on a
|
|
// television remote inside the Downloader app, one character at a time.
|
|
//
|
|
// `onboarding.html` and `settings.html` are gone from the repo but NOT from the
|
|
// server: the deploy copies files into `pb_public` and never deletes the ones a
|
|
// commit removed, so both stale pages kept answering 200 after the swap. The old
|
|
// wizard still showed a signup form that can now only fail, which is worse than
|
|
// no page at all. Explicit routes shadow the leftovers — and keep working as
|
|
// bookmarks even once someone clears the directory by hand.
|
|
|
|
routerAdd("GET", "/account", (e) => e.redirect(302, "/"))
|
|
|
|
// Deep-link straight to sources; the page reads the hash to pick its tab.
|
|
routerAdd("GET", "/settings", (e) => e.redirect(302, "/#addons"))
|
|
|
|
// Typing this on a remote is the actual cost being optimised.
|
|
routerAdd("GET", "/tv", (e) => e.redirect(302, "/get/tv"))
|
|
|
|
// Shadow the stale files the deploy left behind (see above).
|
|
routerAdd("GET", "/settings.html", (e) => e.redirect(302, "/#addons"))
|
|
routerAdd("GET", "/onboarding.html", (e) => e.redirect(302, "/"))
|