Handle Regretevator Screenshot Uploading URL Params

This commit is contained in:
2025-03-29 17:00:23 +02:00
parent 8ba7e012a2
commit fad2e52ebb
6 changed files with 139 additions and 48 deletions

View 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;
}