Commit Graph
11 Commits
Author SHA1 Message Date
LeoVasanko 5bbd9a5484 Updated docs with fastuaparser and new benchmarks, cleaner structure. 2026-09-09 18:59:02 +00:00
LeoVasanko 319aa52a6f README, and support script cleanup. 2026-09-08 23:47:50 +00:00
LeoVasanko a7fdb4ddf3 Rework benchmark: cold-cache 50/50 speed, ua-parser native backends, SVG throughput plot 2026-09-08 23:36:31 +00:00
LeoVasanko 887d492598 Normalize bot pretty names; drop undocumented FacebookBot
PRETTY_OVERRIDE in bots.py replaces name-plus-label composition with full per-bot pretty strings. The messy X-Google / Google-X names print as "Google X (kind)"; Googlebot keeps its canonical name. FacebookBot is no longer in Meta's crawler documentation, so it falls back to generic spider detection; Facebook rejoins provider Meta but prints bare, like the other social unfurlers.
2026-09-08 23:36:31 +00:00
LeoVasanko dd59fcb832 Accept None in uaparse's type signature (already handled) 2026-09-08 23:29:05 +00:00
LeoVasanko 0bdbe9aaf9 Cache uaparse fully; drop the bot field and is_bot 2026-09-08 23:23:02 +00:00
LeoVasanko 84b9e27ced Rework bot taxonomy: provider field, social/analytics kinds, spoof detection
- Distinguish Meta's five documented crawlers (Facebook, FacebookBot,
  Meta-ExternalAgent/ExternalFetcher/WebIndexer) with distinct kinds
- Rename kind preview -> social for link-sharing unfurlers; BingPreview
  moves to search as it is a search-engine feature
- Add analytics kind for monitoring and ad/SEO measurement crawlers
  (UptimeRobot, Pingdom, MJ12bot, Mediapartners-Google, AdsBot-Google)
- Reclassify Google family by main product use: Storebot-Google and
  Feedfetcher-Google/InspectionTool are search, Read-Aloud and
  GoogleOther are ai; AhrefsBot is search
- Drop retired entries: DuplexWeb-Google, SkypeUriPreview, PhantomJS
- Detect the Qualys SSL Labs scanner by its frozen exact UA string
- Mark ancient (pre-2023) auto-updating browser claims with
  " (spoofed)" in pretty, leaving engine/os/kind empty
- UA dataclass: all fields default to "", new provider field,
  constructions use kwargs
- PROVIDERS is now dict[provider, frozenset[names]] with derived
  PROVIDER_OF and NAME_KIND reverse lookups
- README and prettytable.py updated to match
2026-09-08 23:20:06 +00:00
LeoVasanko b70c8f313c Additional Samsung model detection. 2026-09-05 06:00:30 +00:00
LeoVasanko 4d6f1a2afe Updated README. 2026-09-05 05:12:22 +00:00
LeoVasanko 99dea2b9eb Add engine and os fields to UA, restructure README prose, restyle pyproject 2026-09-05 04:49:07 +00:00
LeoVasanko b9664aabe4 Initial commit 2026-09-05 00:36:02 +00:00