import config from "../../../../../config/index.js"; import { insertModerationLog } from "../../../../../services/insert-moderation-log.js"; import define from "../../../define.js"; import { Metas } from "../../../../../models/index.js"; export const meta = { tags: [ "admin" ], requireCredential: true, requireAdmin: true }; export const paramDef = { type: "object", properties: {}, required: [] }; export default define(meta, paramDef, async (ps, me)=>{ const hostedConfig = config.isManagedHosting; const hosted = hostedConfig != null && hostedConfig === true; if (hosted) { const set = {}; if (config.deepl.managed != null && config.deepl.managed === true) { if (typeof config.deepl.authKey === "boolean") { set.deeplAuthKey = config.deepl.authKey; } if (typeof config.deepl.isPro === "boolean") { set.deeplIsPro = config.deepl.isPro; } } if (config.libreTranslate.managed != null && config.libreTranslate.managed === true) { if (typeof config.libreTranslate.apiUrl === "string") { set.libreTranslateApiUrl = config.libreTranslate.apiUrl; } if (typeof config.libreTranslate.apiKey === "string") { set.libreTranslateApiKey = config.libreTranslate.apiKey; } } if (config.email.managed != null && config.email.managed === true) { set.enableEmail = true; if (typeof config.email.address === "string") { set.email = config.email.address; } if (typeof config.email.host === "string") { set.smtpHost = config.email.host; } if (typeof config.email.port === "number") { set.smtpPort = config.email.port; } if (typeof config.email.user === "string") { set.smtpUser = config.email.user; } if (typeof config.email.pass === "string") { set.smtpPass = config.email.pass; } if (typeof config.email.useImplicitSslTls === "boolean") { set.smtpSecure = config.email.useImplicitSslTls; } } if (config.objectStorage.managed != null && config.objectStorage.managed === true) { set.useObjectStorage = true; if (typeof config.objectStorage.baseUrl === "string") { set.objectStorageBaseUrl = config.objectStorage.baseUrl; } if (typeof config.objectStorage.bucket === "string") { set.objectStorageBucket = config.objectStorage.bucket; } if (typeof config.objectStorage.prefix === "string") { set.objectStoragePrefix = config.objectStorage.prefix; } if (typeof config.objectStorage.endpoint === "string") { set.objectStorageEndpoint = config.objectStorage.endpoint; } if (typeof config.objectStorage.region === "string") { set.objectStorageRegion = config.objectStorage.region; } if (typeof config.objectStorage.accessKey === "string") { set.objectStorageAccessKey = config.objectStorage.accessKey; } if (typeof config.objectStorage.secretKey === "string") { set.objectStorageSecretKey = config.objectStorage.secretKey; } if (typeof config.objectStorage.useSsl === "boolean") { set.objectStorageUseSSL = config.objectStorage.useSsl; } if (typeof config.objectStorage.connnectOverProxy === "boolean") { set.objectStorageUseProxy = config.objectStorage.connnectOverProxy; } if (typeof config.objectStorage.setPublicReadOnUpload === "boolean") { set.objectStorageSetPublicRead = config.objectStorage.setPublicReadOnUpload; } if (typeof config.objectStorage.s3ForcePathStyle === "boolean") { set.objectStorageS3ForcePathStyle = config.objectStorage.s3ForcePathStyle; } } if (config.summalyProxyUrl !== undefined) { set.summalyProxy = config.summalyProxyUrl; } const meta = await Metas.findOne({ where: {}, order: { id: "DESC" } }); if (meta) await Metas.update(meta.id, set); else await Metas.save(set); insertModerationLog(me, "updateMeta"); } return hosted; });