[auto-b] added visualization - ref 739a94c6
0
Dockerfile
Normal file → Executable file
2
README.md
Normal file → Executable file
@@ -46,6 +46,8 @@ Profile images **will not** be blurred. If you want them to be blurred, turn tha
|
||||
- Find profile using multiple techniques (HTTPS library & Webdriver)
|
||||
- Multi layers detections (OCR, normal, advanced & special)
|
||||
- Metadata & Patterns extraction (Added from Qeeqbox osint project)
|
||||
- Force-directed Graph for Metadata (Needs ExtractPatterns)
|
||||
- Auto-flirtation to unnecessary output
|
||||
- Search engine lookup (Google API - optional)
|
||||
- Custom search queries (Google API & DuckDuckGo API - optional)
|
||||
- Profile screenshot, title, info and website description
|
||||
|
||||
0
README.rst
Normal file → Executable file
41
app.js
Normal file → Executable file
@@ -86,9 +86,10 @@ var specialScan = require("./modules/special-scan.js")
|
||||
var externalApis = require("./modules/external-apis.js")
|
||||
var stringAnalysis = require("./modules/string-analysis.js")
|
||||
var nameAnalysis = require("./modules/name-analysis.js")
|
||||
var visualize = require("./modules/visualize.js")
|
||||
|
||||
var app = express();
|
||||
|
||||
app.set('etag', false)
|
||||
app.use(express.urlencoded({
|
||||
extended: true
|
||||
}));
|
||||
@@ -239,10 +240,17 @@ app.post("/analyze_string", async function(req, res, next) {
|
||||
var custom_search = []
|
||||
var logs = ""
|
||||
var fast = false
|
||||
var graph = {
|
||||
"nodes": [],
|
||||
"links": []
|
||||
}
|
||||
|
||||
if (req.body.string == null || req.body.string == "") {
|
||||
res.json("Error");
|
||||
} else {
|
||||
req.body.uuid = req.body.uuid.replace(/[^a-zA-Z0-9\-]+/g, '');
|
||||
helper.log_to_file_queue(req.body.uuid, "[Setting] Log file name: " + req.body.uuid)
|
||||
helper.log_to_file_queue(req.body.uuid, "[Setting] Username: " + req.body.string)
|
||||
if (req.body.option.includes("FindUserProfilesFast") || req.body.option.includes("GetUserProfilesFast")) {
|
||||
fast = true
|
||||
helper.log_to_file_queue(req.body.uuid, "[Starting] Checking user profiles normal")
|
||||
@@ -363,7 +371,27 @@ app.post("/analyze_string", async function(req, res, next) {
|
||||
Object.keys(all_words).forEach((key) => (all_words[key].length == 0) && delete all_words[key]);
|
||||
}
|
||||
|
||||
logs = fs.readFileSync(helper.get_log_file(req.body.uuid), 'utf8');
|
||||
if (req.body.option.includes("NetworkGraph")) {
|
||||
if ('data' in user_info_normal) {
|
||||
if (user_info_normal.data.length > 0) {
|
||||
if (req.body.option.includes("ExtractMetadata"))
|
||||
{
|
||||
helper.log_to_file_queue(req.body.uuid, "[Starting] Network Graph")
|
||||
graph = await visualize.visualize_force_graph(req.body.string, user_info_normal.data, "fast")
|
||||
helper.log_to_file_queue(req.body.uuid, "[Done] Network Graph")
|
||||
}
|
||||
else{
|
||||
helper.log_to_file_queue(req.body.uuid, "[Warning] NetworkGraph needs ExtractMetadata")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
logs = fs.readFileSync(helper.get_log_file(req.body.uuid), 'utf8');
|
||||
} catch {
|
||||
|
||||
}
|
||||
|
||||
res.json({
|
||||
info,
|
||||
@@ -375,6 +403,7 @@ app.post("/analyze_string", async function(req, res, next) {
|
||||
user_info_special: user_info_special,
|
||||
names_origins: names_origins,
|
||||
custom_search: custom_search,
|
||||
graph: graph,
|
||||
logs: logs
|
||||
});
|
||||
}
|
||||
@@ -386,12 +415,16 @@ app.use((err, req, res, next) => {
|
||||
res.json("Error");
|
||||
});
|
||||
|
||||
app.use((req, res, next) => {
|
||||
res.set('Cache-Control', 'no-store')
|
||||
next()
|
||||
})
|
||||
|
||||
process.on('uncaughtException', function(err) {
|
||||
helper.verbose && console.log(" --- Uncaught Error ---")
|
||||
helper.verbose && console.log(pe.render(err));
|
||||
})
|
||||
|
||||
|
||||
process.on('unhandledRejection', function(err) {
|
||||
helper.verbose && console.log(" --- Uncaught Rejection ---")
|
||||
helper.verbose && console.log(pe.render(err));
|
||||
@@ -584,7 +617,7 @@ if (argv.cli) {
|
||||
if (argv.list) {
|
||||
list_all_websites();
|
||||
} else if (argv.mode == "fast") {
|
||||
if (argv.usernmae != "" && argv.websites != "") {
|
||||
if (argv.username != "" && argv.websites != "") {
|
||||
check_user_cli(argv)
|
||||
}
|
||||
}
|
||||
|
||||
0
auto_pip.sh
Normal file → Executable file
0
clean-up.logs
Normal file → Executable file
0
data/dict.json
Normal file → Executable file
0
data/languages.json
Normal file → Executable file
0
data/names.json
Normal file → Executable file
0
data/site_updated.json
Normal file → Executable file
0
data/sites.json
Normal file → Executable file
0
data/sites.json_new
Normal file → Executable file
0
docker-compose.yml
Normal file → Executable file
6
info
Normal file → Executable file
@@ -1,4 +1,4 @@
|
||||
{"version":"2021.V.2.28",
|
||||
{"version":"2021.V.2.29",
|
||||
"build":"pass",
|
||||
"test":"pass",
|
||||
"grid_test":"pass",
|
||||
@@ -8,7 +8,7 @@
|
||||
"linux":"pass",
|
||||
"windows":"pass",
|
||||
"docker":"pass",
|
||||
"full_scan":"15 workers < 23secs",
|
||||
"full_scan":"15 workers < 24secs",
|
||||
"max_retries":"3",
|
||||
"awaiting_verification":"22",
|
||||
"auto_testing":"9dafa826-140a-4880-b2e8-ceba9cf88a70"}
|
||||
"auto_testing":"c6d2d8a6-74f9-4416-8ab5-bbe760ef0e47"}
|
||||
|
||||
0
modules/engine.js
Normal file → Executable file
0
modules/external-apis.js
Normal file → Executable file
5
modules/extraction.js
Normal file → Executable file
@@ -1,6 +1,6 @@
|
||||
var helper = require('./helper.js');
|
||||
var cheerio = require('cheerio');
|
||||
|
||||
var strings_meta = new RegExp('regionsAllowed|width|height|color|rgba\\(', 'i')
|
||||
async function extract_metadata(site, source) {
|
||||
try {
|
||||
var $ = cheerio.load(source);
|
||||
@@ -9,10 +9,11 @@ async function extract_metadata(site, source) {
|
||||
var temp_metadata_for_checking = []
|
||||
Object.keys(meta).forEach(function(key) {
|
||||
if (meta[key].attribs) {
|
||||
if (!temp_metadata_for_checking.includes(meta[key].attribs)) {
|
||||
if (!temp_metadata_for_checking.includes(meta[key].attribs) && !strings_meta.test(JSON.stringify(meta[key].attribs))) {
|
||||
temp_metadata_for_checking.push(meta[key].attribs)
|
||||
var temp_dict = {}
|
||||
var add = true
|
||||
|
||||
if (meta[key].attribs.property) {
|
||||
temp_dict["property"] = meta[key].attribs.property
|
||||
}
|
||||
|
||||
0
modules/fast-scan.js
Normal file → Executable file
0
modules/helper.js
Normal file → Executable file
0
modules/name-analysis.js
Normal file → Executable file
0
modules/slow-scan.js
Normal file → Executable file
0
modules/special-scan.js
Normal file → Executable file
0
modules/string-analysis.js
Normal file → Executable file
85
modules/visualize.js
Executable file
@@ -0,0 +1,85 @@
|
||||
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
|
||||
}
|
||||
0
package-lock.json
generated
Normal file → Executable file
0
package.json
Normal file → Executable file
347
public/app.html
Normal file → Executable file
@@ -19,7 +19,7 @@
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.1/js/standalone/selectize.min.js"></script>
|
||||
|
||||
<script src="//unpkg.com/force-graph"></script>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<style>
|
||||
html,
|
||||
@@ -239,6 +239,7 @@
|
||||
#output-section-3,
|
||||
#output-section-4,
|
||||
#output-section-5,
|
||||
#force-graph-section,
|
||||
#logs-section,
|
||||
#most-common-words-section,
|
||||
#words-info-section,
|
||||
@@ -622,7 +623,7 @@
|
||||
<svg class="hex-spinner" viewBox="0 -5 100 110">
|
||||
<polygon stroke-width="7" stroke="#aa6400" fill-opacity="0" id="hex" points="50 1 95 25 95 75 50 99 5 75 5 25" />
|
||||
</svg>
|
||||
<div class="logs" id="logs">logsfsddsfsdf</div>
|
||||
<div class="logs" id="logs">None</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -725,6 +726,9 @@
|
||||
<option value="ExtractPatterns">ExtractPatterns</option>
|
||||
<option value="ExtractMetadata">ExtractMetadata</option>
|
||||
</optgroup>
|
||||
<optgroup label="Visualize">
|
||||
<option value="NetworkGraph">NetworkGraph</option>
|
||||
</optgroup>
|
||||
<optgroup label="Other options">
|
||||
<option value="FindNumbers">FindNumbers</option>
|
||||
<option value="FindSymbols">FindSymbols</option>
|
||||
@@ -832,6 +836,14 @@
|
||||
</div>
|
||||
<div id="output-table-4" class="collapse show"></div>
|
||||
</div>
|
||||
<div class="box-border-style" id="force-graph-section">
|
||||
<div class="div-header">
|
||||
<div class="div-left">Graph</div>
|
||||
<div class="div-right"><i id="div-right-icon" class="fa fa-caret-down"></i></div>
|
||||
</div>
|
||||
<div id="force-graph-canvas" class="collapse show">
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-border-style" id="logs-section">
|
||||
<div class="div-header">
|
||||
<div class="div-left">Logs</div>
|
||||
@@ -883,6 +895,8 @@
|
||||
if (data != "nothinghere" && data != "") {
|
||||
$('#logs').text(data)
|
||||
}
|
||||
}).fail(function(jqXHR, textStatus, errorThrown) {
|
||||
//clearInterval(interval_logs);
|
||||
})
|
||||
}
|
||||
|
||||
@@ -906,6 +920,8 @@
|
||||
$('#output-table-3').html("");
|
||||
$('#output-section-4').hide();
|
||||
$('#output-table-4').html("");
|
||||
$('#force-graph-section').hide();
|
||||
$('#force-graph-canvas').html("");
|
||||
$('#logs-section').hide();
|
||||
$('#logs-pre').html("");
|
||||
$('#names-origins-section').hide();
|
||||
@@ -935,6 +951,40 @@
|
||||
});
|
||||
}
|
||||
|
||||
function draw_graph(data) {
|
||||
const Graph = ForceGraph()
|
||||
(document.getElementById('force-graph-canvas-inside'))
|
||||
.graphData(data)
|
||||
.width(document.getElementById("string-section").offsetWidth - 30)
|
||||
.nodeId('id')
|
||||
.cooldownTicks(100)
|
||||
.nodeAutoColorBy('group')
|
||||
.linkColor(() => 'rgba(255,255,255,0.2)')
|
||||
.nodeCanvasObject((node, ctx, global_scale) => {
|
||||
const fontSize = 10 / global_scale;
|
||||
ctx.font = `${fontSize}px Sans-Serif`;
|
||||
const text_width = ctx.measureText(node.id).width;
|
||||
const background_size = [text_width, fontSize].map(n => n + fontSize * 0.2);
|
||||
ctx.fillStyle = 'rgba(44, 44, 44, 0.8)';
|
||||
ctx.fillRect(node.x - background_size[0] / 2, node.y - background_size[1] / 2, ...background_size);
|
||||
ctx.fillStyle = '#d0d0d0';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText(node.id, node.x, node.y);
|
||||
node.background_size = background_size;
|
||||
})
|
||||
.onNodeDragEnd(node => {
|
||||
node.fx = node.x;
|
||||
node.fy = node.y;
|
||||
})
|
||||
.nodePointerAreaPaint((node, color, ctx) => {
|
||||
ctx.fillStyle = color;
|
||||
node.background_size && ctx.fillRect(node.x - node.background_size[0] / 2, node.y - node.background_size[1] / 2, ...node.background_size);
|
||||
});
|
||||
Graph.d3Force('center', null);
|
||||
Graph.onEngineStop(() => Graph.zoomToFit(500));
|
||||
}
|
||||
|
||||
function add_extract(site) {
|
||||
var temp_extracted_all = '<div>Extracted: ' + "unavailable" + '</div>'
|
||||
var temp_metadata_all = '<div>Metadata: ' + "unavailable" + '</div>'
|
||||
@@ -999,167 +1049,178 @@
|
||||
spinner_on_off(true)
|
||||
random_string = Math.random().toString(36).substring(2);
|
||||
interval_logs = setInterval(get_logs.bind(null, random_string), 1000);
|
||||
list_of_options = []
|
||||
$('.selectize-input .item').each(function() {
|
||||
list_of_options.push($(this).attr('data-value'))
|
||||
});
|
||||
try{
|
||||
list_of_options = []
|
||||
$('.selectize-input .item').each(function() {
|
||||
list_of_options.push($(this).attr('data-value'))
|
||||
});
|
||||
|
||||
await $.ajax({
|
||||
type: "POST",
|
||||
url: "/analyze_string",
|
||||
data: {
|
||||
'string': $('#string-to-analyze').val(),
|
||||
'option': list_of_options.join(","),
|
||||
'uuid': random_string
|
||||
},
|
||||
}).done(function(data) {
|
||||
if (data != "Error") {
|
||||
if (data.common.length > 0) {
|
||||
var temp_tr = ""
|
||||
Object.keys(data.common).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.common[item].word + '</td><td>' + data.common[item].languages + '</td></tr>'
|
||||
});
|
||||
|
||||
$("#most-common-words-table").last().append('<table><tr><th>word</th><th>languages</th></tr>' + temp_tr + '</table>')
|
||||
$('#most-common-words-section').show();
|
||||
}
|
||||
if ((data.info.checking.indexOf('with no lookups') === -1)) {
|
||||
$("#lookups-checking-info").html(data.info.checking);
|
||||
if (data.info.items.length > 0) {
|
||||
await $.ajax({
|
||||
type: "POST",
|
||||
url: "/analyze_string",
|
||||
data: {
|
||||
'string': $('#string-to-analyze').val(),
|
||||
'option': list_of_options.join(","),
|
||||
'uuid': random_string
|
||||
},
|
||||
}).done(function(data) {
|
||||
if (data != "Error") {
|
||||
if (data.common.length > 0) {
|
||||
var temp_tr = ""
|
||||
Object.keys(data.info.items).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.info.items[item].title + '</td><td>' + data.info.items[item].snippet + '</td></tr>'
|
||||
Object.keys(data.common).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.common[item].word + '</td><td>' + data.common[item].languages + '</td></tr>'
|
||||
});
|
||||
$("#lookups-table").last().append('<table><tr><th>title</th><th>snippet</th></tr>' + temp_tr + '</table>')
|
||||
$('#lookups-table').show();
|
||||
}
|
||||
|
||||
$('#lookups-section').show();
|
||||
}
|
||||
if (data.words_info.length > 0) {
|
||||
data.words_info.forEach(function(item) {
|
||||
var temp_tr = '<tr><td>' + item.word + '</td><td>definition</td><td>' + item.text + '</td></tr>'
|
||||
if (item.results.length > 0) {
|
||||
item.results.forEach(function(result) {
|
||||
temp_tr += '<tr><td>' + item.word + '</td><td>' + result.type + '</td><td>' + result.text + '</td></tr>'
|
||||
$("#most-common-words-table").last().append('<table><tr><th>word</th><th>languages</th></tr>' + temp_tr + '</table>')
|
||||
$('#most-common-words-section').show();
|
||||
}
|
||||
if ((data.info.checking.indexOf('with no lookups') === -1)) {
|
||||
$("#lookups-checking-info").html(data.info.checking);
|
||||
if (data.info.items.length > 0) {
|
||||
var temp_tr = ""
|
||||
Object.keys(data.info.items).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.info.items[item].title + '</td><td>' + data.info.items[item].snippet + '</td></tr>'
|
||||
});
|
||||
$("#lookups-table").last().append('<table><tr><th>title</th><th>snippet</th></tr>' + temp_tr + '</table>')
|
||||
$('#lookups-table').show();
|
||||
}
|
||||
$("#words-info-tables").last().append('<table><tr><th>word</th><th>type</th><th>text</th></tr>' + temp_tr + '</table>')
|
||||
});
|
||||
$('#words-info-section').show();
|
||||
}
|
||||
|
||||
add_table(data.table)
|
||||
$('#lookups-section').show();
|
||||
}
|
||||
if (data.words_info.length > 0) {
|
||||
data.words_info.forEach(function(item) {
|
||||
var temp_tr = '<tr><td>' + item.word + '</td><td>definition</td><td>' + item.text + '</td></tr>'
|
||||
if (item.results.length > 0) {
|
||||
item.results.forEach(function(result) {
|
||||
temp_tr += '<tr><td>' + item.word + '</td><td>' + result.type + '</td><td>' + result.text + '</td></tr>'
|
||||
});
|
||||
}
|
||||
$("#words-info-tables").last().append('<table><tr><th>word</th><th>type</th><th>text</th></tr>' + temp_tr + '</table>')
|
||||
});
|
||||
$('#words-info-section').show();
|
||||
}
|
||||
|
||||
if (data.user_info_advanced.data.length > 0) {
|
||||
var temp_tr = ""
|
||||
if (data.user_info_advanced.type == "all" || data.user_info_advanced.type == "noshow") {
|
||||
data.user_info_advanced.data.forEach(function(site) {
|
||||
if (site.found > 0 || site.image != "") {
|
||||
temp_image = ""
|
||||
if (site.image != "") {
|
||||
temp_image = '<img src=' + site.image + '>'
|
||||
add_table(data.table)
|
||||
|
||||
if (data.user_info_advanced.data.length > 0) {
|
||||
var temp_tr = ""
|
||||
if (data.user_info_advanced.type == "all" || data.user_info_advanced.type == "noshow") {
|
||||
data.user_info_advanced.data.forEach(function(site) {
|
||||
if (site.found > 0 || site.image != "") {
|
||||
temp_image = ""
|
||||
if (site.image != "") {
|
||||
temp_image = '<img src=' + site.image + '>'
|
||||
}
|
||||
var temp_extract = add_extract(site);
|
||||
temp_tr += '<div class="user-info-container"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate + '</div><div>Status: ' + site.status +
|
||||
'</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div>' + temp_extract + '</div><div class="user-info-container-right">' + temp_image + '</div></div>'
|
||||
}
|
||||
var temp_extract = add_extract(site);
|
||||
});
|
||||
|
||||
$("#output-table-2").html(temp_tr)
|
||||
$('#output-section-2').show();
|
||||
} else if (data.user_info_advanced.type == "show") {
|
||||
data.user_info_advanced.data.forEach(function(site) {
|
||||
if (site.found > 0 || site.image != "") {
|
||||
temp_image = ""
|
||||
if (site.image != "") {
|
||||
temp_image = '<img src=' + site.image + '>'
|
||||
}
|
||||
temp_tr += '<div class="profile-card"><div class="profile-card-text">Link: <a href="' + site.link + '">' + site.link + '</a></div>' + temp_image + ' </div>'
|
||||
}
|
||||
});
|
||||
|
||||
$("#output-table-1").html(temp_tr)
|
||||
$('#output-section-1').show();
|
||||
}
|
||||
}
|
||||
|
||||
if (data.user_info_normal.data.length > 0) {
|
||||
var temp_tr = ""
|
||||
|
||||
data.user_info_normal.data.forEach(function(site) {
|
||||
if (site.method == "all") {
|
||||
var temp_extract = ""
|
||||
if (site.good == "true") {
|
||||
var temp_extract = add_extract(site);
|
||||
temp_tr += '<div class="user-info-container"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate + '</div><div>Status: ' + site.status +
|
||||
'</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div>' + temp_extract + '</div><div class="user-info-container-right"></div></div>'
|
||||
} else {
|
||||
temp_tr += '<div class="user-info-container user-info-container-color-unknown"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div></div><div class="user-info-container-right"></div></div>'
|
||||
}
|
||||
} else if (site.method == "find") {
|
||||
if (site.good == "true") {
|
||||
var temp_extract = add_extract(site);
|
||||
temp_tr += '<div class="user-info-container"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate + '</div><div>Status: ' + site.status +
|
||||
'</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div>' + temp_extract + '</div><div class="user-info-container-right"></div></div>'
|
||||
}
|
||||
} else if (site.method == "get") {
|
||||
temp_tr += '<div class="user-info-container user-info-container-color-unknown"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate +
|
||||
'</div><div>Status: ' + site.status + '</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div></div><div class="user-info-container-right"></div></div>'
|
||||
} else if (site.method == "failed") {
|
||||
temp_tr += '<div class="user-info-container user-info-container-color-failed"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link +
|
||||
'</a></div></div><div class="user-info-container-right"></div></div>'
|
||||
}
|
||||
});
|
||||
|
||||
$("#output-table-3").html(temp_tr)
|
||||
$('#output-section-3').show();
|
||||
}
|
||||
|
||||
if (data.user_info_special.data.length > 0) {
|
||||
var temp_tr = ""
|
||||
data.user_info_special.data.forEach(function(site) {
|
||||
if (site.found > 0) {
|
||||
temp_image = ""
|
||||
temp_tr += '<div class="user-info-container"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate + '</div><div>Status: ' + site.status +
|
||||
'</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div>' + temp_extract + '</div><div class="user-info-container-right">' + temp_image + '</div></div>'
|
||||
'</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div></div><div class="user-info-container-right">' + temp_image + '</div></div>'
|
||||
}
|
||||
});
|
||||
|
||||
$("#output-table-2").html(temp_tr)
|
||||
$('#output-section-2').show();
|
||||
} else if (data.user_info_advanced.type == "show") {
|
||||
data.user_info_advanced.data.forEach(function(site) {
|
||||
if (site.found > 0 || site.image != "") {
|
||||
temp_image = ""
|
||||
if (site.image != "") {
|
||||
temp_image = '<img src=' + site.image + '>'
|
||||
}
|
||||
temp_tr += '<div class="profile-card"><div class="profile-card-text">Link: <a href="' + site.link + '">' + site.link + '</a></div>' + temp_image + ' </div>'
|
||||
}
|
||||
$("#output-table-4").html(temp_tr)
|
||||
$('#output-section-4').show();
|
||||
}
|
||||
if (data.names_origins.length > 0) {
|
||||
var temp_tr = ""
|
||||
Object.keys(data.names_origins).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.names_origins[item].origin + '</td><td>' + data.names_origins[item].name + '</td><td>' + data.names_origins[item].matched + '</td><td>' + data.names_origins[item].similar + '</td><td>' + data
|
||||
.names_origins[item].gender + '</td></tr>'
|
||||
});
|
||||
$("#names-origins-table").last().append('<table><tr><th>origin</th><th>name</th><th>matched</th><th>similar</th><th>gender</th></tr>' + temp_tr + '</table>')
|
||||
$('#names-origins-section').show();
|
||||
}
|
||||
if (data.custom_search.length > 0) {
|
||||
var temp_tr = ""
|
||||
Object.keys(data.custom_search).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.custom_search[item].site + '</td><td><a href="' + data.custom_search[item].link + '">' + data.custom_search[item].link + '</a></td><td>' + data.custom_search[item].snippet + '</td></tr>'
|
||||
});
|
||||
$("#custom-search-table").last().append('<table><tr><th>site</th><th>link</th><th>snippet</th></tr>' + temp_tr + '</table>')
|
||||
$('#custom-search-section').show();
|
||||
}
|
||||
|
||||
$("#output-table-1").html(temp_tr)
|
||||
$('#output-section-1').show();
|
||||
if (data.logs.length > 0) {
|
||||
$("#logs-pre").html('<pre>' + data.logs + '</pre>')
|
||||
$('#logs-section').show();
|
||||
}
|
||||
|
||||
if ((data.graph.nodes.length > 0) && (data.graph.links.length > 0)) {
|
||||
$("#force-graph-canvas").html('<div id="force-graph-canvas-inside"></div>')
|
||||
draw_graph(data.graph)
|
||||
$('#force-graph-section').show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (data.user_info_normal.data.length > 0) {
|
||||
var temp_tr = ""
|
||||
}
|
||||
catch(err){
|
||||
|
||||
data.user_info_normal.data.forEach(function(site) {
|
||||
if (site.method == "all") {
|
||||
var temp_extract = ""
|
||||
if (site.good == "true") {
|
||||
var temp_extract = add_extract(site);
|
||||
temp_tr += '<div class="user-info-container"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate + '</div><div>Status: ' + site.status +
|
||||
'</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div>' + temp_extract + '</div><div class="user-info-container-right"></div></div>'
|
||||
} else {
|
||||
temp_tr += '<div class="user-info-container user-info-container-color-unknown"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div></div><div class="user-info-container-right"></div></div>'
|
||||
}
|
||||
} else if (site.method == "find") {
|
||||
if (site.good == "true") {
|
||||
var temp_extract = add_extract(site);
|
||||
temp_tr += '<div class="user-info-container"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate + '</div><div>Status: ' + site.status +
|
||||
'</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div>' + temp_extract + '</div><div class="user-info-container-right"></div></div>'
|
||||
}
|
||||
} else if (site.method == "get") {
|
||||
temp_tr += '<div class="user-info-container user-info-container-color-unknown"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate +
|
||||
'</div><div>Status: ' + site.status + '</div><div>Title: ' + site.title +
|
||||
'</div><div>Language: ' + site.language + '</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div></div><div class="user-info-container-right"></div></div>'
|
||||
} else if (site.method == "failed") {
|
||||
temp_tr += '<div class="user-info-container user-info-container-color-failed"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link +
|
||||
'</a></div></div><div class="user-info-container-right"></div></div>'
|
||||
}
|
||||
});
|
||||
|
||||
$("#output-table-3").html(temp_tr)
|
||||
$('#output-section-3').show();
|
||||
}
|
||||
|
||||
if (data.user_info_special.data.length > 0) {
|
||||
var temp_tr = ""
|
||||
data.user_info_special.data.forEach(function(site) {
|
||||
if (site.found > 0) {
|
||||
temp_image = ""
|
||||
temp_tr += '<div class="user-info-container"><div class="user-info-container-left"><div>Link: <a href="' + site.link + '">' + site.link + '</a></div><div>Rate: ' + site.rate + '</div><div>Status: ' + site.status +
|
||||
'</div><div>Title: ' + site.title +
|
||||
'</div><div>Description: ' + site.type + '</div><div>Text: ' + site.text + '</div></div><div class="user-info-container-right">' + temp_image + '</div></div>'
|
||||
}
|
||||
});
|
||||
|
||||
$("#output-table-4").html(temp_tr)
|
||||
$('#output-section-4').show();
|
||||
}
|
||||
if (data.names_origins.length > 0) {
|
||||
var temp_tr = ""
|
||||
Object.keys(data.names_origins).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.names_origins[item].origin + '</td><td>' + data.names_origins[item].name + '</td><td>' + data.names_origins[item].matched + '</td><td>' + data.names_origins[item].similar + '</td><td>' + data
|
||||
.names_origins[item].gender + '</td></tr>'
|
||||
});
|
||||
$("#names-origins-table").last().append('<table><tr><th>origin</th><th>name</th><th>matched</th><th>similar</th><th>gender</th></tr>' + temp_tr + '</table>')
|
||||
$('#names-origins-section').show();
|
||||
}
|
||||
if (data.custom_search.length > 0) {
|
||||
var temp_tr = ""
|
||||
Object.keys(data.custom_search).forEach(function(item) {
|
||||
temp_tr += '<tr><td>' + data.custom_search[item].site + '</td><td><a href="' + data.custom_search[item].link + '">' + data.custom_search[item].link + '</a></td><td>' + data.custom_search[item].snippet + '</td></tr>'
|
||||
});
|
||||
$("#custom-search-table").last().append('<table><tr><th>site</th><th>link</th><th>snippet</th></tr>' + temp_tr + '</table>')
|
||||
$('#custom-search-section').show();
|
||||
}
|
||||
|
||||
if (data.logs.length > 0) {
|
||||
$("#logs-pre").html('<pre>' + data.logs + '</pre>')
|
||||
$('#logs-section').show();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
clearInterval(interval_logs);
|
||||
spinner_on_off(false)
|
||||
|
||||
0
readme/awesomeopensource.png
Normal file → Executable file
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
0
readme/cli.gif
Normal file → Executable file
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
0
readme/convertnumbers.png
Normal file → Executable file
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
0
readme/findnumbers.png
Normal file → Executable file
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
0
readme/finduserprofilesfast.png
Normal file → Executable file
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
0
readme/finduserprofilesslow.png
Normal file → Executable file
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
0
readme/finduserproflesfast.png
Normal file → Executable file
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
0
readme/finduserproflesslow.png
Normal file → Executable file
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
0
readme/intro_fast.gif
Normal file → Executable file
|
Before Width: | Height: | Size: 5.6 MiB After Width: | Height: | Size: 5.6 MiB |
0
readme/intro_slow.gif
Normal file → Executable file
|
Before Width: | Height: | Size: 4.9 MiB After Width: | Height: | Size: 4.9 MiB |
0
readme/model.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
0
readme/mostcommon.png
Normal file → Executable file
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
0
readme/possible.png
Normal file → Executable file
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
0
readme/profiles.png
Normal file → Executable file
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
0
readme/showuserproflesslow.png
Normal file → Executable file
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
0
readme/socialanalyzerlogo.png
Normal file → Executable file
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
0
readme/socialanalyzerlogo_.png
Normal file → Executable file
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
0
readme/splitwordsbyalphabet.png
Normal file → Executable file
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
readme/splitwordsbyuppercase.png
Normal file → Executable file
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
0
readme/wordinfo.png
Normal file → Executable file
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 169 KiB |