Files
Melo/src/renderer/core/apiSource.ts
T

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] as LX.QualityList
apiSource.value = apiId
void setUserApiAction(apiId)
}
if (apiId != appSetting['common.apiSource']) setApiSource(apiId)
}