From 5c8aeb3974435905abc68766caa83cafb5403334 Mon Sep 17 00:00:00 2001 From: K7ZVX Date: Mon, 4 May 2026 17:06:14 +0000 Subject: [PATCH] feat: Add User-Agent header to API requests Adds MeshAI/x.x User-Agent for good API citizenship and easier traffic identification by Meshview/MeshMonitor operators. Co-Authored-By: Claude Opus 4.5 --- meshai/sources/meshmonitor_data.py | 5 +++++ meshai/sources/meshview.py | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/meshai/sources/meshmonitor_data.py b/meshai/sources/meshmonitor_data.py index da267ce..cc6dfc2 100644 --- a/meshai/sources/meshmonitor_data.py +++ b/meshai/sources/meshmonitor_data.py @@ -8,8 +8,12 @@ from typing import Optional from urllib.error import HTTPError, URLError from urllib.request import Request, urlopen +from .. import __version__ + logger = logging.getLogger(__name__) +USER_AGENT = f"MeshAI/{__version__}" + class MeshMonitorDataSource: """Fetches mesh data from a MeshMonitor instance.""" @@ -122,6 +126,7 @@ class MeshMonitorDataSource: headers = { "Accept": "application/json", "Authorization": f"Bearer {self._api_token}", + "User-Agent": USER_AGENT, } try: req = Request(url, headers=headers) diff --git a/meshai/sources/meshview.py b/meshai/sources/meshview.py index 180aaca..b2a2418 100644 --- a/meshai/sources/meshview.py +++ b/meshai/sources/meshview.py @@ -7,8 +7,12 @@ from typing import Optional from urllib.error import HTTPError, URLError from urllib.request import Request, urlopen +from .. import __version__ + logger = logging.getLogger(__name__) +USER_AGENT = f"MeshAI/{__version__}" + class MeshviewSource: """Fetches mesh data from a Meshview instance.""" @@ -75,8 +79,12 @@ class MeshviewSource: Parsed JSON data or None on error """ url = f"{self._url}{endpoint}" + headers = { + "Accept": "application/json", + "User-Agent": USER_AGENT, + } try: - req = Request(url, headers={"Accept": "application/json"}) + req = Request(url, headers=headers) with urlopen(req, timeout=15) as resp: return json.loads(resp.read().decode("utf-8")) except HTTPError as e: