Files
social-analyzer/modules/visualize.js
T

73 lines
2.5 KiB
JavaScript
Executable File

var ixora = require('ixora').QBIxora
var helper = require('./helper.js');
async function visualize_force_graph(username, detected, type) {
try{
var graph = new ixora('Social-Analyzer',false);
filter_items = "good"
temp_filtered = []
temp_filtered = detected.filter(item => filter_items.includes(item.status))
if (temp_filtered.length > 0) {
graph.add_node(username, search = username, _set = {
'header': username
})
temp_filtered.forEach(site => {
graph.add_node(site.link, search = site.link, _set = {
'header': site.link
})
graph.add_edge(username, site.link, {
'width': 1
})
if ("metadata" in site) {
if (site.metadata != "unavailable" && 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) {
graph.add_node(temp_string, search = temp_string, _set = {
'header': temp_string,
})
graph.add_edge(site.link, temp_string, {
'width': 1
})
}
}
})
}
}
});
}
x = graph.create_graph("#ixora-graph", window_title="Ixora random nodes exmaple", search_title="Search Box",search_msg="Search in extracted patterns", copyright_msg="https://github.com/qeeqbox/ixora",copyright_link="Qeeqbox-ixora",tools=['search','tooltip'], collide=10,distance=100, data=graph.graph,method='object',save_to=undefined, open_file=undefined)
return x
}
catch (err){
helper.verbose && console.log(err)
}
return {"graph":{"nodes": [],"links": []}}
}
module.exports = {
visualize_force_graph
}