mirror of
https://github.com/Kuingsmile/PicList.git
synced 2025-03-13 00:18:13 -04:00
Merge branch 'dev' into release
This commit is contained in:
commit
af6777e545
20
CHANGELOG.md
20
CHANGELOG.md
@ -1,3 +1,23 @@
|
|||||||
|
## :tada: 2.7.3 (2024-01-30)
|
||||||
|
|
||||||
|
|
||||||
|
### :sparkles: Features
|
||||||
|
|
||||||
|
* **custom:** support picbed name click to config page ([48cfaab](https://github.com/Kuingsmile/piclist/commit/48cfaab))
|
||||||
|
|
||||||
|
|
||||||
|
### :bug: Bug Fixes
|
||||||
|
|
||||||
|
* **custom:** fix format convert bug ([ea82600](https://github.com/Kuingsmile/piclist/commit/ea82600))
|
||||||
|
|
||||||
|
|
||||||
|
### :pencil: Documentation
|
||||||
|
|
||||||
|
* **custom:** add wechat group ([d87a014](https://github.com/Kuingsmile/piclist/commit/d87a014))
|
||||||
|
* **custom:** update changelog ([3c9f13a](https://github.com/Kuingsmile/piclist/commit/3c9f13a))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## :tada: 2.7.2 (2024-01-23)
|
## :tada: 2.7.2 (2024-01-23)
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,6 +229,12 @@ If you need to build it yourself, you can start building with `yarn run build`.
|
|||||||
- [PicHoro](https://github.com/Kuingsmile/PicHoro): A mobile APP that works with PicList
|
- [PicHoro](https://github.com/Kuingsmile/PicHoro): A mobile APP that works with PicList
|
||||||
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/): A VScode plugin that works with PicList
|
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/): A VScode plugin that works with PicList
|
||||||
|
|
||||||
|
## Communication group
|
||||||
|
|
||||||
|
If you have any questions, you can join the WeChat group for communication.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This project is open source under the MIT license. Welcome everyone to use and contribute code. Thank you for the open source spirit of the original author Molunerfinn.
|
This project is open source under the MIT license. Welcome everyone to use and contribute code. Thank you for the open source spirit of the original author Molunerfinn.
|
||||||
|
@ -219,6 +219,12 @@ brew uninstall piclist
|
|||||||
- [PicHoro](https://github.com/Kuingsmile/PicHoro): 与 PicList 搭配使用的手机端 APP
|
- [PicHoro](https://github.com/Kuingsmile/PicHoro): 与 PicList 搭配使用的手机端 APP
|
||||||
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/): 与 PicList 搭配使用的VScode插件
|
- [VS-PicList](https://github.com/Kuingsmile/vs-PicList/): 与 PicList 搭配使用的VScode插件
|
||||||
|
|
||||||
|
## 交流群
|
||||||
|
|
||||||
|
如果有任何问题,可以加入微信群进行交流。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
本项目基于MIT协议开源,欢迎大家使用和贡献代码,感谢原作者Molunerfinn的开源精神。
|
本项目基于MIT协议开源,欢迎大家使用和贡献代码,感谢原作者Molunerfinn的开源精神。
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
✨ Features
|
✨ Features
|
||||||
|
|
||||||
- 新增内置S3 API兼容平台支持
|
- 现在配置页点击图床名会跳转至手册说明页
|
||||||
- 现在又拍云图床支持自定义接口地址
|
|
||||||
- 七牛云新建存储桶新增`亚太-河内`支持
|
|
||||||
|
|
||||||
🐛 Bug Fixes
|
🐛 Bug Fixes
|
||||||
|
|
||||||
- 修复了修改s3图床相册链接后,拷贝图片链接没有对应修改的问题
|
- 修复了设置精细转换格式时,配置没有起作用的问题
|
||||||
- 修复了修改s3图床相册连接后,云端删除失效的问题
|
|
||||||
- 修复了设置精细转换格式时的序列化错误
|
|
||||||
- 修复了界面翻译错误
|
- 修复了界面翻译错误
|
||||||
|
@ -1,17 +1,8 @@
|
|||||||
✨ Features
|
✨ Features
|
||||||
|
|
||||||
- Add support for built-in S3 API compatible platform
|
- Now clicking the image bed name on the configuration page will jump to the manual explanation page
|
||||||
- Upyun now supports custom interface addresses
|
|
||||||
- Qiniu Cloud new bucket supports `Asia-Pacific-Hanoi`
|
|
||||||
|
|
||||||
🐛 Bug Fixes
|
🐛 Bug Fixes
|
||||||
|
|
||||||
- 修复了修改s3图床相册链接后,拷贝图片链接没有对应修改的问题
|
- Fixed the problem that the configuration did not take effect when setting the fine conversion format
|
||||||
- 修复了修改s3图床相册连接后,云端删除失效的问题
|
|
||||||
- 修复了设置精细转换格式时的序列化错误
|
|
||||||
- 修复了界面翻译错误
|
|
||||||
|
|
||||||
- Fix the problem that the copied image link is not modified after modifying the s3 album link
|
|
||||||
- Fixed the problem that the cloud deletion is invalid after modifying the s3 album connection
|
|
||||||
- Fixed serialization error when setting fine conversion format
|
|
||||||
- Fixed interface translation error
|
- Fixed interface translation error
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "piclist",
|
"name": "piclist",
|
||||||
"version": "2.7.2",
|
"version": "2.7.3",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Kuingsmile",
|
"name": "Kuingsmile",
|
||||||
"email": "pkukuing@gmail.com"
|
"email": "pkukuing@gmail.com"
|
||||||
@ -68,7 +68,7 @@
|
|||||||
"multer": "^1.4.5-lts.1",
|
"multer": "^1.4.5-lts.1",
|
||||||
"node-ssh-no-cpu-features": "^1.0.1",
|
"node-ssh-no-cpu-features": "^1.0.1",
|
||||||
"nodejs-file-downloader": "^4.12.1",
|
"nodejs-file-downloader": "^4.12.1",
|
||||||
"piclist": "^1.7.7",
|
"piclist": "^1.7.9",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"pinia-plugin-persistedstate": "^3.2.0",
|
"pinia-plugin-persistedstate": "^3.2.0",
|
||||||
"proxy-agent": "^5.0.0",
|
"proxy-agent": "^5.0.0",
|
||||||
|
@ -1477,7 +1477,7 @@
|
|||||||
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT_SPECIFIC')"
|
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT_SPECIFIC')"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="compressForm.formatConvertObj"
|
v-model="formatConvertObj"
|
||||||
placeholder="{"jpg": "png", "png": "jpg"}"
|
placeholder="{"jpg": "png", "png": "jpg"}"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:autosize="{ minRows: 2, maxRows: 4}"
|
:autosize="{ minRows: 2, maxRows: 4}"
|
||||||
@ -1692,6 +1692,8 @@ const waterMarkForm = reactive<any>({
|
|||||||
watermarkPosition: 'southeast'
|
watermarkPosition: 'southeast'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const formatConvertObj = ref('{}')
|
||||||
|
|
||||||
const compressForm = reactive<any>({
|
const compressForm = reactive<any>({
|
||||||
quality: 100,
|
quality: 100,
|
||||||
isConvert: false,
|
isConvert: false,
|
||||||
@ -1706,8 +1708,7 @@ const compressForm = reactive<any>({
|
|||||||
rotateDegree: 0,
|
rotateDegree: 0,
|
||||||
isRemoveExif: false,
|
isRemoveExif: false,
|
||||||
isFlip: false,
|
isFlip: false,
|
||||||
isFlop: false,
|
isFlop: false
|
||||||
formatConvertObj: '{}'
|
|
||||||
})
|
})
|
||||||
|
|
||||||
function closeDialog () {
|
function closeDialog () {
|
||||||
@ -1715,17 +1716,18 @@ function closeDialog () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleSaveConfig () {
|
function handleSaveConfig () {
|
||||||
let formatConvertObj = {}
|
let iformatConvertObj = {}
|
||||||
try {
|
try {
|
||||||
formatConvertObj = JSON.parse(compressForm.formatConvertObj)
|
iformatConvertObj = JSON.parse(formatConvertObj.value)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
}
|
}
|
||||||
const formatConvertObjEntries = Object.entries(formatConvertObj)
|
const formatConvertObjEntries = Object.entries(iformatConvertObj)
|
||||||
const formatConvertObjEntriesFilter = formatConvertObjEntries.filter((item: any) => {
|
const formatConvertObjEntriesFilter = formatConvertObjEntries.filter((item: any) => {
|
||||||
return imageExtList.includes(item[0]) && availableFormat.includes(item[1])
|
return imageExtList.includes(item[0]) && availableFormat.includes(item[1])
|
||||||
})
|
})
|
||||||
const formatConvertObjFilter = Object.fromEntries(formatConvertObjEntriesFilter)
|
const formatConvertObjFilter = Object.fromEntries(formatConvertObjEntriesFilter)
|
||||||
compressForm.formatConvertObj = JSON.stringify(formatConvertObjFilter)
|
formatConvertObj.value = JSON.stringify(formatConvertObjFilter)
|
||||||
|
compressForm.formatConvertObj = formatConvertObjFilter
|
||||||
saveConfig('buildIn.compress', toRaw(compressForm))
|
saveConfig('buildIn.compress', toRaw(compressForm))
|
||||||
saveConfig('buildIn.watermark', toRaw(waterMarkForm))
|
saveConfig('buildIn.watermark', toRaw(waterMarkForm))
|
||||||
closeDialog()
|
closeDialog()
|
||||||
@ -1750,9 +1752,13 @@ async function initForm () {
|
|||||||
compressForm.isFlip = compress.isFlip ?? false
|
compressForm.isFlip = compress.isFlip ?? false
|
||||||
compressForm.isFlop = compress.isFlop ?? false
|
compressForm.isFlop = compress.isFlop ?? false
|
||||||
try {
|
try {
|
||||||
compressForm.formatConvertObj = JSON.stringify(compress.formatConvertObj ?? {})
|
if (typeof compress.formatConvertObj === 'object') {
|
||||||
|
formatConvertObj.value = JSON.stringify(compress.formatConvertObj)
|
||||||
|
} else {
|
||||||
|
formatConvertObj.value = compress.formatConvertObj ?? '{}'
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
compressForm.formatConvertObj = '{}'
|
formatConvertObj.value = '{}'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (watermark) {
|
if (watermark) {
|
||||||
|
@ -308,7 +308,7 @@
|
|||||||
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT_SPECIFIC')"
|
:label="$T('UPLOAD_PAGE_IMAGE_PROCESS_CONVERTFORMAT_SPECIFIC')"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="compressForm.formatConvertObj"
|
v-model="formatConvertObj"
|
||||||
placeholder="{"jpg": "png", "png": "jpg"}"
|
placeholder="{"jpg": "png", "png": "jpg"}"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:autosize="{ minRows: 2, maxRows: 4}"
|
:autosize="{ minRows: 2, maxRows: 4}"
|
||||||
@ -516,26 +516,28 @@ const compressForm = reactive<any>({
|
|||||||
rotateDegree: 0,
|
rotateDegree: 0,
|
||||||
isRemoveExif: false,
|
isRemoveExif: false,
|
||||||
isFlip: false,
|
isFlip: false,
|
||||||
isFlop: false,
|
isFlop: false
|
||||||
formatConvertObj: '{}'
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const formatConvertObj = ref('{}')
|
||||||
|
|
||||||
function closeDialog () {
|
function closeDialog () {
|
||||||
imageProcessDialogVisible.value = false
|
imageProcessDialogVisible.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleSaveConfig () {
|
function handleSaveConfig () {
|
||||||
let formatConvertObj = {}
|
let iformatConvertObj = {}
|
||||||
try {
|
try {
|
||||||
formatConvertObj = JSON.parse(compressForm.formatConvertObj)
|
iformatConvertObj = JSON.parse(formatConvertObj.value)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
}
|
}
|
||||||
const formatConvertObjEntries = Object.entries(formatConvertObj)
|
const formatConvertObjEntries = Object.entries(iformatConvertObj)
|
||||||
const formatConvertObjEntriesFilter = formatConvertObjEntries.filter((item: any) => {
|
const formatConvertObjEntriesFilter = formatConvertObjEntries.filter((item: any) => {
|
||||||
return imageExtList.includes(item[0]) && availableFormat.includes(item[1])
|
return imageExtList.includes(item[0]) && availableFormat.includes(item[1])
|
||||||
})
|
})
|
||||||
const formatConvertObjFilter = Object.fromEntries(formatConvertObjEntriesFilter)
|
const formatConvertObjFilter = Object.fromEntries(formatConvertObjEntriesFilter)
|
||||||
compressForm.formatConvertObj = JSON.stringify(formatConvertObjFilter)
|
formatConvertObj.value = JSON.stringify(formatConvertObjFilter)
|
||||||
|
compressForm.formatConvertObj = formatConvertObjFilter
|
||||||
saveConfig('buildIn.compress', toRaw(compressForm))
|
saveConfig('buildIn.compress', toRaw(compressForm))
|
||||||
saveConfig('buildIn.watermark', toRaw(waterMarkForm))
|
saveConfig('buildIn.watermark', toRaw(waterMarkForm))
|
||||||
closeDialog()
|
closeDialog()
|
||||||
@ -560,9 +562,13 @@ async function initData () {
|
|||||||
compressForm.isFlip = compress.isFlip ?? false
|
compressForm.isFlip = compress.isFlip ?? false
|
||||||
compressForm.isFlop = compress.isFlop ?? false
|
compressForm.isFlop = compress.isFlop ?? false
|
||||||
try {
|
try {
|
||||||
compressForm.formatConvertObj = JSON.stringify(compress.formatConvertObj ?? {})
|
if (typeof compress.formatConvertObj === 'object') {
|
||||||
|
formatConvertObj.value = JSON.stringify(compress.formatConvertObj)
|
||||||
|
} else {
|
||||||
|
formatConvertObj.value = compress.formatConvertObj ?? '{}'
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
compressForm.formatConvertObj = '{}'
|
formatConvertObj.value = '{}'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (watermark) {
|
if (watermark) {
|
||||||
|
@ -16,9 +16,7 @@
|
|||||||
@click="handleNameClick"
|
@click="handleNameClick"
|
||||||
>
|
>
|
||||||
{{ picBedName }} {{ $T('SETTINGS') }}</span>
|
{{ picBedName }} {{ $T('SETTINGS') }}</span>
|
||||||
<el-icon
|
<el-icon>
|
||||||
v-if="linkToLogInList.includes(picBedName)"
|
|
||||||
>
|
|
||||||
<Link />
|
<Link />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<el-button
|
<el-button
|
||||||
@ -201,34 +199,29 @@ const handleReset = async () => {
|
|||||||
$router.back()
|
$router.back()
|
||||||
}
|
}
|
||||||
|
|
||||||
const linkToLogInList = ['GitHub', '腾讯云COS', '阿里云OSS', 'SM.MS', '七牛云', 'Imgur', '又拍云', 'githubPlus']
|
|
||||||
|
|
||||||
function handleNameClick () {
|
function handleNameClick () {
|
||||||
switch ($route.params.type) {
|
const typeUrlMap: IStringKeyMap = {
|
||||||
case 'github':
|
github: 'https://piclist.cn/configure.html#github%E5%9B%BE%E5%BA%8A',
|
||||||
case 'githubPlus':
|
githubPlus: 'https://piclist.cn/configure.html#github%E5%9B%BE%E5%BA%8A',
|
||||||
sendToMain(OPEN_URL, 'https://github.com')
|
tcyun: 'https://piclist.cn/configure.html#%E8%85%BE%E8%AE%AF%E4%BA%91cos',
|
||||||
break
|
aliyun: 'https://piclist.cn/configure.html#%E9%98%BF%E9%87%8C%E4%BA%91oss',
|
||||||
case 'tcyun':
|
smms: 'https://piclist.cn/configure.html#sm-ms',
|
||||||
sendToMain(OPEN_URL, 'https://cloud.tencent.com/login')
|
qiniu: 'https://piclist.cn/configure.html#%E4%B8%83%E7%89%9B%E4%BA%91',
|
||||||
break
|
imgur: 'https://piclist.cn/configure.html#imgur',
|
||||||
case 'aliyun':
|
upyun: 'https://piclist.cn/configure.html#%E5%8F%88%E6%8B%8D%E4%BA%91',
|
||||||
sendToMain(OPEN_URL, 'https://account.aliyun.com/login/login.htm')
|
'aws-s3-plist': 'https://piclist.cn/configure.html#%E5%86%85%E7%BD%AEaws-s3',
|
||||||
break
|
'aws-s3': 'https://piclist.cn/configure.html#%E5%86%85%E7%BD%AEaws-s3',
|
||||||
case 'smms':
|
local: 'https://piclist.cn/configure.html#%E6%9C%AC%E5%9C%B0%E5%9B%BE%E5%BA%8A',
|
||||||
sendToMain(OPEN_URL, 'https://smms.app')
|
lskyplist: 'https://piclist.cn/configure.html#%E5%85%B0%E7%A9%BA%E5%9B%BE%E5%BA%8A',
|
||||||
break
|
sftpplist: 'https://piclist.cn/configure.html#%E5%86%85%E7%BD%AEsftp',
|
||||||
case 'qiniu':
|
telegraphplist: 'https://piclist.cn/configure.html#telegra-ph',
|
||||||
sendToMain(OPEN_URL, 'https://portal.qiniu.com')
|
webdavplist: 'https://piclist.cn/configure.html#webdav',
|
||||||
break
|
piclist: 'https://piclist.cn/configure.html#piclist',
|
||||||
case 'imgur':
|
lankong: 'https://github.com/hellodk34/picgo-plugin-lankong'
|
||||||
sendToMain(OPEN_URL, 'https://imgur.com')
|
}
|
||||||
break
|
const url = typeUrlMap[$route.params.type as string]
|
||||||
case 'upyun':
|
if (url) {
|
||||||
sendToMain(OPEN_URL, 'https://console.upyun.com')
|
sendToMain(OPEN_URL, url)
|
||||||
break
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12392,10 +12392,10 @@ performance-now@^2.1.0:
|
|||||||
resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||||
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
|
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
|
||||||
|
|
||||||
piclist@^1.7.7:
|
piclist@^1.7.9:
|
||||||
version "1.7.7"
|
version "1.7.9"
|
||||||
resolved "https://registry.yarnpkg.com/piclist/-/piclist-1.7.7.tgz#fa4bcd08e623859a678dd20160e512b83650bf87"
|
resolved "https://registry.yarnpkg.com/piclist/-/piclist-1.7.9.tgz#1677f63c0596d0b23fd082ce4a3f10c6b4f7244a"
|
||||||
integrity sha512-GBusAPlEAcGMkp91tCZ4hX3oHVevQMJxagmFPWaIwj1G6FY/twKtnO/BiGoLcz1DwiZpxglWx5zPWw4IM7beLg==
|
integrity sha512-+H32vNqfe3bCNhkreEJXzWT4fUOyPntNxCPjeo5btxAhbaVEfP8GwXA1XfX8NrJb3ml6sQzIk26FrQ2bzK+Bwg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-sdk/client-s3" "3.421.0"
|
"@aws-sdk/client-s3" "3.421.0"
|
||||||
"@aws-sdk/lib-storage" "3.421.0"
|
"@aws-sdk/lib-storage" "3.421.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user