34 lines
2.2 KiB
JavaScript
34 lines
2.2 KiB
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("assistantApi", {
|
|
loadSnapshot: () => ipcRenderer.invoke("snapshot:load"),
|
|
saveSnapshot: (snapshot) => ipcRenderer.invoke("snapshot:save", snapshot),
|
|
runMockScan: () => ipcRenderer.invoke("scan:runMock"),
|
|
listCaptureSources: () => ipcRenderer.invoke("capture:listSources"),
|
|
captureSource: (sourceId, delayMs = 0, focusGenshin = false, options) => ipcRenderer.invoke("capture:captureSource", sourceId, delayMs, focusGenshin, options),
|
|
clickScreen: (x, y) => ipcRenderer.invoke("automation:clickScreen", x, y),
|
|
scrollScreen: (notches, anchorX, anchorY) => ipcRenderer.invoke("automation:scrollScreen", notches, anchorX, anchorY),
|
|
keyPress: (key) => ipcRenderer.invoke("automation:keyPress", key),
|
|
getAutomationGuard: () => ipcRenderer.invoke("automation:getGuard"),
|
|
focusMainWindow: () => ipcRenderer.invoke("app:focusMainWindow"),
|
|
focusGenshin: () => ipcRenderer.invoke("automation:focusGenshin"),
|
|
focusGenshinForScanStart: () => ipcRenderer.invoke("automation:focusGenshin"),
|
|
getRuntimeInfo: () => ipcRenderer.invoke("app:getRuntimeInfo"),
|
|
saveReviewSample: (sample) => ipcRenderer.invoke("review:saveSample", sample),
|
|
loadReviewSamples: (limit = 50) => ipcRenderer.invoke("review:loadSamples", limit),
|
|
loadScannerLearningRules: () => ipcRenderer.invoke("scanner:loadLearningRules"),
|
|
saveScannerLearningRules: (rules) => ipcRenderer.invoke("scanner:saveLearningRules", rules),
|
|
loadArtifacts: () => ipcRenderer.invoke("artifacts:load"),
|
|
saveArtifacts: (records) => ipcRenderer.invoke("artifacts:saveMany", records),
|
|
exportGood: (payload) => ipcRenderer.invoke("good:export", payload),
|
|
importGoodFile: () => ipcRenderer.invoke("good:importFile"),
|
|
publishScannerStatus: (status) => ipcRenderer.invoke("scanner:publishStatus", status),
|
|
showOverlay: () => ipcRenderer.invoke("overlay:show"),
|
|
hideOverlay: () => ipcRenderer.invoke("overlay:hide"),
|
|
onScannerCommand: (callback) => {
|
|
const listener = (_event, command) => callback(command);
|
|
ipcRenderer.on("scanner:command", listener);
|
|
return () => ipcRenderer.removeListener("scanner:command", listener);
|
|
},
|
|
});
|