306 lines
10 KiB
TypeScript
306 lines
10 KiB
TypeScript
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/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'
|
|
import { Watermark } from '../Service/watermark'
|
|
import { SubtitleService } from '../Service/Subtitle/subtitleService'
|
|
import { BookFrame } from '../Service/Book/bookFrame'
|
|
import { BookPrompt } from '../Service/Book/bookPrompt'
|
|
import { BookGeneral } from '../Service/Book/bookGeneral'
|
|
import { OperateBookType } from '../../define/enum/bookEnum'
|
|
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()
|
|
let watermark = new Watermark()
|
|
let subtitleService = new SubtitleService()
|
|
let bookFrame = new BookFrame()
|
|
let bookPrompt = new BookPrompt();
|
|
let bookGeneral = new BookGeneral()
|
|
|
|
export function BookIpc() {
|
|
// 获取样式图片的子列表
|
|
ipcMain.handle(DEFINE_STRING.BOOK.GET_BOOK_TYPE, async (event) => bookBasic.GetBookType())
|
|
|
|
// 新增或者是修改小说数据
|
|
ipcMain.handle(DEFINE_STRING.BOOK.ADD_OR_MODIFY_BOOK, async (event, book) =>
|
|
bookBasic.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.REPLACE_BOOK_DATA, async (event, bookTaskId, replaceData) => await bookGeneral.ReplaceBookData(bookTaskId, replaceData))
|
|
|
|
//#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 bookFrame.Framing(bookId)
|
|
)
|
|
|
|
// 替换分镜视频的当前帧
|
|
ipcMain.handle(DEFINE_STRING.BOOK.REPLACE_VIDEO_CURRENT_FRAME, async (event, bookTaskDetailId, currentTime) =>
|
|
await bookFrame.ReplaceVideoCurrentFrame(bookTaskDetailId, currentTime)
|
|
)
|
|
|
|
//#endregion
|
|
|
|
//#region 提示词相关
|
|
|
|
// 合并提示词
|
|
ipcMain.handle(DEFINE_STRING.BOOK.MERGE_PROMPT, async (event, id, type, operateBookType) => await reverseBook.MergePrompt(id, type, operateBookType))
|
|
|
|
// 将反推出来的提示词写入到GPT提示词里面
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.REVERSE_PROMPT_TO_GPT_PROMPT,
|
|
async (event, bookId, bookTaskId, index) =>
|
|
await bookPrompt.ReversePromptToGptPrompt(bookId, bookTaskId, index)
|
|
)
|
|
|
|
// 删除所有的反推出来的提示词
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.RESET_GPT_REVERSE_DATA,
|
|
async (event, id, operateBookType, type) => await bookPrompt.ResetGptReverseData(id, operateBookType, type)
|
|
)
|
|
|
|
// 删除所有的合并提示词
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.REMOVE_MERGE_PROMPT_DATA,
|
|
async (event, id, operateBookType) => await bookPrompt.RemoveMergePromptData(id, operateBookType)
|
|
)
|
|
|
|
// 原创推理提示词
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.ORIGINAL_GPT_PROMPT,
|
|
async (event, id: string, operateBookType: OperateBookType, coverData: boolean) =>
|
|
await bookPrompt.OriginalGetPrompt(id, operateBookType, coverData)
|
|
)
|
|
|
|
//#endregion
|
|
|
|
//#region 文案相关
|
|
|
|
// 开始执行反推获取小说文案的方法
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.GET_COPYWRITING,
|
|
async (event, bookId, bookTaskId, operateBookType, coverData) => await subtitleService.GetCopywriting(bookId, bookTaskId, operateBookType, coverData)
|
|
)
|
|
|
|
// 导入文案和字幕对齐数据的方法,保存到数据库中
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.SAVE_COPYWRITING,
|
|
async (event, bookTaskId, copywritingData, operateBookType) => await subtitleService.SaveCopywriting(bookTaskId, copywritingData, operateBookType)
|
|
)
|
|
|
|
|
|
// 获取小说的文案数据,然后保存到对应的文件中
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.EXPORT_COPYWRITING,
|
|
async (event, bookTaskId) => await subtitleService.ExportCopywriting(bookTaskId)
|
|
)
|
|
|
|
// 将文案文件导入到小说中
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.IMPORT_COPYWRITING,
|
|
async (event, bookId, bookTaskId, txtPath) => await subtitleService.ImportCopywriting(bookId, bookTaskId, txtPath)
|
|
|
|
)
|
|
|
|
// 清除导入对齐的文案
|
|
ipcMain.handle(DEFINE_STRING.BOOK.CLEAR_IMPORT_WORD, async (event, bookTaskId) => await subtitleService.ClearImportWord(bookTaskId))
|
|
|
|
//#endregion
|
|
|
|
//#region 一键反推的单个任务
|
|
|
|
|
|
|
|
// 执行去除水印
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.REMOVE_WATERMARK,
|
|
async (event, id, operateBookType) => await watermark.RemoveWatermark(id, operateBookType)
|
|
)
|
|
|
|
// 添加反推任务到任务列表
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.ADD_REVERSE_PROMPT,
|
|
async (event, bookTaskDetailIds, operateBookType, type) =>
|
|
await reverseBook.AddReversePrompt(bookTaskDetailIds, operateBookType, type)
|
|
)
|
|
|
|
// 重选单个反推提示词到输出种
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.SINGLE_REVERSE_TO_GPT_PROMPT,
|
|
async (event, bookTaskDetailId, index) =>
|
|
await mjOpt.SingleReverseToGptPrompt(bookTaskDetailId, index)
|
|
)
|
|
|
|
//#endregion
|
|
|
|
//#region 图片相关
|
|
|
|
// 对指定的小说任务的图片进行锁定和解锁
|
|
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.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.REMOVE_GENERATE_IMAGE,
|
|
async (event, id, operateBookType) => await bookImage.ResetGenerateImage(id, operateBookType)
|
|
)
|
|
|
|
//#endregion
|
|
|
|
|
|
// 一拆四,将一个任务拆分成四个任务,并且复制对应的图片
|
|
ipcMain.handle(
|
|
DEFINE_STRING.BOOK.ONE_TO_FOUR_BOOK_TASK,
|
|
async (event, bookTaskDetailId) => await bookTask.OneToFourBookTask(bookTaskDetailId)
|
|
)
|
|
|
|
//#region 小说相关
|
|
|
|
// 重置小说数据
|
|
ipcMain.handle(DEFINE_STRING.BOOK.RESET_BOOK_DATA, async (event, bookId) => await bookBasic.ResetBookData(bookId))
|
|
|
|
// 删除小说数据
|
|
ipcMain.handle(DEFINE_STRING.BOOK.DELETE_BOOK_DATA, async (event, bookId) => await bookBasic.DeleteBookData(bookId))
|
|
|
|
//#endregion
|
|
|
|
//#region 小说批次任务相关
|
|
|
|
// 新建小说批次任务
|
|
ipcMain.handle(DEFINE_STRING.BOOK.ADD_NEW_BOOK_TASK, async (event, addBookTaskData) => await bookTask.AddNewBookTask(addBookTaskData))
|
|
|
|
// 重置小说批次数据
|
|
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.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
|
|
}
|