Skip to content

Commit

Permalink
fix: #680 PC客户端多个工作空间情况下,自动读取思源地址
Browse files Browse the repository at this point in the history
  • Loading branch information
terwer committed Aug 31, 2023
1 parent 53f7196 commit cd8a375
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
16 changes: 8 additions & 8 deletions src/composables/useSiyuanApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@
* questions.
*/

import { SiYuanApiAdaptor, SiyuanConfig, SiyuanKernelApi } from "zhi-siyuan-api"
import { createAppLogger } from "~/src/utils/appLogger.ts"
import { useSiyuanDevice } from "~/src/composables/useSiyuanDevice.ts"
import { useSiyuanSetting } from "~/src/stores/useSiyuanSetting"
import { Utils } from "~/src/utils/utils.ts"
import { usePublishPreferenceSetting } from "~/src/stores/usePublishPreferenceSetting.ts"
import {SiYuanApiAdaptor, SiyuanConfig, SiyuanKernelApi} from "zhi-siyuan-api"
import {createAppLogger} from "~/src/utils/appLogger.ts"
import {useSiyuanDevice} from "~/src/composables/useSiyuanDevice.ts"
import {useSiyuanSetting} from "~/src/stores/useSiyuanSetting"
import {Utils} from "~/src/utils/utils.ts"
import {usePublishPreferenceSetting} from "~/src/stores/usePublishPreferenceSetting.ts"

/**
* 通用 Siyuan API 封装
Expand All @@ -43,9 +43,9 @@ export const useSiyuanApi = () => {
const envSiyuanCookie = Utils.emptyOrDefault(process.env.VITE_SIYUAN_COOKIE, "")

const pref = getReadOnlyPublishPreferenceSetting()

const siyuanSetting = getReadOnlySiyuanSetting()
const siyuanApiUrl = siyuanSetting.value.apiUrl ?? envSiyuanApiUrl

const siyuanApiUrl = origin ?? siyuanSetting.value.apiUrl ?? envSiyuanApiUrl
const siyuanAuthToken = siyuanSetting.value.password ?? envSiyuanAuthToken
const siyuanConfig = new SiyuanConfig(siyuanApiUrl, siyuanAuthToken)
siyuanConfig.cookie = siyuanSetting.value.cookie ?? envSiyuanCookie
Expand Down
17 changes: 16 additions & 1 deletion src/stores/useSiyuanSetting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import { SiyuanConfig } from "zhi-siyuan-api"
import { RemovableRef, StorageSerializers, useLocalStorage } from "@vueuse/core"
import { readonly } from "vue"
import { SiyuanDevice } from "zhi-device"
import { useSiyuanDevice } from "~/src/composables/useSiyuanDevice.ts"

/**
* 思源笔记设置
Expand All @@ -36,6 +38,7 @@ import { readonly } from "vue"
*/
const useSiyuanSetting = () => {
const storageKey = "siyuan-cfg"
const { isInSiyuanOrSiyuanNewWin } = useSiyuanDevice()

/**
* 获取思源笔记配置
Expand All @@ -47,11 +50,23 @@ const useSiyuanSetting = () => {
let baseUrl = "http://127.0.0.1:6806"
let token = ""
let middlewareUrl = "https://api.terwer.space/api/middleware"
const initialValue = new SiyuanConfig(baseUrl, token)
// PC客户端多个工作空间情况下,自动读取思源地址
let origin: string
if (isInSiyuanOrSiyuanNewWin()) {
const win = SiyuanDevice.siyuanWindow()
origin = win?.location.origin
}

const initialValue = new SiyuanConfig(origin ?? baseUrl, token)
initialValue.middlewareUrl = middlewareUrl
const siyuanConfig = useLocalStorage<SiyuanConfig>(storageKey, initialValue, {
serializer: StorageSerializers.object,
})

// 更新apiUrl
if (origin) {
siyuanConfig.value.apiUrl = origin
}
return siyuanConfig
}

Expand Down

0 comments on commit cd8a375

Please sign in to comment.