🔨 Refactor(custom): refactored all imports

This commit is contained in:
Kuingsmile 2024-06-09 11:53:07 +08:00
parent 8a565c1333
commit e87e3999b4
138 changed files with 947 additions and 1333 deletions

View File

@ -1,3 +1,3 @@
import { bootstrap } from '~/main/lifeCycle'
import { bootstrap } from '~/lifeCycle'
bootstrap.launchApp()

View File

@ -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)

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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<false | ImgInfo[]> => {
const useBuiltinClipboard = db.get(configPaths.settings.useBuiltinClipboard) === undefined ? true : !!db.get(configPaths.settings.useBuiltinClipboard)

View File

@ -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<string|null> => {
return new Promise((resolve) => {

View File

@ -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'

View File

@ -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<IWindowList, IWindowListItem>()

View File

@ -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 {

View File

@ -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,

View File

@ -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'

View File

@ -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

View File

@ -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()

View File

@ -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()

View File

@ -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 {

View File

@ -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,

View File

@ -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']

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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)

View File

@ -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

View File

@ -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) {

View File

@ -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()

View File

@ -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<IToolboxCheckRes, 'type'>) => {
return event.sender.send(IRPCActionType.TOOLBOX_CHECK_RES, {

View File

@ -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)

View File

@ -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 {

View File

@ -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')

View File

@ -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) => {

View File

@ -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 => {

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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])

View File

@ -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')

View File

@ -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',

View File

@ -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'

View File

@ -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 = {

View File

@ -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()

View File

@ -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<ManageConfigType>

View File

@ -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,

View File

@ -1,6 +1,7 @@
import axios from 'axios'
import crypto from 'crypto'
import querystring from 'querystring'
import picgo from '@core/picgo'
export interface DogecloudToken {

View File

@ -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 = {

View File

@ -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'

View File

@ -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')

View File

@ -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' : '/'

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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: {

View File

@ -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'

View File

@ -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()

View File

@ -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
}

View File

@ -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

View File

@ -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) {

View File

@ -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}$`), '')

View File

@ -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

View File

@ -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')

View File

@ -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)

View File

@ -6,12 +6,14 @@
<script lang="ts" setup>
import { useStore } from '@/hooks/useStore'
import { onBeforeMount, onMounted, onUnmounted } from 'vue'
import { getConfig } from './utils/dataSender'
import type { IConfig } from 'piclist'
import bus from './utils/bus'
import { FORCE_UPDATE } from '~/universal/events/constants'
import { useATagClick } from './hooks/useATagClick'
import { onBeforeMount, onMounted, onUnmounted } from 'vue'
import { useATagClick } from '@/hooks/useATagClick'
import bus from '@/utils/bus'
import { getConfig } from '@/utils/dataSender'
import { FORCE_UPDATE } from '#/events/constants'
useATagClick()
const store = useStore()

View File

@ -1,7 +1,8 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import axios from 'axios'
import path from 'path'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
fileName: string
config: {

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import OSS from 'ali-oss'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
fileName: string
config: PartialKeys<IAliYunConfig, 'path'>

View File

@ -1,38 +1,38 @@
import AliyunApi from './aliyun'
import AwsS3Api from './awss3'
import GithubApi from './github'
import ImgurApi from './imgur'
import LocalApi from './local'
import QiniuApi from './qiniu'
import SftpPlistApi from './sftpplist'
import SmmsApi from './smms'
import TcyunApi from './tcyun'
import UpyunApi from './upyun'
import WebdavApi from './webdav'
import DogeCloudApi from './dogecloud'
import HuaweicloudApi from './huaweiyun'
import AlistApi from './alist'
import PiclistApi from './piclist'
import LskyplistApi from './lskyplist'
import AlistApi from '@/apis/alist'
import AliyunApi from '@/apis/aliyun'
import AwsS3Api from '@/apis/awss3'
import DogeCloudApi from '@/apis/dogecloud'
import GithubApi from '@/apis/github'
import HuaweicloudApi from '@/apis/huaweiyun'
import ImgurApi from '@/apis/imgur'
import LocalApi from '@/apis/local'
import LskyplistApi from '@/apis/lskyplist'
import PiclistApi from '@/apis/piclist'
import QiniuApi from '@/apis/qiniu'
import SftpPlistApi from '@/apis/sftpplist'
import SmmsApi from '@/apis/smms'
import TcyunApi from '@/apis/tcyun'
import UpyunApi from '@/apis/upyun'
import WebdavApi from '@/apis/webdav'
const apiMap: IStringKeyMap = {
alist: AlistApi,
aliyun: AliyunApi,
'aws-s3': AwsS3Api,
'aws-s3-plist': AwsS3Api,
dogecloud: DogeCloudApi,
github: GithubApi,
'huaweicloud-uploader': HuaweicloudApi,
imgur: ImgurApi,
local: LocalApi,
lskyplist: LskyplistApi,
piclist: PiclistApi,
qiniu: QiniuApi,
sftpplist: SftpPlistApi,
smms: SmmsApi,
tcyun: TcyunApi,
upyun: UpyunApi,
webdavplist: WebdavApi,
dogecloud: DogeCloudApi,
'huaweicloud-uploader': HuaweicloudApi,
alist: AlistApi,
piclist: PiclistApi,
lskyplist: LskyplistApi
webdavplist: WebdavApi
}
export default class ALLApi {

View File

@ -1,6 +1,7 @@
import { ipcRenderer } from 'electron'
import { deleteFailedLog, getRawData } from '~/renderer/utils/common'
import { removeFileFromS3InMain } from '~/main/utils/deleteFunc'
import { deleteFailedLog, getRawData } from '@/utils/common'
import { removeFileFromS3InMain } from '~/utils/deleteFunc'
export default class AwsS3Api {
static async delete (configMap: IStringKeyMap): Promise<boolean> {

View File

@ -1,6 +1,7 @@
import { ipcRenderer } from 'electron'
import { deleteFailedLog, getRawData } from '~/renderer/utils/common'
import { removeFileFromDogeInMain } from '~/main/utils/deleteFunc'
import { deleteFailedLog, getRawData } from '@/utils/common'
import { removeFileFromDogeInMain } from '~/utils/deleteFunc'
export default class AwsS3Api {
static async delete (configMap: IStringKeyMap): Promise<boolean> {

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import { Octokit } from '@octokit/rest'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
fileName: string
hash: string

View File

@ -1,6 +1,7 @@
import { ipcRenderer } from 'electron'
import { deleteFailedLog, getRawData } from '~/renderer/utils/common'
import { removeFileFromHuaweiInMain } from '~/main/utils/deleteFunc'
import { deleteFailedLog, getRawData } from '@/utils/common'
import { removeFileFromHuaweiInMain } from '~/utils/deleteFunc'
export default class HuaweicloudApi {
static async delete (configMap: IStringKeyMap): Promise<boolean> {

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import axios, { AxiosResponse } from 'axios'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
config?: Partial<IImgurConfig>
hash?: string

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import fs from 'fs-extra'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
hash: string
}

View File

@ -1,7 +1,8 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import axios, { AxiosResponse } from 'axios'
import https from 'https'
import { deleteFailedLog, deleteLog } from '@/utils/common'
export default class LskyplistApi {
static async delete (configMap: IStringKeyMap): Promise<boolean> {
const { hash, config } = configMap

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import axios, { AxiosResponse } from 'axios'
import { deleteFailedLog, deleteLog } from '@/utils/common'
export default class PiclistApi {
static async delete (configMap: IStringKeyMap): Promise<boolean> {
const { config, fullResult } = configMap

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import Qiniu from 'qiniu'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
fileName: string
config: PartialKeys<IQiniuConfig, 'path'>

View File

@ -1,5 +1,6 @@
import { ipcRenderer } from 'electron'
import { deleteFailedLog, getRawData } from '~/renderer/utils/common'
import { deleteFailedLog, getRawData } from '@/utils/common'
export default class SftpPlistApi {
static async delete (configMap: IStringKeyMap): Promise<boolean> {

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import axios, { AxiosResponse } from 'axios'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
hash?: string
config?: Partial<ISMMSConfig>

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import COS from 'cos-nodejs-sdk-v5'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
fileName: string
config: PartialKeys<ITcYunConfig, 'path'>

View File

@ -1,6 +1,7 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import Upyun from 'upyun'
import { deleteFailedLog, deleteLog } from '@/utils/common'
interface IConfigMap {
fileName: string
config: PartialKeys<IUpYunConfig, 'path'>

View File

@ -1,6 +1,8 @@
import { deleteFailedLog, deleteLog } from '@/utils/common'
import { AuthType, WebDAVClientOptions, createClient } from 'webdav'
import { formatEndpoint } from '~/main/manage/utils/common'
import { deleteFailedLog, deleteLog } from '@/utils/common'
import { formatEndpoint } from '~/manage/utils/common'
interface IConfigMap {
fileName: string

View File

@ -99,14 +99,16 @@
</el-form>
</div>
</template>
<script lang="ts" setup>
import { reactive, ref, watch, toRefs } from 'vue'
import { cloneDeep, union } from 'lodash'
import { getConfig } from '@/utils/dataSender'
import { useRoute } from 'vue-router'
import type { FormInstance } from 'element-plus'
import { InfoFilled } from '@element-plus/icons-vue'
import { cloneDeep, union } from 'lodash'
import { marked } from 'marked'
import { reactive, ref, watch, toRefs } from 'vue'
import { useRoute } from 'vue-router'
import { InfoFilled } from '@element-plus/icons-vue'
import { getConfig } from '@/utils/dataSender'
interface IProps {
config: any[]

View File

@ -76,11 +76,13 @@
</el-form>
</div>
</template>
<script lang="ts" setup>
import { reactive, ref, watch } from 'vue'
import { cloneDeep, union } from 'lodash'
import { getConfig } from '@/utils/dataSender'
import type { FormInstance } from 'element-plus'
import { cloneDeep, union } from 'lodash'
import { reactive, ref, watch } from 'vue'
import { getConfig } from '@/utils/dataSender'
import { T as $T } from '@/i18n'
interface IProps {

View File

@ -22,12 +22,13 @@
</template>
<script lang="ts" setup>
import { ref, onBeforeMount } from 'vue'
import { getFileIconPath } from '@/manage/utils/common'
import { Loading } from '@element-plus/icons-vue'
import fs from 'fs-extra'
import mime from 'mime-types'
import path from 'path'
import { ref, onBeforeMount } from 'vue'
import { Loading } from '@element-plus/icons-vue'
import { getFileIconPath } from '@/manage/utils/common'
const base64Image = ref('')
const props = defineProps<{

View File

@ -262,11 +262,12 @@
</template>
<script lang="ts" setup>
import { T as $T } from '@/i18n/index'
import { IBuildInCompressOptions, IBuildInWaterMarkOptions } from 'piclist'
import { onBeforeMount, reactive, ref, toRaw } from 'vue'
import { T as $T } from '@/i18n/index'
import { getConfig, saveConfig } from '@/utils/dataSender'
import { configPaths } from '~/universal/utils/configPaths'
import { configPaths } from '#/utils/configPaths'
const imageProcessDialogVisible = defineModel<boolean>()

View File

@ -21,10 +21,12 @@
<script lang="ts" setup>
import { ref, onMounted, watch, computed } from 'vue'
import { getFileIconPath } from '@/manage/utils/common'
import { Loading } from '@element-plus/icons-vue'
import { getAuthHeader } from '@/manage/utils/digestAuth'
import { formatEndpoint } from '~/main/manage/utils/common'
import { getFileIconPath } from '@/manage/utils/common'
import { formatEndpoint } from '~/manage/utils/common'
const base64Url = ref('')
const success = ref(false)

View File

@ -1,9 +1,11 @@
import { defineComponent, ref, onMounted, watch, computed } from 'vue'
import { getFileIconPath } from '@/manage/utils/common'
import { Loading } from '@element-plus/icons-vue'
import { getAuthHeader } from '@/manage/utils/digestAuth'
import { formatEndpoint } from '~/main/manage/utils/common'
import { ElImage, ElIcon } from 'element-plus'
import { defineComponent, ref, onMounted, watch, computed } from 'vue'
import { Loading } from '@element-plus/icons-vue'
import { getFileIconPath } from '@/manage/utils/common'
import { getAuthHeader } from '@/manage/utils/digestAuth'
import { formatEndpoint } from '~/manage/utils/common'
export default defineComponent({
props: {

View File

@ -26,16 +26,19 @@
</template>
</el-dialog>
</template>
<script lang="ts" setup>
import { ref, reactive, onBeforeUnmount, onBeforeMount } from 'vue'
import { ipcRenderer, IpcRendererEvent } from 'electron'
import { ref, reactive, onBeforeUnmount, onBeforeMount } from 'vue'
import { T as $T } from '@/i18n/index'
import $bus from '@/utils/bus'
import { sendToMain } from '@/utils/dataSender'
import {
SHOW_INPUT_BOX,
SHOW_INPUT_BOX_RESPONSE
} from '~/universal/events/constants'
import $bus from '@/utils/bus'
import { sendToMain } from '@/utils/dataSender'
import { T as $T } from '@/i18n/index'
} from '#/events/constants'
const inputBoxValue = ref('')
const showInputBoxVisible = ref(false)

View File

@ -9,8 +9,9 @@
</ElButton>
</div>
</template>
<script lang="ts" setup>
import { IToolboxItemCheckStatus } from '~/universal/types/enum'
import { IToolboxItemCheckStatus } from '#/types/enum'
interface IProps {
status: IToolboxItemCheckStatus

View File

@ -14,10 +14,12 @@
</template>
</el-icon>
</template>
<script lang="ts" setup>
import { CircleCloseFilled, Loading, SuccessFilled } from '@element-plus/icons-vue'
import { computed } from 'vue'
import { IToolboxItemCheckStatus } from '~/universal/types/enum'
import { IToolboxItemCheckStatus } from '#/types/enum'
interface IProps {
status: IToolboxItemCheckStatus

Some files were not shown because too many files have changed in this diff Show More