[auto-b] added visualization - ref 739a94c6

This commit is contained in:
G
2021-04-08 10:37:04 -07:00
parent d26e9087e9
commit 680ab6cff9
50 changed files with 334 additions and 152 deletions

0
Dockerfile Normal file → Executable file
View File

0
LICENSE Normal file → Executable file
View File

2
README.md Normal file → Executable file
View 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
View File

41
app.js Normal file → Executable file
View 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
app.py Normal file → Executable file
View File

0
auto_pip.sh Normal file → Executable file
View File

0
clean-up.logs Normal file → Executable file
View File

0
data/dict.json Normal file → Executable file
View File

0
data/languages.json Normal file → Executable file
View File

0
data/names.json Normal file → Executable file
View File

0
data/site_updated.json Normal file → Executable file
View File

0
data/sites.json Normal file → Executable file
View File

0
data/sites.json_new Normal file → Executable file
View File

0
docker-compose.yml Normal file → Executable file
View File

6
info Normal file → Executable file
View 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
View File

0
modules/external-apis.js Normal file → Executable file
View File

5
modules/extraction.js Normal file → Executable file
View 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
View File

0
modules/helper.js Normal file → Executable file
View File

0
modules/name-analysis.js Normal file → Executable file
View File

0
modules/slow-scan.js Normal file → Executable file
View File

0
modules/special-scan.js Normal file → Executable file
View File

0
modules/string-analysis.js Normal file → Executable file
View File

85
modules/visualize.js Executable file
View 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
View File

0
package.json Normal file → Executable file
View File

347
public/app.html Normal file → Executable file
View 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
View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

0
readme/cli.gif Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

0
readme/convertnumbers.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

0
readme/findnumbers.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

0
readme/finduserprofilesfast.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

0
readme/finduserprofilesslow.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

0
readme/finduserproflesfast.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

0
readme/finduserproflesslow.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

0
readme/intro_fast.gif Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.6 MiB

After

Width:  |  Height:  |  Size: 5.6 MiB

0
readme/intro_slow.gif Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.9 MiB

After

Width:  |  Height:  |  Size: 4.9 MiB

0
readme/model.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

0
readme/mostcommon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

0
readme/possible.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

0
readme/profiles.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

0
readme/showuserproflesslow.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

0
readme/socialanalyzerlogo.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

0
readme/socialanalyzerlogo_.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

0
readme/splitwordsbyalphabet.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

0
readme/splitwordsbyuppercase.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

0
readme/wordinfo.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB

0
setup.py Normal file → Executable file
View File