docs: correct prefix API guidance and document pipx installs

Two documentation gaps behind open questions.

The [External_Data] repeater_prefix_api_url comment claimed that leaving
it empty "disables prefix command functionality" (#70). That is not what
happens: the prefix command answers from the bot's own database of heard
repeaters, and the API only augments it with node counts from a wider
dataset. The wrong comment is a plausible reason the question was asked
at all. Corrected, and the JSON contract is now documented in the command
reference for anyone serving their own endpoint, since map.w0z.is is
defunct and has no drop-in replacement.

Also documented the pipx path (#222). The installer already grew a
virtualenv in July, which covered the PEP 668 half of that report, but
the unanswered part was where config.ini, the database and local/ live
under a pipx install. They are all resolved relative to the directory
containing config.ini, which means a bare `meshcore-bot` picks up
whatever is in the current directory — so the guidance is to pass an
absolute --config. Both console scripts are already smoke-tested from an
installed wheel in CI, so this path is supported rather than incidental.
This commit is contained in:
agessaman
2026-08-21 23:00:55 -07:00
parent 4f6287788b
commit 133a3bb595
4 changed files with 85 additions and 3 deletions
+21
View File
@@ -780,6 +780,27 @@ prefix free
- Last seen time
- Location (if available)
**Data source:** By default the bot answers from its own database of repeaters it has
heard. No external service is required, and `[External_Data] repeater_prefix_api_url`
should be left **empty** — leaving it empty does not disable the command.
Setting that option adds an optional external dataset on top: node counts come from the
API while names and locations still come from the local database. The setting dates from
when the project fetched data from `map.w0z.is`, which is defunct, and there is no
drop-in public replacement. To serve your own, answer a plain `GET` with HTTP 200 and:
```json
{
"data": [
{"prefix": "AB", "node_count": 3, "node_names": ["Node One", "Node Two", "Node Three"]}
]
}
```
`prefix` is upper-cased by the bot, `node_count` is an integer, and `node_names` is a
list of strings. The request times out after 10 seconds, and responses are cached for
`repeater_prefix_cache_hours` (default 1).
---
### `stats`