fst – Rev 1
?pathlinks?
(function () {
var nodes = {}
var edges = {}
var network = {}
$.get('/metrics', (data, error) => {
var peers = JSON.parse(data)
// create an array with nodes
/*var nodes = new vis.DataSet([
{ id: 1, label: 'Node 1' },
{ id: 2, label: 'Node 2' },
{ id: 3, label: 'Node 3' },
{ id: 4, label: 'Node 4' },
{ id: 5, label: 'Node 5' }
])*/
// create an array with edges
/*var edges = new vis.DataSet([
{ from: 1, to: 3 },
{ from: 1, to: 2 },
{ from: 2, to: 4 },
{ from: 2, to: 5 },
{ from: 3, to: 3 }
])*/
var graphPeers = []
Object.keys(peers.attacked_peers).map((item) => {
graphPeers.push({ id: item, label: item, value: peers.attacked_peers[item].count })
})
nodes = new vis.DataSet(graphPeers)
var edgePeers = []
graphPeers.forEach((a, i) => {
graphPeers.forEach((b, j) => {
if (i === j) {
return;
}
edgePeers.push({ from: a.id, to: b.id })
})
})
edges = new vis.DataSet(edgePeers)
// create a network
var container = document.getElementById('mynetwork')
var data = {
nodes: nodes,
edges: edges
}
var options = {
nodes: {
shape: 'dot',
size: 30,
font: {
size: 14
},
borderWidth: 2,
shadow: true
},
edges: {
width: 2,
shadow: true
}
}
network = new vis.Network(container, data, options)
// Update graph.
setInterval(() => {
$.get('/metrics', (data, error) => {
var peers = Object.keys(JSON.parse(data).attacked_peers)
nodes.forEach((graphPeer, index) => {
if (peers.indexOf(graphPeer.id) !== -1) {
return;
}
edges.forEach((graphEdge, index) => {
if (graphEdge.from !== graphPeer.id && graphEdge.to !== graphPeer.id) {
return;
}
edges.remove(graphEdge)
})
nodes.remove(graphPeer)
})
// Add any new nodes and edges.
peers.map((item) => {
if (network.findNode(item).length !== 0) {
return
}
nodes.add({ id: item, label: item, value: peers.attacked_peers[item].count })
nodes.slice(0, -1).forEach((graphPeer) => {
edges.add({ from: graphPeer.id, to: item })
edges.add({ from: item, to: graphPeer.id })
})
})
})
}, 1000)
})
})()
Generated by GNU Enscript 1.6.5.90.