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