Changeset cae8ded in Klonkt for src/services/StatsService.js


Ignore:
Timestamp:
07/31/2026 11:03:47 AM (6 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
0ca7e5d0
Parents:
0f48411
Message:

Een eerlijke User-Agent op al het uitgaande federatieverkeer

Robins vraag (31-7): welke UA gebruiken wij? Het federatieverkeer ging
met de kale Node-default de deur uit. safeFetch zet nu standaard
Klonkt/<versie> (+https://klonkt.com) op elk uitgaand verzoek; een
caller die zelf een User-Agent meegeeft (de EmbedResolver) wint. En het
spiegelbeeld-lek dicht: klonkt staat nu ook in de eigen bot-regex,
zodat een Klonkt-preview-fetch op een andere Klonkt niet als bezoeker
telt.

Changed files:
src/services/ActivityPubService.js

  • KLONKT_UA uit package.json-versie; safeFetch merge't hem als default in de headers

src/services/StatsService.js

  • BOT_RE + klonkt

test/stats-bots.test.js

  • de eigen embed-fetcher telt niet op een andere Klonkt

-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/StatsService.js

    r0f48411 rcae8ded  
    4747// Skip known bots/crawlers + link-preview fetchers + scripts so they don't inflate
    4848// view/visitor-day counts. Empty UA = almost always automated.
    49 const BOT_RE = /bot|crawl|spider|slurp|mediapartners|bingpreview|facebookexternalhit|whatsapp|telegram|discord|twitter|linkedin|embedly|pinterest|redditbot|applebot|petalbot|yandex|baidu|duckduckbot|semrush|ahrefs|mj12|dotbot|uptimerobot|pingdom|statuscake|headless|lighthouse|gptbot|claude|ccbot|perplexity|bytespider|amazonbot|googleother|google-read-aloud|python-requests|scrapy|curl|wget|axios|node-fetch|go-http|java\/|okhttp|libwww|httpclient|mastodon|pleroma|akkoma|misskey|calckey|firefish|friendica|hubzilla|lemmy|pixelfed|peertube|gotosocial|honk|http\.rb|activitypub/i;
     49const BOT_RE = /bot|crawl|spider|slurp|mediapartners|bingpreview|facebookexternalhit|whatsapp|telegram|discord|twitter|linkedin|embedly|pinterest|redditbot|applebot|petalbot|yandex|baidu|duckduckbot|semrush|ahrefs|mj12|dotbot|uptimerobot|pingdom|statuscake|headless|lighthouse|gptbot|claude|ccbot|perplexity|bytespider|amazonbot|googleother|google-read-aloud|python-requests|scrapy|curl|wget|axios|node-fetch|go-http|java\/|okhttp|libwww|httpclient|mastodon|pleroma|akkoma|misskey|calckey|firefish|friendica|hubzilla|lemmy|pixelfed|peertube|gotosocial|honk|http\.rb|activitypub|klonkt/i;
    5050function isBot(req) {
    5151  const ua = (req && req.headers && req.headers['user-agent']) || '';
Note: See TracChangeset for help on using the changeset viewer.