mirror of
https://github.com/qeeqbox/social-analyzer.git
synced 2021-05-13 03:10:39 +03:00
86 lines
2.4 KiB
JavaScript
Executable File
86 lines
2.4 KiB
JavaScript
Executable File
var helper = require('./helper.js');
|
|
|
|
async function visualize_force_graph(username, detected, type) {
|
|
graph = {
|
|
"nodes": [],
|
|
"links": []
|
|
}
|
|
|
|
try {
|
|
filter_items = "good"
|
|
temp_filtered = []
|
|
temp_filtered = detected.filter(item => filter_items.includes(item.status))
|
|
if (temp_filtered.length > 0) {
|
|
graph.nodes.push({
|
|
"id": username
|
|
})
|
|
temp_filtered.forEach(site => {
|
|
graph.nodes.push({
|
|
"id": site.link
|
|
})
|
|
graph.links.push({
|
|
"source": username,
|
|
"target": site.link
|
|
})
|
|
if ("metadata" in site){
|
|
if (site.metadata.length > 0) {
|
|
site.metadata.forEach(meta => {
|
|
if ("content" in meta) {
|
|
temp_string = ""
|
|
if ("name" in meta) {
|
|
temp_string = meta.name + " -> " + meta.content
|
|
} else if ("itemprop" in meta) {
|
|
temp_string = meta.itemprop + " -> " + meta.content
|
|
} else if ("property" in meta) {
|
|
temp_string = meta.property + " -> " + meta.content
|
|
}
|
|
|
|
if (temp_string.length > 50) {
|
|
temp_string = temp_string.substring(0, 50).replace(/\r?\n|\r/g, "") + ".."
|
|
} else {
|
|
temp_string = temp_string.replace(/\r?\n|\r/g, "")
|
|
}
|
|
|
|
if (temp_string != "" && temp_string.length > 0) {
|
|
var index = undefined;
|
|
graph.nodes.some(function(item, i) {
|
|
if (item.id == temp_string) {
|
|
index = i;
|
|
return true;
|
|
}
|
|
});
|
|
|
|
if (index != undefined) {
|
|
|
|
} else {
|
|
graph.nodes.push({
|
|
"id": temp_string
|
|
})
|
|
}
|
|
|
|
if (graph.links.some(v => v.source == temp_string && v.target == site.link) || graph.links.some(v => v.source == site.link && v.target == temp_string)) {
|
|
|
|
} else {
|
|
graph.links.push({
|
|
"source": site.link,
|
|
"target": temp_string
|
|
})
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
});
|
|
}
|
|
} catch {
|
|
|
|
}
|
|
|
|
return graph
|
|
}
|
|
|
|
module.exports = {
|
|
visualize_force_graph
|
|
}
|