Handle Regretevator Screenshot Uploading URL Params
This commit is contained in:
49
scripts/lib/RegretevatorUtil.ts
Normal file
49
scripts/lib/RegretevatorUtil.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { existsSync, readFileSync } from "fs";
|
||||
|
||||
const STATE_FILE_PATH = "/tmp/.regretevator_state";
|
||||
|
||||
type DeadUnknownState = { state: "DEAD" | "UNKNOWN" };
|
||||
|
||||
type InElevatorState = {
|
||||
floor: number;
|
||||
state: "INGAME";
|
||||
isGoingUp: boolean;
|
||||
};
|
||||
|
||||
export type RegretevatorState = DeadUnknownState | InElevatorState;
|
||||
|
||||
/*
|
||||
|
||||
➜ config git:(main) ✗ cat /tmp/.regretevator_state
|
||||
{"text":"ý 82","tooltip":"On Floor 82"}
|
||||
➜ config git:(main) ✗ cat /tmp/.regretevator_state
|
||||
{"text":"ý ","tooltip":"Floor 82 83"}
|
||||
|
||||
*/
|
||||
|
||||
export function getRegretevatorState(): null | RegretevatorState {
|
||||
if (!existsSync(STATE_FILE_PATH)) return null;
|
||||
try {
|
||||
const {text, tooltip}: { text: string, tooltip: string } = JSON.parse(readFileSync(STATE_FILE_PATH).toString('utf-8'))
|
||||
if (/^On Floor ([0-9]+)$/.test(tooltip)) {
|
||||
const floorNum = tooltip.match(/^On Floor ([0-9]+)$/)![1]
|
||||
return {
|
||||
floor: Number(floorNum),
|
||||
state: "INGAME",
|
||||
isGoingUp: false
|
||||
}
|
||||
}
|
||||
if (/^Floor ([0-9]+)/.test(tooltip)) {
|
||||
const floorNum = tooltip.match(/^Floor ([0-9]+)/)![1]
|
||||
return {
|
||||
floor: Number(floorNum),
|
||||
state: "INGAME",
|
||||
isGoingUp: true
|
||||
}
|
||||
}
|
||||
return {
|
||||
state: "UNKNOWN"
|
||||
}
|
||||
} catch {}
|
||||
return null;
|
||||
}
|
||||
Reference in New Issue
Block a user