32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { apiSource, qualityList, userApi } from '@renderer/store'
|
|
import { appSetting, setApiSource } from '@renderer/store/setting'
|
|
import { setUserApi as setUserApiAction } from '@renderer/utils/ipc'
|
|
import musicSdk from '@renderer/utils/musicSdk'
|
|
import apiSourceInfo from '@renderer/utils/musicSdk/api-source-info'
|
|
|
|
|
|
export const setUserApi = async(apiId: string) => {
|
|
if (/^user_api/.test(apiId)) {
|
|
qualityList.value = {}
|
|
userApi.status = false
|
|
userApi.message = 'initing'
|
|
|
|
await setUserApiAction(apiId).then(() => {
|
|
apiSource.value = apiId
|
|
}).catch(err => {
|
|
console.log(err)
|
|
let api = apiSourceInfo.find(api => !api.disabled)
|
|
if (!api) return
|
|
apiSource.value = api.id
|
|
if (api.id != appSetting['common.apiSource']) setApiSource(api.id)
|
|
})
|
|
} else {
|
|
// @ts-expect-error
|
|
qualityList.value = musicSdk.supportQuality[apiId] ?? {}
|
|
apiSource.value = apiId
|
|
void setUserApiAction(apiId)
|
|
}
|
|
|
|
if (apiId != appSetting['common.apiSource']) setApiSource(apiId)
|
|
}
|