53 lines
1.8 KiB
Plaintext
53 lines
1.8 KiB
Plaintext
|
{
|
||
|
"meta": {
|
||
|
"timestamp": $nodes.timestamp
|
||
|
},
|
||
|
"nodes": (
|
||
|
$graph.batadv.nodes
|
||
|
| map(
|
||
|
if has("node_id") and .node_id
|
||
|
then (
|
||
|
$nodes.nodes[.node_id] as $node
|
||
|
| {
|
||
|
"id": .id,
|
||
|
"uptime": $node.statistics.uptime,
|
||
|
"flags": ($node.flags + {"client": false}),
|
||
|
"name": $node.nodeinfo.hostname,
|
||
|
"clientcount": (if $node.statistics.clients >= 0 then $node.statistics.clients else 0 end),
|
||
|
"hardware": $node.nodeinfo.hardware.model,
|
||
|
"firmware": $node.nodeinfo.software.firmware.release,
|
||
|
"geo": (if $node.nodeinfo.location then [$node.nodeinfo.location.latitude, $node.nodeinfo.location.longitude] else null end),
|
||
|
#"lastseen": $node.lastseen,
|
||
|
"network": $node.nodeinfo.network
|
||
|
}
|
||
|
)
|
||
|
else
|
||
|
{
|
||
|
"flags": {},
|
||
|
"id": .id,
|
||
|
"geo": null,
|
||
|
"clientcount": 0
|
||
|
}
|
||
|
end
|
||
|
)
|
||
|
),
|
||
|
"links": (
|
||
|
$graph.batadv.links
|
||
|
| map(
|
||
|
$graph.batadv.nodes[.source].node_id as $source_id
|
||
|
| $graph.batadv.nodes[.target].node_id as $target_id
|
||
|
| select(
|
||
|
$source_id and $target_id and
|
||
|
($nodes.nodes | (has($source_id) and has($target_id)))
|
||
|
)
|
||
|
| {
|
||
|
"target": .target,
|
||
|
"source": .source,
|
||
|
"quality": "\(.tq), \(.tq)",
|
||
|
"id": ($source_id + "-" + $target_id),
|
||
|
"type": (if .vpn then "vpn" else null end)
|
||
|
}
|
||
|
)
|
||
|
)
|
||
|
}
|