From ee451a9bdacaa58d4948c4444e3373840ac81357 Mon Sep 17 00:00:00 2001 From: G <52905881+giga-a@users.noreply.github.com> Date: Tue, 15 Dec 2020 17:04:44 -0800 Subject: [PATCH] Add files via upload --- info | 4 +- package-lock.json | 186 ++++++++++++++++++++ package.json | 4 +- server.js | 422 +++++++++++++++++++++++----------------------- 4 files changed, 400 insertions(+), 216 deletions(-) diff --git a/info b/info index 3642a5f..aed7855 100644 --- a/info +++ b/info @@ -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"} diff --git a/package-lock.json b/package-lock.json index 4813d80..2fbe14f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index eb21339..b0c4c56 100644 --- a/package.json +++ b/package.json @@ -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" diff --git a/server.js b/server.js index d10401d..642e0a5 100644 --- a/server.js +++ b/server.js @@ -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); \ No newline at end of file