diff --git a/README.md b/README.md
index 74fa723..ad0215b 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,16 @@
[中文](README_zh_CN.md)
+- SM.MS
# PicGo Plugin
![](./preview.png)
Your favorite PicGo image bed is still available in siyuan-notes, wuhu~
-> Important Note:
->
-> Please refrain from updating this plugin for versions of siyuan-note prior to `3.0.3`; the highest permissible version remains `1.5.1`. For siyuan-note versions `3.0.3` and beyond, the PicGO plugin may be upgraded to `1.6.0+`.
->
+> Important Note:
+>
+> Please refrain from updating this plugin for versions of siyuan-note prior to `3.0.3`; the highest permissible version remains `1.5.1`. For siyuan-note versions `3.0.3` and beyond, the PicGO plugin may be upgraded to `1.6.0+`.
+>
> For versions of siyuan-note before `2.10.8`, it is advised not to upgrade this plugin beyond version `1.4.5`. Subsequent to siyuan-note `2.10.8`, the PicGO plugin can be updated to `1.5.0+`.
## Image Hosting Support
@@ -20,7 +21,6 @@ Your favorite PicGo image bed is still available in siyuan-notes, wuhu~
- Tencent Cloud
- Upyun
- Qiniu Cloud
-- SM.MS
- imgur
## Changelog
diff --git a/libs/Universal-PicGo-Core/custom.d.ts b/libs/Universal-PicGo-Core/custom.d.ts
index ca22c44..2483ad3 100644
--- a/libs/Universal-PicGo-Core/custom.d.ts
+++ b/libs/Universal-PicGo-Core/custom.d.ts
@@ -3,6 +3,9 @@ declare module '*.json' {
export default value
}
+declare module '*raw'
+
declare module "ali-oss"
declare module "arraybuffer-to-buffer"
-declare module "upyun"
\ No newline at end of file
+declare module "upyun"
+declare module "js-yaml"
\ No newline at end of file
diff --git a/libs/zhi-siyuan-picgo/package.json b/libs/zhi-siyuan-picgo/package.json
index 20b3be9..3847453 100644
--- a/libs/zhi-siyuan-picgo/package.json
+++ b/libs/zhi-siyuan-picgo/package.json
@@ -36,7 +36,7 @@
"zhi-common": "^1.33.0",
"zhi-device": "^2.11.0",
"zhi-lib-base": "^0.8.0",
- "zhi-siyuan-api": "^2.19.1"
+ "zhi-siyuan-api": "^2.20.0"
},
"publishConfig": {
"access": "public"
diff --git a/libs/zhi-siyuan-picgo/src/index.ts b/libs/zhi-siyuan-picgo/src/index.ts
index 511ddca..36a2514 100644
--- a/libs/zhi-siyuan-picgo/src/index.ts
+++ b/libs/zhi-siyuan-picgo/src/index.ts
@@ -29,9 +29,10 @@ import { copyToClipboardInBrowser, generateUniqueName } from "./lib/utils/utils"
import { ImageItem } from "./lib/models/ImageItem"
import { ImageParser } from "./lib/parser/ImageParser"
import { ParsedImage } from "./lib/models/ParsedImage"
+import { SIYUAN_PICGO_FILE_MAP_KEY } from "./lib/constants"
export { SiyuanPicGo, SiyuanPicgoConfig, SiyuanPicgoPostApi, PicgoHelper }
-export { ImageItem, ImageParser, ParsedImage }
+export { ImageItem, ImageParser, ParsedImage, SIYUAN_PICGO_FILE_MAP_KEY }
export { retrieveImageFromClipboardAsBlob, copyToClipboardInBrowser, calculateMD5, generateUniqueName }
export { ConfigDb, PluginLoaderDb, ExternalPicgoConfigDb }
export { PicgoTypeEnum }
diff --git a/libs/zhi-siyuan-picgo/src/lib/siyuanPicgoPostApi.ts b/libs/zhi-siyuan-picgo/src/lib/siyuanPicgoPostApi.ts
index 8a0a5a9..b2c8b0f 100644
--- a/libs/zhi-siyuan-picgo/src/lib/siyuanPicgoPostApi.ts
+++ b/libs/zhi-siyuan-picgo/src/lib/siyuanPicgoPostApi.ts
@@ -9,7 +9,7 @@
import { ILogger, simpleLogger } from "zhi-lib-base"
import { SiyuanPicGoUploadApi } from "./siyuanPicGoUploadApi"
-import { hasNodeEnv, IPicGo, isFileOrBlob, win } from "universal-picgo"
+import { hasNodeEnv, IImgInfo, IPicGo, isFileOrBlob, win } from "universal-picgo"
import { ParsedImage } from "./models/ParsedImage"
import { ImageItem } from "./models/ImageItem"
import { SIYUAN_PICGO_FILE_MAP_KEY } from "./constants"
@@ -18,7 +18,6 @@ import { SiyuanConfig, SiyuanKernelApi } from "zhi-siyuan-api"
import { ImageParser } from "./parser/ImageParser"
import { PicgoPostResult } from "./models/PicgoPostResult"
import { DeviceDetection, DeviceTypeEnum, SiyuanDevice } from "zhi-device"
-import { IImgInfo } from "universal-picgo/src"
/**
* Picgo与文章交互的通用方法
diff --git a/package.json b/package.json
index 37c59de..5b98dd3 100644
--- a/package.json
+++ b/package.json
@@ -3,6 +3,7 @@
"version": "1.6.0",
"description": "picgo plugin for siyuan-note",
"scripts": {
+ "clean": "./scripts/clean.sh",
"serve": "turbo run serve",
"dev": "turbo run dev",
"build": "turbo run build",
diff --git a/packages/picgo-plugin-app/package.json b/packages/picgo-plugin-app/package.json
index 7792c5b..166995d 100644
--- a/packages/picgo-plugin-app/package.json
+++ b/packages/picgo-plugin-app/package.json
@@ -36,7 +36,7 @@
"zhi-common": "^1.33.0",
"zhi-device": "^2.11.0",
"zhi-lib-base": "^0.8.0",
- "zhi-siyuan-api": "^2.19.1",
+ "zhi-siyuan-api": "^2.20.0",
"zhi-siyuan-picgo": "workspace:*"
}
}
\ No newline at end of file
diff --git a/packages/picgo-plugin-app/src/components/setting/PicgoSetting.vue b/packages/picgo-plugin-app/src/components/setting/PicgoSetting.vue
index befd2ba..8614bb8 100644
--- a/packages/picgo-plugin-app/src/components/setting/PicgoSetting.vue
+++ b/packages/picgo-plugin-app/src/components/setting/PicgoSetting.vue
@@ -9,7 +9,7 @@
@@ -65,6 +71,14 @@ const handlePicgoTypeChange = (val: any) => {
+
+
+
+
+
diff --git a/packages/picgo-plugin-app/src/components/setting/picgo/bundled/PicbedSetting.vue b/packages/picgo-plugin-app/src/components/setting/picgo/bundled/PicbedSetting.vue
index 0da239f..36466cf 100644
--- a/packages/picgo-plugin-app/src/components/setting/picgo/bundled/PicbedSetting.vue
+++ b/packages/picgo-plugin-app/src/components/setting/picgo/bundled/PicbedSetting.vue
@@ -22,12 +22,12 @@ const { t } = useVueI18n()
const props = defineProps({
ctx: {
type: Object,
- default: null
+ default: null,
},
cfg: {
type: Object,
- default: null
- }
+ default: null,
+ },
})
const formData = reactive({
@@ -50,13 +50,13 @@ const formData = reactive({
// 当前配置项表单
curFormPropertiesConfig: {} as IStringKeyMap,
// 表单配置项ID
- curFormConfigId: "" as string | undefined
+ curFormConfigId: "" as string | undefined,
},
// 表单展示
isNewForm: false,
showConfigForm: false,
- configFormTitle: ""
+ configFormTitle: "",
})
// PicGo 持久化操作帮助类
const picgoHelper = new PicgoHelper(props.ctx, formData.cfg)
@@ -152,7 +152,7 @@ function deleteConfig(config: IUploaderConfigListItem) {
ElMessageBox.confirm(`确认删除配置 ${config._configName} 吗?`, t("main.opt.warning"), {
confirmButtonText: t("main.opt.ok"),
cancelButtonText: t("main.opt.cancel"),
- type: "warning"
+ type: "warning",
})
.then(async () => {
try {
@@ -162,12 +162,11 @@ function deleteConfig(config: IUploaderConfigListItem) {
} catch (e) {
ElMessage({
type: "error",
- message: t("main.opt.failure") + "=>" + e
+ message: t("main.opt.failure") + "=>" + e,
})
}
})
- .catch(() => {
- })
+ .catch(() => {})
}
/**
@@ -238,7 +237,7 @@ onBeforeMount(() => {
:key="item.type"
:type="selectedPicbedStyle(item.type)"
@click="handlePicBedTypeChange(item)"
- >{{ item.name }}
+ >{{ item.name }}
@@ -343,6 +342,10 @@ onBeforeMount(() => {
margin-top: 10px;
}
+.picbed-group
+ button
+ margin-bottom 10px
+
.profile-card-item {
display: inline-block;
margin-right: 10px;
diff --git a/packages/picgo-plugin-app/src/components/test/BrowserTest.vue b/packages/picgo-plugin-app/src/components/test/BrowserTest.vue
index 36d9bb0..e2bfde8 100644
--- a/packages/picgo-plugin-app/src/components/test/BrowserTest.vue
+++ b/packages/picgo-plugin-app/src/components/test/BrowserTest.vue
@@ -19,7 +19,7 @@ const handleTest2 = async () => {
const picgo = await SiyuanPicGoClient.getInstance()
logger.debug("picgo =>", picgo)
- const result = await picgo.upload(["https://s2.loli.net/2024/03/20/VDRXZnkBaKWFhpt.png"])
+ const result = await picgo.originalUpload(["https://s2.loli.net/2024/03/20/VDRXZnkBaKWFhpt.png"])
logger.info("upload success =>", result)
ElMessage.success("upload success")
} catch (e: any) {
@@ -34,7 +34,7 @@ const handleTest5 = async () => {
logger.debug("picgo =>", picgo)
const imgBase64 = `data:image/jpeg;base64,/9j/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDIBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAcwBzAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APf6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooNFABRRmigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKDQAUGmF1BwTz6UjMCuRz34oAzNf8R6b4c097zUbgRooyqAgvIfRV6k153c/GaSUH+ztBcr2kuZwuf+AgH+dcX4r1ebxB4v1Ce4bMdnM9tboOiKrH9T1/H6VmVzzqtOyMKtbkdkj0CD4yaokmbrQreSPv5NwVP6g5rsvCvxB0vxU7QQ77a9TBa2nwGPupzz/nivDaaUbzopo5HhmiYNHLE21lI5Bz9cVEa76kQxKbtI+olbIp1fM66xriS+aviDVRJ1ybpjn69q6LRvih4i0y4RdUCala5G4hQkoHsRgH8RzWyrRZvGpCWzPdqKydC1/T/EGmJqNhNvgfg7uGU/3SOxFam4euMVomWOopgkT+8KdnJpgLRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRRRQAUUUUAFFFJQAtMkkCKWboBk80+uX+Il3JZeAtWmhZlkMIjBU8jcyr/7NQ3YDzrxh8SNQ1O9uNO0KX7LZI5ja8jPzy44O0/wjOenPHbpXEmW+8zzBqt8JM53+cc1HboI7eNB0AqWuKVV3OKpXkpaEUUciySyTTvNJK5d3fqSetS0UVncwlNyd2FFFFIiwUHkYzRRQBo+GPEz+DNae8WMyWlwhWaEHGT1BHoc/zPrVjVfG3ibXpvNbUZtOgPKW9o5TA92ByawpIY5seYu7ByPrUlae1lax1/WGo2Rq6b4u8T6LOJoNXnu1HLQXjmRG9uTx+GK9Q0P4o6FeaL9r1S4jsLuI7Zrc5J3dtuBkg/pXjdQtawtL5pjUv/eNVCs1uOGJ/mPeLL4meE76ZIY9VWORzgCeNox+bDH611P2hPLMpIEeM7iRjHrnpXzBJCkqFWUH39Kml17WZ7GDQrnUZjYRg+Wmcbl4wpI5IHoTWvtj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`
- const result = await picgo.upload([imgBase64])
+ const result = await picgo.originalUpload([imgBase64])
logger.info("upload success =>", result)
ElMessage.success("upload success")
} catch (e: any) {
diff --git a/packages/picgo-plugin-app/src/components/test/ElectronTest.vue b/packages/picgo-plugin-app/src/components/test/ElectronTest.vue
index dce852d..916d733 100644
--- a/packages/picgo-plugin-app/src/components/test/ElectronTest.vue
+++ b/packages/picgo-plugin-app/src/components/test/ElectronTest.vue
@@ -24,7 +24,7 @@ const handleTest = async () => {
const picgo = await SiyuanPicGoClient.getInstance()
logger.debug("picgo =>", picgo)
- const result = await picgo.upload()
+ const result = await picgo.originalUpload()
logger.info("upload success =>", result)
ElMessage.success("upload success")
} catch (e: any) {
@@ -38,7 +38,7 @@ const handleTest2 = async () => {
const picgo = await SiyuanPicGoClient.getInstance()
logger.debug("picgo =>", picgo)
- const result = await picgo.upload(["https://s2.loli.net/2024/03/20/VDRXZnkBaKWFhpt.png"])
+ const result = await picgo.originalUpload(["https://s2.loli.net/2024/03/20/VDRXZnkBaKWFhpt.png"])
logger.info("upload success =>", result)
ElMessage.success("upload success")
} catch (e: any) {
@@ -52,7 +52,7 @@ const handleTest3 = async () => {
const picgo = await SiyuanPicGoClient.getInstance()
logger.debug("picgo =>", picgo)
- const result = await picgo.upload(["/Users/terwer/Documents/pictures/photo.jpg"])
+ const result = await picgo.originalUpload(["/Users/terwer/Documents/pictures/photo.jpg"])
logger.info("upload success =>", result)
ElMessage.success("upload success")
} catch (e: any) {
@@ -73,7 +73,7 @@ const handleTest4 = async () => {
const picgo = await SiyuanPicGoClient.getInstance()
logger.debug("picgo =>", picgo)
- const result = await picgo.upload([paramFile.value])
+ const result = await picgo.originalUpload([paramFile.value])
logger.info("upload success =>", result)
ElMessage.success("upload success")
} catch (e: any) {
@@ -88,7 +88,7 @@ const handleTest5 = async () => {
logger.debug("picgo =>", picgo)
const imgBase64 = `data:image/jpeg;base64,/9j/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDIBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAcwBzAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APf6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooNFABRRmigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKDQAUGmF1BwTz6UjMCuRz34oAzNf8R6b4c097zUbgRooyqAgvIfRV6k153c/GaSUH+ztBcr2kuZwuf+AgH+dcX4r1ebxB4v1Ce4bMdnM9tboOiKrH9T1/H6VmVzzqtOyMKtbkdkj0CD4yaokmbrQreSPv5NwVP6g5rsvCvxB0vxU7QQ77a9TBa2nwGPupzz/nivDaaUbzopo5HhmiYNHLE21lI5Bz9cVEa76kQxKbtI+olbIp1fM66xriS+aviDVRJ1ybpjn69q6LRvih4i0y4RdUCala5G4hQkoHsRgH8RzWyrRZvGpCWzPdqKydC1/T/EGmJqNhNvgfg7uGU/3SOxFam4euMVomWOopgkT+8KdnJpgLRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRSUUALRRRQAUUUUAFFFJQAtMkkCKWboBk80+uX+Il3JZeAtWmhZlkMIjBU8jcyr/7NQ3YDzrxh8SNQ1O9uNO0KX7LZI5ja8jPzy44O0/wjOenPHbpXEmW+8zzBqt8JM53+cc1HboI7eNB0AqWuKVV3OKpXkpaEUUciySyTTvNJK5d3fqSetS0UVncwlNyd2FFFFIiwUHkYzRRQBo+GPEz+DNae8WMyWlwhWaEHGT1BHoc/zPrVjVfG3ibXpvNbUZtOgPKW9o5TA92ByawpIY5seYu7ByPrUlae1lax1/WGo2Rq6b4u8T6LOJoNXnu1HLQXjmRG9uTx+GK9Q0P4o6FeaL9r1S4jsLuI7Zrc5J3dtuBkg/pXjdQtawtL5pjUv/eNVCs1uOGJ/mPeLL4meE76ZIY9VWORzgCeNox+bDH611P2hPLMpIEeM7iRjHrnpXzBJCkqFWUH39Kml17WZ7GDQrnUZjYRg+Wmcbl4wpI5IHoTWvtj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`
- const result = await picgo.upload([imgBase64])
+ const result = await picgo.originalUpload([imgBase64])
logger.info("upload success =>", result)
ElMessage.success("upload success")
} catch (e: any) {
diff --git a/packages/picgo-plugin-app/src/composables/usePicgoCommon.ts b/packages/picgo-plugin-app/src/composables/usePicgoCommon.ts
index 8d8c57e..835148b 100644
--- a/packages/picgo-plugin-app/src/composables/usePicgoCommon.ts
+++ b/packages/picgo-plugin-app/src/composables/usePicgoCommon.ts
@@ -10,7 +10,7 @@
import { useSiyuanDevice } from "$composables/useSiyuanDevice.ts"
import { reactive } from "vue"
import { isDev } from "@/utils/Constants.ts"
-import { ImageItem } from "zhi-siyuan-picgo/src/lib/models/ImageItem.ts"
+import { ImageItem } from "zhi-siyuan-picgo"
/**
* Picgo公共组件
diff --git a/packages/picgo-plugin-app/src/composables/usePicgoManage.ts b/packages/picgo-plugin-app/src/composables/usePicgoManage.ts
index ac8579b..4b7ee14 100644
--- a/packages/picgo-plugin-app/src/composables/usePicgoManage.ts
+++ b/packages/picgo-plugin-app/src/composables/usePicgoManage.ts
@@ -12,7 +12,7 @@ import { useSiyuanApi } from "$composables/useSiyuanApi.ts"
import { createAppLogger } from "@/utils/appLogger.ts"
import { reactive } from "vue"
import { ElMessage, ElMessageBox } from "element-plus"
-import { ImageItem } from "zhi-siyuan-picgo/src/lib/models/ImageItem.ts"
+import { ImageItem } from "zhi-siyuan-picgo"
import { SiyuanPicGoClient } from "@/utils/SiyuanPicGoClient.ts"
/**
@@ -30,7 +30,7 @@ export const usePicgoManage = (props: any, deps: any) => {
// public data
const picgoManageData = reactive({
dialogImageUrl: "",
- dialogPreviewVisible: false,
+ dialogPreviewVisible: false
})
// deps
@@ -86,7 +86,7 @@ export const usePicgoManage = (props: any, deps: any) => {
ElMessageBox.confirm("已经是远程图片,是否仍然覆盖上传?", t("main.opt.warning"), {
confirmButtonText: t("main.opt.ok"),
cancelButtonText: t("main.opt.cancel"),
- type: "warning",
+ type: "warning"
})
.then(async () => {
try {
@@ -100,7 +100,7 @@ export const usePicgoManage = (props: any, deps: any) => {
ElMessage({
type: "error",
- message: t("main.opt.failure") + "=>" + e,
+ message: t("main.opt.failure") + "=>" + e
})
logger.error(t("main.opt.failure") + "=>" + e)
}
@@ -111,7 +111,7 @@ export const usePicgoManage = (props: any, deps: any) => {
if (e.toString().indexOf("cancel") <= -1) {
ElMessage({
type: "error",
- message: t("main.opt.failure") + ",图片上传异常=>" + e,
+ message: t("main.opt.failure") + ",图片上传异常=>" + e
})
logger.error(t("main.opt.failure") + "=>" + e)
}
@@ -127,7 +127,7 @@ export const usePicgoManage = (props: any, deps: any) => {
ElMessage({
type: "error",
- message: t("main.opt.failure") + "=>" + e,
+ message: t("main.opt.failure") + "=>" + e
})
logger.error(t("main.opt.failure") + "=>" + e)
}
@@ -156,11 +156,11 @@ export const usePicgoManage = (props: any, deps: any) => {
handlePictureCardPreview: (url: string) => {
picgoManageData.dialogImageUrl = url ?? ""
picgoManageData.dialogPreviewVisible = true
- },
+ }
}
return {
picgoManageData,
- picgoManageMethods,
+ picgoManageMethods
}
}
diff --git a/packages/picgo-plugin-app/src/composables/usePicgoUpload.ts b/packages/picgo-plugin-app/src/composables/usePicgoUpload.ts
index 9d2e1a3..91de3db 100644
--- a/packages/picgo-plugin-app/src/composables/usePicgoUpload.ts
+++ b/packages/picgo-plugin-app/src/composables/usePicgoUpload.ts
@@ -11,12 +11,11 @@ import { useRouter } from "vue-router"
import { createAppLogger } from "@/utils/appLogger.ts"
import { useVueI18n } from "$composables/useVueI18n.ts"
import { reactive } from "vue"
-import { ImageItem } from "zhi-siyuan-picgo"
+import { generateUniqueName, ImageItem } from "zhi-siyuan-picgo"
import { ElMessage } from "element-plus"
import { useSiyuanApi } from "$composables/useSiyuanApi.ts"
import { StrUtil } from "zhi-common"
import { SiyuanPicGoClient } from "@/utils/SiyuanPicGoClient.ts"
-import { generateUniqueName } from "zhi-siyuan-picgo/src"
/**
* Picgo上传组件
diff --git a/packages/picgo-plugin-app/src/i18n/en_US.ts b/packages/picgo-plugin-app/src/i18n/en_US.ts
index 60f71fe..6db602d 100644
--- a/packages/picgo-plugin-app/src/i18n/en_US.ts
+++ b/packages/picgo-plugin-app/src/i18n/en_US.ts
@@ -144,4 +144,6 @@ export default {
"The CORS proxy is essential for browsers and Docker environments. For further consultation, feel free to contact youweics@163.com.",
"upload.no.beds":
'No image hosting service is currently available. Kindly proceed to "Image Hosting Settings" to add a new image hosting service.',
+ "picgo.siyuan.wait.timeout": "Sync timeout(seconds)",
+ "picgo.siyuan.wait.timeout.tip": "Timeout when handle picbed sync",
}
diff --git a/packages/picgo-plugin-app/src/i18n/zh_CN.ts b/packages/picgo-plugin-app/src/i18n/zh_CN.ts
index 55f6a0a..8758970 100644
--- a/packages/picgo-plugin-app/src/i18n/zh_CN.ts
+++ b/packages/picgo-plugin-app/src/i18n/zh_CN.ts
@@ -138,4 +138,6 @@ export default {
"setting.cors.title": "CORS 代理",
"setting.cors.title.tip": "CORS 代理,浏览器、dcoker以及某些插件可能需要,可付费咨询 youweics@163.com",
"upload.no.beds": "暂无可用图床,请前往「图床设置」新增图床",
+ "picgo.siyuan.wait.timeout": "同步延迟(秒)",
+ "picgo.siyuan.wait.timeout.tip": "图床同步延迟时间,大于这个时间才会去同步图床元数据",
}
diff --git a/packages/picgo-plugin-bootstrap/src/index.ts b/packages/picgo-plugin-bootstrap/src/index.ts
index 29451c3..ed8747c 100644
--- a/packages/picgo-plugin-bootstrap/src/index.ts
+++ b/packages/picgo-plugin-bootstrap/src/index.ts
@@ -16,11 +16,12 @@ import { initTopbar } from "./topbar"
import { showPage } from "./dialog"
import { PageRoute } from "./pageRoute"
import { ILogger } from "./appLogger"
-import { generateUniqueName, ImageItem, SiyuanPicGo } from "zhi-siyuan-picgo"
-import { SIYUAN_PICGO_FILE_MAP_KEY } from "zhi-siyuan-picgo/src/lib/constants"
+import { generateUniqueName, ImageItem, SIYUAN_PICGO_FILE_MAP_KEY, SiyuanPicGo, IPicGo } from "zhi-siyuan-picgo"
+import { initStatusBar, updateStatusBar } from "./statusBar"
export default class PicgoPlugin extends Plugin {
private logger: ILogger
+ public statusBarElement: any
constructor(options: { app: App; id: string; name: string; i18n: IObject }) {
super(options)
@@ -30,6 +31,7 @@ export default class PicgoPlugin extends Plugin {
onload() {
initTopbar(this)
+ initStatusBar(this)
this.logger.info("PicGo Plugin loaded")
}
@@ -86,6 +88,7 @@ export default class PicgoPlugin extends Plugin {
password: siyuanApiToken,
}
const picgoPostApi = await SiyuanPicGo.getInstance(siyuanConfig as any, isDev)
+ const ctx = picgoPostApi.ctx()
const siyuanApi = picgoPostApi.siyuanApi
if (files.length > 1) {
siyuanApi.pushErrMsg({
@@ -97,10 +100,11 @@ export default class PicgoPlugin extends Plugin {
const file = files[0]
try {
- siyuanApi.pushMsg({
- msg: "检测到剪贴板图片,正在上传,请勿进行任何操作...",
- timeout: 1000,
- })
+ // siyuanApi.pushMsg({
+ // msg: "检测到剪贴板图片,正在上传,请勿进行刷新操作...",
+ // timeout: 7000,
+ // })
+ updateStatusBar(this, "检测到剪贴板图片,正在上传,请勿进行刷新操作...")
// pageId: string
// attrs: any
@@ -114,14 +118,23 @@ export default class PicgoPlugin extends Plugin {
if (imageJsonObj && imageJsonObj.length > 0) {
const img = imageJsonObj[0]
if (!img?.imgUrl || img.imgUrl.trim().length == 0) {
- throw new Error(
- "图片上传失败,可能原因:PicGO配置错误或者该平台不支持图片覆盖,请检查配置或者尝试上传新图片。请打开picgo.log查看更多信息"
- )
+ // throw new Error(
+ // "图片上传失败,可能原因:PicGO配置错误或者该平台不支持图片覆盖,请检查配置或者尝试上传新图片。请打开picgo.log查看更多信息"
+ // )
+ siyuanApi.pushErrMsg({
+ msg: "图片上传失败,可能原因:PicGO配置错误或者该平台不支持图片覆盖,请检查配置或者尝试上传新图片。请打开picgo.log查看更多信息",
+ timeout: 7000,
+ })
+ return
}
// 处理上传后续
- await this.handleAfterUpload(siyuanApi, pageId, file, img, imageItem)
+ await this.handleAfterUpload(ctx, siyuanApi, pageId, file, img, imageItem)
} else {
- throw new Error("图片上传失败,可能原因:PicGO配置错误,请检查配置。请打开picgo.log查看更多信息")
+ siyuanApi.pushErrMsg({
+ msg: "图片上传失败,可能原因:PicGO配置错误,请检查配置。请打开picgo.log查看更多信息",
+ timeout: 7000,
+ })
+ // throw new Error("图片上传失败,可能原因:PicGO配置错误,请检查配置。请打开picgo.log查看更多信息")
}
} catch (e) {
siyuanApi.pushErrMsg({
@@ -131,12 +144,13 @@ export default class PicgoPlugin extends Plugin {
}
}
- private async handleAfterUpload(siyuanApi: any, pageId: string, file: any, img: any, oldImageitem: any) {
- const WAIT_SECONDS = 10
- siyuanApi.pushMsg({
- msg: `剪贴板图片上传完成。准备延迟${WAIT_SECONDS}秒更新元数据,请勿刷新笔记!`,
- timeout: 7000,
- })
+ private async handleAfterUpload(ctx: IPicGo, siyuanApi: any, pageId: string, file: any, img: any, oldImageitem: any) {
+ const SIYUAN_WAIT_SECONDS = ctx.getConfig("siyuan.waitTimeout") || 10
+ // siyuanApi.pushMsg({
+ // msg: `剪贴板图片上传完成。准备延迟${SIYUAN_WAIT_SECONDS}秒更新元数据,请勿刷新笔记!`,
+ // timeout: 7000,
+ // })
+ updateStatusBar(this, `剪贴板图片上传完成。准备延迟${SIYUAN_WAIT_SECONDS}秒更新元数据,请勿刷新笔记!`)
setTimeout(async () => {
const formData = new FormData()
formData.append("file[]", file)
@@ -189,18 +203,28 @@ export default class PicgoPlugin extends Plugin {
const newImageBlock = await siyuanApi.getBlockByID(nodeId)
// newImageBlock.markdown
// "![image](assets/image-20240327190812-yq6esh4.png)"
+ this.logger.debug("new image block=>", newImageBlock)
+ // 如果查询出来的块信息不对,不更新,防止误更新
+ if (!newImageBlock.markdown.includes(newImageItem.originUrl)) {
+ siyuanApi.pushErrMsg({
+ msg: `块信息不符合,取消更新`,
+ timeout: 7000,
+ })
+ return
+ }
+
// id: string
// data: string
// dataType?: "markdown" | "dom"
- this.logger.debug("new image block=>", newImageBlock)
const newImageContent = `![${newImageItem.alt}](${newImageItem.url})`
await siyuanApi.updateBlock(nodeId, newImageContent, "markdown")
- siyuanApi.pushMsg({
- msg: `图片元数据更新成功`,
- timeout: 7000,
- })
- }, WAIT_SECONDS * 1000)
+ // siyuanApi.pushMsg({
+ // msg: `图片元数据更新成功`,
+ // timeout: 7000,
+ // })
+ updateStatusBar(this, `图片元数据更新成功`)
+ }, SIYUAN_WAIT_SECONDS * 1000)
}
private getDataNodeIdFromImgWithSrc(srcValue: string) {
diff --git a/packages/picgo-plugin-bootstrap/src/statusBar.ts b/packages/picgo-plugin-bootstrap/src/statusBar.ts
new file mode 100644
index 0000000..293be8b
--- /dev/null
+++ b/packages/picgo-plugin-bootstrap/src/statusBar.ts
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2023, Terwer . All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Terwer designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Terwer in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Terwer, Shenzhen, Guangdong, China, youweics@163.com
+ * or visit www.terwer.space if you need additional information or have any
+ * questions.
+ */
+
+import PicgoPlugin from "./index"
+
+export const initStatusBar = (pluginInstance: PicgoPlugin) => {
+ const statusBarTemplate = document.createElement("template")
+ statusBarTemplate.innerHTML = `
`
+ statusBarTemplate.content.firstElementChild.addEventListener("click", () => {})
+
+ pluginInstance.statusBarElement = pluginInstance.addStatusBar({
+ element: statusBarTemplate.content.firstElementChild as HTMLElement,
+ position: "left",
+ })
+}
+
+export const updateStatusBar = (pluginInstance: PicgoPlugin, statusText: string) => {
+ // console.log(pluginInstance.statusBarElement)
+ pluginInstance.statusBarElement.innerHTML = `${statusText}
`
+}
diff --git a/packages/picgo-plugin-bootstrap/vite.config.ts b/packages/picgo-plugin-bootstrap/vite.config.ts
index 3e3814a..ca61a5b 100644
--- a/packages/picgo-plugin-bootstrap/vite.config.ts
+++ b/packages/picgo-plugin-bootstrap/vite.config.ts
@@ -62,6 +62,7 @@ export default defineConfig({
// 在这里自定义变量
define: {
"process.env.DEV_MODE": `"${isWatch}"`,
+ "process.env.NODE_ENV": isWatch ? `"development"` : `"production"`,
},
build: {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0d2d802..2413501 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -110,8 +110,8 @@ importers:
specifier: ^0.8.0
version: 0.8.0
zhi-siyuan-api:
- specifier: ^2.19.1
- version: 2.19.1(typescript@5.4.3)
+ specifier: ^2.20.0
+ version: 2.20.0(typescript@5.4.3)
devDependencies:
'@terwer/eslint-config-custom':
specifier: ^1.3.6
@@ -162,8 +162,8 @@ importers:
specifier: ^0.8.0
version: 0.8.0
zhi-siyuan-api:
- specifier: ^2.19.1
- version: 2.19.1(typescript@5.4.3)
+ specifier: ^2.20.0
+ version: 2.20.0(typescript@5.4.3)
zhi-siyuan-picgo:
specifier: workspace:*
version: link:../../libs/zhi-siyuan-picgo
@@ -200,7 +200,7 @@ importers:
version: 3.2.2(vite@5.2.6)
vitest:
specifier: ^1.4.0
- version: 1.4.0(@types/node@20.11.30)(jsdom@24.0.0)(stylus@0.63.0)
+ version: 1.4.0(@types/node@20.11.30)
vue-tsc:
specifier: ^2.0.7
version: 2.0.7(typescript@5.4.3)
@@ -1782,8 +1782,8 @@ packages:
path-browserify: 1.0.1
dev: true
- /@tsconfig/node10@1.0.10:
- resolution: {integrity: sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==}
+ /@tsconfig/node10@1.0.11:
+ resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
dev: true
/@tsconfig/node12@1.0.11:
@@ -4561,7 +4561,7 @@ packages:
he: 1.2.0
param-case: 3.0.4
relateurl: 0.2.7
- terser: 5.29.2
+ terser: 5.30.0
dev: true
/http-proxy-agent@5.0.0:
@@ -6787,8 +6787,8 @@ packages:
tslib: 2.6.2
dev: true
- /terser@5.29.2:
- resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==}
+ /terser@5.30.0:
+ resolution: {integrity: sha512-Y/SblUl5kEyEFzhMAQdsxVHh+utAxd4IuRNJzKywY/4uzSogh3G219jqbDDxYu4MXO9CzY3tSEqmZvW6AoEDJw==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -6855,6 +6855,11 @@ packages:
engines: {node: '>=14.0.0'}
dev: true
+ /tinypool@0.8.3:
+ resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
/tinyspy@2.2.1:
resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==}
engines: {node: '>=14.0.0'}
@@ -6945,7 +6950,7 @@ packages:
optional: true
dependencies:
'@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.10
+ '@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
@@ -7717,6 +7722,62 @@ packages:
- terser
dev: true
+ /vitest@1.4.0(@types/node@20.11.30):
+ resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/node': ^18.0.0 || >=20.0.0
+ '@vitest/browser': 1.4.0
+ '@vitest/ui': 1.4.0
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ dependencies:
+ '@types/node': 20.11.30
+ '@vitest/expect': 1.4.0
+ '@vitest/runner': 1.4.0
+ '@vitest/snapshot': 1.4.0
+ '@vitest/spy': 1.4.0
+ '@vitest/utils': 1.4.0
+ acorn-walk: 8.3.2
+ chai: 4.4.1
+ debug: 4.3.4
+ execa: 8.0.1
+ local-pkg: 0.5.0
+ magic-string: 0.30.8
+ pathe: 1.1.2
+ picocolors: 1.0.0
+ std-env: 3.7.0
+ strip-literal: 2.0.0
+ tinybench: 2.6.0
+ tinypool: 0.8.3
+ vite: 5.2.6(@types/node@20.11.30)(stylus@0.63.0)
+ vite-node: 1.4.0(@types/node@20.11.30)(stylus@0.63.0)
+ why-is-node-running: 2.2.2
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ dev: true
+
/vitest@1.4.0(@types/node@20.11.30)(jsdom@24.0.0)(stylus@0.63.0):
resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -8166,8 +8227,8 @@ packages:
resolution: {integrity: sha512-3Ky5p6KvLWpXy2tlb/JIfSEKLSe5w43PBLM6g+hNcWwpL9S62emgcpUAHzGWBbC0vlLBLungt2LOsmwAfhrZ0w==}
dev: false
- /zhi-siyuan-api@2.19.1(typescript@5.4.3):
- resolution: {integrity: sha512-0SjX3hyu8lVQHJ6/q95EYeu0qSr5xdLPDmhh/G8i5dqZhpnvskSPb6k9KcBvZO0N9/vZrHXPHaoVyVrx+jArYg==}
+ /zhi-siyuan-api@2.20.0(typescript@5.4.3):
+ resolution: {integrity: sha512-3+x3EHrecyfqmEhWg/j3SvYo85uv2dQ216JVC+cvbl9vr2uUYe1XUZZexdNiEgvhuBgdR8CxK38mX/NaOx4bAA==}
dependencies:
zhi-blog-api: 1.56.4(typescript@5.4.3)
zhi-common: 1.33.0(typescript@5.4.3)
diff --git a/scripts/clean.sh b/scripts/clean.sh
new file mode 100755
index 0000000..407e756
--- /dev/null
+++ b/scripts/clean.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+find . -name "node_modules" -type d -exec rm -rf {} +
+find . -name "dist" -type d -exec rm -rf {} +
+find . -name ".turbo" -type d -exec rm -rf {} +
+rm -rf ./artifacts
+rm -rf ./build
+echo "clean finished."
\ No newline at end of file
diff --git a/scripts/package.py b/scripts/package.py
index fed3bea..faf6ab6 100644
--- a/scripts/package.py
+++ b/scripts/package.py
@@ -9,8 +9,8 @@
# 获取当前工作空间
cwd = scriptutils.get_workdir()
- os.system("pnpm build -F picgo-plugin-app")
- os.system("pnpm build -F picgo-plugin-bootstrap")
+ os.system("pnpm build -F picgo-plugin-app --force")
+ os.system("pnpm build -F picgo-plugin-bootstrap --force")
dist_folder = "./artifacts/siyuan-plugin-picgo/dist"
data = scriptutils.read_json_file(cwd + "package.json")