Add files via upload

This commit is contained in:
G
2020-12-15 17:04:44 -08:00
committed by GitHub
parent bdf493e3f3
commit ee451a9bda
4 changed files with 400 additions and 216 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
{"version":"2020.V.01.04",
{"version":"2020.V.01.05",
"build":"pass",
"test":"pass",
"websites":"37",
"detections":"120",
"special":"1",
"auto_testing":"8567cdf8-b542-406f-9eea-e30caa1d9897"}
"auto_testing":"44429398-fc43-4ca2-b985-1c14c0ac2173"}
+186
View File
@@ -41,6 +41,11 @@
}
}
},
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
@@ -86,6 +91,11 @@
"type-is": "~1.6.17"
}
},
"boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -156,6 +166,54 @@
"capture-stack-trace": "^1.0.0"
}
},
"css-select": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
"requires": {
"boolbase": "~1.0.0",
"css-what": "2.1",
"domutils": "1.5.1",
"nth-check": "~1.0.1"
},
"dependencies": {
"dom-serializer": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
"integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
"requires": {
"domelementtype": "^2.0.1",
"entities": "^2.0.0"
},
"dependencies": {
"domelementtype": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
"integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
}
}
},
"domelementtype": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
"integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
},
"domutils": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"requires": {
"dom-serializer": "0",
"domelementtype": "1"
}
}
}
},
"css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
"integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -179,6 +237,14 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"dom-converter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
"integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
"requires": {
"utila": "~0.4"
}
},
"dom-serializer": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
@@ -315,6 +381,11 @@
"vary": "~1.1.2"
}
},
"express-async-errors": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz",
"integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng=="
},
"finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
@@ -673,6 +744,14 @@
"resolved": "https://registry.npmjs.org/node-tesseract-ocr/-/node-tesseract-ocr-2.0.0.tgz",
"integrity": "sha512-NU2D6MpH6DSpv01ZrmCqMsbG/sPLq3WMOL7dJAP8D00djSrqnin96Vhu1uaf5/tiqXLEMe1Yiv69Uf0R/f0Dug=="
},
"nth-check": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
"integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
"requires": {
"boolbase": "~1.0.0"
}
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -765,6 +844,15 @@
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz",
"integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg=="
},
"pretty-error": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
"integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
"requires": {
"lodash": "^4.17.20",
"renderkid": "^2.0.4"
}
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -823,6 +911,91 @@
"util-deprecate": "~1.0.1"
}
},
"renderkid": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz",
"integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==",
"requires": {
"css-select": "^1.1.0",
"dom-converter": "^0.2",
"htmlparser2": "^3.3.0",
"lodash": "^4.17.20",
"strip-ansi": "^3.0.0"
},
"dependencies": {
"dom-serializer": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
"integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
"requires": {
"domelementtype": "^2.0.1",
"entities": "^2.0.0"
},
"dependencies": {
"domelementtype": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
"integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
},
"entities": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
}
}
},
"domelementtype": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
"integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
},
"domhandler": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
"requires": {
"domelementtype": "1"
}
},
"domutils": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
"requires": {
"dom-serializer": "0",
"domelementtype": "1"
}
},
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
},
"htmlparser2": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
"integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
"requires": {
"domelementtype": "^1.3.1",
"domhandler": "^2.3.0",
"domutils": "^1.5.1",
"entities": "^1.1.1",
"inherits": "^2.0.1",
"readable-stream": "^3.1.1"
}
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
}
}
},
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -941,6 +1114,14 @@
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
}
},
"tar": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz",
@@ -1014,6 +1195,11 @@
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utila": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
"integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw="
},
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+3 -1
View File
@@ -22,7 +22,9 @@
"sanitize-html": "2.1.2",
"async": "3.2.0",
"follow-redirects": "1.13.0",
"html-to-text": "6.0.0"
"html-to-text": "6.0.0",
"express-async-errors": "3.1.1",
"pretty-error": "2.1.2"
},
"author": "QeeqBox",
"license": "AGPL 3.0"
+209 -213
View File
@@ -16,6 +16,9 @@ var firefox = require("selenium-webdriver/firefox");
var { Builder, By } = require("selenium-webdriver");
var https = require("follow-redirects").https;
var async = require("async");
var PrettyError = require('pretty-error');
var pe = new PrettyError();
require('express-async-errors');
//var jsdom = require('jsdom');
//var dom = new jsdom.JSDOM();
//var window = dom.window;
@@ -28,9 +31,8 @@ var parsed_sites = JSON.parse(fs.readFileSync("sites.json"));
var app = express();
var WordsNinja = new WordsNinjaPack();
app.use(express.urlencoded({extended: true}));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(express.static("public"));
async function find_username_special(username, options) {
@@ -45,7 +47,7 @@ async function find_username_special(username, options) {
if ("name" in site) {
if (site.name == "facebook") {
if (site.selected == "true") {
functions.push(find_username_site_special_facebook_1.bind(null, username,site));
functions.push(find_username_site_special_facebook_1.bind(null, username, site));
}
}
}
@@ -55,32 +57,32 @@ async function find_username_special(username, options) {
return results.filter(item => item !== undefined)
}
async function find_username_site_special_facebook_1(username,site) {
return new Promise( async (resolve, reject) => {
async function find_username_site_special_facebook_1(username, site) {
return new Promise(async (resolve, reject) => {
let driver = new Builder()
.forBrowser("firefox")
.setFirefoxOptions(new firefox.Options().headless().windowSize({ width: 640, height: 480 }))
.build();
.forBrowser("firefox")
.setFirefoxOptions(new firefox.Options().headless().windowSize({ width: 640, height: 480 }))
.build();
try{
try {
var timeouts = {
implicit: 0,
pageLoad: 10000,
script: 10000
};
var source = "";
var data = "";
var text_only = "unavailable";
var title = "unavailable";
var temp_profile = { "found": 0, "image": "", "link": "", rate: "", title: "", text: ""};
var temp_profile = { "found": 0, "image": "", "link": "", rate: "", title: "", text: "" };
var link = "https://mbasic.facebook.com/login/identify/?ctx=recoveqr";
await driver.manage().setTimeouts(timeouts);
await driver.get(link);;
await driver.findElement(By.id('identify_search_text_input')).sendKeys(username);
await driver.findElement(By.id('identify_search_text_input')).sendKeys(username);
await driver.findElement(By.id('did_submit')).click();
var source = await driver.getPageSource();
source = await driver.getPageSource();
text_only = await driver.findElement(By.tagName("body")).getText();
await driver.quit()
if (source.includes("Try Entering Your Password")) {
@@ -94,16 +96,16 @@ async function find_username_site_special_facebook_1(username,site) {
temp_profile.link = site.url.replace("{username}", username);
resolve(temp_profile);
}
else{
else {
resolve(undefined)
}
}
catch(err){
if (driver !== undefined){
try{
}
catch (err) {
if (driver !== undefined) {
try {
await driver.quit()
}
catch(err){
catch (err) {
console.log("Driver Session Issue")
}
}
@@ -131,31 +133,31 @@ async function find_username_advanced(username, options) {
}
async function find_username_site_new(username, options, site) {
return new Promise( async (resolve, reject) => {
return new Promise(async (resolve, reject) => {
let driver = new Builder()
.forBrowser("firefox")
.setFirefoxOptions(new firefox.Options().headless().windowSize({ width: 640, height: 480 }))
.build();
.forBrowser("firefox")
.setFirefoxOptions(new firefox.Options().headless().windowSize({ width: 640, height: 480 }))
.build();
try{
try {
var timeouts = {
implicit: 0,
pageLoad: 10000,
script: 10000
};
var source = "";
var data = "";
var text_only = "unavailable";
var title = "unavailable";
var temp_profile = { "found": 0, "image": "", "link": "", rate: "", title: "", text: ""};
var temp_profile = { "found": 0, "image": "", "link": "", rate: "", title: "", text: "" };
var link = site.url.replace("{username}", username);
await driver.manage().setTimeouts(timeouts);
await driver.get(link);;
var source = await driver.getPageSource();
var data = await driver.takeScreenshot();
var title = await driver.getTitle();
source = await driver.getPageSource();
data = await driver.takeScreenshot();
title = await driver.getTitle();
text_only = await driver.findElement(By.tagName("body")).getText();
await driver.quit()
if (options.includes("ShowUserProflesSlow")) {
@@ -163,7 +165,7 @@ async function find_username_site_new(username, options, site) {
}
if (site.selected == "true" && site.detections.length > 0 && options.includes("FindUserProflesSlow")) {
await Promise.all(site.detections.map(async detection => {
try{
try {
if ("status" in detection) {
if (detection.status == "bad") {
return;
@@ -202,9 +204,9 @@ async function find_username_site_new(username, options, site) {
temp_profile.found += 1
}
}
}
catch(err){
catch (err) {
}
}));
@@ -216,16 +218,16 @@ async function find_username_site_new(username, options, site) {
temp_profile.link = site.url.replace("{username}", username);
resolve(temp_profile);
}
else{
else {
resolve(undefined)
}
}
catch(err){
if (driver !== undefined){
try{
}
catch (err) {
if (driver !== undefined) {
try {
await driver.quit()
}
catch(err){
catch (err) {
console.log("Driver Session Issue")
}
}
@@ -266,7 +268,7 @@ async function find_username_normal(username, options) {
ignoreHref: true,
ignoreImage: true
});
if(temp_profile.text == ""){
if (temp_profile.text == "") {
temp_profile.text = "unavailable"
}
temp_profile.title = sanitizeHtml(title);
@@ -330,7 +332,7 @@ async function find_username_advanced_2(username, options) {
var data = "";
var text_only = "unavailable";
var title = "unavailable";
var temp_profile = { "found": 0, "image": "", "link": "", rate: "", title: "", text: ""};
var temp_profile = { "found": 0, "image": "", "link": "", rate: "", title: "", text: "" };
var link = site.url.replace("{username}", username);
await driver.get(link);;
source = await driver.getPageSource();
@@ -462,26 +464,21 @@ app.get("/get_settings", async function (req, res, next) {
});
app.post("/save_settings", async function (req, res, next) {
try {
await parsed_sites.forEach(function (value, i) {
parsed_sites[i].selected = "false"
});
if ("detections" in req.body) {
if (req.body.detections.length > 0) {
await req.body.detections.forEach(item => {
parsed_sites[Number(item)].selected = "true";
});
}
}
if (req.body.google[0] != google_api_key.substring(0, 10) + "******") {
google_api_key = req.body.google[0];
}
if (req.body.google[1] != google_api_cs.substring(0, 10) + "******") {
google_api_cs = req.body.google[1];
await parsed_sites.forEach(function (value, i) {
parsed_sites[i].selected = "false"
});
if ("detections" in req.body) {
if (req.body.detections.length > 0) {
await req.body.detections.forEach(item => {
parsed_sites[Number(item)].selected = "true";
});
}
}
catch (error) {
console.log(error);
if (req.body.google[0] != google_api_key.substring(0, 10) + "******") {
google_api_key = req.body.google[0];
}
if (req.body.google[1] != google_api_cs.substring(0, 10) + "******") {
google_api_cs = req.body.google[1];
}
res.json("Done");
@@ -489,21 +486,17 @@ app.post("/save_settings", async function (req, res, next) {
app.get("/generate", async function (req, res, next) {
var list_of_combinations = []
try {
if (req.body.option == "Generate") {
if (req.body.words != undefined && req.body.words.length > 1 && req.body.words.length < 8) {
for (var perm of generatorics.permutationCombination(req.body.words)) {
if (perm.join("") !== "") {
list_of_combinations.push(perm.join(""));
}
if (req.body.option == "Generate") {
if (req.body.words != undefined && req.body.words.length > 1 && req.body.words.length < 8) {
for (var perm of generatorics.permutationCombination(req.body.words)) {
if (perm.join("") !== "") {
list_of_combinations.push(perm.join(""));
}
}
}
res.json({ combinations: list_of_combinations });
}
catch (error) {
console.log(error);;
}
res.json({ combinations: list_of_combinations });
});
async function get_words_info(all_words, words_info) {
@@ -560,8 +553,7 @@ async function get_words_info(all_words, words_info) {
async function check_engines(req, info) {
try {
if (google_api_key == "" || google_api_cs == "")
{
if (google_api_key == "" || google_api_cs == "") {
return
}
var url = "https://www.googleapis.com/customsearch/v1?key={0}&cx={1}&q={2}".replace("{0}", google_api_key).replace("{1}", google_api_cs).replace("{2}", req.body.string);
@@ -719,165 +711,169 @@ async function analyze_name(req, all_words) {
app.post("/url", async function (req, res, next) {
await WordsNinja.loadDictionary();
var info = { "items": [], "original": "", "corrected": "", "total": 0, "checking": "Using " + req.body.string + " with no lookups" }
var user_info_normal = {data:{},type:"all"}
var user_info_advanced = {data:{},type:"all"}
var user_info_special = {data:{},type:"all"}
var user_info_normal = { data: {}, type: "all" }
var user_info_advanced = { data: {}, type: "all" }
var user_info_special = { data: {}, type: "all" }
var all_words = { "prefix": [], "name": [], "number": [], "symbol": [], "unknown": [], "maybe": [] }
var words_info = []
var temp_words = []
try {
if (req.body.string == null || req.body.string == "") {
res.json("Error");
if (req.body.string == null || req.body.string == "") {
res.json("Error");
}
else {
if (req.body.option.includes("FindUserProflesSpecial")) {
user_info_special.data = await find_username_special(req.body.string, req.body.option);
}
else {
if (req.body.option.includes("FindUserProflesSpecial")) {
user_info_special.data = await find_username_special(req.body.string, req.body.option);
if (req.body.option.includes("FindUserProflesFast")) {
user_info_advanced.data = await find_username_normal(req.body.string, req.body.option);
}
if (req.body.option.includes("FindUserProflesSlow") || req.body.option.includes("ShowUserProflesSlow")) {
if (!req.body.option.includes("FindUserProflesSlow")) {
user_info_normal.type = "show"
}
if (req.body.option.includes("FindUserProflesFast")) {
user_info_advanced.data = await find_username_normal(req.body.string, req.body.option);
else if (!req.body.option.includes("ShowUserProflesSlow")) {
user_info_normal.type = "noshow"
}
if (req.body.option.includes("FindUserProflesSlow") || req.body.option.includes("ShowUserProflesSlow")) {
if (!req.body.option.includes("FindUserProflesSlow"))
{
user_info_normal.type = "show"
}
else if (!req.body.option.includes("ShowUserProflesSlow")){
user_info_normal.type = "noshow"
}
user_info_normal.data = await find_username_advanced(req.body.string, req.body.option);
}
if (req.body.option.includes("LookUps")) {
await check_engines(req, info);
}
if (req.body.option.includes("SplitWordsByUpperCase")) {
try {
req.body.string.match(/[A-Z][a-z]+/g).forEach((item) => {
if (item.length > 1 && !all_words.unknown.includes(item) && !all_words.maybe.includes(item)) {
all_words.unknown.push(item.toLowerCase());
}
});
}
catch (err) { }
}
if (req.body.option.includes("SplitWordsByAlphabet")) {
try {
req.body.string.match(/[A-Za-z]+/g).forEach((item) => {
if (item.length > 1 && !all_words.unknown.includes(item) && !all_words.maybe.includes(item)) {
all_words.unknown.push(item.toLowerCase());
}
});
}
catch (err) { }
}
req.body.string = req.body.string.toLowerCase();
if (req.body.option.includes("ConvertNumbers")) {
numbers_to_letters = {
"4": "a",
"8": "b",
"3": "e",
"1": "l",
"0": "o",
"5": "s",
"7": "t",
"2": "z"
}
temp_value = ""
for (i = 0; i < req.body.string.length; i++) {
_temp = numbers_to_letters[req.body.string.charAt(i)]
if (_temp != undefined) {
temp_value += numbers_to_letters[req.body.string.charAt(i)];
}
else {
temp_value += req.body.string.charAt(i);
}
}
req.body.string = temp_value
}
if (req.body.option.includes("LookUps") ||
req.body.option.includes("WordInfo") ||
req.body.option.includes("MostCommon") ||
req.body.option.includes("SplitWordsByUpperCase") ||
req.body.option.includes("SplitWordsByAlphabet") ||
req.body.option.includes("FindSymbols") ||
req.body.option.includes("FindNumbers") ||
req.body.option.includes("ConvertNumbers")) {
if (req.body.option.includes("FindNumbers")) {
try {
req.body.string.match(/(\d+)/g).forEach((item) => {
if (!all_words.number.includes(item)) {
all_words.number.push(item);
}
});
}
catch (err) { }
}
if (req.body.option.includes("FindSymbols")) {
try {
req.body.string.match(/[ \[\]:"\\|,.<>\/?~`!@#$%^&*()_+\-={};']/gi).forEach((item) => {
if (item !== " " && !all_words.symbol.includes(item)) {
all_words.symbol.push(item);
}
});
}
catch (err) { }
}
if (req.body.option.includes("SplitUpperCase")) {
req.body.string = req.body.string.replace(/([A-Z]+)/g, " $1");
if (req.body.string.startsWith(" ")) {
req.body.string = req.body.string.substring(1);
}
}
all_words.maybe = WordsNinja.splitSentence(req.body.string).filter(function (elem, index, self) { return index === self.indexOf(elem); }).filter(word => word.length > 1);
await analyze_name(req, all_words);
//find_other(all_words)
Object.keys(all_words).forEach((key) => (all_words[key].length == 0) && delete all_words[key]);
if (req.body.option.includes("MostCommon")) {
await most_common(all_words, temp_words);
}
if (req.body.option.includes("WordInfo")) {
await get_words_info(all_words, words_info);
}
}
else if (req.body.option.includes("NormalAnalysis@@")) {
var maybe_words = WordsNinja.splitSentence(req.body.string);
all_words.maybe = maybe_words.filter(function (elem, index, self) { return index === self.indexOf(elem); });
list_of_tokens = _tokenizer.tokenize(req.body.string);
list_of_tokens.forEach(function (item, index) {
if (item.tag in all_words) {
all_words[item.tag].push(item.token);
}
else {
all_words[item.tag] = []
all_words[item.tag].push(item.token);
user_info_normal.data = await find_username_advanced(req.body.string, req.body.option);
}
if (req.body.option.includes("LookUps")) {
await check_engines(req, info);
}
if (req.body.option.includes("SplitWordsByUpperCase")) {
try {
req.body.string.match(/[A-Z][a-z]+/g).forEach((item) => {
if (item.length > 1 && !all_words.unknown.includes(item) && !all_words.maybe.includes(item)) {
all_words.unknown.push(item.toLowerCase());
}
});
Object.keys(all_words).forEach((key) => (all_words[key].length == 0) && delete all_words[key]);
}
res.json({ info, table: all_words, common: temp_words, words_info: words_info, user_info_normal: user_info_normal,user_info_advanced: user_info_advanced,user_info_special: user_info_special});
catch (err) { }
}
}
catch (e) {
console.log(e);
res.json("Error");
if (req.body.option.includes("SplitWordsByAlphabet")) {
try {
req.body.string.match(/[A-Za-z]+/g).forEach((item) => {
if (item.length > 1 && !all_words.unknown.includes(item) && !all_words.maybe.includes(item)) {
all_words.unknown.push(item.toLowerCase());
}
});
}
catch (err) { }
}
req.body.string = req.body.string.toLowerCase();
if (req.body.option.includes("ConvertNumbers")) {
numbers_to_letters = {
"4": "a",
"8": "b",
"3": "e",
"1": "l",
"0": "o",
"5": "s",
"7": "t",
"2": "z"
}
temp_value = ""
for (i = 0; i < req.body.string.length; i++) {
_temp = numbers_to_letters[req.body.string.charAt(i)]
if (_temp != undefined) {
temp_value += numbers_to_letters[req.body.string.charAt(i)];
}
else {
temp_value += req.body.string.charAt(i);
}
}
req.body.string = temp_value
}
if (req.body.option.includes("LookUps") ||
req.body.option.includes("WordInfo") ||
req.body.option.includes("MostCommon") ||
req.body.option.includes("SplitWordsByUpperCase") ||
req.body.option.includes("SplitWordsByAlphabet") ||
req.body.option.includes("FindSymbols") ||
req.body.option.includes("FindNumbers") ||
req.body.option.includes("ConvertNumbers")) {
if (req.body.option.includes("FindNumbers")) {
try {
req.body.string.match(/(\d+)/g).forEach((item) => {
if (!all_words.number.includes(item)) {
all_words.number.push(item);
}
});
}
catch (err) { }
}
if (req.body.option.includes("FindSymbols")) {
try {
req.body.string.match(/[ \[\]:"\\|,.<>\/?~`!@#$%^&*()_+\-={};']/gi).forEach((item) => {
if (item !== " " && !all_words.symbol.includes(item)) {
all_words.symbol.push(item);
}
});
}
catch (err) { }
}
if (req.body.option.includes("SplitUpperCase")) {
req.body.string = req.body.string.replace(/([A-Z]+)/g, " $1");
if (req.body.string.startsWith(" ")) {
req.body.string = req.body.string.substring(1);
}
}
all_words.maybe = WordsNinja.splitSentence(req.body.string).filter(function (elem, index, self) { return index === self.indexOf(elem); }).filter(word => word.length > 1);
await analyze_name(req, all_words);
//find_other(all_words)
Object.keys(all_words).forEach((key) => (all_words[key].length == 0) && delete all_words[key]);
if (req.body.option.includes("MostCommon")) {
await most_common(all_words, temp_words);
}
if (req.body.option.includes("WordInfo")) {
await get_words_info(all_words, words_info);
}
}
else if (req.body.option.includes("NormalAnalysis@@")) {
var maybe_words = WordsNinja.splitSentence(req.body.string);
all_words.maybe = maybe_words.filter(function (elem, index, self) { return index === self.indexOf(elem); });
list_of_tokens = _tokenizer.tokenize(req.body.string);
list_of_tokens.forEach(function (item, index) {
if (item.tag in all_words) {
all_words[item.tag].push(item.token);
}
else {
all_words[item.tag] = []
all_words[item.tag].push(item.token);
}
});
Object.keys(all_words).forEach((key) => (all_words[key].length == 0) && delete all_words[key]);
}
res.json({ info, table: all_words, common: temp_words, words_info: words_info, user_info_normal: user_info_normal, user_info_advanced: user_info_advanced, user_info_special: user_info_special });
}
});
app.use((err, req, res, next) => {
console.log(" --- Global Error ---")
console.log(pe.render(err));
res.json("Error");
});
process.on('uncaughtException', function(err) {
console.log(" --- Uncaught Error ---")
console.log(pe.render(err));
})
process.on('unhandledRejection', function(err) {
console.log(" --- Uncaught Rejection ---")
console.log(pe.render(err));
})
var server = app.listen(9005, function () {
var port = server.address().port;
console.log("Server started at http://localhost:%s/app.html", port);
});
//server.setTimeout(60000);