Add links to automation modes
This commit is contained in:
parent
08c7119879
commit
7d3c14a842
@ -7,6 +7,8 @@
|
||||
</h1>
|
||||
</div>
|
||||
<div class="actions-block">
|
||||
<a :href="executorLink()" target="_blank">exec</a>
|
||||
<a :href="blankLink()" target="_blank">blank</a>
|
||||
<a href="#" v-on:click.prevent="pause">
|
||||
pause
|
||||
<span
|
||||
@ -21,6 +23,7 @@
|
||||
|
||||
<script>
|
||||
import { Mutations } from './Store';
|
||||
import { ManagementMode, ModeDetector } from '../ModeDetector';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
@ -41,6 +44,12 @@ export default {
|
||||
toggleLogs() {
|
||||
this.$store.commit(Mutations.toggleLogs);
|
||||
},
|
||||
executorLink() {
|
||||
return ModeDetector.makeLink(ManagementMode.Executor);
|
||||
},
|
||||
blankLink() {
|
||||
return ModeDetector.makeLink(ManagementMode.Blank);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -1,25 +1,51 @@
|
||||
import { parseLocation } from './utils';
|
||||
|
||||
const SESSION_KEY = 'travian_automation_mode';
|
||||
const SESSION_VALUE = 'command_execution';
|
||||
const MODE_PARAMETER_NAME = 'auto-management';
|
||||
export enum ManagementMode {
|
||||
Blank = 'blank',
|
||||
Executor = 'executor',
|
||||
}
|
||||
|
||||
const MANAGEMENT_MODE_SESSION_KEY = 'travian_management_mode';
|
||||
|
||||
export const MANAGEMENT_MODE_QUERY_PARAMETER = 'ta-management-mode';
|
||||
|
||||
export class ModeDetector {
|
||||
isAuto(): boolean {
|
||||
return this.isAutoByLocation() || this.isAutoBySession();
|
||||
isExecutorMode(): boolean {
|
||||
return (
|
||||
this.isModeByLocation(ManagementMode.Executor) ||
|
||||
this.isModeBySession(ManagementMode.Executor)
|
||||
);
|
||||
}
|
||||
|
||||
setAuto(): void {
|
||||
sessionStorage.setItem(SESSION_KEY, SESSION_VALUE);
|
||||
setExecutorMode(): void {
|
||||
sessionStorage.setItem(MANAGEMENT_MODE_SESSION_KEY, ManagementMode.Executor);
|
||||
}
|
||||
|
||||
private isAutoByLocation(): boolean {
|
||||
isBlankMode(): boolean {
|
||||
return (
|
||||
this.isModeByLocation(ManagementMode.Blank) ||
|
||||
this.isModeBySession(ManagementMode.Blank)
|
||||
);
|
||||
}
|
||||
|
||||
setBlankMode() {
|
||||
sessionStorage.setItem(MANAGEMENT_MODE_SESSION_KEY, ManagementMode.Blank);
|
||||
}
|
||||
|
||||
private isModeByLocation(mode: ManagementMode): boolean {
|
||||
const p = parseLocation();
|
||||
return p.query[MODE_PARAMETER_NAME] !== undefined;
|
||||
const queryParam = p.query[MANAGEMENT_MODE_QUERY_PARAMETER];
|
||||
return queryParam === mode;
|
||||
}
|
||||
|
||||
private isAutoBySession(): boolean {
|
||||
const sessionKey = sessionStorage.getItem(SESSION_KEY);
|
||||
return sessionKey === SESSION_VALUE;
|
||||
private isModeBySession(mode: ManagementMode): boolean {
|
||||
const sessionKey = sessionStorage.getItem(MANAGEMENT_MODE_SESSION_KEY);
|
||||
return sessionKey === mode;
|
||||
}
|
||||
|
||||
static makeLink(mode: ManagementMode): string {
|
||||
const p = parseLocation();
|
||||
p.query[MANAGEMENT_MODE_QUERY_PARAMETER] = mode;
|
||||
return p.toString();
|
||||
}
|
||||
}
|
||||
|
@ -11,8 +11,11 @@ function main() {
|
||||
const container = new Container(TxtVersion);
|
||||
const modeDetector = new ModeDetector();
|
||||
|
||||
if (modeDetector.isAuto()) {
|
||||
modeDetector.setAuto();
|
||||
if (modeDetector.isBlankMode()) {
|
||||
modeDetector.setBlankMode();
|
||||
logger.info('AUTO MANAGEMENT OFF');
|
||||
} else if (modeDetector.isExecutorMode()) {
|
||||
modeDetector.setExecutorMode();
|
||||
logger.info('AUTO MANAGEMENT ON');
|
||||
const executor = container.executor;
|
||||
executor.run();
|
||||
|
Loading…
Reference in New Issue
Block a user