2026-01-02 14:14:59 +08:00
|
|
|
"use strict";
|
|
|
|
|
const electron = require("electron");
|
|
|
|
|
electron.contextBridge.exposeInMainWorld("electronAPI", {
|
2026-01-21 15:39:22 +08:00
|
|
|
// 窗口控制
|
2026-01-02 14:14:59 +08:00
|
|
|
minimizeWindow: () => electron.ipcRenderer.send("window-minimize"),
|
|
|
|
|
maximizeWindow: () => electron.ipcRenderer.send("window-maximize"),
|
|
|
|
|
closeWindow: () => electron.ipcRenderer.send("window-close"),
|
2026-02-02 21:27:48 +08:00
|
|
|
isMaximized: () => electron.ipcRenderer.invoke("window-is-maximized"),
|
2026-02-05 18:52:58 +08:00
|
|
|
// qzplayer Control
|
|
|
|
|
qzplayer: {
|
|
|
|
|
load: (url) => electron.ipcRenderer.invoke("qzplayer-load", url),
|
|
|
|
|
play: () => electron.ipcRenderer.invoke("qzplayer-play"),
|
|
|
|
|
pause: () => electron.ipcRenderer.invoke("qzplayer-pause"),
|
|
|
|
|
togglePause: () => electron.ipcRenderer.invoke("qzplayer-toggle-pause"),
|
|
|
|
|
stop: () => electron.ipcRenderer.invoke("qzplayer-stop"),
|
|
|
|
|
setVolume: (vol) => electron.ipcRenderer.invoke("qzplayer-set-volume", vol),
|
|
|
|
|
seek: (time) => electron.ipcRenderer.invoke("qzplayer-seek", time),
|
|
|
|
|
onEvent: (callback) => electron.ipcRenderer.on("qzplayer-event", callback)
|
2026-02-03 12:59:04 +08:00
|
|
|
},
|
|
|
|
|
// Plugin System
|
|
|
|
|
plugin: {
|
2026-02-05 23:44:51 +08:00
|
|
|
call: (pluginId, method, args) => electron.ipcRenderer.invoke("plugin:call", pluginId, method, args),
|
|
|
|
|
search: (pluginId, query, page, limit) => electron.ipcRenderer.invoke("plugin:call", pluginId, "search", [query, page, limit])
|
2026-02-04 14:14:40 +08:00
|
|
|
},
|
|
|
|
|
// Cache Control
|
|
|
|
|
getCacheInfo: () => electron.ipcRenderer.invoke("cache:getInfo"),
|
|
|
|
|
setCachePersist: (persist) => electron.ipcRenderer.invoke("cache:setPersist", persist),
|
|
|
|
|
openCacheFolder: () => electron.ipcRenderer.invoke("cache:openFolder"),
|
|
|
|
|
clearCache: () => electron.ipcRenderer.invoke("cache:clear"),
|
|
|
|
|
// Settings
|
|
|
|
|
settings: {
|
|
|
|
|
getAll: () => electron.ipcRenderer.invoke("settings:getAll"),
|
|
|
|
|
set: (settings) => electron.ipcRenderer.invoke("settings:set", settings),
|
|
|
|
|
getTheme: () => electron.ipcRenderer.invoke("settings:getTheme"),
|
|
|
|
|
setTheme: (theme) => electron.ipcRenderer.invoke("settings:setTheme", theme),
|
|
|
|
|
getAccentColor: () => electron.ipcRenderer.invoke("settings:getAccentColor"),
|
|
|
|
|
setAccentColor: (color) => electron.ipcRenderer.invoke("settings:setAccentColor", color)
|
2026-02-02 21:27:48 +08:00
|
|
|
}
|
2026-01-02 14:14:59 +08:00
|
|
|
});
|