From 7a1c8610e6f67468dd9569c475b8763fe42080f4 Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Tue, 13 Oct 2020 13:42:43 +0000 Subject: [PATCH 01/13] Format code with prettier This commit fixes the style issues introduced in 89706ce according to the output from prettier. Details: https://deepsource.io/gh/MillenniumEarl/F95API/transform/5987f489-3741-4ea4-8bab-20a3be8d16df/ --- app/index.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/index.js b/app/index.js index b1c1f59..38dc8e7 100644 --- a/app/index.js +++ b/app/index.js @@ -98,7 +98,6 @@ var _browser = null; * @returns {Promise} Result of the operation */ module.exports.login = async function (username, password) { - if (shared.isLogged) { if (shared.debug) console.log("Already logged in"); let result = new LoginResult(); @@ -146,7 +145,6 @@ module.exports.login = async function (username, password) { * @returns {Promise} Result of the operation */ module.exports.loadF95BaseData = async function () { - if (!shared.isLogged || !shared.cookies) { console.warn("User not authenticated, unable to continue"); return false; @@ -196,7 +194,6 @@ module.exports.loadF95BaseData = async function () { * @returns {Promise} true if an update is available, false otherwise */ module.exports.chekIfGameHasUpdate = async function (info) { - if (!shared.isLogged || !shared.cookies) { console.warn("user not authenticated, unable to continue"); return info.version; @@ -227,7 +224,6 @@ module.exports.chekIfGameHasUpdate = async function (info) { * an identified game (in the case of homonymy). If no games were found, null is returned */ module.exports.getGameData = async function (name, includeMods) { - if (!shared.isLogged || !shared.cookies) { console.warn("user not authenticated, unable to continue"); return null; @@ -265,7 +261,6 @@ module.exports.getGameData = async function (name, includeMods) { * @returns {Promise} Information about the game. If no game was found, null is returned */ module.exports.getGameDataFromURL = async function (url) { - if (!shared.isLogged || !shared.cookies) { console.warn("user not authenticated, unable to continue"); return null; @@ -292,7 +287,6 @@ module.exports.getGameDataFromURL = async function (url) { * @returns {Promise} Data of the user currently logged in or null if an error arise */ module.exports.getUserData = async function () { - if (!shared.isLogged || !shared.cookies) { console.warn("user not authenticated, unable to continue"); return null; @@ -339,7 +333,6 @@ module.exports.getUserData = async function () { * You **must** be logged in to the portal before calling this method. */ module.exports.logout = async function () { - if (!shared.isLogged || !shared.cookies) { console.warn("user not authenticated, unable to continue"); return; From f7ff5f3c262175f55f0c3b11d482191cec62ef88 Mon Sep 17 00:00:00 2001 From: "samuele.berlusconi" Date: Wed, 14 Oct 2020 15:12:35 +0200 Subject: [PATCH 02/13] Solved (probably) timeout issue --- app/index.js | 10 +- app/scripts/game-searcher.js | 12 +- app/scripts/puppeteer-helper.js | 17 +- package-lock.json | 795 +------------------------------- test/user-test.js | 12 +- 5 files changed, 34 insertions(+), 812 deletions(-) diff --git a/app/index.js b/app/index.js index 38dc8e7..281d0a4 100644 --- a/app/index.js +++ b/app/index.js @@ -486,10 +486,12 @@ async function loginF95(browser, username, password) { await page.type(selectors.USERNAME_INPUT, username); // Insert username await page.type(selectors.PASSWORD_INPUT, password); // Insert password - await page.click(selectors.LOGIN_BUTTON); // Click on the login button - await page.waitForNavigation({ - waitUntil: shared.WAIT_STATEMENT, - }); // Wait for page to load + await Promise.all([ + page.click(selectors.LOGIN_BUTTON), // Click on the login button + page.waitForNavigation({ + waitUntil: shared.WAIT_STATEMENT + }) // Wait for page to load + ]); // Prepare result let result = new LoginResult(); diff --git a/app/scripts/game-searcher.js b/app/scripts/game-searcher.js index 9c7221a..bf1a5ef 100644 --- a/app/scripts/game-searcher.js +++ b/app/scripts/game-searcher.js @@ -32,11 +32,13 @@ module.exports.getSearchGameResults = async function (browser, gamename) { await page.type(selectors.SEARCH_FORM_TEXTBOX, gamename); // Type the game we desire await page.click(selectors.TITLE_ONLY_CHECKBOX); // Select only the thread with the game in the titles - await page.click(selectors.SEARCH_BUTTON); // Execute search - await page.waitForNavigation({ - waitUntil: shared.WAIT_STATEMENT, - }); // Wait for page to load - + await Promise.all([ + page.click(selectors.SEARCH_BUTTON), // Execute search + page.waitForNavigation({ + waitUntil: shared.WAIT_STATEMENT, + }) // Wait for page to load + ]); + // Select all conversation titles let resultsThread = await page.$$(selectors.SEARCH_THREADS_RESULTS_BODY); diff --git a/app/scripts/puppeteer-helper.js b/app/scripts/puppeteer-helper.js index 8f53856..7a306e9 100644 --- a/app/scripts/puppeteer-helper.js +++ b/app/scripts/puppeteer-helper.js @@ -14,11 +14,18 @@ const shared = require("./shared.js"); */ module.exports.prepareBrowser = async function () { // Create a headless browser - let browser = await puppeteer.launch({ - executablePath: shared.chromiumLocalPath, - headless: !shared.debug, // Use GUI when debug = true - }); - + let browser = null; + if (shared.chromiumLocalPath) { + browser = await puppeteer.launch({ + executablePath: shared.chromiumLocalPath, + headless: !shared.debug, // Use GUI when debug = true + }); + } else { + browser = await puppeteer.launch({ + headless: !shared.debug, // Use GUI when debug = true + }); + } + return browser; }; diff --git a/package-lock.json b/package-lock.json index 72f77aa..b73eae9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -241,19 +241,6 @@ "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", "dev": true }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -371,14 +358,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "ast-types": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", - "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", - "requires": { - "tslib": "^2.0.1" - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -443,37 +422,6 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, "caching-transform": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", @@ -561,19 +509,6 @@ "wrap-ansi": "^6.2.0" } }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -600,46 +535,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -649,32 +544,6 @@ "safe-buffer": "~5.1.1" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cpr": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cpr/-/cpr-3.0.1.tgz", - "integrity": "sha1-uaVQOLfNgaNcF7l2GJW9hJau8eU=", - "requires": { - "graceful-fs": "^4.1.5", - "minimist": "^1.2.0", - "mkdirp": "~0.5.1", - "rimraf": "^2.5.4" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -705,14 +574,6 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -722,11 +583,6 @@ "type-detect": "^4.0.0" } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, "default-require-extensions": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", @@ -736,11 +592,6 @@ "strip-bom": "^4.0.0" } }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -750,28 +601,6 @@ "object-keys": "^1.0.12" } }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, "devtools-protocol": { "version": "0.0.799653", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.799653.tgz", @@ -789,54 +618,6 @@ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", "dev": true }, - "download-chromium": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/download-chromium/-/download-chromium-2.2.1.tgz", - "integrity": "sha512-y3VF5hgjmQ19hYQWb348rRRxIE+ziS9oGRm2tvMz6aF6E0T7AXcrU9MVkcLyQmt0fxwPMMAi08LxnXHfqeOP8w==", - "requires": { - "cpr": "^3.0.1", - "debug": "^4.1.1", - "extract-zip": "^1.6.7", - "got": "^9.6.0", - "mkdirp": "^0.5.1", - "promisepipe": "^2.0.0", - "proxy-agent": "^3.1.0", - "proxy-from-env": "^1.0.0" - }, - "dependencies": { - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -908,70 +689,23 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } - } - }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, "event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, "extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -983,11 +717,6 @@ "yauzl": "^2.10.0" } }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -1001,11 +730,6 @@ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.1.tgz", "integrity": "sha512-Uf+gxPCe1hTOFXwkxYyckn8iUSk6CFXGy5VENZKifovUTZC9eUODWSBhOBS7zICGrAetKzdwLMr85KhIcePMAQ==" }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1077,38 +801,6 @@ "dev": true, "optional": true }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -1147,66 +839,6 @@ "pump": "^3.0.0" } }, - "get-uri": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", - "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", - "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" - }, - "dependencies": { - "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -1235,38 +867,11 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true }, "growl": { "version": "1.10.5", @@ -1316,55 +921,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "https-proxy-agent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", @@ -1374,14 +930,6 @@ "debug": "4" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -1413,11 +961,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "is-arguments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", @@ -1687,11 +1230,6 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", @@ -1701,14 +1239,6 @@ "minimist": "^1.2.5" } }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, "ky": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/ky/-/ky-0.24.0.tgz", @@ -1723,15 +1253,6 @@ "node-fetch": "3.0.0-beta.9" } }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -1813,19 +1334,6 @@ } } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -1835,11 +1343,6 @@ "semver": "^6.0.0" } }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1851,15 +1354,8 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "mkdirp-classic": { "version": "0.5.3", @@ -2112,11 +1608,6 @@ "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", "dev": true }, - "netmask": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" - }, "node-fetch": { "version": "3.0.0-beta.9", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz", @@ -2149,11 +1640,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - }, "nyc": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", @@ -2221,24 +1707,6 @@ "wrappy": "1" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -2269,62 +1737,6 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, - "pac-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", - "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", - "requires": { - "agent-base": "^4.2.0", - "debug": "^4.1.1", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - } - } - }, - "pac-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", - "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } - }, "package-hash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", @@ -2384,21 +1796,6 @@ "find-up": "^4.0.0" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -2426,55 +1823,6 @@ "iterate-value": "^1.0.0" } }, - "promisepipe": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/promisepipe/-/promisepipe-2.1.3.tgz", - "integrity": "sha512-pPJRbWEGIuPrjWAdN2lZLRuv+5wMNyig0dniGbMfadS7EK+/kxKqkjAA02iZI+S5Om0tCu6MC1JrjWYs8BlheQ==" - }, - "proxy-agent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", - "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", - "requires": { - "agent-base": "^4.2.0", - "debug": "4", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - } - } - }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -2516,17 +1864,6 @@ "safe-buffer": "^5.1.0" } }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -2582,14 +1919,6 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -2601,12 +1930,8 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "semver": { "version": "6.3.0", @@ -2629,11 +1954,6 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -2664,39 +1984,6 @@ "nan": "^2.14.1" } }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" - }, - "socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "requires": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "requires": { - "es6-promisify": "^5.0.0" - } - } - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -2723,11 +2010,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -2843,22 +2125,12 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2868,24 +2140,6 @@ "is-number": "^7.0.0" } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -2898,11 +2152,6 @@ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -2921,19 +2170,6 @@ "through": "^2.3.8" } }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -3002,11 +2238,6 @@ } } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, "workerpool": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", @@ -3073,22 +2304,12 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" - }, "y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", diff --git a/test/user-test.js b/test/user-test.js index 764d02e..8e56a77 100644 --- a/test/user-test.js +++ b/test/user-test.js @@ -11,7 +11,6 @@ const GameDownload = require("../app/scripts/classes/game-download.js"); debug(true); main(); -//downloadGameNOPY(); //downloadGameMEGA(); async function main() { @@ -19,7 +18,7 @@ async function main() { if (loginResult.success) { await loadF95BaseData(); - let gameData = await getGameData("employee benefits", false); + let gameData = await getGameData("brothel king", false); console.log(gameData); // let userData = await getUserData(); @@ -28,15 +27,6 @@ async function main() { logout(); } -async function downloadGameNOPY() { - let gd = new GameDownload(); - gd.hosting = "NOPY"; - gd.link = "https://nopy.to/50jmNQbo/Kingdom_of_Deception-pc0.10.8.zip"; - let savepath = join(__dirname, "Kingdom_of_Deception-pc0.10.8.zip"); - let result = await gd.download(savepath); - console.log(result); -} - async function downloadGameMEGA() { let gd = new GameDownload(); gd.hosting = "NOPY"; From 6ac602fa8757c44f6ad983f1453583cc6dfb78c1 Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2020 13:15:34 +0000 Subject: [PATCH 03/13] Format code with prettier This commit fixes the style issues introduced in f7ff5f3 according to the output from prettier. Details: https://deepsource.io/gh/MillenniumEarl/F95API/transform/5957f2bd-9b83-459b-a748-1e25dc849308/ --- app/index.js | 4 ++-- app/scripts/game-searcher.js | 4 ++-- app/scripts/puppeteer-helper.js | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/index.js b/app/index.js index 281d0a4..dd86900 100644 --- a/app/index.js +++ b/app/index.js @@ -489,8 +489,8 @@ async function loginF95(browser, username, password) { await Promise.all([ page.click(selectors.LOGIN_BUTTON), // Click on the login button page.waitForNavigation({ - waitUntil: shared.WAIT_STATEMENT - }) // Wait for page to load + waitUntil: shared.WAIT_STATEMENT, + }), // Wait for page to load ]); // Prepare result diff --git a/app/scripts/game-searcher.js b/app/scripts/game-searcher.js index bf1a5ef..8058e5a 100644 --- a/app/scripts/game-searcher.js +++ b/app/scripts/game-searcher.js @@ -36,9 +36,9 @@ module.exports.getSearchGameResults = async function (browser, gamename) { page.click(selectors.SEARCH_BUTTON), // Execute search page.waitForNavigation({ waitUntil: shared.WAIT_STATEMENT, - }) // Wait for page to load + }), // Wait for page to load ]); - + // Select all conversation titles let resultsThread = await page.$$(selectors.SEARCH_THREADS_RESULTS_BODY); diff --git a/app/scripts/puppeteer-helper.js b/app/scripts/puppeteer-helper.js index 7a306e9..38cd5b2 100644 --- a/app/scripts/puppeteer-helper.js +++ b/app/scripts/puppeteer-helper.js @@ -25,7 +25,7 @@ module.exports.prepareBrowser = async function () { headless: !shared.debug, // Use GUI when debug = true }); } - + return browser; }; From 9ba81d4f83d143c6de363ec697193acc14e65d43 Mon Sep 17 00:00:00 2001 From: "samuele.berlusconi" Date: Wed, 14 Oct 2020 15:21:12 +0200 Subject: [PATCH 04/13] Updated version --- coverage.lcov | 1370 ++++++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 727 insertions(+), 645 deletions(-) diff --git a/coverage.lcov b/coverage.lcov index 879668e..370b6e1 100644 --- a/coverage.lcov +++ b/coverage.lcov @@ -1,419 +1,436 @@ TN: SF:app\index.js -FN:31,(anonymous_0) -FN:39,(anonymous_1) -FN:48,(anonymous_2) -FN:56,(anonymous_3) -FN:64,(anonymous_4) -FN:85,(anonymous_5) -FN:136,(anonymous_6) -FN:189,(anonymous_7) -FN:210,(anonymous_8) -FN:249,(anonymous_9) -FN:299,(anonymous_10) -FN:308,(anonymous_11) -FN:322,loadCookies -FN:344,isCookieExpired -FN:380,loadValuesFromLatestPage -FN:414,getValuesFromLatestPage -FN:441,loginF95 -FN:505,getUserWatchedGameThreads -FN:571,getSearchGameResults -FN:616,getOnlyGameThreads -FNF:20 -FNH:15 -FNDA:0,(anonymous_0) -FNDA:0,(anonymous_1) +FN:38,(anonymous_0) +FN:46,(anonymous_1) +FN:55,(anonymous_2) +FN:63,(anonymous_3) +FN:71,(anonymous_4) +FN:82,(anonymous_5) +FN:100,(anonymous_6) +FN:147,(anonymous_7) +FN:196,(anonymous_8) +FN:226,(anonymous_9) +FN:263,(anonymous_10) +FN:289,(anonymous_11) +FN:335,(anonymous_12) +FN:359,loadCookies +FN:381,isCookieExpired +FN:417,loadValuesFromLatestPage +FN:451,getValuesFromLatestPage +FN:478,loginF95 +FN:545,getUserWatchedGameThreads +FNF:19 +FNH:16 +FNDA:1,(anonymous_0) +FNDA:9,(anonymous_1) FNDA:1,(anonymous_2) FNDA:0,(anonymous_3) FNDA:0,(anonymous_4) -FNDA:11,(anonymous_5) -FNDA:5,(anonymous_6) -FNDA:1,(anonymous_7) -FNDA:3,(anonymous_8) -FNDA:2,(anonymous_9) -FNDA:9,(anonymous_10) -FNDA:0,(anonymous_11) -FNDA:12,loadCookies -FNDA:49,isCookieExpired +FNDA:0,(anonymous_5) +FNDA:11,(anonymous_6) +FNDA:4,(anonymous_7) +FNDA:2,(anonymous_8) +FNDA:3,(anonymous_9) +FNDA:1,(anonymous_10) +FNDA:2,(anonymous_11) +FNDA:5,(anonymous_12) +FNDA:11,loadCookies +FNDA:42,isCookieExpired FNDA:6,loadValuesFromLatestPage FNDA:2,getValuesFromLatestPage FNDA:5,loginF95 FNDA:1,getUserWatchedGameThreads -FNDA:2,getSearchGameResults -FNDA:12,getOnlyGameThreads DA:4,1 DA:7,1 DA:8,1 DA:9,1 -DA:10,1 -DA:11,1 +DA:14,1 DA:15,1 -DA:16,1 -DA:17,1 -DA:18,1 -DA:21,1 -DA:22,1 +DA:19,1 +DA:20,1 DA:23,1 -DA:31,1 -DA:32,0 +DA:24,1 +DA:25,1 +DA:28,1 +DA:29,1 +DA:30,1 +DA:38,1 DA:39,1 -DA:40,0 -DA:48,1 -DA:49,1 +DA:46,1 +DA:47,9 +DA:55,1 DA:56,1 -DA:57,0 -DA:64,1 -DA:65,0 -DA:68,0 -DA:73,1 -DA:85,1 -DA:86,11 -DA:87,1 +DA:63,1 +DA:64,0 +DA:71,1 +DA:72,0 +DA:75,0 +DA:82,1 +DA:83,0 DA:88,1 -DA:89,1 -DA:90,1 -DA:91,1 -DA:95,10 -DA:96,10 -DA:97,5 -DA:98,5 -DA:99,5 -DA:100,5 -DA:101,5 -DA:102,5 -DA:106,5 -DA:107,0 -DA:109,5 -DA:110,5 -DA:112,0 -DA:113,0 -DA:116,5 -DA:117,5 -DA:119,5 -DA:121,2 -DA:122,2 -DA:124,3 -DA:126,5 +DA:100,1 +DA:101,11 +DA:102,2 +DA:103,2 +DA:104,2 +DA:105,2 +DA:106,2 +DA:110,9 +DA:111,9 +DA:112,4 +DA:113,4 +DA:114,4 +DA:115,4 +DA:116,4 +DA:117,4 +DA:121,5 +DA:122,5 +DA:124,5 +DA:125,5 DA:127,5 -DA:136,1 +DA:128,5 +DA:130,5 +DA:132,2 +DA:133,2 +DA:135,3 DA:137,5 -DA:138,1 -DA:139,1 -DA:142,4 -DA:145,4 -DA:146,4 -DA:148,0 -DA:149,0 -DA:152,4 -DA:153,4 +DA:138,5 +DA:147,1 +DA:148,4 +DA:149,1 +DA:150,1 +DA:153,3 DA:156,3 -DA:161,3 -DA:162,3 -DA:170,3 -DA:171,3 +DA:157,3 +DA:159,3 +DA:160,3 +DA:163,3 +DA:168,3 +DA:169,3 +DA:177,3 DA:178,3 -DA:179,3 -DA:180,3 -DA:189,1 -DA:190,1 -DA:191,0 -DA:192,0 -DA:195,1 -DA:198,1 +DA:185,3 +DA:186,3 +DA:187,3 +DA:196,1 +DA:197,2 +DA:198,0 DA:199,0 -DA:210,1 -DA:211,3 -DA:212,1 -DA:213,1 -DA:217,2 -DA:218,2 -DA:220,0 -DA:221,0 -DA:223,2 -DA:226,2 -DA:227,2 -DA:229,4 +DA:204,2 +DA:205,2 +DA:208,2 +DA:209,2 +DA:211,2 +DA:213,2 +DA:215,2 +DA:226,1 +DA:227,3 +DA:228,1 +DA:229,1 DA:233,2 DA:234,2 -DA:236,4 -DA:237,2 -DA:240,2 -DA:241,2 -DA:249,1 +DA:235,2 +DA:238,2 +DA:239,2 +DA:241,4 +DA:245,2 +DA:246,2 +DA:248,4 +DA:249,4 DA:250,2 -DA:251,1 -DA:252,1 -DA:256,1 -DA:257,1 -DA:259,0 -DA:260,0 -DA:262,1 +DA:253,2 +DA:254,2 DA:263,1 DA:264,1 -DA:267,1 -DA:268,1 +DA:265,0 +DA:266,0 DA:270,1 -DA:272,1 +DA:271,1 +DA:274,1 +DA:275,1 DA:278,1 -DA:284,1 -DA:285,1 -DA:286,1 -DA:287,1 +DA:280,1 +DA:281,1 DA:289,1 -DA:290,1 +DA:290,2 +DA:291,1 DA:292,1 +DA:296,1 +DA:297,1 +DA:298,1 DA:299,1 -DA:300,9 -DA:301,3 -DA:302,3 -DA:304,6 -DA:307,6 -DA:308,0 -DA:324,12 -DA:326,7 -DA:327,7 -DA:330,7 -DA:331,49 -DA:335,7 +DA:300,1 +DA:303,1 +DA:304,1 +DA:306,1 +DA:308,1 +DA:314,1 +DA:320,1 +DA:321,1 +DA:322,1 +DA:323,1 +DA:325,1 +DA:326,1 +DA:328,1 +DA:335,1 DA:336,5 -DA:346,49 -DA:349,49 -DA:351,49 -DA:353,49 -DA:355,49 -DA:356,0 -DA:357,0 -DA:360,0 -DA:364,49 -DA:387,6 -DA:388,6 -DA:389,4 -DA:390,4 -DA:394,2 -DA:395,0 -DA:396,2 -DA:401,2 -DA:402,2 -DA:415,2 -DA:417,2 -DA:418,2 -DA:420,2 -DA:421,17 -DA:426,17 -DA:428,2 -DA:442,5 -DA:443,5 -DA:446,5 -DA:447,5 -DA:448,5 -DA:449,5 -DA:450,5 -DA:451,5 -DA:452,5 -DA:457,5 -DA:460,5 -DA:467,5 -DA:468,2 -DA:469,2 -DA:470,2 -DA:473,3 -DA:480,3 -DA:486,3 -DA:487,1 -DA:488,2 -DA:492,2 -DA:493,0 -DA:494,0 -DA:496,5 +DA:337,0 +DA:338,0 +DA:340,5 +DA:343,5 +DA:344,0 +DA:345,0 +DA:361,11 +DA:363,6 +DA:364,6 +DA:367,6 +DA:368,42 +DA:372,6 +DA:373,5 +DA:383,42 +DA:386,42 +DA:388,42 +DA:390,42 +DA:392,42 +DA:393,0 +DA:394,0 +DA:397,0 +DA:401,42 +DA:424,6 +DA:425,6 +DA:426,4 +DA:427,4 +DA:431,2 +DA:432,2 +DA:433,2 +DA:438,2 +DA:439,2 +DA:452,2 +DA:454,2 +DA:455,2 +DA:457,2 +DA:458,17 +DA:463,17 +DA:465,2 +DA:479,5 +DA:480,5 +DA:483,5 +DA:484,5 +DA:485,5 +DA:487,5 +DA:488,5 +DA:489,5 DA:497,5 -DA:506,1 -DA:507,1 -DA:510,1 -DA:513,1 -DA:514,1 -DA:515,1 -DA:516,1 -DA:519,1 -DA:525,1 -DA:528,1 -DA:529,1 -DA:532,1 -DA:533,1 -DA:534,1 -DA:536,3 -DA:537,48 -DA:542,48 -DA:543,48 -DA:546,3 -DA:552,3 -DA:553,2 -DA:554,2 -DA:558,1 +DA:500,5 +DA:507,5 +DA:508,2 +DA:509,2 +DA:510,2 +DA:513,3 +DA:520,3 +DA:526,3 +DA:527,1 +DA:528,2 +DA:532,2 +DA:533,0 +DA:534,0 +DA:536,5 +DA:537,5 +DA:546,1 +DA:547,1 +DA:550,1 +DA:553,1 +DA:554,1 +DA:555,1 +DA:556,1 DA:559,1 -DA:572,2 -DA:574,2 -DA:575,2 -DA:576,2 -DA:581,2 -DA:582,2 -DA:583,2 -DA:585,2 -DA:586,2 -DA:587,2 -DA:588,2 +DA:565,1 +DA:568,1 +DA:569,1 +DA:572,1 +DA:573,1 +DA:574,1 +DA:576,3 +DA:577,50 +DA:582,50 +DA:583,50 +DA:586,3 +DA:592,3 DA:593,2 -DA:596,2 -DA:597,2 -DA:598,2 -DA:599,12 -DA:602,12 -DA:604,2 -DA:605,2 -DA:607,2 -DA:617,12 -DA:620,12 -DA:624,12 -DA:627,12 -DA:629,16 -DA:633,16 -DA:636,16 -DA:638,4 -LF:237 -LH:213 -BRDA:68,0,0,0 -BRDA:68,0,1,0 -BRDA:86,1,0,1 -BRDA:86,1,1,10 -BRDA:87,2,0,0 -BRDA:87,2,1,1 -BRDA:96,3,0,5 -BRDA:96,3,1,5 -BRDA:97,4,0,0 -BRDA:97,4,1,5 -BRDA:106,5,0,0 -BRDA:106,5,1,5 -BRDA:110,6,0,5 -BRDA:110,6,1,0 -BRDA:112,7,0,0 -BRDA:112,7,1,0 -BRDA:119,8,0,2 -BRDA:119,8,1,3 -BRDA:122,9,0,0 -BRDA:122,9,1,2 -BRDA:126,10,0,5 -BRDA:126,10,1,0 -BRDA:137,11,0,1 -BRDA:137,11,1,4 -BRDA:142,12,0,0 -BRDA:142,12,1,4 -BRDA:146,13,0,4 -BRDA:146,13,1,0 -BRDA:148,14,0,0 -BRDA:148,14,1,0 -BRDA:178,15,0,3 -BRDA:178,15,1,0 -BRDA:179,16,0,0 -BRDA:179,16,1,3 -BRDA:190,17,0,0 -BRDA:190,17,1,1 -BRDA:198,18,0,1 -BRDA:198,18,1,0 -BRDA:211,19,0,1 -BRDA:211,19,1,2 -BRDA:218,20,0,2 -BRDA:218,20,1,0 -BRDA:220,21,0,0 -BRDA:220,21,1,0 -BRDA:236,22,0,2 -BRDA:236,22,1,2 -BRDA:236,23,0,4 -BRDA:236,23,1,2 -BRDA:240,24,0,2 -BRDA:240,24,1,0 -BRDA:250,25,0,1 -BRDA:250,25,1,1 -BRDA:257,26,0,1 -BRDA:257,26,1,0 -BRDA:259,27,0,0 -BRDA:259,27,1,0 -BRDA:286,28,0,1 -BRDA:286,28,1,0 -BRDA:290,29,0,1 -BRDA:290,29,1,0 -BRDA:300,30,0,3 -BRDA:300,30,1,6 -BRDA:307,31,0,0 -BRDA:307,31,1,6 -BRDA:307,32,0,6 -BRDA:307,32,1,0 -BRDA:324,33,0,7 -BRDA:324,33,1,5 -BRDA:331,34,0,0 -BRDA:331,34,1,49 -BRDA:351,35,0,49 -BRDA:351,35,1,0 -BRDA:355,36,0,0 -BRDA:355,36,1,49 -BRDA:356,37,0,0 -BRDA:356,37,1,0 -BRDA:387,38,0,0 -BRDA:387,38,1,6 -BRDA:388,39,0,4 -BRDA:388,39,1,2 -BRDA:394,40,0,0 -BRDA:394,40,1,2 -BRDA:415,41,0,0 -BRDA:415,41,1,2 -BRDA:467,42,0,2 -BRDA:467,42,1,3 -BRDA:473,43,0,3 -BRDA:473,43,1,0 -BRDA:486,44,0,1 -BRDA:486,44,1,2 -BRDA:488,45,0,2 -BRDA:488,45,1,0 -BRDA:552,46,0,2 -BRDA:552,46,1,1 -BRDA:572,47,0,0 -BRDA:572,47,1,2 -BRDA:596,48,0,0 -BRDA:596,48,1,2 -BRDA:602,49,0,4 -BRDA:602,49,1,8 -BRDA:604,50,0,0 -BRDA:604,50,1,2 -BRDA:636,51,0,8 -BRDA:636,51,1,8 -BRF:104 -BRH:62 +DA:594,2 +DA:598,1 +DA:599,1 +LF:220 +LH:203 +BRDA:75,0,0,0 +BRDA:75,0,1,0 +BRDA:101,1,0,2 +BRDA:101,1,1,9 +BRDA:102,2,0,2 +BRDA:102,2,1,0 +BRDA:111,3,0,4 +BRDA:111,3,1,5 +BRDA:112,4,0,4 +BRDA:112,4,1,0 +BRDA:121,5,0,5 +BRDA:121,5,1,0 +BRDA:124,6,0,0 +BRDA:124,6,1,5 +BRDA:124,7,0,5 +BRDA:124,7,1,5 +BRDA:125,8,0,5 +BRDA:125,8,1,0 +BRDA:130,9,0,2 +BRDA:130,9,1,3 +BRDA:133,10,0,2 +BRDA:133,10,1,0 +BRDA:137,11,0,5 +BRDA:137,11,1,0 +BRDA:148,12,0,1 +BRDA:148,12,1,3 +BRDA:148,13,0,4 +BRDA:148,13,1,3 +BRDA:153,14,0,3 +BRDA:153,14,1,0 +BRDA:156,15,0,0 +BRDA:156,15,1,3 +BRDA:156,16,0,3 +BRDA:156,16,1,3 +BRDA:157,17,0,3 +BRDA:157,17,1,0 +BRDA:185,18,0,3 +BRDA:185,18,1,0 +BRDA:186,19,0,3 +BRDA:186,19,1,0 +BRDA:197,20,0,0 +BRDA:197,20,1,2 +BRDA:197,21,0,2 +BRDA:197,21,1,2 +BRDA:205,22,0,0 +BRDA:205,22,1,2 +BRDA:208,23,0,0 +BRDA:208,23,1,2 +BRDA:208,24,0,2 +BRDA:208,24,1,2 +BRDA:209,25,0,2 +BRDA:209,25,1,0 +BRDA:213,26,0,2 +BRDA:213,26,1,0 +BRDA:227,27,0,1 +BRDA:227,27,1,2 +BRDA:227,28,0,3 +BRDA:227,28,1,2 +BRDA:233,29,0,0 +BRDA:233,29,1,2 +BRDA:233,30,0,2 +BRDA:233,30,1,2 +BRDA:234,31,0,2 +BRDA:234,31,1,0 +BRDA:248,32,0,0 +BRDA:248,32,1,4 +BRDA:249,33,0,2 +BRDA:249,33,1,2 +BRDA:249,34,0,4 +BRDA:249,34,1,2 +BRDA:253,35,0,2 +BRDA:253,35,1,0 +BRDA:264,36,0,0 +BRDA:264,36,1,1 +BRDA:264,37,0,1 +BRDA:264,37,1,1 +BRDA:270,38,0,0 +BRDA:270,38,1,1 +BRDA:271,39,0,0 +BRDA:271,39,1,1 +BRDA:274,40,0,0 +BRDA:274,40,1,1 +BRDA:274,41,0,1 +BRDA:274,41,1,1 +BRDA:275,42,0,1 +BRDA:275,42,1,0 +BRDA:280,43,0,1 +BRDA:280,43,1,0 +BRDA:290,44,0,1 +BRDA:290,44,1,1 +BRDA:290,45,0,2 +BRDA:290,45,1,1 +BRDA:296,46,0,0 +BRDA:296,46,1,1 +BRDA:296,47,0,1 +BRDA:296,47,1,1 +BRDA:297,48,0,1 +BRDA:297,48,1,0 +BRDA:322,49,0,1 +BRDA:322,49,1,0 +BRDA:326,50,0,1 +BRDA:326,50,1,0 +BRDA:336,51,0,0 +BRDA:336,51,1,5 +BRDA:336,52,0,5 +BRDA:336,52,1,5 +BRDA:343,53,0,0 +BRDA:343,53,1,5 +BRDA:343,54,0,5 +BRDA:343,54,1,0 +BRDA:361,55,0,6 +BRDA:361,55,1,5 +BRDA:368,56,0,0 +BRDA:368,56,1,42 +BRDA:388,57,0,42 +BRDA:388,57,1,0 +BRDA:392,58,0,0 +BRDA:392,58,1,42 +BRDA:393,59,0,0 +BRDA:393,59,1,0 +BRDA:424,60,0,6 +BRDA:424,60,1,0 +BRDA:425,61,0,4 +BRDA:425,61,1,2 +BRDA:431,62,0,2 +BRDA:431,62,1,0 +BRDA:452,63,0,2 +BRDA:452,63,1,0 +BRDA:507,64,0,2 +BRDA:507,64,1,3 +BRDA:513,65,0,3 +BRDA:513,65,1,0 +BRDA:526,66,0,1 +BRDA:526,66,1,2 +BRDA:528,67,0,2 +BRDA:528,67,1,0 +BRDA:592,68,0,2 +BRDA:592,68,1,1 +BRF:138 +BRH:92 end_of_record TN: SF:app\scripts\game-scraper.js -FN:22,(anonymous_0) -FN:78,getOverview -FN:93,getMainPostStructuredText -FN:111,getGameAuthor -FN:135,parseConversationPage -FN:161,getGamePreviewSource -FN:183,getGameTitle -FN:204,getGameTags -FN:226,parsePrefixes -FN:255,getGameDownloadLink -FN:322,extractGameHostingData -FNF:11 -FNH:11 -FNDA:4,(anonymous_0) -FNDA:4,getOverview -FNDA:4,getMainPostStructuredText -FNDA:4,getGameAuthor -FNDA:4,parseConversationPage -FNDA:4,getGamePreviewSource -FNDA:4,getGameTitle -FNDA:4,getGameTags -FNDA:4,parsePrefixes -FNDA:4,getGameDownloadLink -FNDA:8,extractGameHostingData +FN:23,(anonymous_0) +FN:80,(anonymous_1) +FN:112,getOverview +FN:127,getMainPostStructuredText +FN:145,getGameAuthor +FN:169,parseConversationPage +FN:195,getGamePreviewSource +FN:217,getGameTitle +FN:238,getGameTags +FN:260,parsePrefixes +FN:289,getGameDownloadLink +FN:356,extractGameHostingData +FNF:12 +FNH:10 +FNDA:5,(anonymous_0) +FNDA:2,(anonymous_1) +FNDA:5,getOverview +FNDA:5,getMainPostStructuredText +FNDA:5,getGameAuthor +FNDA:5,parseConversationPage +FNDA:5,getGamePreviewSource +FNDA:5,getGameTitle +FNDA:5,getGameTags +FNDA:5,parsePrefixes +FNDA:0,getGameDownloadLink +FNDA:0,extractGameHostingData DA:4,1 DA:5,1 DA:8,1 @@ -422,204 +439,290 @@ DA:10,1 DA:11,1 DA:12,1 DA:13,1 -DA:22,1 -DA:23,4 -DA:26,4 -DA:27,4 -DA:28,4 -DA:30,4 -DA:31,4 -DA:32,4 -DA:38,4 -DA:39,4 -DA:40,4 -DA:41,4 -DA:42,4 -DA:43,4 -DA:44,4 -DA:45,4 -DA:46,4 -DA:47,4 -DA:50,4 -DA:51,4 -DA:52,4 -DA:53,4 -DA:54,4 -DA:55,4 -DA:58,4 -DA:61,4 -DA:62,4 -DA:64,4 -DA:65,4 -DA:66,4 -DA:81,4 +DA:23,1 +DA:24,5 +DA:27,5 +DA:28,5 +DA:29,5 +DA:31,5 +DA:32,5 +DA:33,5 +DA:39,5 +DA:40,5 +DA:41,5 +DA:42,5 +DA:43,5 +DA:45,5 +DA:46,5 +DA:47,5 +DA:48,5 +DA:51,5 +DA:52,5 +DA:53,5 +DA:54,5 +DA:55,5 +DA:56,5 +DA:59,5 +DA:62,5 +DA:69,5 +DA:70,5 +DA:71,5 +DA:80,1 +DA:81,2 DA:82,2 -DA:83,4 -DA:95,4 -DA:98,4 -DA:102,4 -DA:113,4 -DA:118,4 -DA:121,4 -DA:124,4 -DA:125,4 -DA:136,4 -DA:139,4 -DA:140,4 -DA:141,838 -DA:144,228 -DA:145,228 -DA:146,228 -DA:149,228 -DA:152,4 -DA:162,4 -DA:174,4 -DA:185,4 -DA:190,4 -DA:193,4 -DA:194,4 -DA:195,4 -DA:205,4 -DA:208,4 -DA:209,28 -DA:213,28 -DA:215,4 -DA:227,4 -DA:230,4 -DA:231,4 -DA:232,8 -DA:238,8 -DA:241,8 -DA:242,8 -DA:244,4 -DA:246,4 -DA:257,4 -DA:268,4 -DA:271,4 -DA:272,4 -DA:277,4 +DA:83,2 +DA:88,2 +DA:93,2 +DA:96,2 +DA:97,2 +DA:98,2 +DA:99,2 +DA:100,2 +DA:115,5 +DA:116,3 +DA:117,5 +DA:129,5 +DA:132,5 +DA:136,5 +DA:147,5 +DA:152,5 +DA:155,5 +DA:158,5 +DA:159,5 +DA:170,5 +DA:173,5 +DA:174,5 +DA:175,1161 +DA:178,310 +DA:179,310 +DA:180,310 +DA:183,310 +DA:186,5 +DA:196,5 +DA:208,5 +DA:219,5 +DA:224,5 +DA:227,5 +DA:228,5 +DA:229,5 +DA:239,5 +DA:242,5 +DA:243,46 +DA:247,46 +DA:249,5 +DA:261,5 +DA:264,5 +DA:265,5 +DA:266,9 +DA:272,9 +DA:275,9 +DA:276,9 DA:278,4 -DA:279,16 -DA:280,14 -DA:288,14 -DA:289,86 -DA:290,2 -DA:291,2 -DA:295,4 -DA:298,2 -DA:306,2 -DA:307,2 -DA:308,8 -DA:309,8 -DA:311,2 -DA:323,8 -DA:324,8 -DA:325,8 -DA:326,8 -DA:327,8 -DA:328,8 -DA:329,8 -DA:332,8 -DA:333,8 -DA:334,6 -DA:338,6 -DA:341,6 +DA:280,5 +DA:291,0 +DA:302,0 +DA:305,0 +DA:306,0 +DA:311,0 +DA:312,0 +DA:313,0 +DA:314,0 +DA:322,0 +DA:323,0 +DA:324,0 +DA:325,0 +DA:329,0 +DA:332,0 +DA:340,0 +DA:341,0 DA:342,0 -DA:345,6 -DA:347,6 -DA:348,6 -DA:349,6 -DA:351,30 -DA:354,24 -DA:355,24 -DA:356,24 -DA:359,24 -DA:360,24 -DA:361,24 -DA:363,24 -DA:364,24 -DA:365,24 -DA:366,24 -DA:367,24 -DA:369,24 -DA:372,6 -LF:129 -LH:128 -BRDA:23,0,0,0 -BRDA:23,0,1,4 -BRDA:26,1,0,0 -BRDA:26,1,1,4 -BRDA:28,2,0,0 -BRDA:28,2,1,4 -BRDA:55,3,0,2 -BRDA:55,3,1,2 -BRDA:58,4,0,2 -BRDA:58,4,1,2 -BRDA:65,5,0,0 -BRDA:65,5,1,4 -BRDA:81,6,0,2 -BRDA:81,6,1,2 -BRDA:141,7,0,610 -BRDA:141,7,1,228 -BRDA:149,8,0,124 -BRDA:149,8,1,104 -BRDA:174,9,0,2 -BRDA:174,9,1,2 -BRDA:241,10,0,0 -BRDA:241,10,1,8 -BRDA:242,11,0,4 -BRDA:242,11,1,4 -BRDA:244,12,0,2 -BRDA:244,12,1,2 -BRDA:272,13,0,0 -BRDA:272,13,1,4 -BRDA:279,14,0,2 -BRDA:279,14,1,14 -BRDA:289,15,0,2 -BRDA:289,15,1,84 -BRDA:295,16,0,2 -BRDA:295,16,1,2 -BRDA:333,17,0,2 -BRDA:333,17,1,6 -BRDA:341,18,0,0 -BRDA:341,18,1,6 -BRDA:351,19,0,6 -BRDA:351,19,1,24 -BRDA:363,20,0,24 -BRDA:363,20,1,0 -BRF:42 -BRH:34 +DA:343,0 +DA:345,0 +DA:357,0 +DA:358,0 +DA:359,0 +DA:360,0 +DA:361,0 +DA:362,0 +DA:363,0 +DA:366,0 +DA:367,0 +DA:368,0 +DA:372,0 +DA:375,0 +DA:376,0 +DA:379,0 +DA:381,0 +DA:382,0 +DA:383,0 +DA:385,0 +DA:388,0 +DA:389,0 +DA:390,0 +DA:393,0 +DA:394,0 +DA:395,0 +DA:397,0 +DA:398,0 +DA:399,0 +DA:400,0 +DA:401,0 +DA:403,0 +DA:406,0 +LF:138 +LH:88 +BRDA:24,0,0,5 +BRDA:24,0,1,0 +BRDA:27,1,0,0 +BRDA:27,1,1,5 +BRDA:29,2,0,0 +BRDA:29,2,1,5 +BRDA:56,3,0,2 +BRDA:56,3,1,3 +BRDA:59,4,0,2 +BRDA:59,4,1,3 +BRDA:70,5,0,5 +BRDA:70,5,1,0 +BRDA:99,6,0,2 +BRDA:99,6,1,0 +BRDA:115,7,0,2 +BRDA:115,7,1,3 +BRDA:175,8,0,851 +BRDA:175,8,1,310 +BRDA:183,9,0,151 +BRDA:183,9,1,159 +BRDA:208,10,0,5 +BRDA:208,10,1,0 +BRDA:275,11,0,0 +BRDA:275,11,1,9 +BRDA:276,12,0,5 +BRDA:276,12,1,4 +BRDA:278,13,0,2 +BRDA:278,13,1,2 +BRDA:306,14,0,0 +BRDA:306,14,1,0 +BRDA:313,15,0,0 +BRDA:313,15,1,0 +BRDA:323,16,0,0 +BRDA:323,16,1,0 +BRDA:329,17,0,0 +BRDA:329,17,1,0 +BRDA:367,18,0,0 +BRDA:367,18,1,0 +BRDA:375,19,0,0 +BRDA:375,19,1,0 +BRDA:385,20,0,0 +BRDA:385,20,1,0 +BRDA:397,21,0,0 +BRDA:397,21,1,0 +BRF:44 +BRH:21 +end_of_record +TN: +SF:app\scripts\game-searcher.js +FN:19,(anonymous_0) +FN:66,getOnlyGameThreads +FN:86,getMembershipForum +FN:113,getThreadURL +FNF:4 +FNH:4 +FNDA:2,(anonymous_0) +FNDA:12,getOnlyGameThreads +FNDA:12,getMembershipForum +FNDA:4,getThreadURL +DA:4,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:19,1 +DA:20,2 +DA:22,2 +DA:23,2 +DA:24,2 +DA:29,2 +DA:30,2 +DA:31,2 +DA:33,2 +DA:34,2 +DA:35,2 +DA:43,2 +DA:46,2 +DA:47,2 +DA:48,2 +DA:49,12 +DA:50,12 +DA:52,2 +DA:53,2 +DA:55,2 +DA:68,12 +DA:69,12 +DA:72,12 +DA:73,12 +DA:76,4 +DA:92,12 +DA:99,12 +DA:100,12 +DA:101,12 +DA:103,12 +DA:114,4 +DA:119,4 +DA:120,4 +LF:38 +LH:38 +BRDA:20,0,0,2 +BRDA:20,0,1,0 +BRDA:46,1,0,2 +BRDA:46,1,1,0 +BRDA:50,2,0,4 +BRDA:50,2,1,8 +BRDA:52,3,0,2 +BRDA:52,3,1,0 +BRDA:73,4,0,8 +BRDA:73,4,1,4 +BRDA:73,5,0,12 +BRDA:73,5,1,10 +BRF:12 +BRH:9 end_of_record TN: SF:app\scripts\puppeteer-helper.js FN:15,(anonymous_0) -FN:31,(anonymous_1) -FN:37,(anonymous_2) +FN:39,(anonymous_1) +FN:45,(anonymous_2) FNF:3 FNH:3 -FNDA:12,(anonymous_0) -FNDA:17,(anonymous_1) -FNDA:1974,(anonymous_2) +FNDA:14,(anonymous_0) +FNDA:19,(anonymous_1) +FNDA:1914,(anonymous_2) DA:4,1 DA:7,1 DA:15,1 -DA:17,12 -DA:21,12 -DA:31,1 -DA:33,17 -DA:36,17 -DA:37,17 -DA:38,1974 -DA:41,1235 -DA:45,17 -DA:47,17 -DA:49,17 -LF:14 -LH:14 -BRDA:38,0,0,739 -BRDA:38,0,1,1235 -BRF:2 -BRH:2 +DA:17,14 +DA:18,14 +DA:19,0 +DA:24,14 +DA:29,14 +DA:39,1 +DA:41,19 +DA:44,19 +DA:45,19 +DA:46,1914 +DA:47,1271 +DA:50,1271 +DA:55,19 +DA:57,19 +DA:59,19 +LF:18 +LH:17 +BRDA:18,0,0,0 +BRDA:18,0,1,14 +BRDA:46,1,0,643 +BRDA:46,1,1,1271 +BRDA:47,2,0,0 +BRDA:47,2,1,1271 +BRF:6 +BRH:4 end_of_record TN: SF:app\scripts\shared.js @@ -641,23 +744,23 @@ FN:145,(anonymous_14) FN:149,(anonymous_15) FN:153,(anonymous_16) FNF:17 -FNH:14 -FNDA:56,(anonymous_0) -FNDA:31,(anonymous_1) -FNDA:21,(anonymous_2) -FNDA:8,(anonymous_3) -FNDA:8,(anonymous_4) +FNH:15 +FNDA:59,(anonymous_0) +FNDA:37,(anonymous_1) +FNDA:36,(anonymous_2) +FNDA:9,(anonymous_3) +FNDA:9,(anonymous_4) FNDA:0,(anonymous_5) -FNDA:21,(anonymous_6) +FNDA:19,(anonymous_6) FNDA:3,(anonymous_7) FNDA:3,(anonymous_8) -FNDA:29,(anonymous_9) -FNDA:12,(anonymous_10) +FNDA:47,(anonymous_9) +FNDA:11,(anonymous_10) FNDA:3,(anonymous_11) FNDA:3,(anonymous_12) FNDA:0,(anonymous_13) -FNDA:0,(anonymous_14) -FNDA:16,(anonymous_15) +FNDA:1,(anonymous_14) +FNDA:14,(anonymous_15) FNDA:1,(anonymous_16) DA:4,1 DA:15,1 @@ -668,26 +771,26 @@ DA:35,1 DA:40,1 DA:45,1 DA:51,1 -DA:60,56 -DA:67,31 -DA:74,21 -DA:81,8 -DA:88,8 +DA:60,59 +DA:67,37 +DA:74,36 +DA:81,9 +DA:88,9 DA:95,0 -DA:102,21 +DA:102,19 DA:109,3 DA:116,3 -DA:124,29 -DA:130,12 +DA:124,47 +DA:130,11 DA:134,3 DA:138,3 DA:142,0 -DA:146,0 -DA:150,16 +DA:146,1 +DA:150,14 DA:154,1 DA:159,1 LF:27 -LH:24 +LH:25 BRF:0 BRH:0 end_of_record @@ -698,66 +801,45 @@ FN:28,(anonymous_1) FN:44,(anonymous_2) FNF:3 FNH:3 -FNDA:4,(anonymous_0) -FNDA:34,(anonymous_1) -FNDA:5,(anonymous_2) +FNDA:6,(anonymous_0) +FNDA:14,(anonymous_1) +FNDA:8,(anonymous_2) DA:4,1 DA:9,1 DA:17,1 -DA:18,4 +DA:18,6 DA:19,0 DA:28,1 -DA:29,34 -DA:30,34 -DA:31,32 -DA:33,2 +DA:29,14 +DA:30,14 +DA:31,14 +DA:33,0 DA:44,1 -DA:45,5 +DA:45,8 DA:46,0 -DA:49,5 -DA:50,5 -DA:52,5 -DA:54,5 -DA:55,0 +DA:49,8 +DA:50,8 +DA:52,8 +DA:54,8 +DA:55,2 DA:56,0 -DA:59,5 +DA:59,8 LF:20 LH:16 -BRDA:18,0,0,4 +BRDA:18,0,0,6 BRDA:18,0,1,0 BRDA:45,1,0,0 -BRDA:45,1,1,5 -BRDA:50,2,0,5 -BRDA:50,2,1,5 +BRDA:45,1,1,8 +BRDA:50,2,0,8 +BRDA:50,2,1,8 BRDA:52,3,0,0 -BRDA:52,3,1,5 -BRDA:54,4,0,0 -BRDA:54,4,1,5 -BRDA:55,5,0,0 +BRDA:52,3,1,8 +BRDA:54,4,0,2 +BRDA:54,4,1,6 +BRDA:55,5,0,2 BRDA:55,5,1,0 BRF:12 -BRH:6 -end_of_record -TN: -SF:app\scripts\classes\game-download.js -FN:4,(anonymous_0) -FN:31,(anonymous_1) -FN:35,downloadMEGA -FN:37,downloadNOPY -FNF:4 -FNH:1 -FNDA:24,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:0,downloadMEGA -FNDA:0,downloadNOPY -DA:10,24 -DA:16,24 -DA:23,24 -DA:33,1 -LF:4 -LH:4 -BRF:0 -BRH:0 +BRH:8 end_of_record TN: SF:app\scripts\classes\game-info.js @@ -766,24 +848,24 @@ FN:86,(anonymous_1) FN:109,(anonymous_2) FNF:3 FNH:1 -FNDA:4,(anonymous_0) +FNDA:5,(anonymous_0) FNDA:0,(anonymous_1) FNDA:0,(anonymous_2) DA:3,1 -DA:12,4 -DA:17,4 -DA:22,4 -DA:27,4 -DA:32,4 -DA:37,4 -DA:42,4 -DA:47,4 -DA:52,4 -DA:57,4 -DA:62,4 -DA:67,4 -DA:72,4 -DA:79,4 +DA:12,5 +DA:17,5 +DA:22,5 +DA:27,5 +DA:32,5 +DA:37,5 +DA:42,5 +DA:47,5 +DA:52,5 +DA:57,5 +DA:62,5 +DA:67,5 +DA:72,5 +DA:79,5 DA:87,0 DA:110,0 DA:113,1 diff --git a/package.json b/package.json index 6389722..95e9001 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "main": "./app/index.js", "name": "f95api", - "version": "1.2.3", + "version": "1.2.4", "author": { "name": "Millennium Earl" }, From d996807c4e904e8d593fef6d46d0e0e018e2db50 Mon Sep 17 00:00:00 2001 From: "samuele.berlusconi" Date: Wed, 14 Oct 2020 16:04:50 +0200 Subject: [PATCH 05/13] Addes last changelog parser --- app/scripts/classes/game-info.js | 6 ++++++ app/scripts/constants/css-selectors.js | 1 + app/scripts/game-scraper.js | 21 +++++++++++++++++++++ app/scripts/game-searcher.js | 5 +++++ test/user-test.js | 2 +- 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/app/scripts/classes/game-info.js b/app/scripts/classes/game-info.js index 09ea559..f13aedf 100644 --- a/app/scripts/classes/game-info.js +++ b/app/scripts/classes/game-info.js @@ -65,6 +65,11 @@ class GameInfo { * @type Boolean */ this.isMod = false; + /** + * Changelog for the last version. + * @type String + */ + this.changelog = null; /** * Directory containing the local copy of the game * @type String @@ -96,6 +101,7 @@ class GameInfo { lastUpdate: this.lastUpdate, lastPlayed: this.lastPlayed, isMod: this.isMod, + changelog: this.changelog, gameDir: this.gameDir, downloadInfo: this.downloadInfo, }; diff --git a/app/scripts/constants/css-selectors.js b/app/scripts/constants/css-selectors.js index f36ecff..8b268c3 100644 --- a/app/scripts/constants/css-selectors.js +++ b/app/scripts/constants/css-selectors.js @@ -28,4 +28,5 @@ module.exports = Object.freeze({ DOWNLOAD_LINKS_CONTAINER: 'span[style="font-size: 18px"]', SEARCH_THREADS_RESULTS_BODY: "div.contentRow-main", SEARCH_THREADS_MEMBERSHIP: "li > a:not(.username)", + THREAD_LAST_CHANGELOG: "div.bbCodeBlock-content > div:first-of-type", }); diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index 92a553b..57c7a8d 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -46,6 +46,7 @@ module.exports.getGameInfo = async function (browser, url) { let structuredText = await getMainPostStructuredText(page); let overview = getOverview(structuredText, info.isMod); let parsedInfos = parseConversationPage(structuredText); + let changelog = getLastChangelog(page); // Fill in the GameInfo element with the information obtained info.name = await title; @@ -280,6 +281,26 @@ async function parsePrefixes(page, info) { return info; } +/** + * @private + * Get the last changelog available for the game. + * @param {puppeteer.Page} page Page containing the changelog + * @returns {String} Changelog for the last version + */ +async function getLastChangelog(page) { + // Gets the first post, where are listed all the game's informations + let post = (await page.$$(selectors.THREAD_POSTS))[0]; + + let spoiler = await post.$(selectors.THREAD_LAST_CHANGELOG); + let changelogHTML = await page.evaluate( + /* istanbul ignore next */ + (e) => e.innerText, + spoiler + ); + let parsedText = HTMLParser.parse(changelogHTML).structuredText; + return parsedText; +} + /** * @private * Get game download links for different platforms. diff --git a/app/scripts/game-searcher.js b/app/scripts/game-searcher.js index bf1a5ef..d34f97c 100644 --- a/app/scripts/game-searcher.js +++ b/app/scripts/game-searcher.js @@ -8,6 +8,7 @@ const shared = require("./shared.js"); const constURLs = require("./constants/urls.js"); const selectors = require("./constants/css-selectors.js"); const { preparePage } = require("./puppeteer-helper.js"); +const { isF95URL } = require("./urls-helper.js"); /** * @protected @@ -116,6 +117,10 @@ async function getThreadURL(page, handle) { (e) => e.querySelector("a").href, handle ); + + // Some game already have a full URL + if (isF95URL(relativeURLThread)) return relativeURLThread; + let urlThread = new URL(relativeURLThread, constURLs.F95_BASE_URL).toString(); return urlThread; } diff --git a/test/user-test.js b/test/user-test.js index 8e56a77..fd6236f 100644 --- a/test/user-test.js +++ b/test/user-test.js @@ -18,7 +18,7 @@ async function main() { if (loginResult.success) { await loadF95BaseData(); - let gameData = await getGameData("brothel king", false); + let gameData = await getGameData("queen's brothel", false); console.log(gameData); // let userData = await getUserData(); From 23f7d49d60e2e432a072f2935571df3cb2bc0286 Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2020 14:05:14 +0000 Subject: [PATCH 06/13] Format code with prettier This commit fixes the style issues introduced in d996807 according to the output from prettier. Details: https://deepsource.io/gh/MillenniumEarl/F95API/transform/a73c0d76-889e-4524-903b-6dffa512afe7/ --- app/scripts/game-scraper.js | 2 +- app/scripts/game-searcher.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index 57c7a8d..016f400 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -290,7 +290,7 @@ async function parsePrefixes(page, info) { async function getLastChangelog(page) { // Gets the first post, where are listed all the game's informations let post = (await page.$$(selectors.THREAD_POSTS))[0]; - + let spoiler = await post.$(selectors.THREAD_LAST_CHANGELOG); let changelogHTML = await page.evaluate( /* istanbul ignore next */ diff --git a/app/scripts/game-searcher.js b/app/scripts/game-searcher.js index d34f97c..5454a26 100644 --- a/app/scripts/game-searcher.js +++ b/app/scripts/game-searcher.js @@ -37,9 +37,9 @@ module.exports.getSearchGameResults = async function (browser, gamename) { page.click(selectors.SEARCH_BUTTON), // Execute search page.waitForNavigation({ waitUntil: shared.WAIT_STATEMENT, - }) // Wait for page to load + }), // Wait for page to load ]); - + // Select all conversation titles let resultsThread = await page.$$(selectors.SEARCH_THREADS_RESULTS_BODY); From 6eea0b17b4a5d0b2c3da816613b004fb4923d05a Mon Sep 17 00:00:00 2001 From: "samuele.berlusconi" Date: Wed, 14 Oct 2020 16:12:22 +0200 Subject: [PATCH 07/13] Bugfixes --- app/scripts/game-scraper.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index 57c7a8d..6cbcd53 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -61,6 +61,7 @@ module.exports.getGameInfo = async function (browser, url) { ? parsedInfos["UPDATED"] : parsedInfos["THREAD UPDATED"]; info.previewSource = await previewSource; + info.changelog = await changelog; //info.downloadInfo = await downloadData; /* Downloading games without going directly to * the platform appears to be prohibited by @@ -285,7 +286,7 @@ async function parsePrefixes(page, info) { * @private * Get the last changelog available for the game. * @param {puppeteer.Page} page Page containing the changelog - * @returns {String} Changelog for the last version + * @returns {Promise} Changelog for the last version */ async function getLastChangelog(page) { // Gets the first post, where are listed all the game's informations From 7f489f275a1066222274a6e665b8d9bc3f084a38 Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2020 14:12:52 +0000 Subject: [PATCH 08/13] Format code with prettier This commit fixes the style issues introduced in 6eea0b1 according to the output from prettier. Details: https://deepsource.io/gh/MillenniumEarl/F95API/transform/344f68b2-99a7-4b63-83ac-23542fd9a5d9/ --- app/scripts/game-scraper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index 6cbcd53..26b183a 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -291,7 +291,7 @@ async function parsePrefixes(page, info) { async function getLastChangelog(page) { // Gets the first post, where are listed all the game's informations let post = (await page.$$(selectors.THREAD_POSTS))[0]; - + let spoiler = await post.$(selectors.THREAD_LAST_CHANGELOG); let changelogHTML = await page.evaluate( /* istanbul ignore next */ From d0c1acebc4e5c3916d44e3011376c269b4aa9d01 Mon Sep 17 00:00:00 2001 From: "samuele.berlusconi" Date: Thu, 15 Oct 2020 16:47:52 +0200 Subject: [PATCH 09/13] Bugfix --- app/scripts/game-scraper.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index 6cbcd53..1981d17 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -61,7 +61,8 @@ module.exports.getGameInfo = async function (browser, url) { ? parsedInfos["UPDATED"] : parsedInfos["THREAD UPDATED"]; info.previewSource = await previewSource; - info.changelog = await changelog; + let temp = await changelog; + info.changelog = temp ? temp : "Unknown changelog"; //info.downloadInfo = await downloadData; /* Downloading games without going directly to * the platform appears to be prohibited by @@ -286,20 +287,22 @@ async function parsePrefixes(page, info) { * @private * Get the last changelog available for the game. * @param {puppeteer.Page} page Page containing the changelog - * @returns {Promise} Changelog for the last version + * @returns {Promise} Changelog for the last version or null if no changelog is found */ async function getLastChangelog(page) { // Gets the first post, where are listed all the game's informations let post = (await page.$$(selectors.THREAD_POSTS))[0]; let spoiler = await post.$(selectors.THREAD_LAST_CHANGELOG); + if(!spoiler) return null; + let changelogHTML = await page.evaluate( /* istanbul ignore next */ (e) => e.innerText, spoiler ); let parsedText = HTMLParser.parse(changelogHTML).structuredText; - return parsedText; + return parsedText.replace("Spolier", "").trim(); } /** From de4df9a80ba1a78148adb1d4b1bac61bfa4fd3dd Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 14:50:03 +0000 Subject: [PATCH 10/13] Format code with prettier This commit fixes the style issues introduced in d0c1ace according to the output from prettier. Details: https://deepsource.io/gh/MillenniumEarl/F95API/transform/048f934f-c8c9-43e6-9474-ff3e3ec8c687/ --- app/scripts/game-scraper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index 1981d17..ab969ad 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -292,9 +292,9 @@ async function parsePrefixes(page, info) { async function getLastChangelog(page) { // Gets the first post, where are listed all the game's informations let post = (await page.$$(selectors.THREAD_POSTS))[0]; - + let spoiler = await post.$(selectors.THREAD_LAST_CHANGELOG); - if(!spoiler) return null; + if (!spoiler) return null; let changelogHTML = await page.evaluate( /* istanbul ignore next */ From 03660d3a72b0defbf7ea9224b711bfc5a968ce17 Mon Sep 17 00:00:00 2001 From: "samuele.berlusconi" Date: Thu, 15 Oct 2020 17:08:56 +0200 Subject: [PATCH 11/13] Typo fix --- app/scripts/game-scraper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index 1981d17..fe4e667 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -302,7 +302,7 @@ async function getLastChangelog(page) { spoiler ); let parsedText = HTMLParser.parse(changelogHTML).structuredText; - return parsedText.replace("Spolier", "").trim(); + return parsedText.replace("Spoiler", "").trim(); } /** From 01ef304afbe05aab42451a7b574f533d7bcfeb03 Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 15:09:29 +0000 Subject: [PATCH 12/13] Format code with prettier This commit fixes the style issues introduced in 03660d3 according to the output from prettier. Details: https://deepsource.io/gh/MillenniumEarl/F95API/transform/55e6c967-a160-43ff-afb8-f7c9272e75a8/ --- app/scripts/game-scraper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/scripts/game-scraper.js b/app/scripts/game-scraper.js index fe4e667..b4bec0b 100644 --- a/app/scripts/game-scraper.js +++ b/app/scripts/game-scraper.js @@ -292,9 +292,9 @@ async function parsePrefixes(page, info) { async function getLastChangelog(page) { // Gets the first post, where are listed all the game's informations let post = (await page.$$(selectors.THREAD_POSTS))[0]; - + let spoiler = await post.$(selectors.THREAD_LAST_CHANGELOG); - if(!spoiler) return null; + if (!spoiler) return null; let changelogHTML = await page.evaluate( /* istanbul ignore next */ From c2ea93fdf340ddb8501bee2fb4565e39efc4ce0d Mon Sep 17 00:00:00 2001 From: "samuele.berlusconi" Date: Thu, 15 Oct 2020 21:15:48 +0200 Subject: [PATCH 13/13] Addes style_guide --- .deepsource.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.deepsource.toml b/.deepsource.toml index 177fc2f..1c110c9 100644 --- a/.deepsource.toml +++ b/.deepsource.toml @@ -13,6 +13,7 @@ enabled = true "nodejs", "mocha" ] + style_guide = "standard" [[transformers]] name = "prettier"