From a5b82459c9c5dc2807c2ecb3286add00520a86de Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Fri, 3 Apr 2020 12:32:50 +0300 Subject: [PATCH] Refactoring again --- src/Dashboard.ts | 4 ++-- src/ModeDetector.ts | 2 +- src/Scheduler.ts | 10 ++++++---- src/Storage/ActionQueue.ts | 2 +- src/Task/TaskController.ts | 1 + src/TaskQueueRenderer.ts | 2 +- src/index.js | 6 +++--- 7 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Dashboard.ts b/src/Dashboard.ts index 374a1d0..b7032e9 100644 --- a/src/Dashboard.ts +++ b/src/Dashboard.ts @@ -3,9 +3,9 @@ import { markPage, uniqId, waitForLoad } from './utils'; import { Scheduler } from './Scheduler'; import { UpgradeBuildingTask } from './Task/UpgradeBuildingTask'; import { Command } from './Common'; -import TaskQueueRenderer from './TaskQueueRenderer'; +import { TaskQueueRenderer } from './TaskQueueRenderer'; -export default class Dashboard { +export class Dashboard { private readonly version: string; private scheduler: Scheduler; diff --git a/src/ModeDetector.ts b/src/ModeDetector.ts index 2674f5d..b4655c6 100644 --- a/src/ModeDetector.ts +++ b/src/ModeDetector.ts @@ -3,7 +3,7 @@ import * as URLParse from 'url-parse'; const SESSION_KEY = 'travian_automation_mode'; const SESSION_VALUE = 'command_execution'; -export default class ModeDetector { +export class ModeDetector { isAuto(): boolean { return this.isAutoByLocation() || this.isAutoBySession(); } diff --git a/src/Scheduler.ts b/src/Scheduler.ts index 221fda9..3b63e21 100644 --- a/src/Scheduler.ts +++ b/src/Scheduler.ts @@ -6,9 +6,9 @@ import { TryLaterError, } from './Errors'; import { Task, TaskId, TaskList, TaskQueue } from './Storage/TaskQueue'; -import ActionQueue from './Storage/ActionQueue'; +import { ActionQueue } from './Storage/ActionQueue'; import { Command } from './Common'; -import TaskQueueRenderer from './TaskQueueRenderer'; +import { TaskQueueRenderer } from './TaskQueueRenderer'; import { createAction } from './Action/ActionController'; import { createTask } from './Task/TaskController'; import { SendOnAdventureTask } from './Task/SendOnAdventureTask'; @@ -95,7 +95,7 @@ export class Scheduler { if (actionController) { await actionController.run(cmd.args, task); } else { - this.logError('ACTION NOT FOUND', cmd.name); + this.logWarn('ACTION NOT FOUND', cmd.name); } } @@ -105,7 +105,8 @@ export class Scheduler { if (taskController) { await taskController.run(task); } else { - this.logError('TASK NOT FOUND', task.cmd.name); + this.logWarn('TASK NOT FOUND', task.cmd.name); + this.taskQueue.complete(task.id); } } @@ -134,6 +135,7 @@ export class Scheduler { return; } + this.logError(err.message); throw err; } diff --git a/src/Storage/ActionQueue.ts b/src/Storage/ActionQueue.ts index 80e0fe4..0477539 100644 --- a/src/Storage/ActionQueue.ts +++ b/src/Storage/ActionQueue.ts @@ -17,7 +17,7 @@ class State { } } -export default class ActionQueue { +export class ActionQueue { pop(): Command | undefined { const state = this.getState(); const first = state.pop(); diff --git a/src/Task/TaskController.ts b/src/Task/TaskController.ts index 17645fe..6a0b195 100644 --- a/src/Task/TaskController.ts +++ b/src/Task/TaskController.ts @@ -4,6 +4,7 @@ import { Scheduler } from '../Scheduler'; const taskMap: { [name: string]: Function | undefined } = {}; export function registerTask(constructor: Function) { + console.log('REGISTER TASK', constructor.name); taskMap[constructor.name] = constructor; } diff --git a/src/TaskQueueRenderer.ts b/src/TaskQueueRenderer.ts index 12c31f9..bbecf48 100644 --- a/src/TaskQueueRenderer.ts +++ b/src/TaskQueueRenderer.ts @@ -9,7 +9,7 @@ function formatDate(ts: number) { return dateFormat(d, 'HH:MM:ss'); } -export default class TaskQueueRenderer { +export class TaskQueueRenderer { render(tasks: TaskList) { const ul = jQuery('') .attr({ id: ID }) diff --git a/src/index.js b/src/index.js index 8f05103..6530788 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ -import ModeDetector from './ModeDetector'; -import Scheduler from './Scheduler'; -import Dashboard from './Dashboard'; +import { ModeDetector } from './ModeDetector'; +import { Scheduler } from './Scheduler'; +import { Dashboard } from './Dashboard'; import TxtVersion from '!!raw-loader!./version.txt'; console.log('TRAVIAN AUTOMATION', TxtVersion);