fedicharter/dist/index.html

69 lines
2.1 KiB
HTML
Raw Normal View History

2023-10-02 07:25:41 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<title>akkoma bubble network</title>
<script
type="text/javascript"
src="https://unpkg.com/vis-network/standalone/umd/vis-network.min.js"
></script>
<style type="text/css">
body {
background: #111111;
}
2023-10-02 15:39:47 +02:00
#netgraph {
2023-10-02 07:25:41 +02:00
width: 100%;
height: 98vh;
}
</style>
</head>
<body>
2023-10-02 15:39:47 +02:00
<div id="netgraph">
<h3 style="text-align: center;" id="loader"><font color="#BF616A">crunching fedi network data, be patient...</font></h3>
</div>
2023-10-02 07:25:41 +02:00
<script type="text/javascript">
let nodes_array = []
let edges_array = []
let domain;
const urlParams = new URLSearchParams(window.location.search);
const domainParam = urlParams.get('domain');
if (domainParam) {
domain = domainParam;
console.log("scanning domain " + domain);
} else {
2023-10-07 02:25:37 +02:00
domain = window.prompt("starting instance for charting", "ihatebeinga.live");
2023-10-02 07:25:41 +02:00
}
fetch(`https://api.alemi.dev/akkoma/bubble/crawl?domain=${domain}`)
.then((res) => res.json().then((graph) => {
2023-10-02 15:39:47 +02:00
const palette = [
'#81A1C1',
'#5B6EA3',
'#7468B0',
'#84508C',
'#AF875F',
'#EBCB8B',
'#2E8757',
'#05979A',
]
2023-10-19 05:35:35 +02:00
for (const i in graph[0]) {
if (graph[0][i].title === domain) { graph[0][i].color = '#BF616A' }
else { graph[0][i].color = palette[Math.floor(Math.random() * palette.length)] }
2023-10-02 15:39:47 +02:00
}
2023-10-02 07:25:41 +02:00
2023-10-19 05:35:35 +02:00
const nodes = new vis.DataSet(graph[0]);
const edges = new vis.DataSet(graph[1]);
2023-10-02 07:25:41 +02:00
2023-10-02 15:39:47 +02:00
// create a network
const container = document.getElementById("netgraph");
const data = {
nodes: nodes,
edges: edges,
};
2023-10-03 04:45:13 +02:00
const options = { edges: { dashes: true, arrows: 'to' }, nodes: { color: "#bf616a", shape: "box", scaling: { min: 1, max: 500, label: { enabled: true, min: 14, max: 56 }}}};
2023-10-02 15:39:47 +02:00
const network = new vis.Network(container, data, options);
2023-10-02 07:25:41 +02:00
}))
</script>
</body>
</html>