diff --git a/src/background.ts b/src/background.ts index c8b4acb..ebba2cb 100644 --- a/src/background.ts +++ b/src/background.ts @@ -1,3 +1,3 @@ -import { bootstrap } from '~/main/lifeCycle' +import { bootstrap } from '~/lifeCycle' bootstrap.launchApp() diff --git a/src/main.ts b/src/main.ts index 3a2df23..3b7adc0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,43 +1,28 @@ - -// Vue 相关 -import { createApp } from 'vue' -import App from './renderer/App.vue' -import router from './renderer/router' +import { webFrame } from 'electron' import ElementUI from 'element-plus' import 'element-plus/dist/index.css' +import { createPinia } from 'pinia' +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' +import { createApp } from 'vue' import VueLazyLoad from 'vue3-lazyload' -import { initTalkingData } from './renderer/utils/analytic' import vue3PhotoPreview from 'vue3-photo-preview' import 'vue3-photo-preview/dist/index.css' import VueVideoPlayer from '@videojs-player/vue' - -// Electron 相关 -import { webFrame } from 'electron' - -// Mixins -import { mainMixin } from './renderer/utils/mainMixin' -import { dragMixin } from '@/utils/mixin' - -// 数据库 -import db from './renderer/utils/db' - -// 国际化 -import { T } from './renderer/i18n/index' - -// 工具函数 -import { getConfig, saveConfig, sendToMain, triggerRPC } from '@/utils/dataSender' - -// 状态管理 -import { store } from '@/store' -import { createPinia } from 'pinia' -import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' - -// 代码高亮 import 'highlight.js/styles/atom-one-dark.css' import hljsVuePlugin from '@highlightjs/vue-plugin' import hljsCommon from 'highlight.js/lib/common' import 'video.js/dist/video-js.css' +import App from '@/App.vue' +import router from '@/router' +import db from '@/utils/db' +import { T } from '@/i18n/index' +import { store } from '@/store' +import { initTalkingData } from '@/utils/analytic' +import { getConfig, saveConfig, sendToMain, triggerRPC } from '@/utils/dataSender' +import { mainMixin } from '@/utils/mainMixin' +import { dragMixin } from '@/utils/mixin' + webFrame.setVisualZoomLevelLimits(1, 1) const app = createApp(App) diff --git a/src/main/apis/app/remoteNotice/index.ts b/src/main/apis/app/remoteNotice/index.ts index cdf373a..ab6ba2f 100644 --- a/src/main/apis/app/remoteNotice/index.ts +++ b/src/main/apis/app/remoteNotice/index.ts @@ -1,25 +1,22 @@ -// External dependencies import axios from 'axios' +import { + app, + clipboard, + dialog, + shell +} from 'electron' import fs from 'fs-extra' import path from 'path' +import { gte, lte } from 'semver' -// Electron modules -import { app, clipboard, dialog, shell } from 'electron' - -// Custom modules and utilities -import windowManager from '../window/windowManager' -import { showNotification } from '~/main/utils/common' - -// Custom types/enums +import windowManager from 'apis/app/window/windowManager' +import { showNotification } from '~/utils/common' import { IRemoteNoticeActionType, IRemoteNoticeTriggerCount, IRemoteNoticeTriggerHook } from '#/types/enum' -// External utility functions -import { gte, lte } from 'semver' - // for test const REMOTE_NOTICE_URL = 'https://release.piclist.cn/remote-notice.json' diff --git a/src/main/apis/app/shortKey/shortKeyHandler.ts b/src/main/apis/app/shortKey/shortKeyHandler.ts index 69831fd..25c983e 100644 --- a/src/main/apis/app/shortKey/shortKeyHandler.ts +++ b/src/main/apis/app/shortKey/shortKeyHandler.ts @@ -1,24 +1,18 @@ -// External dependencies + import { globalShortcut } from 'electron' +import shortKeyService from 'apis/app/shortKey/shortKeyService' +import GuiApi from 'apis/gui' + import bus from '@core/bus' -import db from '~/main/apis/core/datastore' +import db from '@core/datastore' import logger from '@core/picgo/logger' import picgo from '@core/picgo' -// Electron modules - -// Custom utilities and modules -import GuiApi from '../../gui' -import shortKeyService from './shortKeyService' - -// Custom types/enums - -// External utility functions import { TOGGLE_SHORTKEY_MODIFIED_MODE } from '#/events/constants' -import { configPaths } from '~/universal/utils/configPaths' +import { configPaths } from '#/utils/configPaths' class ShortKeyHandler { private isInModifiedMode: boolean = false diff --git a/src/main/apis/app/system/index.ts b/src/main/apis/app/system/index.ts index 829ba59..31a564b 100644 --- a/src/main/apis/app/system/index.ts +++ b/src/main/apis/app/system/index.ts @@ -1,34 +1,34 @@ -// External dependencies +import { + app, + clipboard, + dialog, + Menu, + nativeTheme, + Notification, + screen, + Tray +} from 'electron' import fs from 'fs-extra' import { cloneDeep } from 'lodash' -// Electron modules -import { - app, - Menu, - Tray, - dialog, - clipboard, - Notification, - screen, - nativeTheme -} from 'electron' +import db, { GalleryDB } from '@core/datastore' +import picgo from '@core/picgo' -// Custom utilities and modules import uploader from 'apis/app/uploader' -import db, { GalleryDB } from '~/main/apis/core/datastore' +import { uploadClipboardFiles } from 'apis/app/uploader/apis' import windowManager from 'apis/app/window/windowManager' + +import { buildPicBedListMenu } from '~/events/remotes/menu' +import { T } from '~/i18n' +import clipboardPoll from '~/utils/clipboardPoll' +import { ensureFilePath, handleCopyUrl, setTray, tray } from '~/utils/common' +import { isMacOSVersionGreaterThanOrEqualTo } from '~/utils/getMacOSVersion' +import pasteTemplate from '~/utils/pasteTemplate' + +import { configPaths } from '#/utils/configPaths' import { IPasteStyle, IWindowList } from '#/types/enum' -import pasteTemplate from '~/main/utils/pasteTemplate' + import pkg from 'root/package.json' -import { ensureFilePath, handleCopyUrl, setTray, tray } from '~/main/utils/common' -import { T } from '~/main/i18n' -import { isMacOSVersionGreaterThanOrEqualTo } from '~/main/utils/getMacOSVersion' -import { buildPicBedListMenu } from '~/main/events/remotes/menu' -import clipboardPoll from '~/main/utils/clipboardPoll' -import picgo from '../../core/picgo' -import { uploadClipboardFiles } from '../uploader/apis' -import { configPaths } from '~/universal/utils/configPaths' let contextMenu: Menu | null diff --git a/src/main/apis/app/uploader/apis.ts b/src/main/apis/app/uploader/apis.ts index d9e8b45..ee94f63 100644 --- a/src/main/apis/app/uploader/apis.ts +++ b/src/main/apis/app/uploader/apis.ts @@ -1,30 +1,30 @@ -// External dependencies -import fs from 'fs-extra' -import { cloneDeep } from 'lodash' - -// Electron modules import { Notification, WebContents } from 'electron' +import fs from 'fs-extra' +import { cloneDeep } from 'lodash' +import path from 'path' +import { ISftpPlistConfig } from 'piclist' -// Custom utilities and modules -import windowManager from 'apis/app/window/windowManager' -import pasteTemplate from '~/main/utils/pasteTemplate' -import db, { GalleryDB } from '~/main/apis/core/datastore' -import { handleCopyUrl, handleUrlEncodeWithSetting } from '~/main/utils/common' -import { T } from '~/main/i18n/index' -import ALLApi from '@/apis/allApi' import picgo from '@core/picgo' -import GuiApi from '../../gui' -import uploader from '.' +import db, { GalleryDB } from '@core/datastore' + +import GuiApi from 'apis/gui' +import uploader from 'apis/app/uploader' +import windowManager from 'apis/app/window/windowManager' + +import { T } from '~/i18n/index' +import { handleCopyUrl, handleUrlEncodeWithSetting } from '~/utils/common' +import pasteTemplate from '~/utils/pasteTemplate' +import SSHClient from '~/utils/sshClient' + +import ALLApi from '@/apis/allApi' +import { getRawData } from '@/utils/common' + import { IPasteStyle, IWindowList } from '#/types/enum' import { picBedsCanbeDeleted } from '#/utils/static' -import path from 'path' -import SSHClient from '~/main/utils/sshClient' -import { ISftpPlistConfig } from 'piclist' -import { getRawData } from '~/renderer/utils/common' -import { configPaths } from '~/universal/utils/configPaths' +import { configPaths } from '#/utils/configPaths' const handleClipboardUploading = async (): Promise => { const useBuiltinClipboard = db.get(configPaths.settings.useBuiltinClipboard) === undefined ? true : !!db.get(configPaths.settings.useBuiltinClipboard) diff --git a/src/main/apis/app/uploader/index.ts b/src/main/apis/app/uploader/index.ts index d345492..65f8ec8 100644 --- a/src/main/apis/app/uploader/index.ts +++ b/src/main/apis/app/uploader/index.ts @@ -1,39 +1,34 @@ -// External dependencies import dayjs from 'dayjs' +import { + BrowserWindow, + clipboard, + ipcMain, + Notification, + WebContents +} from 'electron' +import fse from 'fs-extra' import util from 'util' import path from 'path' -import writeFile from 'write-file-atomic' -import fse from 'fs-extra' - -// Electron modules -import { - Notification, - BrowserWindow, - ipcMain, - WebContents, - clipboard -} from 'electron' - -// Custom utilities and modules -import picgo from '@core/picgo' -import db from '~/main/apis/core/datastore' -import windowManager from 'apis/app/window/windowManager' -import { showNotification, getClipboardFilePath, calcDurationRange } from '~/main/utils/common' -import logger from '@core/picgo/logger' -import { T } from '~/main/i18n' -import { CLIPBOARD_IMAGE_FOLDER } from '~/universal/utils/static' - -// Custom types/enums -import { IWindowList } from '#/types/enum' - -// External utility functions import { IPicGo } from 'piclist' +import writeFile from 'write-file-atomic' + +import windowManager from 'apis/app/window/windowManager' + +import db from '@core/datastore' +import picgo from '@core/picgo' +import logger from '@core/picgo/logger' + +import { T } from '~/i18n' +import { showNotification, getClipboardFilePath, calcDurationRange } from '~/utils/common' + import { GET_RENAME_FILE_NAME, RENAME_FILE_NAME, TALKING_DATA_EVENT -} from '~/universal/events/constants' -import { configPaths } from '~/universal/utils/configPaths' +} from '#/events/constants' +import { IWindowList } from '#/types/enum' +import { configPaths } from '#/utils/configPaths' +import { CLIPBOARD_IMAGE_FOLDER } from '#/utils/static' const waitForRename = (window: BrowserWindow, id: number): Promise => { return new Promise((resolve) => { diff --git a/src/main/apis/app/window/constants.ts b/src/main/apis/app/window/constants.ts index c484e9a..913d3fe 100644 --- a/src/main/apis/app/window/constants.ts +++ b/src/main/apis/app/window/constants.ts @@ -1,12 +1,8 @@ const isDevelopment = process.env.NODE_ENV !== 'production' -export const TRAY_WINDOW_URL = isDevelopment - ? (process.env.WEBPACK_DEV_SERVER_URL as string) - : 'picgo://./index.html' - -export const SETTING_WINDOW_URL = isDevelopment - ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#main-page/upload` - : 'picgo://./index.html#main-page/upload' +export const MANUAL_WINDOW_URL = process.env.NODE_ENV === 'development' + ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#documents` + : 'picgo://./index.html#documents' export const MINI_WINDOW_URL = isDevelopment ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#mini-page` @@ -16,10 +12,14 @@ export const RENAME_WINDOW_URL = process.env.NODE_ENV === 'development' ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#rename-page` : 'picgo://./index.html#rename-page' +export const SETTING_WINDOW_URL = isDevelopment + ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#main-page/upload` + : 'picgo://./index.html#main-page/upload' + +export const TRAY_WINDOW_URL = isDevelopment + ? (process.env.WEBPACK_DEV_SERVER_URL as string) + : 'picgo://./index.html' + export const TOOLBOX_WINDOW_URL = process.env.NODE_ENV === 'development' ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#toolbox-page` : 'picgo://./index.html#toolbox-page' - -export const MANUAL_WINDOW_URL = process.env.NODE_ENV === 'development' - ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#documents` - : 'picgo://./index.html#documents' diff --git a/src/main/apis/app/window/windowList.ts b/src/main/apis/app/window/windowList.ts index 78bbb56..225d76e 100644 --- a/src/main/apis/app/window/windowList.ts +++ b/src/main/apis/app/window/windowList.ts @@ -1,29 +1,24 @@ -// External dependencies import { app } from 'electron' -// Electron modules - -// Custom utilities and modules -import bus from '@core/bus' -import db from '~/main/apis/core/datastore' -import picgo from '~/main/apis/core/picgo' -import { T } from '~/main/i18n' import { - SETTING_WINDOW_URL, - TRAY_WINDOW_URL, + MANUAL_WINDOW_URL, MINI_WINDOW_URL, RENAME_WINDOW_URL, - TOOLBOX_WINDOW_URL, - MANUAL_WINDOW_URL + SETTING_WINDOW_URL, + TRAY_WINDOW_URL, + TOOLBOX_WINDOW_URL } from './constants' -// Custom types/enums -import { IWindowList } from '#/types/enum' - -// External utility functions +import bus from '@core/bus' import { CREATE_APP_MENU } from '@core/bus/constants' +import db from '@core/datastore' +import picgo from '@core/picgo' + +import { T } from '~/i18n' + import { TOGGLE_SHORTKEY_MODIFIED_MODE } from '#/events/constants' -import { configPaths } from '~/universal/utils/configPaths' +import { IWindowList } from '#/types/enum' +import { configPaths } from '#/utils/configPaths' const windowList = new Map() diff --git a/src/main/apis/app/window/windowManager.ts b/src/main/apis/app/window/windowManager.ts index 2d23b6c..ea652f1 100644 --- a/src/main/apis/app/window/windowManager.ts +++ b/src/main/apis/app/window/windowManager.ts @@ -1,12 +1,6 @@ -// External dependencies -import windowList from './windowList' - -// Electron modules import { BrowserWindow } from 'electron' -// Custom utilities and modules - -// Custom types/enums +import windowList from 'apis/app/window/windowList' import { IWindowList } from '#/types/enum' class WindowManager implements IWindowManager { diff --git a/src/main/apis/core/bus/apis.ts b/src/main/apis/core/bus/apis.ts index 5a2bff6..76e7501 100644 --- a/src/main/apis/core/bus/apis.ts +++ b/src/main/apis/core/bus/apis.ts @@ -1,14 +1,14 @@ -import bus from '.' +import bus from '@core/bus/index' import { - UPLOAD_WITH_FILES, - UPLOAD_WITH_FILES_RESPONSE, - UPLOAD_WITH_CLIPBOARD_FILES, - UPLOAD_WITH_CLIPBOARD_FILES_RESPONSE, + GET_SETTING_WINDOW_ID, + GET_SETTING_WINDOW_ID_RESPONSE, GET_WINDOW_ID, GET_WINDOW_ID_REPONSE, - GET_SETTING_WINDOW_ID, - GET_SETTING_WINDOW_ID_RESPONSE -} from './constants' + UPLOAD_WITH_CLIPBOARD_FILES, + UPLOAD_WITH_CLIPBOARD_FILES_RESPONSE, + UPLOAD_WITH_FILES, + UPLOAD_WITH_FILES_RESPONSE +} from '@core/bus/constants' export const uploadWithClipboardFiles = (): Promise<{ success: boolean, diff --git a/src/main/apis/core/bus/constants.ts b/src/main/apis/core/bus/constants.ts index d22c742..7b47acb 100644 --- a/src/main/apis/core/bus/constants.ts +++ b/src/main/apis/core/bus/constants.ts @@ -1,3 +1,4 @@ +export const CREATE_APP_MENU = 'CREATE_APP_MENU' export const GET_WINDOW_ID = 'GET_WINDOW_ID' // get a current window export const GET_WINDOW_ID_REPONSE = 'GET_WINDOW_ID_REPONSE' export const GET_SETTING_WINDOW_ID = 'GET_SETTING_WINDOW_ID' // get setting window @@ -6,4 +7,3 @@ export const UPLOAD_WITH_FILES = 'UPLOAD_WITH_FILES' export const UPLOAD_WITH_FILES_RESPONSE = 'UPLOAD_WITH_FILES_RESPONSE' export const UPLOAD_WITH_CLIPBOARD_FILES = 'UPLOAD_WITH_CLIPBOARD_FILES' export const UPLOAD_WITH_CLIPBOARD_FILES_RESPONSE = 'UPLOAD_WITH_CLIPBOARD_FILES_RESPONSE' -export const CREATE_APP_MENU = 'CREATE_APP_MENU' diff --git a/src/main/apis/core/datastore/dbChecker.ts b/src/main/apis/core/datastore/dbChecker.ts index c393a1c..c7732e8 100644 --- a/src/main/apis/core/datastore/dbChecker.ts +++ b/src/main/apis/core/datastore/dbChecker.ts @@ -1,28 +1,19 @@ -// External dependencies +import { app } from 'electron' import fs from 'fs-extra' import dayjs from 'dayjs' import path from 'path' - -// Electron modules -import { app } from 'electron' - -// Custom utilities and modules -import { getLogger } from '../utils/localLogger' - -// Custom types/enums - -// External utility functions - -// External utility functions import writeFile from 'write-file-atomic' -// Custom types/enums -import { T } from '~/main/i18n' +import { getLogger } from '@core/utils/localLogger' + +import { T } from '~/i18n' const STORE_PATH = app.getPath('userData') + const configFilePath = path.join(STORE_PATH, 'data.json') const configFileBackupPath = path.join(STORE_PATH, 'data.bak.json') export const defaultConfigPath = configFilePath + let _configFilePath = '' let hasCheckPath = false diff --git a/src/main/apis/core/datastore/index.ts b/src/main/apis/core/datastore/index.ts index 95bf4eb..18bb660 100644 --- a/src/main/apis/core/datastore/index.ts +++ b/src/main/apis/core/datastore/index.ts @@ -1,19 +1,10 @@ -// External dependencies import fs from 'fs-extra' - -// Electron modules - -// Custom utilities and modules -import { dbPathChecker, dbPathDir, getGalleryDBPath } from './dbChecker' - -// Custom types/enums - -// External utility functions import { DBStore, JSONStore } from '@picgo/store' -// External utility functions -import { T } from '~/main/i18n' -import { configPaths } from '~/universal/utils/configPaths' +import { dbPathChecker, dbPathDir, getGalleryDBPath } from '@core/datastore/dbChecker' + +import { T } from '~/i18n' +import { configPaths } from '#/utils/configPaths' const STORE_PATH = dbPathDir() diff --git a/src/main/apis/core/picgo/index.ts b/src/main/apis/core/picgo/index.ts index 4f8913f..8cda033 100644 --- a/src/main/apis/core/picgo/index.ts +++ b/src/main/apis/core/picgo/index.ts @@ -1,17 +1,10 @@ -// External dependencies -import pkg from 'root/package.json' import debounce from 'lodash/debounce' - -// Electron modules - -// Custom utilities and modules import { PicGo } from 'piclist' -import db from 'apis/core/datastore' -import { dbChecker, dbPathChecker } from 'apis/core/datastore/dbChecker' -// Custom types/enums +import db from '@core/datastore' +import { dbChecker, dbPathChecker } from '@core/datastore/dbChecker' -// External utility functions +import pkg from 'root/package.json' const CONFIG_PATH = dbPathChecker() diff --git a/src/main/apis/gui/index.ts b/src/main/apis/gui/index.ts index 72e4ed2..f4a0c55 100644 --- a/src/main/apis/gui/index.ts +++ b/src/main/apis/gui/index.ts @@ -1,31 +1,27 @@ -// External dependencies +import { + BrowserWindow, + dialog, + ipcMain, + Notification +} from 'electron' import fs from 'fs-extra' import { cloneDeep } from 'lodash' - -// Electron modules -import { - dialog, - BrowserWindow, - Notification, - ipcMain -} from 'electron' - -// Custom utilities and modules -import db, { GalleryDB } from 'apis/core/datastore' -import { dbPathChecker, defaultConfigPath, getGalleryDBPath } from 'apis/core/datastore/dbChecker' -import uploader from 'apis/app/uploader' -import pasteTemplate from '~/main/utils/pasteTemplate' -import { handleCopyUrl } from '~/main/utils/common' -import { getWindowId, getSettingWindowId } from '@core/bus/apis' -import { SHOW_INPUT_BOX } from '~/universal/events/constants' - -// Custom types/enums - -// External utility functions import { DBStore } from '@picgo/store' -import { T } from '~/main/i18n' -import { configPaths } from '~/universal/utils/configPaths' -import { IPasteStyle } from '~/universal/types/enum' + +import { getWindowId, getSettingWindowId } from '@core/bus/apis' + +import db, { GalleryDB } from '@core/datastore' +import { dbPathChecker, defaultConfigPath, getGalleryDBPath } from '@core/datastore/dbChecker' + +import uploader from 'apis/app/uploader' + +import { T } from '~/i18n' +import { handleCopyUrl } from '~/utils/common' +import pasteTemplate from '~/utils/pasteTemplate' + +import { SHOW_INPUT_BOX } from '#/events/constants' +import { IPasteStyle } from '#/types/enum' +import { configPaths } from '#/utils/configPaths' // Cross-process support may be required in the future class GuiApi implements IGuiApi { diff --git a/src/main/events/busEventList.ts b/src/main/events/busEventList.ts index 8e7d6bc..2fd78a6 100644 --- a/src/main/events/busEventList.ts +++ b/src/main/events/busEventList.ts @@ -1,34 +1,27 @@ -// External dependencies import bus from '@core/bus' - -// Electron modules - -// Custom utilities and modules import { - uploadClipboardFiles, - uploadChoosedFiles -} from 'apis/app/uploader/apis' -import { - createMenu -} from 'apis/app/system' -import windowManager from 'apis/app/window/windowManager' - -// Custom types/enums -import { IWindowList } from '#/types/enum' - -// External utility functions -import { - UPLOAD_WITH_FILES, - UPLOAD_WITH_FILES_RESPONSE, - UPLOAD_WITH_CLIPBOARD_FILES, - UPLOAD_WITH_CLIPBOARD_FILES_RESPONSE, + CREATE_APP_MENU, GET_WINDOW_ID, GET_WINDOW_ID_REPONSE, GET_SETTING_WINDOW_ID, GET_SETTING_WINDOW_ID_RESPONSE, - CREATE_APP_MENU + UPLOAD_WITH_FILES, + UPLOAD_WITH_FILES_RESPONSE, + UPLOAD_WITH_CLIPBOARD_FILES, + UPLOAD_WITH_CLIPBOARD_FILES_RESPONSE } from '@core/bus/constants' +import { + createMenu +} from 'apis/app/system' +import { + uploadChoosedFiles, + uploadClipboardFiles +} from 'apis/app/uploader/apis' +import windowManager from 'apis/app/window/windowManager' + +import { IWindowList } from '#/types/enum' + function initEventCenter () { const eventList: any = { 'picgo:upload': uploadClipboardFiles, diff --git a/src/main/events/ipcList.ts b/src/main/events/ipcList.ts index e961d96..25ce27c 100644 --- a/src/main/events/ipcList.ts +++ b/src/main/events/ipcList.ts @@ -1,4 +1,3 @@ -// Electron 相关 import { app, ipcMain, @@ -9,38 +8,34 @@ import { screen, IpcMainInvokeEvent } from 'electron' +import fs from 'fs-extra' +import path from 'path' +import { ISftpPlistConfig } from 'piclist' -// 窗口管理器 +import bus from '@core/bus' +import logger from '@core/picgo/logger' +import db, { GalleryDB } from '@core/datastore' + +import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' +import uploader from 'apis/app/uploader' +import { + uploadClipboardFiles, + uploadChoosedFiles +} from 'apis/app/uploader/apis' import windowManager from 'apis/app/window/windowManager' -// 枚举类型声明 -import { ILogType, IPasteStyle, IWindowList } from '#/types/enum' +import { T } from '~/i18n' +import server from '~/server' +import picgoCoreIPC from '~/events/picgoCoreIPC' +import { buildMainPageMenu, buildMiniPageMenu, buildPluginPageMenu, buildPicBedListMenu } from '~/events/remotes/menu' +import { handleCopyUrl, generateShortUrl, setTrayToolTip } from '~/utils/common' +import { removeFileFromS3InMain, removeFileFromDogeInMain, removeFileFromHuaweiInMain } from '~/utils/deleteFunc' +import getPicBeds from '~/utils/getPicBeds' +import pasteTemplate from '~/utils/pasteTemplate' +import SSHClient from '~/utils/sshClient' +import { uploadFile, downloadFile } from '~/utils/syncSettings' +import webServer from '~/server/webServer' -// 上传器 -import uploader from 'apis/app/uploader' - -// 粘贴模板函数 -import pasteTemplate from '~/main/utils/pasteTemplate' - -// 数据存储库和类型声明 -import db, { GalleryDB } from '~/main/apis/core/datastore' - -// 服务器模块 -import server from '~/main/server' - -// 获取图片床模块 -import getPicBeds from '~/main/utils/getPicBeds' - -// 快捷键处理器 -import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' - -// 全局事件总线 -import bus from '@core/bus' - -// 文件系统库 -import fs from 'fs-extra' - -// 事件常量 import { TOGGLE_SHORTKEY_MODIFIED_MODE, OPEN_DEVTOOLS, @@ -57,41 +52,8 @@ import { GET_PICBEDS, HIDE_DOCK } from '#/events/constants' - -// 上传剪贴板文件和已选文件的函数 -import { - uploadClipboardFiles, - uploadChoosedFiles -} from '~/main/apis/app/uploader/apis' - -// 核心 IPC 模块 -import picgoCoreIPC from './picgoCoreIPC' - -// 处理复制的 URL 和生成短链接的函数 -import { handleCopyUrl, generateShortUrl, setTrayToolTip } from '~/main/utils/common' - -// 构建主页面、迷你页面、插件页面、图片床列表的菜单函数 -import { buildMainPageMenu, buildMiniPageMenu, buildPluginPageMenu, buildPicBedListMenu } from './remotes/menu' - -// 路径处理库 -import path from 'path' - -// i18n 模块 -import { T } from '~/main/i18n' - -// 同步设置的上传和下载文件函数 -import { uploadFile, downloadFile } from '../utils/syncSettings' - -// SSH 客户端模块 -import SSHClient from '../utils/sshClient' - -// Sftp 配置类型声明 -import { ISftpPlistConfig } from 'piclist' - -import { removeFileFromS3InMain, removeFileFromDogeInMain, removeFileFromHuaweiInMain } from '~/main/utils/deleteFunc' -import webServer from '../server/webServer' -import { configPaths } from '~/universal/utils/configPaths' -import logger from '../apis/core/picgo/logger' +import { configPaths } from '#/utils/configPaths' +import { ILogType, IPasteStyle, IWindowList } from '#/types/enum' const STORE_PATH = app.getPath('userData') const commonConfigList = ['data.json', 'data.bak.json'] diff --git a/src/main/events/picgoCoreIPC.ts b/src/main/events/picgoCoreIPC.ts index 4117c18..08af014 100644 --- a/src/main/events/picgoCoreIPC.ts +++ b/src/main/events/picgoCoreIPC.ts @@ -1,5 +1,3 @@ -// External dependencies -import path from 'path' import { dialog, shell, @@ -8,28 +6,23 @@ import { clipboard } from 'electron' import fs from 'fs-extra' - -// Electron modules - -// Custom utilities and modules -import GuiApi from 'apis/gui' -import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' -import picgo from '@core/picgo' -import { handleStreamlinePluginName, simpleClone } from '~/universal/utils/common' +import path from 'path' import { IGuiMenuItem, PicGo as PicGoCore } from 'piclist' -import windowManager from 'apis/app/window/windowManager' -import { showNotification } from '~/main/utils/common' -import { dbPathChecker } from 'apis/core/datastore/dbChecker' -import { GalleryDB } from 'apis/core/datastore' -import pasteTemplate from '../utils/pasteTemplate' -import { i18nManager, T } from '~/main/i18n' -import { rpcServer } from './rpc' - -// Custom types/enums -import { IPasteStyle, IPicGoHelperType, IWindowList } from '#/types/enum' import { IObject, IFilter } from '@picgo/store/dist/types' -// External utility functions +import picgo from '@core/picgo' +import { GalleryDB } from '@core/datastore' +import { dbPathChecker } from '@core/datastore/dbChecker' + +import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' +import windowManager from 'apis/app/window/windowManager' +import GuiApi from 'apis/gui' + +import { showNotification } from '~/utils/common' +import pasteTemplate from '~/utils/pasteTemplate' +import { i18nManager, T } from '~/i18n' +import { rpcServer } from '~/events/rpc' + import { PICGO_SAVE_CONFIG, PICGO_GET_CONFIG, @@ -47,7 +40,9 @@ import { SET_CURRENT_LANGUAGE, GET_CURRENT_LANGUAGE } from '#/events/constants' -import { configPaths } from '~/universal/utils/configPaths' +import { configPaths } from '#/utils/configPaths' +import { IPasteStyle, IPicGoHelperType, IWindowList } from '#/types/enum' +import { handleStreamlinePluginName, simpleClone } from '#/utils/common' // eslint-disable-next-line const requireFunc = typeof __webpack_require__ === 'function' ? __non_webpack_require__ : require diff --git a/src/main/events/remotes/menu.ts b/src/main/events/remotes/menu.ts index c6a6bc8..1731470 100644 --- a/src/main/events/remotes/menu.ts +++ b/src/main/events/remotes/menu.ts @@ -1,37 +1,39 @@ -// External dependencies -import pkg from 'root/package.json' +import { + app, + dialog, + BrowserWindow, + Menu, + shell +} from 'electron' +import { PicGo as PicGoCore } from 'piclist' -// Electron modules -import { Menu, BrowserWindow, app, dialog, shell } from 'electron' - -// Custom utilities and modules -import windowManager from 'apis/app/window/windowManager' -import getPicBeds from '~/main/utils/getPicBeds' +import db from '@core/datastore' import picgo from '@core/picgo' -import GuiApi from 'apis/gui' -import picgoCoreIPC from '~/main/events/picgoCoreIPC' -import { changeCurrentUploader } from '~/main/utils/handleUploaderConfig' -import db from '~/main/apis/core/datastore' -import clipboardPoll from '~/main/utils/clipboardPoll' -// Custom types/enums -import { IWindowList } from '#/types/enum' - -// External utility functions import { uploadClipboardFiles -} from '~/main/apis/app/uploader/apis' +} from 'apis/app/uploader/apis' +import windowManager from 'apis/app/window/windowManager' +import GuiApi from 'apis/gui' + +import picgoCoreIPC from '~/events/picgoCoreIPC' +import { T } from '~/i18n' +import clipboardPoll from '~/utils/clipboardPoll' +import { setTrayToolTip } from '~/utils/common' +import getPicBeds from '~/utils/getPicBeds' +import { changeCurrentUploader } from '~/utils/handleUploaderConfig' + import { PICGO_CONFIG_PLUGIN, PICGO_HANDLE_PLUGIN_DONE, PICGO_HANDLE_PLUGIN_ING, PICGO_TOGGLE_PLUGIN, SHOW_MAIN_PAGE_QRCODE -} from '~/universal/events/constants' -import { PicGo as PicGoCore } from 'piclist' -import { T } from '~/main/i18n' -import { configPaths } from '~/universal/utils/configPaths' -import { setTrayToolTip } from '~/main/utils/common' +} from '#/events/constants' +import { IWindowList } from '#/types/enum' +import { configPaths } from '#/utils/configPaths' + +import pkg from 'root/package.json' interface GuiMenuItem { label: string diff --git a/src/main/events/rpc/index.ts b/src/main/events/rpc/index.ts index 997fbc0..9d7bdb2 100644 --- a/src/main/events/rpc/index.ts +++ b/src/main/events/rpc/index.ts @@ -1,17 +1,10 @@ -// External dependencies import { ipcMain, IpcMainEvent } from 'electron' -// Electron modules +import { configRouter } from '~/events/rpc/routes/config' +import { toolboxRouter } from '~/events/rpc/routes/toolbox' +import { systemRouter } from '~/events/rpc/routes/system' -// Custom utilities and modules -import { configRouter } from './routes/config' -import { toolboxRouter } from './routes/toolbox' -import { systemRouter } from './routes/system' - -// Custom types/enums -import { IRPCActionType } from '~/universal/types/enum' - -// External utility functions +import { IRPCActionType } from '#/types/enum' import { RPC_ACTIONS } from '#/events/constants' class RPCServer implements IRPCServer { diff --git a/src/main/events/rpc/router.ts b/src/main/events/rpc/router.ts index b285005..abda51e 100644 --- a/src/main/events/rpc/router.ts +++ b/src/main/events/rpc/router.ts @@ -1,4 +1,4 @@ -import { IRPCActionType } from '~/universal/types/enum' +import { IRPCActionType } from '#/types/enum' export class RPCRouter implements IRPCRouter { private routeMap: IRPCRoutes = new Map() diff --git a/src/main/events/rpc/routes/config.ts b/src/main/events/rpc/routes/config.ts index 1ebc440..b8b0ee1 100644 --- a/src/main/events/rpc/routes/config.ts +++ b/src/main/events/rpc/routes/config.ts @@ -1,12 +1,12 @@ -import { IRPCActionType } from '~/universal/types/enum' -import { RPCRouter } from '../router' +import { RPCRouter } from '~/events/rpc/router' import { deleteUploaderConfig, getUploaderConfigList, + resetUploaderConfig, selectUploaderConfig, - updateUploaderConfig, - resetUploaderConfig -} from '~/main/utils/handleUploaderConfig' + updateUploaderConfig +} from '~/utils/handleUploaderConfig' +import { IRPCActionType } from '#/types/enum' const configRouter = new RPCRouter() diff --git a/src/main/events/rpc/routes/system.ts b/src/main/events/rpc/routes/system.ts index 0de8be8..e7180f6 100644 --- a/src/main/events/rpc/routes/system.ts +++ b/src/main/events/rpc/routes/system.ts @@ -1,11 +1,7 @@ -// External dependencies import { app, clipboard, shell } from 'electron' -// Electron modules - -// Custom utilities and modules -import { IRPCActionType } from '~/universal/types/enum' -import { RPCRouter } from '../router' +import { RPCRouter } from '~/events/rpc/router' +import { IRPCActionType } from '#/types/enum' const systemRouter = new RPCRouter() diff --git a/src/main/events/rpc/routes/toolbox/checkClipboardUpload.ts b/src/main/events/rpc/routes/toolbox/checkClipboardUpload.ts index 5404b84..77fefa7 100644 --- a/src/main/events/rpc/routes/toolbox/checkClipboardUpload.ts +++ b/src/main/events/rpc/routes/toolbox/checkClipboardUpload.ts @@ -1,19 +1,14 @@ -// External dependencies import fs from 'fs-extra' import path from 'path' -// Electron modules +import { dbPathChecker, defaultConfigPath } from '@core/datastore/dbChecker' -// Custom utilities and modules -import { dbPathChecker, defaultConfigPath } from '~/main/apis/core/datastore/dbChecker' -import { sendToolboxResWithType } from './utils' +import { sendToolboxResWithType } from '~/events/rpc/routes/toolbox/utils' +import { T } from '~/i18n' -// Custom types/enums -import { IToolboxItemCheckStatus, IToolboxItemType } from '~/universal/types/enum' +import { IToolboxItemCheckStatus, IToolboxItemType } from '#/types/enum' -// External utility functions -import { CLIPBOARD_IMAGE_FOLDER } from '~/universal/utils/static' -import { T } from '~/main/i18n' +import { CLIPBOARD_IMAGE_FOLDER } from '#/utils/static' const sendToolboxRes = sendToolboxResWithType(IToolboxItemType.HAS_PROBLEM_WITH_CLIPBOARD_PIC_UPLOAD) diff --git a/src/main/events/rpc/routes/toolbox/checkFile.ts b/src/main/events/rpc/routes/toolbox/checkFile.ts index 7422065..f5a00cb 100644 --- a/src/main/events/rpc/routes/toolbox/checkFile.ts +++ b/src/main/events/rpc/routes/toolbox/checkFile.ts @@ -1,20 +1,14 @@ -// External dependencies +import { IpcMainEvent } from 'electron' import fs from 'fs-extra' import path from 'path' -// Electron modules -import { IpcMainEvent } from 'electron' +import { dbPathChecker } from '@core/datastore/dbChecker' +import { GalleryDB, DB_PATH } from '@core/datastore' -// Custom utilities and modules -import { dbPathChecker } from '~/main/apis/core/datastore/dbChecker' -import { GalleryDB, DB_PATH } from '~/main/apis/core/datastore' -import { sendToolboxResWithType } from './utils' +import { sendToolboxResWithType } from '~/events/rpc/routes/toolbox/utils' +import { T } from '~/i18n' -// Custom types/enums -import { IToolboxItemCheckStatus, IToolboxItemType } from '~/universal/types/enum' - -// External utility functions -import { T } from '~/main/i18n' +import { IToolboxItemCheckStatus, IToolboxItemType } from '#/types/enum' export const checkFileMap: IToolboxCheckerMap< IToolboxItemType.IS_CONFIG_FILE_BROKEN | IToolboxItemType.IS_GALLERY_FILE_BROKEN diff --git a/src/main/events/rpc/routes/toolbox/checkProxy.ts b/src/main/events/rpc/routes/toolbox/checkProxy.ts index 15ba950..b2a0f6b 100644 --- a/src/main/events/rpc/routes/toolbox/checkProxy.ts +++ b/src/main/events/rpc/routes/toolbox/checkProxy.ts @@ -1,22 +1,15 @@ -// External dependencies -import fs from 'fs-extra' + import axios, { AxiosRequestConfig } from 'axios' +import fs from 'fs-extra' +import { IConfig } from 'piclist' import tunnel from 'tunnel' -// Electron modules +import { dbPathChecker } from '@core/datastore/dbChecker' -// Custom utilities and modules -import { dbPathChecker } from '~/main/apis/core/datastore/dbChecker' -import { sendToolboxResWithType } from './utils' +import { sendToolboxResWithType } from '~/events/rpc/routes/toolbox/utils' +import { T } from '~/i18n' -// Custom types/enums -import { IToolboxItemCheckStatus, IToolboxItemType } from '~/universal/types/enum' - -// External utility functions - -// Custom types/enums -import { IConfig } from 'piclist' -import { T } from '~/main/i18n' +import { IToolboxItemCheckStatus, IToolboxItemType } from '#/types/enum' const getProxy = (proxyStr: string): AxiosRequestConfig['proxy'] | false => { if (proxyStr) { diff --git a/src/main/events/rpc/routes/toolbox/index.ts b/src/main/events/rpc/routes/toolbox/index.ts index d80e0be..934b815 100644 --- a/src/main/events/rpc/routes/toolbox/index.ts +++ b/src/main/events/rpc/routes/toolbox/index.ts @@ -1,8 +1,9 @@ -import { IRPCActionType, IToolboxItemType } from '~/universal/types/enum' -import { RPCRouter } from '../../router' -import { checkFileMap, fixFileMap } from './checkFile' -import { checkClipboardUploadMap, fixClipboardUploadMap } from './checkClipboardUpload' -import { checkProxyMap } from './checkProxy' +import { checkClipboardUploadMap, fixClipboardUploadMap } from '~/events/rpc/routes/toolbox/checkClipboardUpload' +import { checkFileMap, fixFileMap } from '~/events/rpc/routes/toolbox/checkFile' +import { checkProxyMap } from '~/events/rpc/routes/toolbox/checkProxy' +import { RPCRouter } from '~/events/rpc/router' + +import { IRPCActionType, IToolboxItemType } from '#/types/enum' const toolboxRouter = new RPCRouter() diff --git a/src/main/events/rpc/routes/toolbox/utils.ts b/src/main/events/rpc/routes/toolbox/utils.ts index ed4befe..7b8a18b 100644 --- a/src/main/events/rpc/routes/toolbox/utils.ts +++ b/src/main/events/rpc/routes/toolbox/utils.ts @@ -1,5 +1,5 @@ import { IpcMainEvent } from 'electron' -import { IRPCActionType, IToolboxItemType } from '~/universal/types/enum' +import { IRPCActionType, IToolboxItemType } from '#/types/enum' export const sendToolboxResWithType = (type: IToolboxItemType) => (event: IpcMainEvent, res?: Omit) => { return event.sender.send(IRPCActionType.TOOLBOX_CHECK_RES, { diff --git a/src/main/fileServer/index.ts b/src/main/fileServer/index.ts index 3f51d8a..b670198 100644 --- a/src/main/fileServer/index.ts +++ b/src/main/fileServer/index.ts @@ -1,13 +1,9 @@ -// External dependencies import http from 'http' import fs from 'fs-extra' import path from 'path' -// Electron modules - -// Custom utilities and modules import picgo from '@core/picgo' -import logger from '../apis/core/picgo/logger' +import logger from '@core/picgo/logger' export const imgFilePath = path.join(picgo.baseDir, 'imgTemp') fs.ensureDirSync(imgFilePath) diff --git a/src/main/i18n/index.ts b/src/main/i18n/index.ts index be922de..bf1245f 100644 --- a/src/main/i18n/index.ts +++ b/src/main/i18n/index.ts @@ -1,16 +1,9 @@ -// External dependencies -import yaml from 'js-yaml' -import { ObjectAdapter, I18n } from '@picgo/i18n' -import path from 'path' import fs from 'fs-extra' +import yaml from 'js-yaml' +import path from 'path' -// Electron modules +import { ObjectAdapter, I18n } from '@picgo/i18n' -// Custom utilities and modules - -// Custom types/enums - -// External utility functions import { builtinI18nList } from '#/i18n' class I18nManager { diff --git a/src/main/lifeCycle/errorHandler.ts b/src/main/lifeCycle/errorHandler.ts index b851c4f..ed6bf3f 100644 --- a/src/main/lifeCycle/errorHandler.ts +++ b/src/main/lifeCycle/errorHandler.ts @@ -1,6 +1,8 @@ import path from 'path' import { app } from 'electron' -import { getLogger } from 'apis/core/utils/localLogger' + +import { getLogger } from '@core/utils/localLogger' + const STORE_PATH = app.getPath('userData') const LOG_PATH = path.join(STORE_PATH, 'piclist-gui-local.log') diff --git a/src/main/lifeCycle/index.ts b/src/main/lifeCycle/index.ts index 49c35a9..169c7bd 100644 --- a/src/main/lifeCycle/index.ts +++ b/src/main/lifeCycle/index.ts @@ -1,4 +1,5 @@ -import './errorHandler' +import axios from 'axios' +import fs from 'fs-extra' import { app, globalShortcut, @@ -8,46 +9,50 @@ import { screen, shell } from 'electron' +import { UpdateInfo, autoUpdater } from 'electron-updater' +import path from 'path' import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' -import beforeOpen from '~/main/utils/beforeOpen' -import ipcList from '~/main/events/ipcList' -import busEventList from '~/main/events/busEventList' -import { II18nLanguage, IRemoteNoticeTriggerHook, ISartMode, IWindowList } from '#/types/enum' -import windowManager from 'apis/app/window/windowManager' + +import bus from '@core/bus' +import db from '@core/datastore' +import picgo from '@core/picgo' +import logger from '@core/picgo/logger' + +import { remoteNoticeHandler } from 'apis/app/remoteNotice' +import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' +import { + createTray, setDockMenu +} from 'apis/app/system' import { uploadChoosedFiles, uploadClipboardFiles } from 'apis/app/uploader/apis' -import { - createTray, setDockMenu -} from 'apis/app/system' -import server from '~/main/server/index' -import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' -import { getUploadFiles } from '~/main/utils/handleArgv' -import db from '~/main/apis/core/datastore' -import bus from '@core/bus' -import logger from 'apis/core/picgo/logger' -import picgo from 'apis/core/picgo' -import fixPath from './fixPath' -import { clearTempFolder } from '../manage/utils/common' -import { initI18n } from '~/main/utils/handleI18n' -import { remoteNoticeHandler } from 'apis/app/remoteNotice' -import { manageIpcList } from '../manage/events/ipcList' -import getManageApi from '../manage/Main' -import UpDownTaskQueue from '../manage/datastore/upDownTaskQueue' -import { T } from '~/main/i18n' -import { UpdateInfo, autoUpdater } from 'electron-updater' -import updateChecker from '../utils/updateChecker' -import clipboardPoll from '../utils/clipboardPoll' -import path from 'path' -import { CLIPBOARD_IMAGE_FOLDER } from '~/universal/utils/static' -import fs from 'fs-extra' -import { startFileServer } from '../fileServer' -import webServer from '../server/webServer' -import axios from 'axios' -import { configPaths } from '~/universal/utils/configPaths' +import windowManager from 'apis/app/window/windowManager' + +import busEventList from '~/events/busEventList' +import ipcList from '~/events/ipcList' +import { startFileServer } from '~/fileServer' +import { T } from '~/i18n' +import '~/lifeCycle/errorHandler' +import fixPath from '~/lifeCycle/fixPath' +import UpDownTaskQueue from '~/manage/datastore/upDownTaskQueue' +import { manageIpcList } from '~/manage/events/ipcList' +import getManageApi from '~/manage/Main' +import { clearTempFolder } from '~/manage/utils/common' +import server from '~/server/index' +import webServer from '~/server/webServer' +import beforeOpen from '~/utils/beforeOpen' +import clipboardPoll from '~/utils/clipboardPoll' +import { getUploadFiles } from '~/utils/handleArgv' +import { initI18n } from '~/utils/handleI18n' +import updateChecker from '~/utils/updateChecker' + +import { II18nLanguage, IRemoteNoticeTriggerHook, ISartMode, IWindowList } from '#/types/enum' +import { configPaths } from '#/utils/configPaths' +import { CLIPBOARD_IMAGE_FOLDER } from '#/utils/static' + const isDevelopment = process.env.NODE_ENV !== 'production' const handleStartUpFiles = (argv: string[], cwd: string) => { diff --git a/src/main/manage/Main.ts b/src/main/manage/Main.ts index e2419ef..732c543 100644 --- a/src/main/manage/Main.ts +++ b/src/main/manage/Main.ts @@ -1,6 +1,5 @@ -/* eslint-disable */ -import { manageDbChecker } from './datastore/dbChecker' -import { ManageApi } from './manageApi' +import { manageDbChecker } from '~/manage/datastore/dbChecker' +import { ManageApi } from '~/manage/manageApi' manageDbChecker() const getManageApi = (picBedName: string = 'placeholder'): ManageApi => { diff --git a/src/main/manage/apis/aliyun.ts b/src/main/manage/apis/aliyun.ts index ec3cac6..18bc61c 100644 --- a/src/main/manage/apis/aliyun.ts +++ b/src/main/manage/apis/aliyun.ts @@ -1,39 +1,20 @@ -// Axios -import axios from 'axios' - -// 加密函数、获取文件 MIME 类型、错误格式化函数、新的下载器、并发异步任务池 -import { hmacSha1Base64, getFileMimeType, formatError, NewDownloader, ConcurrencyPromisePool } from '../utils/common' - -// Electron 相关 -import { ipcMain, IpcMainEvent } from 'electron' - -// 快速 XML 解析器 -import { XMLParser } from 'fast-xml-parser' - -// 阿里云 OSS 客户端库 import OSS from 'ali-oss' - -// 路径处理库 +import axios from 'axios' +import { ipcMain, IpcMainEvent } from 'electron' +import { XMLParser } from 'fast-xml-parser' import path from 'path' -// 是否为图片的判断函数 -import { isImage } from '~/renderer/manage/utils/common' - -// 窗口管理器 import windowManager from 'apis/app/window/windowManager' -// 枚举类型声明 -import { IWindowList } from '#/types/enum' +import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' +import { ManageLogger } from '~/manage/utils/logger' +import { hmacSha1Base64, getFileMimeType, formatError, NewDownloader, ConcurrencyPromisePool } from '~/manage/utils/common' -// 上传下载任务队列 -import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '../datastore/upDownTaskQueue' - -// 日志记录器 -import { ManageLogger } from '../utils/logger' - -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import { isImage } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +import { IWindowList } from '#/types/enum' + // 坑爹阿里云 返回数据类型标注和实际各种不一致 class AliyunApi { ctx: OSS diff --git a/src/main/manage/apis/api.ts b/src/main/manage/apis/api.ts index efc9bb5..10b4efe 100644 --- a/src/main/manage/apis/api.ts +++ b/src/main/manage/apis/api.ts @@ -1,14 +1,14 @@ -import AliyunApi from './aliyun' -import GithubApi from './github' -import ImgurApi from './imgur' -import LocalApi from './local' -import QiniuApi from './qiniu' -import S3plistApi from './s3plist' -import SftpApi from './sftp' -import SmmsApi from './smms' -import TcyunApi from './tcyun' -import UpyunApi from './upyun' -import WebdavplistApi from './webdavplist' +import AliyunApi from '~/manage/apis/aliyun' +import GithubApi from '~/manage/apis/github' +import ImgurApi from '~/manage/apis/imgur' +import LocalApi from '~/manage/apis/local' +import QiniuApi from '~/manage/apis/qiniu' +import S3plistApi from '~/manage/apis/s3plist' +import SftpApi from '~/manage/apis/sftp' +import SmmsApi from '~/manage/apis/smms' +import TcyunApi from '~/manage/apis/tcyun' +import UpyunApi from '~/manage/apis/upyun' +import WebdavplistApi from '~/manage/apis/webdavplist' export default { AliyunApi, diff --git a/src/main/manage/apis/github.ts b/src/main/manage/apis/github.ts index 139ba0a..687add1 100644 --- a/src/main/manage/apis/github.ts +++ b/src/main/manage/apis/github.ts @@ -1,36 +1,19 @@ -// HTTP 请求库 -import got from 'got' - -// 日志记录器 -import { ManageLogger } from '../utils/logger' - -// HTTP 代理格式化函数、是否为图片的判断函数 -import { formatHttpProxy, isImage } from '~/renderer/manage/utils/common' - -// 窗口管理器 -import windowManager from 'apis/app/window/windowManager' - -// 枚举类型声明 -import { IWindowList } from '#/types/enum' - -// Electron 相关 import { ipcMain, IpcMainEvent } from 'electron' - -// got 上传函数、路径处理函数、新的下载器、获取请求代理、获取请求选项、并发异步任务池、错误格式化函数 -import { gotUpload, trimPath, NewDownloader, getAgent, getOptions, ConcurrencyPromisePool, formatError } from '../utils/common' - -// 上传下载任务队列 -import UpDownTaskQueue, { commonTaskStatus } from '../datastore/upDownTaskQueue' - -// 文件系统库 import fs from 'fs-extra' - -// 路径处理库 +import got from 'got' import path from 'path' -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import windowManager from 'apis/app/window/windowManager' + +import UpDownTaskQueue, { commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' +import { gotUpload, trimPath, NewDownloader, getAgent, getOptions, ConcurrencyPromisePool, formatError } from '~/manage/utils/common' +import { ManageLogger } from '~/manage/utils/logger' + +import { formatHttpProxy, isImage } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +import { IWindowList } from '#/types/enum' + class GithubApi { token: string username: string diff --git a/src/main/manage/apis/imgur.ts b/src/main/manage/apis/imgur.ts index 3b4b452..1298c51 100644 --- a/src/main/manage/apis/imgur.ts +++ b/src/main/manage/apis/imgur.ts @@ -1,14 +1,12 @@ -// External dependencies -import fs from 'fs-extra' +import { ipcMain, IpcMainEvent } from 'electron' import FormData from 'form-data' +import fs from 'fs-extra' import got from 'got' import path from 'path' -// Electron modules -import { ipcMain, IpcMainEvent } from 'electron' +import windowManager from 'apis/app/window/windowManager' -// Custom utilities and modules -import { IWindowList } from '#/types/enum' +import UpDownTaskQueue, { commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' import { ConcurrencyPromisePool, formatError, @@ -17,11 +15,12 @@ import { getAgent, gotUpload, NewDownloader -} from '../utils/common' -import ManageLogger from '../utils/logger' -import windowManager from 'apis/app/window/windowManager' -import { formatHttpProxy, isImage } from '~/renderer/manage/utils/common' -import UpDownTaskQueue, { commonTaskStatus } from '../datastore/upDownTaskQueue' +} from '~/manage/utils/common' +import ManageLogger from '~/manage/utils/logger' + +import { formatHttpProxy, isImage } from '@/manage/utils/common' + +import { IWindowList } from '#/types/enum' class ImgurApi { userName: string diff --git a/src/main/manage/apis/local.ts b/src/main/manage/apis/local.ts index de25ffd..6624ccf 100644 --- a/src/main/manage/apis/local.ts +++ b/src/main/manage/apis/local.ts @@ -1,34 +1,18 @@ -// 日志记录器 -import ManageLogger from '../utils/logger' - -// 错误格式化函数、端点地址格式化函数、获取内部代理、新的下载器、并发异步任务池 -import { formatError } from '../utils/common' - -// HTTP 代理格式化函数、是否为图片的判断函数 -import { isImage } from '@/manage/utils/common' - -// 窗口管理器 -import windowManager from 'apis/app/window/windowManager' - -// 枚举类型声明 -import { IWindowList } from '#/types/enum' - -// Electron 相关 import { ipcMain, IpcMainEvent } from 'electron' - -// 上传下载任务队列 -import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus, downloadTaskSpecialStatus } from '../datastore/upDownTaskQueue' - -// 文件系统库 import fs from 'fs-extra' - -// 路径处理库 import path from 'path' import * as fsWalk from '@nodelib/fs.walk' -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import windowManager from 'apis/app/window/windowManager' +import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus, downloadTaskSpecialStatus } from '~/manage/datastore/upDownTaskQueue' +import { formatError } from '~/manage/utils/common' +import ManageLogger from '~/manage/utils/logger' + +import { isImage } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +import { IWindowList } from '#/types/enum' + class LocalApi { logger: ManageLogger isWindows: boolean diff --git a/src/main/manage/apis/qiniu.ts b/src/main/manage/apis/qiniu.ts index 7f53bfc..4724e05 100644 --- a/src/main/manage/apis/qiniu.ts +++ b/src/main/manage/apis/qiniu.ts @@ -1,36 +1,20 @@ -// Axios + import axios from 'axios' - -// 加密函数、获取文件 MIME 类型、新的下载器、错误格式化函数、并发异步任务池 -import { hmacSha1Base64, getFileMimeType, NewDownloader, formatError, ConcurrencyPromisePool } from '../utils/common' - -// 七牛云客户端库 +import { ipcMain, IpcMainEvent } from 'electron' +import path from 'path' import qiniu from 'qiniu/index' -// 路径处理库 -import path from 'path' - -// 是否为图片的判断函数 -import { isImage } from '~/renderer/manage/utils/common' - -// 窗口管理器 import windowManager from 'apis/app/window/windowManager' -// 枚举类型声明 -import { IWindowList } from '#/types/enum' +import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' +import { hmacSha1Base64, getFileMimeType, NewDownloader, formatError, ConcurrencyPromisePool } from '~/manage/utils/common' +import { ManageLogger } from '~/manage/utils/logger' -// Electron 相关 -import { ipcMain, IpcMainEvent } from 'electron' - -// 上传下载任务队列 -import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '../datastore/upDownTaskQueue' - -// 日志记录器 -import { ManageLogger } from '../utils/logger' - -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import { isImage } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +import { IWindowList } from '#/types/enum' + class QiniuApi { mac: qiniu.auth.digest.Mac accessKey: string diff --git a/src/main/manage/apis/s3plist.ts b/src/main/manage/apis/s3plist.ts index a9f30cb..c471799 100644 --- a/src/main/manage/apis/s3plist.ts +++ b/src/main/manage/apis/s3plist.ts @@ -1,4 +1,3 @@ -// AWS S3 相关 import { S3Client, ListBucketsCommand, @@ -17,50 +16,26 @@ import { PutPublicAccessBlockCommand, PutBucketAclCommand } from '@aws-sdk/client-s3' - -// AWS S3 上传和进度 import { Upload, Progress } from '@aws-sdk/lib-storage' - -// AWS S3 请求签名 import { getSignedUrl } from '@aws-sdk/s3-request-presigner' - -// HTTP 和 HTTPS 模块 -import https from 'https' -import http, { AgentOptions } from 'http' import { NodeHttpHandler } from '@smithy/node-http-handler' - -// 日志记录器 -import { ManageLogger } from '../utils/logger' - -// 端点地址格式化函数、错误格式化函数、获取请求代理、获取文件 MIME 类型、新的下载器、并发异步任务池 -import { formatEndpoint, formatError, getAgent, getFileMimeType, NewDownloader, ConcurrencyPromisePool } from '../utils/common' - -// 是否为图片的判断函数、HTTP 代理格式化函数 -import { isImage, formatHttpProxy } from '@/manage/utils/common' - -// 窗口管理器 -import windowManager from 'apis/app/window/windowManager' - -// 枚举类型声明 -import { IWindowList } from '#/types/enum' - -// Electron 相关 import { ipcMain, IpcMainEvent } from 'electron' - -// 上传下载任务队列 -import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '../datastore/upDownTaskQueue' - -// 文件系统库 import fs from 'fs-extra' - -// 路径处理库 +import http, { AgentOptions } from 'http' +import https from 'https' import path from 'path' -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import windowManager from 'apis/app/window/windowManager' + +import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' +import { formatEndpoint, formatError, getAgent, getFileMimeType, NewDownloader, ConcurrencyPromisePool } from '~/manage/utils/common' +import { dogecloudApi, DogecloudToken, getTempToken } from '~/manage/utils/dogeAPI' +import { ManageLogger } from '~/manage/utils/logger' + +import { isImage, formatHttpProxy } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' -// dogecloudApi -import { dogecloudApi, DogecloudToken, getTempToken } from '../utils/dogeAPI' +import { IWindowList } from '#/types/enum' class S3plistApi { baseOptions: S3ClientConfig diff --git a/src/main/manage/apis/sftp.ts b/src/main/manage/apis/sftp.ts index 802532d..52ba3d0 100644 --- a/src/main/manage/apis/sftp.ts +++ b/src/main/manage/apis/sftp.ts @@ -1,33 +1,19 @@ -// 日志记录器 -import ManageLogger from '../utils/logger' - -// SSH 客户端 -import SSHClient from '~/main/utils/sshClient' - -// 错误格式化函数、新的下载器、并发异步任务池 -import { formatError } from '../utils/common' - -// 是否为图片的判断函数 -import { isImage } from '@/manage/utils/common' - -// 窗口管理器 -import windowManager from 'apis/app/window/windowManager' - -// 枚举类型声明 -import { IWindowList } from '#/types/enum' - -// Electron 相关 import { ipcMain, IpcMainEvent } from 'electron' - -// 上传下载任务队列 -import UpDownTaskQueue, { commonTaskStatus, downloadTaskSpecialStatus, uploadTaskSpecialStatus } from '../datastore/upDownTaskQueue' - -// 路径处理库 import path from 'path' -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import windowManager from 'apis/app/window/windowManager' + +import SSHClient from '~/utils/sshClient' + +import UpDownTaskQueue, { commonTaskStatus, downloadTaskSpecialStatus, uploadTaskSpecialStatus } from '~/manage/datastore/upDownTaskQueue' +import { formatError } from '~/manage/utils/common' +import ManageLogger from '~/manage/utils/logger' + +import { isImage } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' -import { Undefinable } from '~/universal/types/manage' + +import { IWindowList } from '#/types/enum' +import { Undefinable } from '#/types/manage' interface listDirResult { permissions: string diff --git a/src/main/manage/apis/smms.ts b/src/main/manage/apis/smms.ts index 3f28427..b972623 100644 --- a/src/main/manage/apis/smms.ts +++ b/src/main/manage/apis/smms.ts @@ -1,35 +1,17 @@ -// 是否为图片的判断函数 -import { isImage } from '@/manage/utils/common' - -// Axios 和 Axios 实例类型声明 import axios, { AxiosInstance } from 'axios' - -// 窗口管理器 -import windowManager from 'apis/app/window/windowManager' - -// 枚举类型声明 -import { IWindowList } from '#/types/enum' - -// Electron 相关 import { ipcMain, IpcMainEvent } from 'electron' - -// 表单数据库 import FormData from 'form-data' - -// 文件系统库 import fs from 'fs-extra' - -// 获取文件 MIME 类型、got 上传函数、新的下载器、并发异步任务池、错误格式化函数 -import { getFileMimeType, gotUpload, NewDownloader, ConcurrencyPromisePool, formatError } from '../utils/common' - -// 路径处理库 import path from 'path' -// 上传下载任务队列 -import UpDownTaskQueue, { commonTaskStatus } from '../datastore/upDownTaskQueue' +import windowManager from 'apis/app/window/windowManager' -// 日志记录器 -import { ManageLogger } from '../utils/logger' +import { getFileMimeType, gotUpload, NewDownloader, ConcurrencyPromisePool, formatError } from '~/manage/utils/common' +import { ManageLogger } from '~/manage/utils/logger' +import UpDownTaskQueue, { commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' + +import { isImage } from '@/manage/utils/common' +import { IWindowList } from '#/types/enum' class SmmsApi { baseUrl = 'https://smms.app/api/v2' diff --git a/src/main/manage/apis/tcyun.ts b/src/main/manage/apis/tcyun.ts index 51ec0be..66fdbe7 100644 --- a/src/main/manage/apis/tcyun.ts +++ b/src/main/manage/apis/tcyun.ts @@ -1,39 +1,21 @@ -// 腾讯云 COS SDK + import COS from 'cos-nodejs-sdk-v5' - -// 文件系统库 +import { ipcMain, IpcMainEvent } from 'electron' import fs from 'fs-extra' - -// 路径处理库 import path from 'path' -// 是否为图片的判断函数 -import { isImage } from '~/renderer/manage/utils/common' - -// URL 编码处理函数 -import { handleUrlEncode } from '~/universal/utils/common' - -// 窗口管理器 import windowManager from 'apis/app/window/windowManager' -// 枚举类型声明 -import { IWindowList } from '#/types/enum' +import { formatError, getFileMimeType } from '~/manage/utils/common' +import { ManageLogger } from '~/manage/utils/logger' +import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus, downloadTaskSpecialStatus } from '~/manage/datastore/upDownTaskQueue' -// Electron 相关 -import { ipcMain, IpcMainEvent } from 'electron' - -// 错误格式化函数、获取文件 MIME 类型 -import { formatError, getFileMimeType } from '../utils/common' - -// 上传下载任务队列 -import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus, downloadTaskSpecialStatus } from '../datastore/upDownTaskQueue' - -// 日志记录器 -import { ManageLogger } from '../utils/logger' - -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import { isImage } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +import { handleUrlEncode } from '#/utils/common' +import { IWindowList } from '#/types/enum' + class TcyunApi { ctx: COS logger: ManageLogger diff --git a/src/main/manage/apis/upyun.ts b/src/main/manage/apis/upyun.ts index 6a472dd..db67af9 100644 --- a/src/main/manage/apis/upyun.ts +++ b/src/main/manage/apis/upyun.ts @@ -1,41 +1,21 @@ +import axios from 'axios' +import { ipcMain, IpcMainEvent } from 'electron' +import FormData from 'form-data' +import fs from 'fs-extra' +import path from 'path' import Upyun from 'upyun' -// 加密函数、获取文件 MIME 类型、新的下载器、got 上传函数、并发异步任务池、错误格式化函数 -import { md5, hmacSha1Base64, getFileMimeType, NewDownloader, gotUpload, ConcurrencyPromisePool, formatError } from '../utils/common' - -// 是否为图片的判断函数 -import { isImage } from '~/renderer/manage/utils/common' - -// 窗口管理器 import windowManager from 'apis/app/window/windowManager' -// 枚举类型声明 -import { IWindowList } from '#/types/enum' +import { md5, hmacSha1Base64, getFileMimeType, NewDownloader, gotUpload, ConcurrencyPromisePool, formatError } from '~/manage/utils/common' +import { ManageLogger } from '~/manage/utils/logger' +import UpDownTaskQueue, { commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' -// Electron 相关 -import { ipcMain, IpcMainEvent } from 'electron' - -// Axios -import axios from 'axios' - -// 表单数据库 -import FormData from 'form-data' - -// 文件系统库 -import fs from 'fs-extra' - -// 路径处理库 -import path from 'path' - -// 上传下载任务队列 -import UpDownTaskQueue, { commonTaskStatus } from '../datastore/upDownTaskQueue' - -// 日志记录器 -import { ManageLogger } from '../utils/logger' - -// 取消下载任务的加载文件列表、刷新下载文件传输列表 +import { isImage } from '@/manage/utils/common' import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +import { IWindowList } from '#/types/enum' + class UpyunApi { ser: Upyun.Service cli: Upyun.Client diff --git a/src/main/manage/apis/webdavplist.ts b/src/main/manage/apis/webdavplist.ts index 8fd0236..4f107c1 100644 --- a/src/main/manage/apis/webdavplist.ts +++ b/src/main/manage/apis/webdavplist.ts @@ -1,40 +1,21 @@ -// 日志记录器 -import ManageLogger from '../utils/logger' - -// WebDAV 客户端库 -import { createClient, WebDAVClient, FileStat, ProgressEvent, AuthType, WebDAVClientOptions } from 'webdav' - -// 错误格式化函数、端点地址格式化函数、获取内部代理、新的下载器、并发异步任务池 -import { formatError, formatEndpoint, getInnerAgent, NewDownloader, ConcurrencyPromisePool } from '../utils/common' - -// HTTP 代理格式化函数、是否为图片的判断函数 -import { formatHttpProxy, isImage } from '@/manage/utils/common' - -// HTTP 和 HTTPS 模块 +import { ipcMain, IpcMainEvent } from 'electron' +import fs from 'fs-extra' import http from 'http' import https from 'https' +import path from 'path' +import { createClient, WebDAVClient, FileStat, ProgressEvent, AuthType, WebDAVClientOptions } from 'webdav' -// 窗口管理器 import windowManager from 'apis/app/window/windowManager' -// 枚举类型声明 -import { IWindowList } from '#/types/enum' +import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '~/manage/datastore/upDownTaskQueue' +import { formatError, formatEndpoint, getInnerAgent, NewDownloader, ConcurrencyPromisePool } from '~/manage/utils/common' +import ManageLogger from '~/manage/utils/logger' -// Electron 相关 -import { ipcMain, IpcMainEvent } from 'electron' - -// 上传下载任务队列 -import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus } from '../datastore/upDownTaskQueue' - -// 文件系统库 -import fs from 'fs-extra' - -// 路径处理库 -import path from 'path' - -// 取消下载任务的加载文件列表、刷新下载文件传输列表 -import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +import { formatHttpProxy, isImage } from '@/manage/utils/common' import { getAuthHeader } from '@/manage/utils/digestAuth' +import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' + +import { IWindowList } from '#/types/enum' class WebdavplistApi { endpoint: string diff --git a/src/main/manage/datastore/db.ts b/src/main/manage/datastore/db.ts index 8a23cde..25e1f66 100644 --- a/src/main/manage/datastore/db.ts +++ b/src/main/manage/datastore/db.ts @@ -1,7 +1,7 @@ -/* eslint-disable */ import { JSONStore } from '@picgo/store' import { IJSON } from '@picgo/store/dist/types' -import { ManageApiType, ManageConfigType } from '~/universal/types/manage' + +import { ManageApiType, ManageConfigType } from '#/types/manage' class ManageDB { readonly #ctx: ManageApiType @@ -9,11 +9,11 @@ class ManageDB { constructor (ctx: ManageApiType) { this.#ctx = ctx this.#db = new JSONStore(this.#ctx.configPath) - let initParams: IStringKeyMap = { + const initParams: IStringKeyMap = { picBed: {}, settings: {} } - for (let key in initParams) { + for (const key in initParams) { if (!this.#db.has(key)) { try { this.#db.set(key, initParams[key]) diff --git a/src/main/manage/datastore/dbChecker.ts b/src/main/manage/datastore/dbChecker.ts index 3c81376..789b8db 100644 --- a/src/main/manage/datastore/dbChecker.ts +++ b/src/main/manage/datastore/dbChecker.ts @@ -1,10 +1,12 @@ -import fs from 'fs-extra' -import writeFile from 'write-file-atomic' -import path from 'path' -import { app } from 'electron' -import { getLogger } from '@core/utils/localLogger' import dayjs from 'dayjs' -import { T } from '~/main/i18n' +import { app } from 'electron' +import fs from 'fs-extra' +import path from 'path' +import writeFile from 'write-file-atomic' + +import { getLogger } from '@core/utils/localLogger' + +import { T } from '~/i18n' const STORE_PATH = app.getPath('userData') const manageConfigFilePath = path.join(STORE_PATH, 'manage.json') diff --git a/src/main/manage/datastore/upDownTaskQueue.ts b/src/main/manage/datastore/upDownTaskQueue.ts index fe2b8af..6486deb 100644 --- a/src/main/manage/datastore/upDownTaskQueue.ts +++ b/src/main/manage/datastore/upDownTaskQueue.ts @@ -1,9 +1,10 @@ // a singleton class to manage the up/down task queue // qiniu tcyun aliyun smms imgur github upyun -import path from 'path' import { app } from 'electron' import fs from 'fs-extra' +import path from 'path' + export enum commonTaskStatus { queuing = 'queuing', failed = 'failed', diff --git a/src/main/manage/events/constants.ts b/src/main/manage/events/constants.ts index d1c05f5..7abaf8d 100644 --- a/src/main/manage/events/constants.ts +++ b/src/main/manage/events/constants.ts @@ -1,3 +1,3 @@ export const PICLIST_MANAGE_GET_CONFIG = 'PICLIST_MANAGE_GET_CONFIG' -export const PICLIST_MANAGE_SAVE_CONFIG = 'PICLIST_MANAGE_SAVE_CONFIG' export const PICLIST_MANAGE_REMOVE_CONFIG = 'PICLIST_MANAGE_REMOVE_CONFIG' +export const PICLIST_MANAGE_SAVE_CONFIG = 'PICLIST_MANAGE_SAVE_CONFIG' diff --git a/src/main/manage/events/ipcList.ts b/src/main/manage/events/ipcList.ts index 58bf8c7..befbbee 100644 --- a/src/main/manage/events/ipcList.ts +++ b/src/main/manage/events/ipcList.ts @@ -1,10 +1,12 @@ -import manageCoreIPC from './manageCoreIPC' -import { ManageApi } from '../manageApi' import { ipcMain, IpcMainInvokeEvent, dialog, app, shell } from 'electron' -import UpDownTaskQueue from '../datastore/upDownTaskQueue' -import { downloadFileFromUrl } from '../utils/common' -import path from 'path' import fs from 'fs-extra' +import path from 'path' + +import UpDownTaskQueue from '~/manage/datastore/upDownTaskQueue' +import manageCoreIPC from '~/manage/events/manageCoreIPC' +import { ManageApi } from '~/manage/manageApi' +import { downloadFileFromUrl } from '~/manage/utils/common' + import { selectDownloadFolder } from '@/manage/utils/static' export const manageIpcList = { diff --git a/src/main/manage/events/manageCoreIPC.ts b/src/main/manage/events/manageCoreIPC.ts index 696ef0f..9ed27b0 100644 --- a/src/main/manage/events/manageCoreIPC.ts +++ b/src/main/manage/events/manageCoreIPC.ts @@ -2,8 +2,9 @@ import { IpcMainEvent, ipcMain } from 'electron' -import getManageApi from '../Main' -import { PICLIST_MANAGE_GET_CONFIG, PICLIST_MANAGE_SAVE_CONFIG, PICLIST_MANAGE_REMOVE_CONFIG } from './constants' + +import getManageApi from '~/manage/Main' +import { PICLIST_MANAGE_GET_CONFIG, PICLIST_MANAGE_SAVE_CONFIG, PICLIST_MANAGE_REMOVE_CONFIG } from '~/manage/events/constants' const manageApi = getManageApi() diff --git a/src/main/manage/manageApi.ts b/src/main/manage/manageApi.ts index e22081c..340778c 100644 --- a/src/main/manage/manageApi.ts +++ b/src/main/manage/manageApi.ts @@ -1,24 +1,28 @@ -import fs from 'fs-extra' -import path from 'path' +import { ipcMain } from 'electron' import { EventEmitter } from 'events' -import { managePathChecker } from './datastore/dbChecker' +import fs from 'fs-extra' +import { get, set, unset } from 'lodash' +import { homedir } from 'os' +import path from 'path' + +import windowManager from 'apis/app/window/windowManager' + +import API from '~/manage/apis/api' +import ManageDB from '~/manage/datastore/db' +import { managePathChecker } from '~/manage/datastore/dbChecker' +import { isInputConfigValid, formatError } from '~/manage/utils/common' +import { ManageLogger } from '~/manage/utils/logger' + +import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' + +import { IWindowList } from '#/types/enum' import { ManageApiType, ManageConfigType, ManageError, PicBedMangeConfig -} from '~/universal/types/manage' -import ManageDB from './datastore/db' -import { ManageLogger } from './utils/logger' -import { get, set, unset } from 'lodash' -import { homedir } from 'os' -import { isInputConfigValid, formatError } from './utils/common' -import API from './apis/api' -import windowManager from 'apis/app/window/windowManager' -import { IWindowList } from '#/types/enum' -import { ipcMain } from 'electron' -import { cancelDownloadLoadingFileList, refreshDownloadFileTransferList } from '@/manage/utils/static' +} from '#/types/manage' export class ManageApi extends EventEmitter implements ManageApiType { private _config!: Partial diff --git a/src/main/manage/utils/common.ts b/src/main/manage/utils/common.ts index c11031e..fd6b5d9 100644 --- a/src/main/manage/utils/common.ts +++ b/src/main/manage/utils/common.ts @@ -1,24 +1,26 @@ -import fs from 'fs-extra' -import path from 'path' -import mime from 'mime-types' import axios from 'axios' -import { app } from 'electron' import crypto from 'crypto' +import { app } from 'electron' +import fs from 'fs-extra' import got, { OptionsOfTextResponseBody, RequestError } from 'got' +import { HttpsProxyAgent, HttpProxyAgent } from 'hpagent' +import http from 'http' +import https from 'https' +import mime from 'mime-types' +import Downloader from 'nodejs-file-downloader' +import path from 'path' import { Stream } from 'stream' import { promisify } from 'util' + import UpDownTaskQueue, { uploadTaskSpecialStatus, commonTaskStatus, downloadTaskSpecialStatus -} from '../datastore/upDownTaskQueue' -import { ManageLogger } from '../utils/logger' +} from '~/manage/datastore/upDownTaskQueue' +import { ManageLogger } from '~/manage/utils/logger' + import { formatHttpProxy, IHTTPProxy } from '@/manage/utils/common' -import { HttpsProxyAgent, HttpProxyAgent } from 'hpagent' -import http from 'http' -import https from 'https' -import Downloader from 'nodejs-file-downloader' export const getFSFile = async ( filePath: string, diff --git a/src/main/manage/utils/dogeAPI.ts b/src/main/manage/utils/dogeAPI.ts index 464b99b..f10dcce 100644 --- a/src/main/manage/utils/dogeAPI.ts +++ b/src/main/manage/utils/dogeAPI.ts @@ -1,6 +1,7 @@ import axios from 'axios' import crypto from 'crypto' import querystring from 'querystring' + import picgo from '@core/picgo' export interface DogecloudToken { diff --git a/src/main/manage/utils/logger.ts b/src/main/manage/utils/logger.ts index abab5d6..8b1e799 100644 --- a/src/main/manage/utils/logger.ts +++ b/src/main/manage/utils/logger.ts @@ -2,12 +2,13 @@ import chalk from 'chalk' import dayjs from 'dayjs' import fs from 'fs-extra' import path from 'path' -import util from 'util' -import { ILogType } from '#/types/enum' import { ILogColor, ILogger } from 'piclist/dist/types' -import { ManageApiType, Undefinable } from '~/universal/types/manage' +import util from 'util' + +import { ILogType } from '#/types/enum' +import { ManageApiType, Undefinable } from '#/types/manage' import { enforceNumber, isDev } from '#/utils/common' -import { configPaths } from '~/universal/utils/configPaths' +import { configPaths } from '#/utils/configPaths' export class ManageLogger implements ILogger { readonly #level = { diff --git a/src/main/server/index.ts b/src/main/server/index.ts index 5f565cc..5b89e08 100644 --- a/src/main/server/index.ts +++ b/src/main/server/index.ts @@ -1,17 +1,20 @@ +import axios from 'axios' +import { app } from 'electron' +import fs from 'fs-extra' import http from 'http' -import routers from './routerManager' +import multer from 'multer' +import path from 'path' + +import picgo from '@core/picgo' +import logger from '@core/picgo/logger' + +import routers from '~/server/routerManager' import { handleResponse, ensureHTTPLink -} from './utils' -import picgo from '@core/picgo' -import logger from '@core/picgo/logger' -import axios from 'axios' -import multer from 'multer' -import { app } from 'electron' -import path from 'path' -import fs from 'fs-extra' -import { configPaths } from '~/universal/utils/configPaths' +} from '~/server/utils' + +import { configPaths } from '#/utils/configPaths' const DEFAULT_PORT = 36677 const DEFAULT_HOST = '0.0.0.0' diff --git a/src/main/server/routerManager.ts b/src/main/server/routerManager.ts index 29881a2..0a91227 100644 --- a/src/main/server/routerManager.ts +++ b/src/main/server/routerManager.ts @@ -1,21 +1,26 @@ -import router from './router' -import { - handleResponse -} from './utils' -import logger from '@core/picgo/logger' -import windowManager from 'apis/app/window/windowManager' -import { uploadChoosedFiles, uploadClipboardFiles, deleteChoosedFiles } from 'apis/app/uploader/apis' -import path from 'path' -import { dbPathDir } from 'apis/core/datastore/dbChecker' -import picgo from '@core/picgo' -import { changeCurrentUploader } from '../utils/handleUploaderConfig' import { app } from 'electron' import fs from 'fs-extra' -import { AESHelper } from '../utils/aesHelper' -import { marked } from 'marked' -import { markdownContent } from './apiDoc' import http from 'http' -import { configPaths } from '~/universal/utils/configPaths' +import { marked } from 'marked' +import path from 'path' + +import { dbPathDir } from '@core/datastore/dbChecker' +import picgo from '@core/picgo' +import logger from '@core/picgo/logger' + +import { AESHelper } from '~/utils/aesHelper' +import { changeCurrentUploader } from '~/utils/handleUploaderConfig' + +import { uploadChoosedFiles, uploadClipboardFiles, deleteChoosedFiles } from 'apis/app/uploader/apis' +import windowManager from 'apis/app/window/windowManager' + +import { markdownContent } from '~/server/apiDoc' +import router from '~/server/router' +import { + handleResponse +} from '~/server/utils' + +import { configPaths } from '#/utils/configPaths' const appPath = app.getPath('userData') const serverTempDir = path.join(appPath, 'serverTemp') diff --git a/src/main/server/webServer/index.ts b/src/main/server/webServer/index.ts index 7c5e27c..dd43984 100644 --- a/src/main/server/webServer/index.ts +++ b/src/main/server/webServer/index.ts @@ -1,10 +1,12 @@ -import http from 'http' import fs from 'fs-extra' +import http from 'http' import path from 'path' + import picgo from '@core/picgo' -import logger from '../../apis/core/picgo/logger' -import { encodeFilePath } from '~/universal/utils/common' -import { configPaths } from '~/universal/utils/configPaths' +import logger from '@core/picgo/logger' + +import { encodeFilePath } from '#/utils/common' +import { configPaths } from '#/utils/configPaths' const defaultPath = process.platform === 'win32' ? 'C:\\Users' : '/' diff --git a/src/main/utils/aesHelper.ts b/src/main/utils/aesHelper.ts index a974f80..79ba22b 100644 --- a/src/main/utils/aesHelper.ts +++ b/src/main/utils/aesHelper.ts @@ -1,7 +1,9 @@ import crypto from 'crypto' + import picgo from '@core/picgo' -import { DEFAULT_AES_PASSWORD } from '~/universal/utils/static' -import { configPaths } from '~/universal/utils/configPaths' + +import { configPaths } from '#/utils/configPaths' +import { DEFAULT_AES_PASSWORD } from '#/utils/static' export class AESHelper { key: Buffer diff --git a/src/main/utils/beforeOpen.ts b/src/main/utils/beforeOpen.ts index 2bdfada..da4addf 100644 --- a/src/main/utils/beforeOpen.ts +++ b/src/main/utils/beforeOpen.ts @@ -1,9 +1,11 @@ import fs from 'fs-extra' +import yaml from 'js-yaml' import path from 'path' import os from 'os' -import { dbPathChecker } from 'apis/core/datastore/dbChecker' -import yaml from 'js-yaml' -import { i18nManager } from '~/main/i18n' + +import { dbPathChecker } from '@core/datastore/dbChecker' + +import { i18nManager } from '~/i18n' const configPath = dbPathChecker() const CONFIG_DIR = path.dirname(configPath) diff --git a/src/main/utils/clipboardPoll.ts b/src/main/utils/clipboardPoll.ts index aa38e99..999dd52 100644 --- a/src/main/utils/clipboardPoll.ts +++ b/src/main/utils/clipboardPoll.ts @@ -1,7 +1,8 @@ +import crypto from 'crypto' import { clipboard } from 'electron' import { EventEmitter } from 'events' -import crypto from 'crypto' -import logger from '../apis/core/picgo/logger' + +import logger from '@core/picgo/logger' class ClipboardWatcher extends EventEmitter { timer: NodeJS.Timeout | null diff --git a/src/main/utils/common.ts b/src/main/utils/common.ts index 5703582..f115d2c 100644 --- a/src/main/utils/common.ts +++ b/src/main/utils/common.ts @@ -1,12 +1,14 @@ -import fs from 'fs-extra' -import db from '~/main/apis/core/datastore' -import { clipboard, Notification, dialog, Tray } from 'electron' -import { handleUrlEncode } from '~/universal/utils/common' import axios from 'axios' +import { clipboard, Notification, dialog, Tray } from 'electron' import FormData from 'form-data' -import logger from '../apis/core/picgo/logger' -import { configPaths } from '~/universal/utils/configPaths' -import { IShortUrlServer } from '~/universal/types/enum' +import fs from 'fs-extra' + +import db from '@core/datastore' +import logger from '@core/picgo/logger' + +import { IShortUrlServer } from '#/types/enum' +import { handleUrlEncode } from '#/utils/common' +import { configPaths } from '#/utils/configPaths' export let tray: Tray diff --git a/src/main/utils/deleteFunc.ts b/src/main/utils/deleteFunc.ts index 648a205..efd3b1b 100644 --- a/src/main/utils/deleteFunc.ts +++ b/src/main/utils/deleteFunc.ts @@ -1,11 +1,12 @@ -import { S3Client, DeleteObjectCommand, S3ClientConfig } from '@aws-sdk/client-s3' -import { NodeHttpHandler } from '@smithy/node-http-handler' -import http, { AgentOptions } from 'http' -import https from 'https' -import { getAgent } from '../manage/utils/common' import axios from 'axios' import crypto from 'crypto' +import http, { AgentOptions } from 'http' +import https from 'https' import querystring from 'querystring' +import { S3Client, DeleteObjectCommand, S3ClientConfig } from '@aws-sdk/client-s3' +import { NodeHttpHandler } from '@smithy/node-http-handler' + +import { getAgent } from '~/manage/utils/common' interface DogecloudTokenFull { Credentials: { diff --git a/src/main/utils/getMacOSVersion.ts b/src/main/utils/getMacOSVersion.ts index ef5776b..bb31634 100644 --- a/src/main/utils/getMacOSVersion.ts +++ b/src/main/utils/getMacOSVersion.ts @@ -1,7 +1,8 @@ // fork from https://github.com/sindresorhus/macos-version // cause I can't change it to common-js module -import process from 'process' + import fs from 'fs' +import process from 'process' import semver from 'semver' export const isMacOS = process.platform === 'darwin' diff --git a/src/main/utils/getPicBeds.ts b/src/main/utils/getPicBeds.ts index efa70aa..2431664 100644 --- a/src/main/utils/getPicBeds.ts +++ b/src/main/utils/getPicBeds.ts @@ -1,5 +1,5 @@ import picgo from '@core/picgo' -import { configPaths } from '~/universal/utils/configPaths' +import { configPaths } from '#/utils/configPaths' const getPicBeds = () => { const picBedTypes = picgo.helper.uploader.getIdList() diff --git a/src/main/utils/handleArgv.ts b/src/main/utils/handleArgv.ts index 3e80c1f..a2cacd9 100644 --- a/src/main/utils/handleArgv.ts +++ b/src/main/utils/handleArgv.ts @@ -1,7 +1,9 @@ -import path from 'path' import fs from 'fs-extra' +import path from 'path' import { Logger } from 'piclist' -import { isUrl } from '~/universal/utils/common' + +import { isUrl } from '#/utils/common' + interface IResultFileObject { path: string } diff --git a/src/main/utils/handleI18n.ts b/src/main/utils/handleI18n.ts index dfdc328..711d40f 100644 --- a/src/main/utils/handleI18n.ts +++ b/src/main/utils/handleI18n.ts @@ -1,7 +1,9 @@ -import db from '~/main/apis/core/datastore' -import { i18nManager } from '~/main/i18n' -import { II18nLanguage } from '~/universal/types/enum' -import { configPaths } from '~/universal/utils/configPaths' +import db from '@core/datastore' + +import { i18nManager } from '~/i18n' + +import { II18nLanguage } from '#/types/enum' +import { configPaths } from '#/utils/configPaths' export const initI18n = () => { const currentLanguage = db.get(configPaths.settings.language) || II18nLanguage.ZH_CN diff --git a/src/main/utils/handleUploaderConfig.ts b/src/main/utils/handleUploaderConfig.ts index da17db9..506fa20 100644 --- a/src/main/utils/handleUploaderConfig.ts +++ b/src/main/utils/handleUploaderConfig.ts @@ -1,8 +1,11 @@ import { v4 as uuid } from 'uuid' -import { trimValues } from '#/utils/common' + import picgo from '@core/picgo' -import { configPaths } from '~/universal/utils/configPaths' -import { setTrayToolTip } from './common' + +import { setTrayToolTip } from '~/utils/common' + +import { trimValues } from '#/utils/common' +import { configPaths } from '#/utils/configPaths' export const handleConfigWithFunction = (config: IPicGoPluginOriginConfig[]): IPicGoPluginConfig[] => { for (const i in config) { diff --git a/src/main/utils/pasteTemplate.ts b/src/main/utils/pasteTemplate.ts index 4f5391f..605706d 100644 --- a/src/main/utils/pasteTemplate.ts +++ b/src/main/utils/pasteTemplate.ts @@ -1,8 +1,9 @@ +import db from '@core/datastore' + +import { generateShortUrl, handleUrlEncodeWithSetting } from '~/utils/common' + import { IPasteStyle } from '#/types/enum' -import { generateShortUrl } from '~/main/utils/common' -import db from '~/main/apis/core/datastore' -import { handleUrlEncodeWithSetting } from './common' -import { configPaths } from '~/universal/utils/configPaths' +import { configPaths } from '#/utils/configPaths' export const formatCustomLink = (customLink: string, item: ImgInfo) => { const fileName = item.fileName!.replace(new RegExp(`\\${item.extname}$`), '') diff --git a/src/main/utils/sshClient.ts b/src/main/utils/sshClient.ts index 13363bd..e676603 100644 --- a/src/main/utils/sshClient.ts +++ b/src/main/utils/sshClient.ts @@ -1,9 +1,9 @@ // @ts-nocheck +import fs from 'fs-extra' import { NodeSSH, Config, SSHExecCommandResponse } from 'node-ssh-no-cpu-features' import path from 'path' import { ISftpPlistConfig } from 'piclist/dist/types' import { Client } from 'ssh2-no-cpu-features' -import fs from 'fs-extra' class SSHClient { // eslint-disable-next-line no-use-before-define diff --git a/src/main/utils/syncSettings.ts b/src/main/utils/syncSettings.ts index dd74a2b..3edd0bd 100644 --- a/src/main/utils/syncSettings.ts +++ b/src/main/utils/syncSettings.ts @@ -1,12 +1,14 @@ +import axios from 'axios' import { app } from 'electron' import fs from 'fs-extra' -import path from 'path' -import axios from 'axios' -import db from '~/main/apis/core/datastore' import { HttpsProxyAgent } from 'hpagent' +import path from 'path' import { Octokit } from '@octokit/rest' -import logger from 'apis/core/picgo/logger' -import { configPaths } from '~/universal/utils/configPaths' + +import db from '@core/datastore' +import logger from '@core/picgo/logger' + +import { configPaths } from '#/utils/configPaths' const STORE_PATH = app.getPath('userData') diff --git a/src/main/utils/updateChecker.ts b/src/main/utils/updateChecker.ts index 341d2b0..f383b4a 100644 --- a/src/main/utils/updateChecker.ts +++ b/src/main/utils/updateChecker.ts @@ -1,6 +1,8 @@ -import db from '~/main/apis/core/datastore' import { autoUpdater } from 'electron-updater' -import { configPaths } from '~/universal/utils/configPaths' + +import db from '@core/datastore' + +import { configPaths } from '#/utils/configPaths' const updateChecker = async () => { let showTip = db.get(configPaths.settings.showUpdateTip) diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 07db2e0..de9c373 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -6,12 +6,14 @@