From 789c5aba3e7f40b87ffb19f2f63d3d81f255250b Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Mon, 4 May 2020 11:04:29 +0300 Subject: [PATCH] Improve resource scan Walk only unique paths --- package-lock.json | 30 +++++++++++------------ package.json | 4 +-- src/Action/GoToHeroVillageAction.ts | 2 +- src/ControlPanel.ts | 4 +-- src/DashboardView/VillageStateList.vue | 2 +- src/Helpers/Path.ts | 34 ++++++++++++++++++++++++++ src/Page/PageDetectors.ts | 2 +- src/Task/ActionBundles.ts | 2 +- src/Task/BalanceHeroResourcesTask.ts | 2 +- src/Task/BuildBuildingTask.ts | 2 +- src/Task/ForgeImprovementTask.ts | 2 +- src/Task/ResourcesToLevel.ts | 2 +- src/Task/SendOnAdventureTask.ts | 2 +- src/Task/SendResourcesTask.ts | 2 +- src/Task/TrainTroopTask.ts | 2 +- src/Task/UpdateResourceContracts.ts | 27 +++++++++++--------- src/Task/UpgradeBuildingTask.ts | 2 +- src/utils.ts | 14 ----------- tests/Helpers/PathTest.ts | 32 ++++++++++++++++++++++++ tsconfig.json | 2 +- 20 files changed, 113 insertions(+), 58 deletions(-) create mode 100644 src/Helpers/Path.ts create mode 100644 tests/Helpers/PathTest.ts diff --git a/package-lock.json b/package-lock.json index b206150..5bcf1f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -336,12 +336,6 @@ "integrity": "sha512-KlPPdikagvL6ELjWsljbyDIPzNCeliYkqRpI+zea99vBBbCIA5JNshZAwQKTON139c87y9qvTFVgkFd14rtS4g==", "dev": true }, - "@types/debounce": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.0.tgz", - "integrity": "sha512-bWG5wapaWgbss9E238T0R6bfo5Fh3OkeoSt245CM7JJwVwpw6MEBCbIxLq5z8KzsE3uJhzcIuQkyiZmzV3M/Dw==", - "dev": true - }, "@types/jquery": { "version": "3.3.34", "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.34.tgz", @@ -369,6 +363,12 @@ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", "dev": true }, + "@types/underscore": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.4.tgz", + "integrity": "sha512-CjHWEMECc2/UxOZh0kpiz3lEyX2Px3rQS9HzD20lxMvx571ivOBQKeLnqEjxUY0BMgp6WJWo/pQLRBwMW5v4WQ==", + "dev": true + }, "@types/url-parse": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/@types/url-parse/-/url-parse-1.4.3.tgz", @@ -2088,12 +2088,6 @@ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", "dev": true }, - "debounce": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", - "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==", - "dev": true - }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -4470,9 +4464,9 @@ } }, "yargs-parser": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", - "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -6043,6 +6037,12 @@ "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", "dev": true }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", diff --git a/package.json b/package.json index 6aca341..2facb3c 100644 --- a/package.json +++ b/package.json @@ -23,15 +23,14 @@ "devDependencies": { "@types/chai": "^4.2.11", "@types/dateformat": "^3.0.1", - "@types/debounce": "^1.2.0", "@types/jquery": "^3.3.34", "@types/mocha": "^7.0.2", "@types/node": "^13.9.4", + "@types/underscore": "^1.9.4", "@types/url-parse": "^1.4.3", "chai": "^4.2.0", "css-loader": "^3.5.2", "dateformat": "^3.0.3", - "debounce": "^1.2.0", "jquery": "^3.4.1", "mocha": "^7.1.1", "mocha-junit-reporter": "^1.23.3", @@ -42,6 +41,7 @@ "ts-loader": "^6.2.2", "ts-node": "^8.8.1", "typescript": "^3.8.3", + "underscore": "^1.10.2", "url-parse": "^1.4.7", "vue": "^2.6.11", "vue-loader": "^15.9.1", diff --git a/src/Action/GoToHeroVillageAction.ts b/src/Action/GoToHeroVillageAction.ts index d1af798..5eaed5d 100644 --- a/src/Action/GoToHeroVillageAction.ts +++ b/src/Action/GoToHeroVillageAction.ts @@ -1,10 +1,10 @@ import { ActionController, registerAction } from './ActionController'; import { grabVillageList } from '../Page/VillageBlock'; import { grabHeroVillage } from '../Page/HeroPage'; -import { path } from '../utils'; import { HeroStorage } from '../Storage/HeroStorage'; import { Args } from '../Queue/Args'; import { Task } from '../Queue/TaskProvider'; +import { path } from '../Helpers/Path'; @registerAction export class GoToHeroVillageAction extends ActionController { diff --git a/src/ControlPanel.ts b/src/ControlPanel.ts index 3179497..76db123 100644 --- a/src/ControlPanel.ts +++ b/src/ControlPanel.ts @@ -16,11 +16,11 @@ import { ResourcesToLevel } from './Task/ResourcesToLevel'; import { ConsoleLogger, Logger } from './Logger'; import { DataStorage } from './DataStorage'; import { getBuildingPageAttributes, isBuildingPage } from './Page/PageDetectors'; -import { debounce } from 'debounce'; import { ExecutionStorage } from './Storage/ExecutionStorage'; import { createVillageStates, VillageState } from './VillageState'; import { Task } from './Queue/TaskProvider'; import { Action } from './Queue/ActionQueue'; +import * as _ from 'underscore'; interface QuickAction { label: string; @@ -110,7 +110,7 @@ export class ControlPanel { }, 3000); DataStorage.onChange( - debounce(() => { + _.debounce(() => { state.refresh(); }, 500) ); diff --git a/src/DashboardView/VillageStateList.vue b/src/DashboardView/VillageStateList.vue index c69316a..7bc0e73 100644 --- a/src/DashboardView/VillageStateList.vue +++ b/src/DashboardView/VillageStateList.vue @@ -197,10 +197,10 @@