mirror of
https://github.com/Kuingsmile/PicList.git
synced 2026-05-06 20:42:57 +08:00
⚡ Perf(custom): improve init perf of several pages
This commit is contained in:
@@ -310,30 +310,27 @@ export function createTray(tooltip: string) {
|
||||
// so the tray window must be available
|
||||
if (process.platform === 'darwin') {
|
||||
;(tray as any).on('drop-files', async (_: Event, files: string[]) => {
|
||||
const pasteStyle = picgo.getConfig<string>(configPaths.settings.pasteStyle) || IPasteStyle.MARKDOWN
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
const pasteStyle = allConfig.settings?.pasteStyle || IPasteStyle.MARKDOWN
|
||||
const rawInput = cloneDeep(files)
|
||||
const trayWindow = windowManager.get(IWindowList.TRAY_WINDOW)!
|
||||
const res = await uploader.setWebContents(trayWindow.webContents).uploadReturnCtx(files)
|
||||
const imgs = res[0] ? res[0] : false
|
||||
const backImgs = res[1] ? res[1] : false
|
||||
const deleteLocalFile = picgo.getConfig<boolean | undefined>(configPaths.settings.deleteLocalFile) || false
|
||||
const deleteLocalFile = allConfig.settings?.deleteLocalFile || false
|
||||
if (imgs !== false) {
|
||||
const pasteText: string[] = []
|
||||
for (let i = 0; i < imgs.length; i++) {
|
||||
if (deleteLocalFile) {
|
||||
await fs.remove(rawInput[i])
|
||||
}
|
||||
const [pasteTextItem, shortUrl] = await pasteTemplate(
|
||||
pasteStyle,
|
||||
imgs[i],
|
||||
picgo.getConfig<string | undefined>(configPaths.settings.customLink),
|
||||
)
|
||||
const [pasteTextItem, shortUrl] = await pasteTemplate(pasteStyle, imgs[i], allConfig.settings?.customLink)
|
||||
imgs[i].shortUrl = shortUrl
|
||||
pasteText.push(pasteTextItem)
|
||||
const isShowResultNotification =
|
||||
picgo.getConfig<boolean | undefined>(configPaths.settings.uploadResultNotification) === undefined
|
||||
allConfig.settings?.uploadResultNotification === undefined
|
||||
? true
|
||||
: !!picgo.getConfig<boolean | undefined>(configPaths.settings.uploadResultNotification)
|
||||
: !!allConfig.settings?.uploadResultNotification
|
||||
if (isShowResultNotification) {
|
||||
const notification = new Notification({
|
||||
title: $t('UPLOAD_SUCCEED'),
|
||||
|
||||
@@ -13,10 +13,8 @@ import { IPasteStyle, IWindowList } from '~/utils/enum'
|
||||
import pasteTemplate from '~/utils/pasteTemplate'
|
||||
|
||||
const handleClipboardUploadingReturnCtx = async (img?: IUploadOption): Promise<(ImgInfo[] | false)[]> => {
|
||||
const useBuiltinClipboard =
|
||||
picgo.getConfig<boolean | undefined>(configPaths.settings.useBuiltinClipboard) === undefined
|
||||
? true
|
||||
: !!picgo.getConfig<boolean | undefined>(configPaths.settings.useBuiltinClipboard)
|
||||
const useBuiltinClipboardConfig = picgo.getConfig<boolean | undefined>(configPaths.settings.useBuiltinClipboard)
|
||||
const useBuiltinClipboard = useBuiltinClipboardConfig === undefined ? true : !!useBuiltinClipboardConfig
|
||||
const win = windowManager.getAvailableWindow()
|
||||
if (useBuiltinClipboard) {
|
||||
return await uploader.setWebContents(win!.webContents).uploadWithBuildInClipboardReturnCtx(img)
|
||||
@@ -30,21 +28,18 @@ export const uploadClipboardFiles = async (): Promise<IStringKeyMap> => {
|
||||
const res = await handleClipboardUploadingReturnCtx()
|
||||
img = res[0] ? res[0] : false
|
||||
backImg = res[1] ? res[1] : false
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
if (img !== false) {
|
||||
if (img.length > 0) {
|
||||
const trayWindow = windowManager.get(IWindowList.TRAY_WINDOW)
|
||||
const pasteStyle = picgo.getConfig<string>(configPaths.settings.pasteStyle) || IPasteStyle.MARKDOWN
|
||||
const [pastedText, shortUrl] = await pasteTemplate(
|
||||
pasteStyle,
|
||||
img[0],
|
||||
picgo.getConfig<string | undefined>(configPaths.settings.customLink),
|
||||
)
|
||||
const pasteStyle = allConfig.settings?.pasteStyle || IPasteStyle.MARKDOWN
|
||||
const [pastedText, shortUrl] = await pasteTemplate(pasteStyle, img[0], allConfig.settings?.customLink)
|
||||
img[0].shortUrl = shortUrl
|
||||
handleCopyUrl(pastedText)
|
||||
const isShowResultNotification =
|
||||
picgo.getConfig<boolean | undefined>(configPaths.settings.uploadResultNotification) === undefined
|
||||
allConfig.settings?.uploadResultNotification === undefined
|
||||
? true
|
||||
: !!picgo.getConfig<boolean | undefined>(configPaths.settings.uploadResultNotification)
|
||||
: !!allConfig.settings?.uploadResultNotification
|
||||
if (isShowResultNotification) {
|
||||
const notification = new Notification({
|
||||
title: $t('UPLOAD_SUCCEED'),
|
||||
@@ -104,9 +99,10 @@ export const uploadChoosedFiles = async (
|
||||
imgs = res[0] ? res[0] : false
|
||||
backImgs = res[1] ? res[1] : false
|
||||
const result = []
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
if (imgs !== false) {
|
||||
const pasteStyle = picgo.getConfig<string>(configPaths.settings.pasteStyle) || IPasteStyle.MARKDOWN
|
||||
const deleteLocalFile = picgo.getConfig<boolean>(configPaths.settings.deleteLocalFile) || false
|
||||
const pasteStyle = allConfig.settings?.pasteStyle || IPasteStyle.MARKDOWN
|
||||
const deleteLocalFile = allConfig.settings?.deleteLocalFile || false
|
||||
const pasteText: string[] = []
|
||||
const imgLength = imgs.length
|
||||
for (let i = 0; i < imgLength; i++) {
|
||||
@@ -119,17 +115,13 @@ export const uploadChoosedFiles = async (
|
||||
picgo.log.error(err)
|
||||
})
|
||||
}
|
||||
const [pasteTextItem, shortUrl] = await pasteTemplate(
|
||||
pasteStyle,
|
||||
imgs[i],
|
||||
picgo.getConfig<string | undefined>(configPaths.settings.customLink),
|
||||
)
|
||||
const [pasteTextItem, shortUrl] = await pasteTemplate(pasteStyle, imgs[i], allConfig.settings?.customLink)
|
||||
imgs[i].shortUrl = shortUrl
|
||||
pasteText.push(pasteTextItem)
|
||||
const isShowResultNotification =
|
||||
picgo.getConfig<boolean | undefined>(configPaths.settings.uploadResultNotification) === undefined
|
||||
allConfig.settings?.uploadResultNotification === undefined
|
||||
? true
|
||||
: !!picgo.getConfig<boolean | undefined>(configPaths.settings.uploadResultNotification)
|
||||
: !!allConfig.settings?.uploadResultNotification
|
||||
if (isShowResultNotification) {
|
||||
if (imgLength <= 3) {
|
||||
const notification = new Notification({
|
||||
|
||||
@@ -60,10 +60,11 @@ class Uploader {
|
||||
picgo.helper.beforeUploadPlugins.register('renameFn', {
|
||||
handle: async (ctx: IPicGo) => {
|
||||
const uploaderType = getUploaderType(ctx)
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
|
||||
const globalRename = picgo.getConfig<boolean | undefined>(configPaths.settings.rename)
|
||||
const globalAutoRename = picgo.getConfig<boolean | undefined>(configPaths.settings.autoRename)
|
||||
const buildInList = picgo.getConfig<any[]>(configPaths.buildIn.list._name) || []
|
||||
const globalRename = allConfig.settings?.rename
|
||||
const globalAutoRename = allConfig.settings?.autoRename
|
||||
const buildInList = allConfig.buildIn?.list || []
|
||||
const idSpecificRename = buildInList.find((item: any) => item.id === uploaderType.id)?.manualRename
|
||||
const idSpecificAutoRename = buildInList.find((item: any) => item.id === uploaderType.id)?.autoRename
|
||||
const rename = idSpecificRename !== undefined ? !!idSpecificRename : !!globalRename
|
||||
@@ -137,17 +138,18 @@ class Uploader {
|
||||
try {
|
||||
const result = [false, false] as (ImgInfo[] | false)[]
|
||||
const res = await picgo.uploadReturnCtx(img)
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
|
||||
if (Array.isArray(res.output) && res.output.some((item: ImgInfo) => item.imgUrl)) {
|
||||
res.output.forEach((item: ImgInfo) => {
|
||||
item.config = JSON.parse(JSON.stringify(picgo.getConfig<any>(`picBed.${item.type}`)))
|
||||
item.config = JSON.parse(JSON.stringify(allConfig.picBed?.[item.type!]))
|
||||
})
|
||||
result[0] = res.output
|
||||
}
|
||||
|
||||
if (Array.isArray(res.backupOutput) && res.backupOutput.some((item: ImgInfo) => item.imgUrl)) {
|
||||
res.backupOutput.forEach((item: ImgInfo) => {
|
||||
item.config = JSON.parse(JSON.stringify(picgo.getConfig<any>(`picBed.${item.type}`)))
|
||||
item.config = JSON.parse(JSON.stringify(allConfig.picBed?.[item.type!]))
|
||||
})
|
||||
result[1] = res.backupOutput
|
||||
}
|
||||
|
||||
@@ -17,8 +17,9 @@ import { applyTheme } from '../theme'
|
||||
const windowList = new Map<string, IWindowListItem>()
|
||||
|
||||
const getDefaultWindowSizes = (): { width: number; height: number } => {
|
||||
const mainWindowWidth = picgo.getConfig<number>(configPaths.settings.mainWindowWidth)
|
||||
const mainWindowHeight = picgo.getConfig<number>(configPaths.settings.mainWindowHeight)
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
const mainWindowWidth = allConfig.settings?.mainWindowWidth
|
||||
const mainWindowHeight = allConfig.settings?.mainWindowHeight
|
||||
return {
|
||||
width: mainWindowWidth || 1200,
|
||||
height: mainWindowHeight || 800,
|
||||
|
||||
@@ -11,7 +11,6 @@ import { cloneDeep } from 'lodash-es'
|
||||
import { SHOW_INPUT_BOX } from '~/events/constant'
|
||||
import { T as $t } from '~/i18n'
|
||||
import { handleCopyUrl } from '~/utils/common'
|
||||
import { configPaths } from '~/utils/configPaths'
|
||||
import { IPasteStyle } from '~/utils/enum'
|
||||
import pasteTemplate from '~/utils/pasteTemplate'
|
||||
|
||||
@@ -78,25 +77,22 @@ class GuiApi implements IGuiApi {
|
||||
const imgs = res[0] ? res[0] : false
|
||||
const backImgs = res[1] ? res[1] : false
|
||||
let result: ImgInfo[] = []
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
if (imgs !== false) {
|
||||
const pasteStyle = picgo.getConfig<string>(configPaths.settings.pasteStyle) || IPasteStyle.MARKDOWN
|
||||
const deleteLocalFile = picgo.getConfig<boolean>(configPaths.settings.deleteLocalFile) || false
|
||||
const pasteStyle = allConfig.settings?.pasteStyle || IPasteStyle.MARKDOWN
|
||||
const deleteLocalFile = allConfig.settings?.deleteLocalFile || false
|
||||
const pasteText: string[] = []
|
||||
for (let i = 0; i < imgs.length; i++) {
|
||||
if (deleteLocalFile) {
|
||||
await fs.remove(rawInput[i])
|
||||
}
|
||||
const [pasteTextItem, shortUrl] = await pasteTemplate(
|
||||
pasteStyle,
|
||||
imgs[i],
|
||||
picgo.getConfig<string>(configPaths.settings.customLink),
|
||||
)
|
||||
const [pasteTextItem, shortUrl] = await pasteTemplate(pasteStyle, imgs[i], allConfig.settings?.customLink)
|
||||
imgs[i].shortUrl = shortUrl
|
||||
pasteText.push(pasteTextItem)
|
||||
const isShowResultNotification =
|
||||
picgo.getConfig<boolean>(configPaths.settings.uploadResultNotification) === undefined
|
||||
allConfig.settings?.uploadResultNotification === undefined
|
||||
? true
|
||||
: !!picgo.getConfig<boolean>(configPaths.settings.uploadResultNotification)
|
||||
: !!allConfig.settings?.uploadResultNotification
|
||||
if (isShowResultNotification) {
|
||||
const notification = new Notification({
|
||||
title: $t('UPLOAD_SUCCEED'),
|
||||
|
||||
@@ -144,14 +144,13 @@ const buildMainPageMenu = (win: BrowserWindow) => {
|
||||
|
||||
const buildSecondPicBedMenu = () => {
|
||||
const picBeds = getPicBeds().picBeds
|
||||
const secondUploader = picgo.getConfig(configPaths.picBed.secondUploader)
|
||||
const defaultSecondUploaderConfig = picgo.getConfig(configPaths.picBed.secondUploaderConfig) as
|
||||
| IUploaderConfig
|
||||
| undefined
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
const secondUploader = allConfig.picBed?.secondUploader
|
||||
const defaultSecondUploaderConfig = allConfig.picBed?.secondUploaderConfig as IUploaderConfig | undefined
|
||||
const defaultSecondUploaderId = defaultSecondUploaderConfig?._id || ''
|
||||
const defaultSecondUploaderName = defaultSecondUploaderConfig?._configName || 'Default'
|
||||
const currentPicBedName = picBeds.find(item => item.type === secondUploader)?.name
|
||||
const picBedConfigList = picgo.getConfig<IUploaderConfig>('uploader')
|
||||
const picBedConfigList = allConfig.uploader
|
||||
const currentPicBedMenuItem = [
|
||||
{
|
||||
label: `${$t('CURRENT_SECOND_PICBED')} - ${currentPicBedName || 'None'} - ${defaultSecondUploaderName}`,
|
||||
@@ -171,7 +170,7 @@ const buildSecondPicBedMenu = () => {
|
||||
type: !hasSubmenu ? 'checkbox' : undefined,
|
||||
checked: !hasSubmenu ? secondUploader === item.type : undefined,
|
||||
submenu: hasSubmenu
|
||||
? configList.map(config => {
|
||||
? configList.map((config: any) => {
|
||||
return {
|
||||
label: config._configName || 'Default',
|
||||
// if only one config, use checkbox, or radio will checked as default
|
||||
@@ -202,9 +201,10 @@ const buildSecondPicBedMenu = () => {
|
||||
|
||||
const buildPicBedListMenu = () => {
|
||||
const picBeds = getPicBeds().picBeds
|
||||
const currentPicBed = picgo.getConfig(configPaths.picBed.uploader)
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
const currentPicBed = allConfig.picBed?.uploader
|
||||
const currentPicBedName = picBeds.find(item => item.type === currentPicBed)?.name
|
||||
const picBedConfigList = picgo.getConfig<IUploaderConfig>('uploader')
|
||||
const picBedConfigList = allConfig.uploader
|
||||
const currentPicBedMenuItem = [
|
||||
{
|
||||
label: `${$t('CURRENT_PICBED')} - ${currentPicBedName}`,
|
||||
@@ -225,7 +225,7 @@ const buildPicBedListMenu = () => {
|
||||
type: !hasSubmenu ? 'checkbox' : undefined,
|
||||
checked: !hasSubmenu ? currentPicBed === item.type : undefined,
|
||||
submenu: hasSubmenu
|
||||
? configList.map(config => {
|
||||
? configList.map((config: any) => {
|
||||
return {
|
||||
label: config._configName || 'Default',
|
||||
// if only one config, use checkbox, or radio will checked as default
|
||||
|
||||
@@ -4,7 +4,6 @@ import GuiApi from 'apis/gui'
|
||||
import { clipboard } from 'electron'
|
||||
|
||||
import { RPCRouter } from '~/events/rpc/router'
|
||||
import { configPaths } from '~/utils/configPaths'
|
||||
import { ICOREBuildInEvent, IPasteStyle, IRPCActionType, IRPCType } from '~/utils/enum'
|
||||
import pasteTemplate from '~/utils/pasteTemplate'
|
||||
interface IFilter {
|
||||
@@ -24,8 +23,9 @@ const galleryRoutes = [
|
||||
action: IRPCActionType.GALLERY_PASTE_TEXT,
|
||||
handler: async (_: IIPCEvent, args: [item: ImgInfo, copy?: boolean]) => {
|
||||
const [item, copy = true] = args
|
||||
const pasteStyle = picgo.getConfig<string>(configPaths.settings.pasteStyle) || IPasteStyle.MARKDOWN
|
||||
const customLink = picgo.getConfig<string>(configPaths.settings.customLink)
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
const pasteStyle = allConfig.settings?.pasteStyle || IPasteStyle.MARKDOWN
|
||||
const customLink = allConfig.settings?.customLink
|
||||
const [txt, shortUrl] = await pasteTemplate(pasteStyle, item, customLink)
|
||||
if (copy) {
|
||||
clipboard.writeText(txt)
|
||||
|
||||
@@ -7,7 +7,6 @@ import { Notification } from 'electron'
|
||||
import { RPCRouter } from '~/events/rpc/router'
|
||||
import { T as $t } from '~/i18n'
|
||||
import { generateShortUrl, handleCopyUrl, setTrayToolTip } from '~/utils/common'
|
||||
import { configPaths } from '~/utils/configPaths'
|
||||
import { IPasteStyle, IRPCActionType, IRPCType, IWindowList } from '~/utils/enum'
|
||||
import pasteTemplate from '~/utils/pasteTemplate'
|
||||
|
||||
@@ -35,19 +34,16 @@ const trayRoutes = [
|
||||
const res = await uploader.setWebContents(trayWindow.webContents).uploadWithBuildInClipboardReturnCtx()
|
||||
const img = res[0] ? res[0] : false
|
||||
const backupImgs = res[1] ? res[1] : false
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
if (img !== false) {
|
||||
const pasteStyle = picgo.getConfig<string>(configPaths.settings.pasteStyle) || IPasteStyle.MARKDOWN
|
||||
const [pasteText, shortUrl] = await pasteTemplate(
|
||||
pasteStyle,
|
||||
img[0],
|
||||
picgo.getConfig<string>(configPaths.settings.customLink),
|
||||
)
|
||||
const pasteStyle = allConfig.settings?.pasteStyle || IPasteStyle.MARKDOWN
|
||||
const [pasteText, shortUrl] = await pasteTemplate(pasteStyle, img[0], allConfig.settings?.customLink)
|
||||
img[0].shortUrl = shortUrl
|
||||
handleCopyUrl(pasteText)
|
||||
const isShowResultNotification =
|
||||
picgo.getConfig<boolean>(configPaths.settings.uploadResultNotification) === undefined
|
||||
allConfig.settings?.uploadResultNotification === undefined
|
||||
? true
|
||||
: !!picgo.getConfig<boolean>(configPaths.settings.uploadResultNotification)
|
||||
: !!allConfig.settings?.uploadResultNotification
|
||||
if (isShowResultNotification) {
|
||||
const notification = new Notification({
|
||||
title: $t('UPLOAD_SUCCEED'),
|
||||
|
||||
@@ -81,9 +81,10 @@ class LifeCycle {
|
||||
|
||||
#onReady() {
|
||||
const readyFunction = async () => {
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
windowManager.create(IWindowList.TRAY_WINDOW)
|
||||
windowManager.create(IWindowList.SETTING_WINDOW)
|
||||
const isAutoListenClipboard = picgo.getConfig<boolean>(configPaths.settings.isAutoListenClipboard) || false
|
||||
const isAutoListenClipboard = allConfig.settings?.isAutoListenClipboard || false
|
||||
const ClipboardWatcher = clipboardPoll
|
||||
if (isAutoListenClipboard) {
|
||||
picgo.saveConfig({ [configPaths.settings.isListeningClipboard]: true })
|
||||
@@ -95,16 +96,13 @@ class LifeCycle {
|
||||
} else {
|
||||
picgo.saveConfig({ [configPaths.settings.isListeningClipboard]: false })
|
||||
}
|
||||
const isHideDock = picgo.getConfig<boolean>(configPaths.settings.isHideDock) || false
|
||||
let startMode = picgo.getConfig<string>(configPaths.settings.startMode) || ISartMode.QUIET
|
||||
const isHideDock = allConfig.settings?.isHideDock || false
|
||||
let startMode = allConfig.settings?.startMode || ISartMode.QUIET
|
||||
if (process.platform === 'darwin' && startMode === ISartMode.MINI) {
|
||||
startMode = ISartMode.QUIET
|
||||
}
|
||||
const currentPicBed =
|
||||
picgo.getConfig<string>(configPaths.picBed.uploader) ||
|
||||
picgo.getConfig<string>(configPaths.picBed.current) ||
|
||||
'smms'
|
||||
const currentPicBedConfig = picgo.getConfig<any>(`picBed.${currentPicBed}`)?._configName || 'Default'
|
||||
const currentPicBed = allConfig.picBed?.uploader || allConfig.picBed?.current || 'smms'
|
||||
const currentPicBedConfig = allConfig.picBed?.[currentPicBed]?._configName || 'Default'
|
||||
const tooltip = `${currentPicBed} ${currentPicBedConfig}`
|
||||
if (process.platform === 'darwin') {
|
||||
isHideDock ? app.dock?.hide() : setDockMenu()
|
||||
@@ -138,11 +136,11 @@ class LifeCycle {
|
||||
windowManager.create(IWindowList.MINI_WINDOW)
|
||||
const miniWindow = windowManager.get(IWindowList.MINI_WINDOW)!
|
||||
miniWindow.removeAllListeners()
|
||||
if (picgo.getConfig<boolean>(configPaths.settings.miniWindowOntop)) {
|
||||
if (allConfig.settings?.miniWindowOntop) {
|
||||
miniWindow.setAlwaysOnTop(true)
|
||||
}
|
||||
const { width, height } = screen.getPrimaryDisplay().workAreaSize
|
||||
const lastPosition = picgo.getConfig<number[]>(configPaths.settings.miniWindowPosition)
|
||||
const lastPosition = allConfig.settings?.miniWindowPosition
|
||||
if (lastPosition) {
|
||||
if (lastPosition[0] < 0 || lastPosition[0] > width || lastPosition[1] < 0 || lastPosition[1] > height) {
|
||||
miniWindow.setPosition(width - 100, height - 100)
|
||||
|
||||
@@ -13,7 +13,6 @@ import { markdownContent } from '~/server/apiDoc'
|
||||
import router from '~/server/router'
|
||||
import { deleteChoosedFiles, handleResponse } from '~/server/utils'
|
||||
import { AESHelper } from '~/utils/aesHelper'
|
||||
import { configPaths } from '~/utils/configPaths'
|
||||
import { changeCurrentUploader } from '~/utils/handleUploaderConfig'
|
||||
|
||||
const appPath = dataDir()
|
||||
@@ -45,10 +44,11 @@ router.post(
|
||||
urlparams?: URLSearchParams
|
||||
}): Promise<void> => {
|
||||
try {
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
const picbed = urlparams?.get('picbed')
|
||||
const passedKey = urlparams?.get('key')
|
||||
const serverKey = picgo.getConfig<string>(configPaths.settings.serverKey) || ''
|
||||
const useShortUrl = picgo.getConfig<boolean>(configPaths.settings.useShortUrl)
|
||||
const serverKey = allConfig.settings?.serverKey || ''
|
||||
const useShortUrl = allConfig.settings?.useShortUrl
|
||||
if (serverKey && passedKey !== serverKey) {
|
||||
handleResponse({
|
||||
response,
|
||||
@@ -64,7 +64,7 @@ router.post(
|
||||
let currentPicBedConfigId = ''
|
||||
let needRestore = false
|
||||
if (picbed) {
|
||||
const currentPicBed = picgo.getConfig<IStringKeyMap>('picBed') || ({} as IStringKeyMap)
|
||||
const currentPicBed = allConfig.picBed || ({} as IStringKeyMap)
|
||||
currentPicBedType = currentPicBed.uploader || currentPicBed.current || 'smms'
|
||||
currentPicBedConfig = currentPicBed[currentPicBedType] || ({} as IStringKeyMap)
|
||||
currentPicBedConfigId = currentPicBedConfig._id
|
||||
@@ -73,7 +73,7 @@ router.post(
|
||||
// do nothing
|
||||
} else {
|
||||
needRestore = true
|
||||
const picBeds = picgo.getConfig<IStringKeyMap>('uploader')
|
||||
const picBeds = allConfig.uploader
|
||||
const currentPicBedList = picBeds?.[picbed]?.configList
|
||||
if (currentPicBedList) {
|
||||
const currentConfig = currentPicBedList?.find((item: any) => item._configName === configName)
|
||||
|
||||
@@ -6,7 +6,6 @@ import logger from '@core/picgo/logger'
|
||||
import fs from 'fs-extra'
|
||||
|
||||
import { encodeFilePath } from '~/utils/common'
|
||||
import { configPaths } from '~/utils/configPaths'
|
||||
|
||||
const defaultPath = process.platform === 'win32' ? 'C:\\Users' : '/'
|
||||
|
||||
@@ -656,11 +655,12 @@ class WebServer {
|
||||
}
|
||||
|
||||
loadConfig(): void {
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
this.#config = {
|
||||
enableWebServer: picgo.getConfig<boolean>(configPaths.settings.enableWebServer) || false,
|
||||
webServerHost: picgo.getConfig<string>(configPaths.settings.webServerHost) || '0.0.0.0',
|
||||
webServerPort: picgo.getConfig<number>(configPaths.settings.webServerPort) || 37777,
|
||||
webServerPath: picgo.getConfig<string>(configPaths.settings.webServerPath) || defaultPath,
|
||||
enableWebServer: allConfig.settings?.enableWebServer || false,
|
||||
webServerHost: allConfig.settings?.webServerHost || '0.0.0.0',
|
||||
webServerPort: allConfig.settings?.webServerPort || 37777,
|
||||
webServerPath: allConfig.settings?.webServerPath || defaultPath,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -347,11 +347,9 @@ export function getUploaderType(ctx: IPicGo): {
|
||||
picBed: string
|
||||
id?: string
|
||||
} {
|
||||
const picBed =
|
||||
ctx.getConfig<Undefinable<string>>('picBed.uploader') ||
|
||||
ctx.getConfig<Undefinable<string>>('picBed.current') ||
|
||||
'smms'
|
||||
const picBedConfig = ctx.getConfig<Undefinable<IStringKeyMap>>(`picBed.${picBed}`) || {}
|
||||
const allConfig = ctx.getConfig<any>() || {}
|
||||
const picBed = allConfig.picBed?.uploader || allConfig.picBed?.current || 'smms'
|
||||
const picBedConfig = allConfig.picBed?.[picBed] || {}
|
||||
const id = picBedConfig._id || ''
|
||||
return { picBed, id }
|
||||
}
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
import picgo from '@core/picgo'
|
||||
|
||||
import { configPaths } from '~/utils/configPaths'
|
||||
|
||||
const getPicBeds = () => {
|
||||
const picBedTypes = picgo.helper.uploader.getIdList()
|
||||
const defaultPicBed =
|
||||
picgo.getConfig<string>(configPaths.picBed.uploader) ||
|
||||
picgo.getConfig<string>(configPaths.picBed.current) ||
|
||||
'smms'
|
||||
const defaultConfig = picgo.getConfig<IStringKeyMap>(`picBed.${defaultPicBed}`) || {}
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
const defaultPicBed = allConfig.picBed?.uploader || allConfig.picBed?.current || 'smms'
|
||||
const defaultConfig = allConfig.picBed?.[defaultPicBed] || {}
|
||||
const defaultId = defaultConfig._id || ''
|
||||
const defaultConfigName = defaultConfig._configName || ''
|
||||
const picBedFromDB = picgo.getConfig<IPicBedType[]>(configPaths.picBed.list) || []
|
||||
const picBedFromDB = allConfig.picBed?.list || []
|
||||
const picBeds = picBedTypes
|
||||
.map((item: string) => {
|
||||
const visible = picBedFromDB.find((i: IPicBedType) => i.type === item) // object or undefined
|
||||
|
||||
@@ -240,10 +240,11 @@ class UploadTaskQueueManager {
|
||||
const res = await uploader.setWebContents(webContents).uploadReturnCtx(input)
|
||||
const imgs = res[0] ? res[0] : false
|
||||
const backupImgs = res[1] ? res[1] : false
|
||||
const allConfig = picgo.getConfig<any>() || {}
|
||||
|
||||
if (imgs !== false && imgs.length > 0) {
|
||||
const pasteStyle = picgo.getConfig<string>(configPaths.settings.pasteStyle) || IPasteStyle.MARKDOWN
|
||||
const deleteLocalFile = picgo.getConfig<boolean>(configPaths.settings.deleteLocalFile) || false
|
||||
const pasteStyle = allConfig.settings?.pasteStyle || IPasteStyle.MARKDOWN
|
||||
const deleteLocalFile = allConfig.settings?.deleteLocalFile || false
|
||||
|
||||
const img = imgs[0]
|
||||
|
||||
@@ -257,11 +258,7 @@ class UploadTaskQueueManager {
|
||||
})
|
||||
}
|
||||
|
||||
const [pasteText, shortUrl] = await pasteTemplate(
|
||||
pasteStyle,
|
||||
img,
|
||||
picgo.getConfig<string>(configPaths.settings.customLink),
|
||||
)
|
||||
const [pasteText, shortUrl] = await pasteTemplate(pasteStyle, img, allConfig.settings?.customLink)
|
||||
img.shortUrl = shortUrl
|
||||
|
||||
const inserted = await GalleryDB.getInstance().insert(img)
|
||||
|
||||
@@ -1337,18 +1337,16 @@ let compressInFile = {} as IBuildInCompressOptions
|
||||
|
||||
async function initData() {
|
||||
// global settings
|
||||
compressInFile = (await getConfig<IBuildInCompressOptions>(configPaths.buildIn.compress)) || {}
|
||||
const watermark = (await getConfig<IBuildInWaterMarkOptions>(configPaths.buildIn.watermark)) || {}
|
||||
const skipProcess = (await getConfig<IBuildInSkipProcessOptions>(configPaths.buildIn.skipProcess)) || {}
|
||||
globalRenameSettings.value = (await getConfig<{
|
||||
enable?: boolean
|
||||
format?: string
|
||||
}>(configPaths.buildIn.rename)) || {
|
||||
const allConfig = await getConfig<any>()
|
||||
compressInFile = allConfig.buildIn?.compress || {}
|
||||
const watermark = allConfig.buildIn?.watermark || {}
|
||||
const skipProcess = allConfig.buildIn?.skipProcess || {}
|
||||
globalRenameSettings.value = allConfig.buildIn?.rename || {
|
||||
enable: false,
|
||||
format: '{filename}',
|
||||
}
|
||||
globalAutoRename.value = (await getConfig<boolean>(configPaths.settings.autoRename)) ?? false
|
||||
globalManualRename.value = (await getConfig<boolean>(configPaths.settings.rename)) ?? false
|
||||
globalAutoRename.value = allConfig.settings?.autoRename ?? false
|
||||
globalManualRename.value = allConfig.settings?.rename ?? false
|
||||
if (compressInFile) {
|
||||
let cleanedObj = {}
|
||||
try {
|
||||
@@ -1405,11 +1403,8 @@ async function initData() {
|
||||
}
|
||||
}
|
||||
if (configId) {
|
||||
let buildInList = await getConfig<Undefinable<IBuildInListItem[]>>(configPaths.buildIn.list)
|
||||
const globalRenameSettings = (await getConfig<{
|
||||
enable: boolean
|
||||
format: string
|
||||
}>(configPaths.buildIn.rename)) || {
|
||||
let buildInList = allConfig.buildIn?.list
|
||||
const globalRenameSettings = allConfig.buildIn?.rename || {
|
||||
enable: false,
|
||||
format: '{filename}',
|
||||
}
|
||||
@@ -1417,7 +1412,7 @@ async function initData() {
|
||||
saveConfig(configPaths.buildIn.list, [])
|
||||
buildInList = []
|
||||
}
|
||||
singleConfigInFile = buildInList?.find(item => item.id === configId) || ({} as IBuildInListItem)
|
||||
singleConfigInFile = buildInList?.find((item: { id: string }) => item.id === configId) || ({} as IBuildInListItem)
|
||||
const mergedCompress = {
|
||||
...compressForm.value,
|
||||
...(singleConfigInFile.compress || {}),
|
||||
|
||||
Reference in New Issue
Block a user