Skip to content

Commit

Permalink
feat: #319 PicGO图形化配置界面-图床类型展示
Browse files Browse the repository at this point in the history
  • Loading branch information
terwer committed Feb 7, 2023
1 parent 0d5c8ff commit ec8ef2e
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 16 deletions.
35 changes: 25 additions & 10 deletions utils/otherlib/picgoUtil.js
Expand Up @@ -27,6 +27,7 @@ import { PicGoUploadApi } from "~/utils/platform/picgo/picGoUploadApi"
import { isInSiyuanOrSiyuanNewWin } from "~/utils/platform/siyuan/siyuanUtil"
import idUtil from "~/utils/idUtil"
import strUtil from "~/utils/strUtil"
import siyuanBrowserUtil from "~/utils/otherlib/siyuanBrowserUtil"

// Pico上传Api封装
const picGoUploadApi = new PicGoUploadApi()
Expand All @@ -38,7 +39,8 @@ const picGoUploadApi = new PicGoUploadApi()
* @since 0.7.0
*/
const getPicBeds = () => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

const picBedTypes = picgo.helper.uploader.getIdList()
const picBedFromDB = picgo.getConfig("picBed.list") || []
Expand Down Expand Up @@ -71,7 +73,8 @@ const getPicBeds = () => {
* @param value ?: any
*/
const savePicgoConfig = (_config, value = "") => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

let config
if (typeof _config === "string") {
Expand All @@ -83,6 +86,7 @@ const savePicgoConfig = (_config, value = "") => {
}

picgo.saveConfig(config)
console.log("savePicgoConfig finished.")
}

/**
Expand All @@ -93,7 +97,8 @@ const uploadByPicGO = async (input) => {
// 通过PicGO上传图片
if (input) {
if (isInSiyuanOrSiyuanNewWin()) {
const syPicgo = window.SyPicgo
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const syPicgo = syWin.SyPicgo
return syPicgo.upload(input)
} else {
// HTTP调用本地客户端上传
Expand All @@ -102,7 +107,8 @@ const uploadByPicGO = async (input) => {
} else {
// 通过PicGO上传剪贴板图片
if (isInSiyuanOrSiyuanNewWin()) {
const syPicgo = window.SyPicgo
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const syPicgo = syWin.SyPicgo
return syPicgo.uploadFormClipboard()
} else {
// HTTP调用本地客户端上传
Expand Down Expand Up @@ -143,7 +149,8 @@ const completeUploaderMetaConfig = (originData) => {
* & not just read from
*/
export const getPicBedConfig = (type) => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

const name = picgo.helper.uploader.get(type)?.name || type
if (picgo.helper.uploader.get(type)?.config) {
Expand All @@ -169,7 +176,8 @@ export const getPicBedConfig = (type) => {
* @param id 配置id
*/
const changeCurrentUploader = (type, config, id) => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

if (!type) {
return
Expand All @@ -191,7 +199,8 @@ const changeCurrentUploader = (type, config, id) => {
}

const selectUploaderConfig = (type, id) => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

const { configList } = getUploaderConfigList(type)
const config = configList.find((item) => item._id === id)
Expand All @@ -207,7 +216,8 @@ const selectUploaderConfig = (type, id) => {
* upgrade old uploader config to new format
*/
const upgradeUploaderConfig = (type) => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

const uploaderConfig = picgo.getConfig(`picBed.${type}`) ?? {}
if (!uploaderConfig._id) {
Expand All @@ -229,7 +239,8 @@ const upgradeUploaderConfig = (type) => {
}

const getUploaderConfigList = (type) => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

if (!type) {
return {
Expand All @@ -252,7 +263,8 @@ const getUploaderConfigList = (type) => {
}

export const updateUploaderConfig = (type, id, config) => {
const picgo = window.SyPicgo.getPicgoObj()
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

const { configList, defaultId } = getUploaderConfigList(type)
const existConfig = configList.find((item) => item._id === id)
Expand All @@ -278,6 +290,9 @@ export const updateUploaderConfig = (type, id, config) => {
* delete uploader config by type & id
*/
export const deleteUploaderConfig = (type, id) => {
const syWin = siyuanBrowserUtil.getSiyuanWindow()
const picgo = syWin.SyPicgo.getPicgoObj()

const { configList, defaultId } = getUploaderConfigList(type)
if (configList.length <= 1) {
return
Expand Down
26 changes: 20 additions & 6 deletions utils/otherlib/siyuanBrowserUtil.js
Expand Up @@ -26,6 +26,10 @@
// 警告⚠️:请勿在非思源笔记浏览器环境调用此文件中的任何方法

import { ElMessage } from "element-plus"
import {
isInSiyuan,
isInSiyuanOrSiyuanNewWin,
} from "~/utils/platform/siyuan/siyuanUtil"

const SIYUAN_BROWSER_CONSTANTS_SIYUAN_EXPORT_CLOSE = "siyuan-export-close"

Expand All @@ -34,15 +38,24 @@ const SIYUAN_BROWSER_CONSTANTS_SIYUAN_EXPORT_CLOSE = "siyuan-export-close"
* @returns {boolean}
*/
export const isInSiyuanNewWinBrowser = () => {
// console.log("inSiyuan=>", inSiyuan())
// console.log("isBrowser=>", isBrowser())
// console.log("window.terwer=>", window.terwer !== "undefined")
// if (window.terwer && window.terwer.pageId) {
// console.log("window.terwer.pageId=>", window.terwer.pageId)
// }
return typeof window.terwer !== "undefined"
}

/**
* 获取可操作的Window
*/
const getSiyuanWindow = () => {
if (!isInSiyuanOrSiyuanNewWin()) {
return window
}

if (isInSiyuan()) {
return parent.window
} else {
return window
}
}

/**
* 获取数据目录
* @returns {*|string}
Expand Down Expand Up @@ -107,6 +120,7 @@ const fitTheme = () => {
// 统一访问入口
const siyuanBrowserUtil = {
fitTheme,
getSiyuanWindow,
}

export default siyuanBrowserUtil

0 comments on commit ec8ef2e

Please sign in to comment.