Expand description
ircDDB last-heard HTML scraper.
Scrapes https://status.ircddb.net/cgi-bin/ircddb-log?30 0 — an HTML page
listing recent D-STAR activity across the global ircDDB network. Each table
row represents one heard transmission, including the operator callsign,
repeater routing fields, and timestamp.
Unlike the Pi-Star and XLX API fetchers which primarily discover reflectors, the ircDDB scraper discovers activity: which callsigns are transmitting through which reflectors. This activity data drives Tier 2 monitoring decisions — reflectors with recent ircDDB activity are prioritised for live monitoring.
Poll interval: every 60 seconds (default). The ircDDB last-heard page refreshes frequently, and activity data is time-sensitive — stale observations lose value quickly for prioritisation.
§HTML Structure
The page contains an HTML <table> where each <tr> after the header row
has columns:
| Index | Column | Example |
|---|---|---|
| 0 | Date/time (UTC) | 2024-01-15 14:30:00 |
| 1 | Callsign | W1AW |
| 2 | ID (suffix) | D75 |
| 3 | Rptr1 | W1AW B |
| 4 | Rptr2 | REF001 B |
| 5 | UrCall | CQCQCQ |
| 6 | Dest Rptr | REF001 B |
| 7 | TX-Message | Hello |
The Rptr2 and Dest Rptr fields contain the reflector callsign (first 6-7 characters) and module letter. We extract the reflector callsign from the Dest Rptr field (column 6) which indicates the intended destination.
Structs§
- Observation 🔒
- A parsed activity observation extracted from one HTML table row.
Constants§
- IRCDDB_
URL 🔒 - ircDDB last-heard page URL.
- MIN_
COLUMNS 🔒 - Minimum number of columns expected in each data row.
Functions§
- fetch_
and_ 🔒store - Fetches the ircDDB last-heard page and inserts activity observations.
- infer_
protocol 🔒 - Infers the D-STAR protocol from a reflector callsign prefix.
- parse_
observations 🔒 - Parses the HTML body into a vector of owned
Observationvalues. - parse_
rptr_ 🔒field - Parses an RPT field (e.g.
"REF001 B") into a reflector callsign and optional module letter.