import { contextBridge, ipcRenderer } from 'electron' import { electronAPI } from '@electron-toolkit/preload' import { DEFINE_STRING } from '../define/define_string' import { discord } from './discord' import { mj } from './mj' import { sd } from './sd' import { img } from './img' import { system } from './system' import { setting } from './setting' import { prompt } from './prompt' import { book } from './book' import { tts } from './tts' import { write } from './write' import { gpt } from './gpt' import { db } from './db' import { translate } from './translate' import { preset } from './preset' import { task } from './task' // Custom APIs for renderer let events = [] const api = { //#region 基础状态 //#endregion // 保存通用设置 ModifySampleSetting: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MODIFY_SAMPLE_SETTING, value)), //保存SD配置 SaveSDConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_SD_CONFIG, value) callback(res) }, // 保存生成时间的普通设置 SaveGeneralSetting: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_GENERAL_SETTING, value) callback(res) }, // 获取视频的配置信息设置 GetVideoConfigMessage: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_VIDEO_CONFIG_MESSAGE) callback(res) }, // 加载SD设置 InitSDConfig: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.INIT_SD_CONFIG) callback(res) }, // 保存任务列表信息 AddImageTask: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_IMAGE_TASK_LIST, value) callback(res) }, // 修改任务队列信息(修改的数据是一个数组。可以添加多个和单个) ModifyImageTaskList: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MODIFY_IMAGE_TASK_LIST, value)), // 开始自动话任务 ActionAutoVideoTask: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.ACTION_AUTO_VIDEO_TASK, value)), // 获取生成图片的队列任务 GetGenerateTaskList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_GENERATE_TASK_LIST) callback(res) }, // 删除生成图片列表的消息 DeleteImageTaskList: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_IMAGE_TASK_LIST, value) callback(res) }, // 分镜语音识别消息 StartStoryboarding: async (value) => { let res = await ipcRenderer.invoke(DEFINE_STRING.START_STORY_BOARDING, value) }, // 获取设置的初始数据 getSettingDafultData: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_SETTING_Dafault_DATA)), // 获取草稿地址 getDraftFileList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_DRAFT_FILE_LIST) callback(res) }, // 选择文件夹 selectFolder: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SELECT_FOLDER, value)), // 选择指定拓展名的文件 SelectFile: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SELECT_FILE, value)), getDraftTextStyle: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_DRAFT_TEXT_STYLE, value) callback(res) }, getTextStyleList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_TEXT_STYLE_LIST) callback(res) }, deleteDraftTextStyle: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_DRAFT_TEXT_STYLE, value) callback(res) }, deleteClipSetting: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_CLIP_SETTING, value) callback(res) }, deleteClipStettingFriendlyReminder: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_FRIENDLY_REMINDER, value) callback(res) }, // 添加草稿 addDraft: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_DRAFT, value) callback(res) }, // 自动合成视频 AutoGenerateVideo: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.AUTO_GENERATION_VIDEO, value) callback(res) }, // 获取项目地址项目的所有的输出文件地址 getSubFolderList: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_SUBFOLDER_LIST, value) callback(res) }, // 提取草稿的温馨提示内容 GetFriendlyReminder: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_FRIENDLY_REMINDER_DRAFT, value) callback(res) }, // 获取温馨提示列表 getFriendlyReminderList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_FRIENDLY_REMINDER_LIST) callback(res) }, // 获取剪映背景音乐配置 GetBackgroundMusicConfigList: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_BACKGROUND_MUSIC_CONFIG_LIST)), // 添加背景音乐文件夹 AddBackgroundMusicFolder: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_BACKGROUND_MUSIC_FOLDER, value) callback(res) }, // 反写json文件的数据 ModifyInpurCropJson: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.MODIFY_INPUT_CROP_JSON, value) callback(res) }, // AI 洗稿 AIModifyOneWord: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.AIMODIFY_ONE_WORD, value) callback(res) }, // 导入字幕。对齐显示 ImportSrtAndGetTime: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.IMPORT_SRT_AND_GET_TIME, value) callback(res) }, // 获取本地安装的字体 GetSystemInstallFontName: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_SYSTEM_INSTALL_FONTNAME) callback(res) }, // 保存字幕设置 SaveAssConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_ASS_CONFIG, value) callback(res) }, // 删除字幕设置 DeleteVideoConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_VIDEO_CONFIG, value) callback(res) }, // 保存洗稿后的文案 SaveNewWord: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_NEW_WORD, value) callback(res) }, // 监听分镜的时间信息 SaveCopywritingInformation: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_COPYWRITING_INFOMATION, value) callback(res) }, // 获取不想要的提示词 GetBadPrompt: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_BAD_PROMPT) callback(res) }, /** * 保存不想要的提示词 */ SaveBadPrompt: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_BAD_PROMPT, value) callback(res) }, /** * 一键删除不想要的值 */ DeleteBadPrompt: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.DELETE_BAD_PROMPT) callback(res) }, // 一次反推 GenerateImageInSelectTask: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GENERATE_IMAGWE_IN_SELECT_TASK, value) callback(res) }, // 显示新的窗口 showNewWindow: (value) => { ipcRenderer.send(DEFINE_STRING.SHOW_NEW_WINDOW, value) }, // 获取ADetalier配置列表 GetADetailerList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_ADETAILER_LIST) callback(res) }, // 保存 ADetailer 数据 SaveADetailerConfig: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.SAVE_DETAILER_CONFIG, value) callback(res) }, // 抽帧 getFrame: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_FRAME, value) callback(res) }, //反推提示词 PushBackPrompt: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.PUSH_BACK_PROMPT) callback(res) }, // 打开指定的url,在默认浏览器中 OpenUrl: (value) => ipcRenderer.send(DEFINE_STRING.OPEN_URL, value), // 生成json文件 AddWebuiJson: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ADD_WEBUI_JSON) callback(res) }, ReGenerateImage: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.RE_GENERATE_IAMGE_ONE, value) callback(res) }, ImproveResolution: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.IMPROVE_IMAGE_RESOULTION, value) callback(res) }, alginDraftImg: (value, callback) => { ipcRenderer.send(DEFINE_STRING.ALIGN_DRAFT_IMG, value) ipcRenderer.on(DEFINE_STRING.PYTHON_OUTPUT, (event, value) => { callback(DEFINE_STRING.PYTHON_OUTPUT, value) }) ipcRenderer.on(DEFINE_STRING.PYTHON_CLOSE, (event, value) => { callback(DEFINE_STRING.PYTHON_CLOSE, value) }) }, alginDraftImgToText: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.ALIGN_DRAFT_IMG_TO_TEXT, value) callback(res) }, getImagePromptList: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_IAMGE_PROMPT_LIST) callback(res) }, RefreshImageData: async (value, callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.REFRASH_IMAGWE_DATA, value) callback(res) }, GetProjectWord: async (callback) => { let res = await ipcRenderer.invoke(DEFINE_STRING.GET_PROJECT_WORD) callback(res) }, // 获取当前的主页使用界面信息 GetShowMessage: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_SHOW_MESSAGE)), // 立即返回的翻译任务 TranslateReturnNow: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.TRANSLATE_RETURN_NOW, value)), // 添加翻译添加翻译任务到队列中 TranslatePrompt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.TRANSLATE_PROMPT, value)), // 打开discord窗口 OpenDiscordWindow: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MAIN.OPEN_DISCORD_WINDOW)), // 获取设置的GPT提示词的咒语 GetCustomizeGptPrompt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_CUSTOMIZE_GPT_PROMPT, value)), // 生成GPT自定义提示词的案例输出 GenerateGptExampleOut: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GENERATE_GPT_EXAMPLE_OUT, value)), //GetPermission 获取机器的权限 GetPermission: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_PERMISSION)), // 保存图片到指定的文件夹 SaveImageToOtherFolder: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_IMAGE_TO_OTHER_FOLDER, value)), // 获取当前的自动保存图片的设置 GetImageAutoSaveSetting: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_AUTO_SAVE_SETTING)), // 保存图片自动保存设置 SaveImageAutoSaveSetting: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_IMAGE_AUTO_SAVE_SETTING, value)), // 获取当前自动保存图片的方式 GetAutoSaveImageClassifyOptions: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_AUTO_SAVE_IMAGE_CLASSIFY_OPTIONS)), // 修改生图任务状态 ModifyGenerateTaskStatus: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.MODIFY_GENERATE_TASK_STATUS, value)), // 删除指定的后台任务 DeleteBackTask: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.DELETE_BACK_TASK, value)), // 保存生成视频的基础配置(srt地址,配音,背景音乐文件夹等) SaveVideoSrtAndAudioMessage: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_VIDEO_SRT_AND_AUDIO_MESSAGE, value)), // 保存关键帧配置 SaveKeyFrameSetting: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_KEY_FRAME_SETTING, value)), // 获取关键帧打帧方式列表 GetKeyFrameOptions: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_KEYFRAME_OPTIONS)), // 获取关键帧的配置文件 GetKeyFrameConfigData: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_KEY_FRAME_CONFIG_DATA)), // 保存文案数组到指定的文件 saveWordTxt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_WORD_TXT, value)), // 判断该当前的是否可以链接成功 TestGPTConnection: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.TEST_GPT_CONNECTION, value)), // 删除自定义的GPT服务商设置 DeleteDynamicGptOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.DELETE_DYNAMIC_GPT_OPTION, value)), // 保存自定义的GPT服务商设置 SaveDynamicGptOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_DYNAMIC_GPT_OPTION, value)), // 获取当前默认的推理模式或者是自定义的推理模式 getGptAutoInferenceOptions: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_GPT_AUTO_INFERENCE_OPTIONS, value)), // 获取当前的GPT和自定义的GPT模型 getGptModelOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_GPT_MODEL_OPTION, value)), // 获取默认的GPT和自定义的GPT getGptBusinessOption: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_GPT_BUSINESS_OPTION, value)), // 获取指定的风格菜单 GetImageStyleMenu: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_STYLE_MENU)), // 获取指定的风格ID对应的数据 GetImageStyleInfomation: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_STYLE_INFOMATION, value)), // 获取指定的图片风格下面的图片数据 getStyleImageSubList: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_STYLE_IMAGE_SUB_LIST, value)), // SD 原创生成单个图片 OriginalSDImageGenerate: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.ORIGINAL_SD_SINGLE_IMAGE_GENERATE, value)), // 自动保存数据到json文件事件 AutoSaveDataJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.AUTO_SAVE_DATA_JSON, value)), // GPT推理 GPTPrompt: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GPT_PROMPT, value)), // 获取 prompt 的json配置文件 GetPromptJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_PROMPT_JSON, value)), // SD原创添加配置文件 OriginalAddWebuiJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.ORIGINAL_ADD_WEBUI_JSON, value)), //获取文件的配置文件 GetConfigJson: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_CONFIG_JSON, value)), // 自动分析人物事件 AutoAnalyzeCharacter: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.AUTO_ANALYZE_CHARACTER, value)), // 获取生成视频的基础设置 GetVideoGenerateConfig: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_VIDEO_GENERATE_CONFIG)), // 移除事件 removeEventListen: (eventName) => ipcRenderer.removeAllListeners(eventName), // 添加事件监听 setEventListen: (value, callback) => { ipcRenderer.on(value[0], (event, value) => { callback(value) }) }, // 一键自动化的条件检测 AutoConditionCheck: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.AUTO_CONDITION_CHECK, value)), // 下载文件到指定的文件夹 DownloadImageFile: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.DOWNLOAD_IMAGE_FILE, value)), // 检查机器码是不是存在 CheckMachineId: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.CHECK_MACHINE_ID, value)), // 保存试用结束 SaveTrialEndTime: (value) => ipcRenderer.send(DEFINE_STRING.SAVE_TRIAL_END_TIME, value), // 打开购买GPT地址 openGptBuyUrl: (value) => ipcRenderer.send(DEFINE_STRING.OPEN_GPT_BUY_URL, value), // 退出软件 QuitApp: () => ipcRenderer.send(DEFINE_STRING.QUIT_APP), // 获取当前的生图方式,包含sd,mj,d3等 GetImageGenerateCategory: async (callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_IMAGE_GENERATE_CATEGORY)), // 获取指定的配置文件里面指定的属性的数据 GetDefineConfigJsonByProperty: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_DEFINE_CONFIG_JSON_BY_PROPERTY, value)), // 保存指定的配置文件里指定的属性的数据 SaveDefineConfigJsonByProperty: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.SAVE_DEFINE_CONFIG_JSON_BY_PROPERTY, value)), // 打开全局提示框 showGlobalMessageDialog: (value) => ipcRenderer.send(DEFINE_STRING.SHOW_GLOABAL_MESSAGE_DIALOG, value), // 打开全局通知框 showGlobalNotificationDialog: (value) => ipcRenderer.send(DEFINE_STRING.SHOW_GLOBAL_MAIN_NOTIFICATION, value), // 打开message showGlobalMessage: (value) => ipcRenderer.send(DEFINE_STRING.SHOW_GLOBAL_MESSAGE, value), // 知道文件地址,获取文件base64编码 GetFileBase64: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.GET_FILE_BASE64, value)), // 打开调试控制台 OpenDevTools: () => ipcRenderer.send(DEFINE_STRING.OPEN_DEV_TOOLS), // 打开调试控制台密码 OpenDevToolsPassword: async (value, callback) => callback(await ipcRenderer.invoke(DEFINE_STRING.OPEN_DEV_TOOLS_PASSWORD, value)) } if (process.contextIsolated) { try { contextBridge.exposeInMainWorld('electron', electronAPI) contextBridge.exposeInMainWorld('api', api) contextBridge.exposeInMainWorld('mj', mj) contextBridge.exposeInMainWorld('discord', discord) contextBridge.exposeInMainWorld('sd', sd) contextBridge.exposeInMainWorld('img', img) contextBridge.exposeInMainWorld('system', system) contextBridge.exposeInMainWorld('setting', setting) contextBridge.exposeInMainWorld('pmpt', prompt) contextBridge.exposeInMainWorld('book', book) contextBridge.exposeInMainWorld('tts', tts) contextBridge.exposeInMainWorld('write', write) contextBridge.exposeInMainWorld('gpt', gpt) contextBridge.exposeInMainWorld('translate', translate) contextBridge.exposeInMainWorld('db', db) contextBridge.exposeInMainWorld('preset', preset) contextBridge.exposeInMainWorld('task', task) contextBridge.exposeInMainWorld('darkMode', { toggle: (value) => ipcRenderer.invoke('dark-mode:toggle', value) }) } catch (error) { console.error(error) } } else { window.electron = electronAPI window.api = api window.mj = mj window.discord = discord window.sd = sd window.img = img window.system = system window.setting = setting window.pmpt = prompt window.book = book window.tts = tts window.write = write window.gpt = gpt window.db = db window.preset = preset window.task = task window.translate = translate }