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