From 91d32352e41cedfc474cfe29065a4bcb8f0752b5 Mon Sep 17 00:00:00 2001 From: Lucas Winther Date: Thu, 15 Oct 2026 12:27:11 +0200 Subject: [PATCH] chore(web): page views via our Shynet instance (page only, not the userscript panel) Co-Authored-By: Claude Opus 5.5 --- docs/ARCHITECTURE.md | 1 + docs/DECISIONS.md | 10 ++++++++++ src/web/index.html | 5 +++++ test/template.test.ts | 7 +++++++ 4 files changed, 23 insertions(+) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 851c840..e21b024 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -61,6 +61,7 @@ requests) and smoke-tests it. Example deployment: `docker-compose.example.yml`. | Webtoons HTML / `swebtoon-phinf.pstatic.net` | server proxy or `GM_xmlhttpRequest` | Nothing works. | | Wayback (`web.archive.org`) | same | Warning; current covers only. | | Server storage (folder on our server) | server | `server` host hidden; litterbox/catbox/direct still work. | +| Shynet (`analytics.lucaswinther.info`) | ` diff --git a/test/template.test.ts b/test/template.test.ts index 08d8ada..d4531e6 100644 --- a/test/template.test.ts +++ b/test/template.test.ts @@ -9,3 +9,10 @@ test("every element app.ts looks up exists in the template exactly once", async expect({ id, count: APP_HTML.split(`id="${id}"`).length - 1 }).toEqual({ id, count: 1 }); } }); + +test("analytics: on the page only, never in the panel the userscript mounts on mangabaka.org", async () => { + const page = await Bun.file("src/web/index.html").text(); + expect(page).toContain('