Merge branch 'dev' into release

This commit is contained in:
萌萌哒赫萝
2023-07-19 23:13:45 -07:00
20 changed files with 233 additions and 55 deletions
+17
View File
@@ -1,3 +1,20 @@
## :tada: 1.9.8 (2023-07-20)
### :sparkles: Features
* add a new config item to close upload result notification ([c1698e8](https://github.com/Kuingsmile/PicList/commit/c1698e8)), closes [#74](https://github.com/Kuingsmile/PicList/issues/74)
* add two new config items to control mini window and main window ([2eff772](https://github.com/Kuingsmile/PicList/commit/2eff772))
* pictures uploaded using webdav and local path can be previewed in gallery now ([6a94503](https://github.com/Kuingsmile/PicList/commit/6a94503)), closes [#64](https://github.com/Kuingsmile/PicList/issues/64)
### :bug: Bug Fixes
* fix a bug of file server when the request path is url encoded ([48b13b2](https://github.com/Kuingsmile/PicList/commit/48b13b2))
* fix an issue related with yourls ([58486a3](https://github.com/Kuingsmile/PicList/commit/58486a3)), closes [#72](https://github.com/Kuingsmile/PicList/issues/72)
## :tada: 1.9.7 (2023-07-12)
+2 -1
View File
@@ -31,7 +31,7 @@ PicList的内核使用的是原版PicGo-Core基础上修改的[PicList-core](htt
## 特色功能
- 保留了PicGo的所有功能,兼容已有的PicGo插件系统,包括和typora、obsidian等的搭配
- 新增了对webdav上传,imgur账户上传等的支持
- 新增了对webdav上传,imgur账户上传,本地文件夹上传等的支持
- 相册中可同步删除云端图片,同时新增了高级搜索和排序,批量修改URL等功能
- 内置水印添加、图片压缩、图片缩放、图片旋转和图片格式转换等功能,支持自定义配置,且可以通过CLI命令行调用
- 新增配置多端同步功能
@@ -91,6 +91,7 @@ MacOS:
| 七牛云 | ✔️ | ✔️ |
| S3 API兼容平台 | ✔️ | ✔️ |
| WebDAV | ✔️ | ✔️ |
| 本地文件夹 | ✔️ | ✔️ |
| 插件 | 相册云删除 |
| :----------------------------------------------------------: | :--------: |
+2 -1
View File
@@ -31,7 +31,7 @@ if you want to use PicList-core, please go to [https://github.com/Kuingsmile/Pic
## Features
- Maintain all the functions of PicGo, compatible with the existing PicGo plug-in system, including the combination with typora, obsidian and other software
- Add support for webdav upload, imgur account upload, etc.
- Add support for webdav upload, imgur account upload, local path upload, etc.
- Synchronous cloud deletion of pictures in the album, advanced search and sorting features have been added, along with the ability to bulk modify URLs.
- Built-in watermark addition, image compression, image scaling, image rotation and image format conversion functions, support custom configuration, and can be called through CLI command line
- Add the configuration of multi-device synchronization function.
@@ -93,6 +93,7 @@ Search and install `Image auto upload Plugin` in the community plugin, then ente
| Qiniu | ✔️ | ✔️ |
| S3 API compatible platform | ✔️ | ✔️ |
| WebDAV | ✔️ | ✔️ |
| Local | ✔️ | ✔️ |
| Plugin | Album cloud deletion |
| :----------------------------------------------------------: | :------------------: |
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "piclist",
"version": "1.9.7",
"version": "1.9.8",
"author": {
"name": "Kuingsmile",
"email": "pkukuing@gmail.com"
@@ -51,7 +51,7 @@
"cos-nodejs-sdk-v5": "^2.12.1",
"dexie": "^3.2.4",
"electron-updater": "^6.1.1",
"element-plus": "^2.3.7",
"element-plus": "^2.3.8",
"epipebomb": "^1.0.0",
"fast-xml-parser": "^4.2.5",
"form-data": "^4.0.0",
@@ -66,7 +66,7 @@
"mime-types": "^2.1.35",
"mitt": "^3.0.0",
"nodejs-file-downloader": "^4.12.1",
"piclist": "^0.7.4",
"piclist": "^0.7.6",
"pinia": "^2.1.4",
"pinia-plugin-persistedstate": "^3.1.0",
"qiniu": "^7.8.0",
+3
View File
@@ -164,6 +164,8 @@ SETTINGS_CHECK_UPDATE: Check Update
SETTINGS_OPEN_UPDATE_HELPER: Open Update Helper
SETTINGS_OPEN: Open
SETTINGS_CLOSE: Close
SETTINGS_CLOSE_MINI_WINDOW_SYNC: Close Mini Window When open Main Window
SETTINGS_CLOSE_MAIN_WINDOW_SYNC: Close Main Window When open Mini Window
SETTINGS_ACCEPT_BETA_UPDATE: Accept Beta Update
SETTINGS_LAUNCH_ON_BOOT: Launch On Boot
SETTINGS_RENAME_BEFORE_UPLOAD: Rename Before Upload
@@ -172,6 +174,7 @@ SETTINGS_ADVANCED_RENAME: Advanced Rename
SETTINGS_ADVANCED_RENAME_ENABLE: Enable Advanced Rename
SETTINGS_ADVANCED_RENAME_FORMAT: Advanced Rename Format
SETTINGS_OPEN_UPLOAD_TIPS: Open Upload Tips
SETTINGS_OPEN_UPLOAD_RESULT_TIPS: Open Upload Result Tips
SETTINGS_MINI_WINDOW_ON_TOP: Mini Window On Top
SETTINGS_AUTO_COPY_URL_AFTER_UPLOAD: Auto Copy URL After Upload
SETTINGS_TIPS_PLACEHOLDER_URL: Use $url to represent url position
+4 -1
View File
@@ -166,6 +166,8 @@ SETTINGS_CHECK_UPDATE: 检查更新
SETTINGS_OPEN_UPDATE_HELPER: 打开更新助手
SETTINGS_OPEN: 开
SETTINGS_CLOSE: 关
SETTINGS_CLOSE_MINI_WINDOW_SYNC: 打开主窗口时关闭mini窗口
SETTINGS_CLOSE_MAIN_WINDOW_SYNC: 打开mini窗口时关闭主窗口
SETTINGS_ACCEPT_BETA_UPDATE: 接受Beta版本更新
SETTINGS_LAUNCH_ON_BOOT: 开机自启
SETTINGS_RENAME_BEFORE_UPLOAD: 上传前重命名
@@ -173,7 +175,8 @@ SETTINGS_TIMESTAMP_RENAME: 时间戳重命名
SETTINGS_ADVANCED_RENAME: 高级重命名
SETTINGS_ADVANCED_RENAME_ENABLE: 开启高级重命名
SETTINGS_ADVANCED_RENAME_FORMAT: 重命名格式
SETTINGS_OPEN_UPLOAD_TIPS: 开启上传提示
SETTINGS_OPEN_UPLOAD_TIPS: 开启上传进度提示
SETTINGS_OPEN_UPLOAD_RESULT_TIPS: 开启上传结果提示
SETTINGS_MINI_WINDOW_ON_TOP: Mini窗口置顶
SETTINGS_AUTO_COPY_URL_AFTER_UPLOAD: 上传后自动复制URL
SETTINGS_TIPS_PLACEHOLDER_URL: 用占位符 $url 来表示url的位置
+3
View File
@@ -164,6 +164,8 @@ SETTINGS_CHECK_UPDATE: 檢查更新
SETTINGS_OPEN_UPDATE_HELPER: 打開更新助手
SETTINGS_OPEN: 開
SETTINGS_CLOSE: 關
SETTINGS_CLOSE_MINI_WINDOW_SYNC: 開主窗口同步關閉mini窗口
SETTINGS_CLOSE_MAIN_WINDOW_SYNC: 關mini窗口同步關閉主窗口
SETTINGS_ACCEPT_BETA_UPDATE: 接受Beta版本更新
SETTINGS_LAUNCH_ON_BOOT: 開機時啟動
SETTINGS_RENAME_BEFORE_UPLOAD: 上傳前重新命名
@@ -172,6 +174,7 @@ SETTINGS_ADVANCED_RENAME: 高級命名
SETTINGS_ADVANCED_RENAME_ENABLE: 啟用高級命名
SETTINGS_ADVANCED_RENAME_FORMAT: 高級命名格式
SETTINGS_OPEN_UPLOAD_TIPS: 開啟上傳提示
SETTINGS_OPEN_UPLOAD_RESULT_TIPS: 開啟上傳結果提示
SETTINGS_MINI_WINDOW_ON_TOP: Mini視窗置頂
SETTINGS_AUTO_COPY_URL_AFTER_UPLOAD: 上傳後自動複製URL
SETTINGS_TIPS_PLACEHOLDER_URL: 用佔位符 $url 來表示URL的位置
+39 -8
View File
@@ -28,6 +28,7 @@ let tray: Tray | null
export function setDockMenu () {
const isListeningClipboard = db.get('settings.isListeningClipboard') || false
const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
const dockMenu = Menu.buildFromTemplate([
{
label: T('OPEN_MAIN_WINDOW'),
@@ -35,6 +36,9 @@ export function setDockMenu () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
settingWindow!.show()
settingWindow!.focus()
if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
}
}
},
{
@@ -74,8 +78,12 @@ export function createMenu () {
label: T('OPEN_MAIN_WINDOW'),
click () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
}
}
},
{
@@ -135,8 +143,12 @@ export function createContextMenu () {
label: T('OPEN_MAIN_WINDOW'),
click () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
}
}
},
{
@@ -206,6 +218,10 @@ export function createContextMenu () {
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
const autoCloseMainWindow = db.get('settings.autoCloseMainWindow') || false
if (windowManager.has(IWindowList.SETTING_WINDOW) && autoCloseMainWindow) {
windowManager.get(IWindowList.SETTING_WINDOW)!.hide()
}
}
}
)
@@ -224,8 +240,12 @@ export function createContextMenu () {
label: T('OPEN_MAIN_WINDOW'),
click () {
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
}
}
},
{
@@ -251,6 +271,10 @@ export function createContextMenu () {
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
const autoCloseMainWindow = db.get('settings.autoCloseMainWindow') || false
if (windowManager.has(IWindowList.SETTING_WINDOW) && autoCloseMainWindow) {
windowManager.get(IWindowList.SETTING_WINDOW)!.hide()
}
}
},
{
@@ -358,8 +382,12 @@ export function createTray () {
windowManager.get(IWindowList.TRAY_WINDOW)!.hide()
}
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)
const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
settingWindow!.show()
settingWindow!.focus()
if (windowManager.has(IWindowList.MINI_WINDOW) && autoCloseMiniWindow) {
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
}
}
})
@@ -392,14 +420,17 @@ export function createTray () {
await fs.remove(rawInput[i])
}
pasteText.push(await (pasteTemplate(pasteStyle, imgs[i], db.get('settings.customLink'))))
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: imgs[i].imgUrl!
// icon: files[i]
})
setTimeout(() => {
notification.show()
}, i * 100)
const isShowResultNotification = db.get('settings.uploadResultNotification') === undefined ? true : !!db.get('settings.uploadResultNotification')
if (isShowResultNotification) {
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: imgs[i].imgUrl!
// icon: files[i]
})
setTimeout(() => {
notification.show()
}, i * 100)
}
await GalleryDB.getInstance().insert(imgs[i])
}
handleCopyUrl(pasteText.join('\n'))
+22 -16
View File
@@ -32,14 +32,17 @@ export const uploadClipboardFiles = async (): Promise<IStringKeyMap> => {
const trayWindow = windowManager.get(IWindowList.TRAY_WINDOW)
const pasteStyle = db.get('settings.pasteStyle') || 'markdown'
handleCopyUrl(await (pasteTemplate(pasteStyle, img[0], db.get('settings.customLink'))))
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: img[0].imgUrl!
// icon: img[0].imgUrl
})
setTimeout(() => {
notification.show()
}, 100)
const isShowResultNotification = db.get('settings.uploadResultNotification') === undefined ? true : !!db.get('settings.uploadResultNotification')
if (isShowResultNotification) {
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: img[0].imgUrl!
// icon: img[0].imgUrl
})
setTimeout(() => {
notification.show()
}, 100)
}
await GalleryDB.getInstance().insert(img[0])
// trayWindow just be created in mac/windows, not in linux
trayWindow?.webContents?.send('clipboardFiles', [])
@@ -88,14 +91,17 @@ export const uploadChoosedFiles = async (webContents: WebContents, files: IFileW
})
}
pasteText.push(await (pasteTemplate(pasteStyle, imgs[i], db.get('settings.customLink'))))
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: imgs[i].imgUrl!
// icon: files[i].path
})
setTimeout(() => {
notification.show()
}, i * 100)
const isShowResultNotification = db.get('settings.uploadResultNotification') === undefined ? true : !!db.get('settings.uploadResultNotification')
if (isShowResultNotification) {
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: imgs[i].imgUrl!
// icon: files[i].path
})
setTimeout(() => {
notification.show()
}, i * 100)
}
await GalleryDB.getInstance().insert(imgs[i])
result.push({
url: handleUrlEncodeWithSetting(imgs[i].imgUrl!),
+11 -8
View File
@@ -89,14 +89,17 @@ class GuiApi implements IGuiApi {
await fs.remove(rawInput[i])
}
pasteText.push(await (pasteTemplate(pasteStyle, imgs[i], db.get('settings.customLink'))))
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: imgs[i].imgUrl as string
// icon: imgs[i].imgUrl
})
setTimeout(() => {
notification.show()
}, i * 100)
const isShowResultNotification = db.get('settings.uploadResultNotification') === undefined ? true : !!db.get('settings.uploadResultNotification')
if (isShowResultNotification) {
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: imgs[i].imgUrl as string
// icon: imgs[i].imgUrl
})
setTimeout(() => {
notification.show()
}, i * 100)
}
await GalleryDB.getInstance().insert(imgs[i])
}
handleCopyUrl(pasteText.join('\n'))
+16 -7
View File
@@ -58,13 +58,16 @@ export default {
if (img !== false) {
const pasteStyle = db.get('settings.pasteStyle') || 'markdown'
handleCopyUrl(await (pasteTemplate(pasteStyle, img[0], db.get('settings.customLink'))))
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: img[0].imgUrl!
// icon: file[0]
// icon: img[0].imgUrl
})
notification.show()
const isShowResultNotification = db.get('settings.uploadResultNotification') === undefined ? true : !!db.get('settings.uploadResultNotification')
if (isShowResultNotification) {
const notification = new Notification({
title: T('UPLOAD_SUCCEED'),
body: img[0].imgUrl!
// icon: file[0]
// icon: img[0].imgUrl
})
notification.show()
}
await GalleryDB.getInstance().insert(img[0])
trayWindow.webContents.send('clipboardFiles', [])
if (windowManager.has(IWindowList.SETTING_WINDOW)) {
@@ -211,6 +214,12 @@ export default {
ipcMain.on('openSettingWindow', () => {
windowManager.get(IWindowList.SETTING_WINDOW)!.show()
const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
if (autoCloseMiniWindow) {
if (windowManager.has(IWindowList.MINI_WINDOW)) {
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
}
}
})
ipcMain.on('openMiniWindow', () => {
+6
View File
@@ -30,6 +30,12 @@ const buildMiniPageMenu = () => {
label: T('OPEN_MAIN_WINDOW'),
click () {
windowManager.get(IWindowList.SETTING_WINDOW)!.show()
const autoCloseMiniWindow = db.get('settings.autoCloseMiniWindow') || false
if (autoCloseMiniWindow) {
if (windowManager.has(IWindowList.MINI_WINDOW)) {
windowManager.get(IWindowList.MINI_WINDOW)!.hide()
}
}
}
},
{
+32
View File
@@ -0,0 +1,32 @@
import http from 'http'
import fs from 'fs-extra'
import path from 'path'
import picgo from '@core/picgo'
import logger from '../apis/core/picgo/logger'
export const imgFilePath = path.join(picgo.baseDir, 'imgTemp')
fs.ensureDirSync(imgFilePath)
const serverPort = 36699
export function startFileServer () {
const server = http.createServer((req, res) => {
const requestPath = req.url?.split('?')[0]
const filePath = path.join(imgFilePath, decodeURIComponent(requestPath as string))
fs.readFile(filePath, (err, data) => {
if (err) {
res.writeHead(404)
res.end('404 Not Found')
} else {
res.end(data)
}
})
})
server.listen(serverPort, () => {
logger.info(`File server is running, http://localhost:${serverPort}`)
}).on('error', (err) => {
logger.error(err)
})
}
+2
View File
@@ -47,6 +47,7 @@ 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'
const isDevelopment = process.env.NODE_ENV !== 'production'
const handleStartUpFiles = (argv: string[], cwd: string) => {
@@ -158,6 +159,7 @@ class LifeCycle {
shortKeyHandler.init()
})
server.startup()
startFileServer()
if (process.env.NODE_ENV !== 'development') {
handleStartUpFiles(process.argv, process.cwd())
}
+4 -1
View File
@@ -122,9 +122,12 @@ export const generateShortUrl = async (url: string) => {
console.log(e)
}
} else if (server === 'yourls') {
const domain = db.get('settings.yourlsDomain') || ''
let domain = db.get('settings.yourlsDomain') || ''
const signature = db.get('settings.yourlsSignature') || ''
if (domain && signature) {
if (!/^https?:\/\//.test(domain)) {
domain = `http://${domain}`
}
try {
const res = await axios.get(`${domain}/yourls-api.php?signature=${signature}&action=shorturl&format=json&url=${url}`)
if (res.data.shorturl) {
+1 -1
View File
@@ -242,7 +242,7 @@
@click="zoomImage(index)"
>
<img
v-lazy="item.imgUrl"
v-lazy="item.galleryPath || item.imgUrl"
class="gallery-list__item-img"
>
</div>
+52
View File
@@ -110,6 +110,28 @@
{{ $T('SETTINGS_CLICK_TO_SET') }}
</el-button>
</el-form-item>
<el-form-item
v-if="os !== 'darwin'"
:label="$T('SETTINGS_CLOSE_MINI_WINDOW_SYNC')"
>
<el-switch
v-model="form.autoCloseMiniWindow"
:active-text="$T('SETTINGS_OPEN')"
:inactive-text="$T('SETTINGS_CLOSE')"
@change="handleAutoCloseMiniWindowChange"
/>
</el-form-item>
<el-form-item
v-if="os !== 'darwin'"
:label="$T('SETTINGS_CLOSE_MAIN_WINDOW_SYNC')"
>
<el-switch
v-model="form.autoCloseMainWindow"
:active-text="$T('SETTINGS_OPEN')"
:inactive-text="$T('SETTINGS_CLOSE')"
@change="handleAutoCloseMainWindowChange"
/>
</el-form-item>
<el-form-item
v-if="os !== 'darwin'"
:label="$T('SETTINGS_MINI_WINDOW_ON_TOP')"
@@ -287,6 +309,16 @@
@change="handleUploadNotification"
/>
</el-form-item>
<el-form-item
:label="$T('SETTINGS_OPEN_UPLOAD_RESULT_TIPS')"
>
<el-switch
v-model="form.uploadResultNotification"
:active-text="$T('SETTINGS_OPEN')"
:inactive-text="$T('SETTINGS_CLOSE')"
@change="handleUploadResultNotification"
/>
</el-form-item>
<el-form-item
:label="$T('SETTINGS_COMPRESS_AND_WATERMARK')"
>
@@ -1527,7 +1559,10 @@ const form = reactive<ISettingForm>({
rename: false,
autoRename: false,
uploadNotification: false,
uploadResultNotification: true,
miniWindowOntop: false,
autoCloseMiniWindow: false,
autoCloseMainWindow: false,
logLevel: ['all'],
autoCopyUrl: true,
checkBetaUpdate: true,
@@ -1680,7 +1715,10 @@ async function initData () {
form.rename = settings.rename || false
form.autoRename = settings.autoRename || false
form.uploadNotification = settings.uploadNotification || false
form.uploadResultNotification = settings.uploadResultNotification === undefined ? true : settings.uploadResultNotification
form.miniWindowOntop = settings.miniWindowOntop || false
form.autoCloseMiniWindow = settings.autoCloseMiniWindow || false
form.autoCloseMainWindow = settings.autoCloseMainWindow || false
form.logLevel = initLogLevel(settings.logLevel || [])
form.autoCopyUrl = settings.autoCopy === undefined ? true : settings.autoCopy
form.checkBetaUpdate = settings.checkBetaUpdate === undefined ? true : settings.checkBetaUpdate
@@ -1952,6 +1990,12 @@ function handleUploadNotification (val: ICheckBoxValueType) {
})
}
function handleUploadResultNotification (val: ICheckBoxValueType) {
saveConfig({
'settings.uploadResultNotification': val
})
}
async function cancelWindowSize () {
mainWindowSizeVisible.value = false
mainWindowWidth.value = await getConfig<number>('settings.mainWindowWidth') || 1200
@@ -1975,6 +2019,14 @@ async function confirmWindowSize () {
}
}
function handleAutoCloseMainWindowChange (val: ICheckBoxValueType) {
saveConfig('settings.autoCloseMainWindow', val)
}
function handleAutoCloseMiniWindowChange (val: ICheckBoxValueType) {
saveConfig('settings.autoCloseMiniWindow', val)
}
function handleMiniWindowOntop (val: ICheckBoxValueType) {
saveConfig('settings.miniWindowOntop', val)
$message.info($T('TIPS_NEED_RELOAD'))
+3
View File
@@ -159,6 +159,8 @@ interface ILocales {
SETTINGS_OPEN_UPDATE_HELPER: string
SETTINGS_OPEN: string
SETTINGS_CLOSE: string
SETTINGS_CLOSE_MINI_WINDOW_SYNC: string
SETTINGS_CLOSE_MAIN_WINDOW_SYNC: string
SETTINGS_ACCEPT_BETA_UPDATE: string
SETTINGS_LAUNCH_ON_BOOT: string
SETTINGS_RENAME_BEFORE_UPLOAD: string
@@ -167,6 +169,7 @@ interface ILocales {
SETTINGS_ADVANCED_RENAME_ENABLE: string
SETTINGS_ADVANCED_RENAME_FORMAT: string
SETTINGS_OPEN_UPLOAD_TIPS: string
SETTINGS_OPEN_UPLOAD_RESULT_TIPS: string
SETTINGS_MINI_WINDOW_ON_TOP: string
SETTINGS_AUTO_COPY_URL_AFTER_UPLOAD: string
SETTINGS_TIPS_PLACEHOLDER_URL: string
+3
View File
@@ -5,7 +5,10 @@ interface ISettingForm {
rename: boolean
autoRename: boolean
uploadNotification: boolean
uploadResultNotification: boolean
miniWindowOntop: boolean
autoCloseMiniWindow: boolean
autoCloseMainWindow: boolean
logLevel: string[]
autoCopyUrl: boolean
checkBetaUpdate: boolean
+8 -8
View File
@@ -6732,10 +6732,10 @@ electron@^22.0.2:
"@types/node" "^16.11.26"
extract-zip "^2.0.1"
element-plus@^2.3.7:
version "2.3.7"
resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.3.7.tgz#544a127f0e65f51715e3b24ec3ebf545c46859cd"
integrity sha512-h6TxclbaLUJxg/Bv5j/ZKsK+K5yadQliw5+R30HWyE69pXlqXTX24oYx+yw3pA4Dy+lqEDi5501FQ0CORk3OSA==
element-plus@^2.3.8:
version "2.3.8"
resolved "https://registry.npmjs.org/element-plus/-/element-plus-2.3.8.tgz#46032abe1a712abfb65932f146ee19281312a9cf"
integrity sha512-yHQR0/tG2LvPkpGUt7Te/hPmP2XW/BytBNUbx+EFO54VnGCOE3upmQcVffNp1PLgwg9sthYDXontUWpnpmLPJw==
dependencies:
"@ctrl/tinycolor" "^3.4.1"
"@element-plus/icons-vue" "^2.0.6"
@@ -11054,10 +11054,10 @@ performance-now@^2.1.0:
resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
piclist@^0.7.4:
version "0.7.4"
resolved "https://registry.npmjs.org/piclist/-/piclist-0.7.4.tgz#125c9f337e2d7375ae0c5c17fafaf924134fd65f"
integrity sha512-PxE6S93uWP7sQNyMi6R7ZEs57oOXgm/nD14Moi0k0dbAlvtm1kWdrc4CboW/6e7hPVgeqT7pGi0+y0SF8iTxOA==
piclist@^0.7.6:
version "0.7.6"
resolved "https://registry.npmjs.org/piclist/-/piclist-0.7.6.tgz#93ac36f2f3fa067d014b4ff1e808bd6304fa29e3"
integrity sha512-aLoVhvl8A/Ez2I3T3rmqQ5MCBw6txTQ+5H0zGvgybEpHGpuTHct9MBplfJVj2eIyqwbbcWT24t5bkvaByma2gw==
dependencies:
"@picgo/i18n" "^1.0.0"
"@picgo/store" "^2.0.4"