import { ipcMain } from 'electron' import { DEFINE_STRING } from '../../define/define_string' import { ReverseBook } from '../Service/Book/ReverseBook' import { BasicReverse } from '../Service/Book/basicReverse' import { Subtitle } from '../Service/subtitle' import { BookBasic } from '../Service/Book/BooKBasic' import { MJOpt } from '../Service/MJ/mj' import { BookImage } from '../Service/Book/bookImage' import { ImageStyle } from '../Service/Book/imageStyle' import { BookTask } from '../Service/Book/bookTask' import { BookVideo } from '../Service/Book/bookVideo' let reverseBook = new ReverseBook() let basicReverse = new BasicReverse() let subtitle = new Subtitle() let mjOpt = new MJOpt() let bookBasic = new BookBasic() let bookImage = new BookImage() let imageStyle = new ImageStyle() let bookTask = new BookTask() let bookVideo = new BookVideo() export function BookIpc() { // 获取样式图片的子列表 ipcMain.handle(DEFINE_STRING.BOOK.GET_BOOK_TYPE, async (event) => reverseBook.GetBookType()) // 新增或者是修改小说数据 ipcMain.handle(DEFINE_STRING.BOOK.ADD_OR_MODIFY_BOOK, async (event, book) => reverseBook.AddOrModifyBook(book) ) // 获取小说数据(通过传递的参数进行筛选) ipcMain.handle(DEFINE_STRING.BOOK.GET_BOOK_DATA, async (event, bookQuery) => reverseBook.GetBookData(bookQuery) ) // 获取小说的所有的数据 ipcMain.handle(DEFINE_STRING.BOOK.GET_BOOK_TASK_DETAIL, async (event, bookTaskId) => reverseBook.GetBookTaskDetail(bookTaskId) ) // 保存小说任务的风格 ipcMain.handle(DEFINE_STRING.BOOK.SAVE_IMAGE_STYLE, async (event, styleList, bookTaskId) => imageStyle.SaveImageStyle(styleList, bookTaskId) ) //#region 一键反推 ipcMain.handle(DEFINE_STRING.BOOK.GET_BOOK_TASK_DATA, async (event, bookTaskCondition) => reverseBook.GetBookTaskData(bookTaskCondition) ) // 获取抽帧数据 ipcMain.handle(DEFINE_STRING.BOOK.GET_FRAME_DATA, async (event, bookId) => basicReverse.GetFrameData(bookId) ) // 全自动开始 ipcMain.handle(DEFINE_STRING.BOOK.AUTO_ACTION, async (event, bookId) => reverseBook.AutoAction(bookId) ) // 保存一键反推文案位置 ipcMain.handle(DEFINE_STRING.BOOK.SAVE_BOOK_SUBTITLE_POSITION, async (event, value) => subtitle.SaveBookSubtitlePosition(value) ) // 打开对应的字幕提取的图片文件夹 ipcMain.handle(DEFINE_STRING.BOOK.OPEN_BOOK_SUBTITLE_POSITION_SCREENSHOT, async (event, value) => subtitle.OpenBookSubtitlePositionScreenshot(value) ) // 获取当前帧的字幕文字 ipcMain.handle(DEFINE_STRING.BOOK.GET_CURRENT_FRAME_TEXT, async (event, value) => subtitle.GetCurrentFrameText(value) ) // 获取当前视频中的所有的字幕 ipcMain.handle(DEFINE_STRING.BOOK.GET_VIDEO_FRAME_TEXT, async (event, value) => { subtitle.GetVideoFrameText(value) }) //#endregion //#region 一键反推的单个任务 // 开始计算分镜 ipcMain.handle( DEFINE_STRING.BOOK.COMPUTE_STORYBOARD, async (event, bookId) => await reverseBook.ComputeStoryboard(bookId) ) // 开始执行分镜,切分视频 ipcMain.handle( DEFINE_STRING.BOOK.FRAMING, async (event, bookId) => await reverseBook.Framing(bookId) ) // 开始执行分镜任务 ipcMain.handle( DEFINE_STRING.BOOK.GET_COPYWRITING, async (event, bookId) => await reverseBook.GetCopywriting(bookId) ) // 执行去除水印 ipcMain.handle( DEFINE_STRING.BOOK.REMOVE_WATERMARK, async (event, bookId) => await reverseBook.RemoveWatermark(bookId) ) // 添加反推任务到任务列表 ipcMain.handle( DEFINE_STRING.BOOK.ADD_REVERSE_PROMPT, async (event, bookTaskDetailIds, type) => await reverseBook.AddReversePromptTask(bookTaskDetailIds, type) ) // 将反推出来的提示词写入到GPT提示词里面 ipcMain.handle( DEFINE_STRING.BOOK.REVERSE_PROMPT_TO_GPT_PROMPT, async (event, bookId, bookTaskId, index) => await mjOpt.ReversePromptToGptPrompt(bookId, bookTaskId, index) ) // 重选单个反推提示词到输出种 ipcMain.handle( DEFINE_STRING.BOOK.SINGLE_REVERSE_TO_GPT_PROMPT, async (event, bookTaskDetailId, index) => await mjOpt.SingleReverseToGptPrompt(bookTaskDetailId, index) ) // 删除所有的反推出来的提示词 ipcMain.handle( DEFINE_STRING.BOOK.REMOVE_REVERSE_DATA, async (event, bookTaskDetailIds) => await reverseBook.RemoveReverseData(bookTaskDetailIds) ) //#endregion // 对指定的小说任务的图片进行锁定和解锁 ipcMain.handle( DEFINE_STRING.BOOK.IMAGE_LOCK_OPERATION, async (event, id, lockType, operateBookType) => await bookImage.ImageLockOperation(id, lockType, operateBookType) ) // 下载或者使用指定的图片并裁剪 ipcMain.handle( DEFINE_STRING.BOOK.DOWNLOAD_IMAGE_AND_SPLIT, async (event, bookTaskDetailId, imageUrl) => await bookImage.DownloadImageUrlAndSplit(bookTaskDetailId, imageUrl) ) // 一拆四,将一个任务拆分成四个任务,并且复制对应的图片 ipcMain.handle( DEFINE_STRING.BOOK.ONE_TO_FOUR_BOOK_TASK, async (event, bookTaskDetailId) => await bookBasic.OneToFourBookTask(bookTaskDetailId) ) //#region 小说批次任务相关 // 重置小说批次数据 ipcMain.handle( DEFINE_STRING.BOOK.RESET_BOOK_TASK, async (event, bookTaskId) => await bookTask.ReSetBookTask(bookTaskId) ) // 删除小说批次数据 ipcMain.handle( DEFINE_STRING.BOOK.DELETE_BOOK_TASK, async (event, bookTaskId) => await bookTask.DeleteBookTask(bookTaskId) ) // 一键生成当前批次的所有图片 ipcMain.handle( DEFINE_STRING.BOOK.GENERATE_IMAGE_ALL, async (event, bookTaskId, imageCategory) => await bookImage.GenerateImageAll(bookTaskId, imageCategory) ) // 高清图片前检查,主要是检查图片大小 ipcMain.handle( DEFINE_STRING.BOOK.CHECK_IMAGE_FILE_SIZE, async (event, id, fileSize, operateBookType) => await bookImage.CheckImageFileSize(id, fileSize, operateBookType) ) // 开始执行高清图片 ipcMain.handle( DEFINE_STRING.BOOK.HD_IMAGE, async (event, id, scale, operateBookType) => await bookImage.HDImage(id, scale, operateBookType) ) // 将小说视频相关的设置添加到小说任务批次 ipcMain.handle( DEFINE_STRING.BOOK.USE_BOOK_VIDEO_DATA_TO_BOOK_TASK, async (event, id, operateBookType) => await bookVideo.UseBookVideoDataToBookTask(id, operateBookType) ) // 将小说任务添加到剪映草稿 ipcMain.handle( DEFINE_STRING.BOOK.ADD_JIANYING_DRAFT, async (event, id, operateBookType) => await bookVideo.AddJianyingDraft(id, operateBookType) ) //#endregion }