Checking-in code base

This commit is contained in:
2026-03-26 10:04:12 +01:00
parent be93d24eae
commit 74e1eecfea
42 changed files with 2902 additions and 2 deletions
+40
View File
@@ -0,0 +1,40 @@
import streamDeck, { action, KeyDownEvent, SingletonAction, DidReceiveSettingsEvent } from "@elgato/streamdeck";
@action({ UUID: "org.igox.busylight.status.set" })
export class SetStatus extends SingletonAction {
override async onKeyDown(ev: KeyDownEvent<statusSettings>): Promise<void> {
const { settings } = ev.payload;
settings.status ??= 'available';
setStatus(settings.status);
}
override async onDidReceiveSettings(ev: DidReceiveSettingsEvent<statusSettings>): Promise<void> {
const { settings } = ev.payload;
let status = settings.status;
streamDeck.logger.debug(`>>> Config status changed to: ${status} <<<`);
await ev.action.setImage(`imgs/actions/buttons/${status}/${status}.png`);
}
}
async function setStatus(status: string) {
const settings = await streamDeck.settings.getGlobalSettings();
const url = settings.url;
streamDeck.logger.debug(`>>> Sending status: ${status} to ${url} <<<`);
fetch(`${url}/api/status/${status}`,
{
method: "POST",
headers: {
"Content-Type": "application/json"
}
})
.then(response => response.json())
.then(data => streamDeck.logger.debug(data));
}
type statusSettings = {
status?: string;
};