import fs from 'fs'; import { version } from '../../../package.json' import { define } from '../../define/define'; const fspromises = fs.promises; import { MJSettingService } from '../../define/db/service/SoftWare/mjSettingService'; import { isEmpty } from 'lodash'; import { SoftwareService } from '../../define/db/service/SoftWare/softwareService'; //#region 2.2.10 版本 自动同步数据 /** * 自动同步MJ配置数据 */ export async function AutoSyncMJConfig2210() { try { // 判断版本 if (version != '2.2.10') { return } // 同步MJ的配置到服务器中 let mjConfigJson = JSON.parse(await fspromises.readFile(define.img_base, 'utf-8')); // 开始同步APIMJsetting let _mjSettingService = await MJSettingService.getInstance(); if (!mjConfigJson.mj_config) { return; } // 判断数据库中有没有API数据 let dbApiSetting = _mjSettingService.GetAPIMjSetting(null); if (dbApiSetting.code == 1 && dbApiSetting.data.length <= 0) { // 同步API请求配置 if (mjConfigJson.mj_config.mj_api_url && mjConfigJson.mj_config.mj_speed && mjConfigJson.mj_config.api_key) { let apiSetting = { mjApiUrl: mjConfigJson.mj_config.mj_api_url, mjSpeed: mjConfigJson.mj_config.mj_speed, apiKey: mjConfigJson.mj_config.api_key }; let res = _mjSettingService.AddAPIMjSetting(apiSetting); if (res.code == 1) { global.logger.info("AutoSyncMJConfig2210", '自动同步MJ API 配置数据成功'); } else { global.logger.error("AutoSyncMJConfig2210", '自动同步MJ API 配置数据失败,错误信息如下:' + '\n' + res.message); } } } // 判断数据库中是不是存在浏览器配置数据,不存在同步 let dbBrowserSetting = _mjSettingService.GetBrowserMJSetting(null); if (dbBrowserSetting.code == 1 && dbBrowserSetting.data.length <= 0) { // 同步浏览器配置,判断数据是不是存在 if (isEmpty(mjConfigJson.mj_config.serviceID) || isEmpty(mjConfigJson.mj_config.channelID) || isEmpty(mjConfigJson.mj_config.token) || (!mjConfigJson.mj_config.userAgent || isEmpty(mjConfigJson.mj_config.userAgent) || isEmpty(mjConfigJson.mj_config.userAgent.userAgent)) ) { return; } // 开始添加浏览器配置 let browserSetting = { serviceId: mjConfigJson.mj_config.serviceID, channelId: mjConfigJson.mj_config.channelID, token: mjConfigJson.mj_config.token, userAgent: mjConfigJson.mj_config.userAgent.userAgent }; let res = _mjSettingService.AddBrowserMJSetting(browserSetting); if (res.code == 1) { global.logger.info("AutoSyncMJConfig2210", '自动同步MJ 浏览器配置数据成功'); } else { global.logger.error("AutoSyncMJConfig2210", '自动同步MJ 浏览器配置数据失败,错误信息如下:' + '\n' + res.message); } } // 判断基础数据,不存在同步 let mjSetting = _mjSettingService.GetMjSetting(null); if (mjSetting.code == 1 && mjSetting.data.length <= 0) { //判断数据然后选择同步 if (isEmpty(mjConfigJson.mj_config.request_model) || isEmpty(mjConfigJson.mj_config.select_robot) || isEmpty(mjConfigJson.mj_config.image_scale) || isEmpty(mjConfigJson.mj_config.image_model) || isEmpty(mjConfigJson.mj_config.image_suffix) ) { return; } // 开始添加基础配置 let mjSettingData = { requestModel: mjConfigJson.mj_config.request_model, selectRobot: mjConfigJson.mj_config.select_robot, imageScale: mjConfigJson.mj_config.image_scale, imageModel: mjConfigJson.mj_config.image_model, imageSuffix: mjConfigJson.mj_config.image_suffix, taskCount: mjConfigJson.mj_config.task_count ? mjConfigJson.mj_config.task_count : 3, spaceTime: mjConfigJson.mj_config.space_time ? mjConfigJson.mj_config.space_time : 5, }; let res = _mjSettingService.AddMJSetting(mjSettingData); if (res.code == 1) { global.logger.info("AutoSyncMJConfig2210", '自动同步MJ 基础配置数据成功'); } else { global.logger.error("AutoSyncMJConfig2210", '自动同步MJ 基础配置数据失败,错误信息如下:' + '\n' + res.message); } } // 初始化默认数据 let _softwareService = await SoftwareService.getInstance(); let softs = await _softwareService.GetSoftwareData(null); if (softs.code == 1 && softs.data.length <= 0) { // 添加 let softData = { theme: "light", reverse_display_show: false, reverse_show_book_striped: false, reverse_data_table_size: "samll", } let res = await _softwareService.AddSfotware(softData); if (res.code == 0) { throw new Error(res.message) } global.logger.info("AutoSyncMJConfig2210", '自动同步软件配置数据成功'); } return mjConfigJson; } catch (error) { // 同步数据不报错,只添加日志 global.logger.error("AutoSyncMJConfig2210", '自动同步MJ配置数据失败,错误信息如下:' + '\n' + error.toString()); } } //#endregion