mirror of
https://github.com/ikun0014/lx-music-mobile.git
synced 2025-07-05 21:58:56 +08:00
更新同步协商流程
This commit is contained in:
parent
b1ccc06903
commit
de15a3b2ae
@ -5,19 +5,30 @@
|
||||
import { featureVersion } from '../modules'
|
||||
|
||||
|
||||
export const getEnabledFeatures = async(socket: LX.Sync.Socket, serverType: LX.Sync.ServerType, supportedFeatures: LX.Sync.SupportedFeatures): Promise<LX.Sync.EnabledFeatures> => {
|
||||
const handler: Omit<LX.Sync.ClientSyncHandlerActions<LX.Sync.Socket>, 'finished'> = {
|
||||
async getEnabledFeatures(socket, serverType, supportedFeatures) {
|
||||
// const userSpace = getUserSpace(socket.userInfo.name)
|
||||
switch (serverType) {
|
||||
case 'server':
|
||||
return {
|
||||
list: featureVersion.list == supportedFeatures.list,
|
||||
dislike: featureVersion.dislike == supportedFeatures.dislike,
|
||||
}
|
||||
case 'desktop-app':
|
||||
default:
|
||||
return {
|
||||
list: featureVersion.list == supportedFeatures.list,
|
||||
dislike: featureVersion.dislike == supportedFeatures.dislike,
|
||||
}
|
||||
}
|
||||
const features: LX.Sync.EnabledFeatures = {}
|
||||
switch (serverType) {
|
||||
case 'server':
|
||||
if (featureVersion.list == supportedFeatures.list) {
|
||||
features.list = { skipSnapshot: false }
|
||||
}
|
||||
if (featureVersion.dislike == supportedFeatures.dislike) {
|
||||
features.dislike = { skipSnapshot: false }
|
||||
}
|
||||
return features
|
||||
case 'desktop-app':
|
||||
default:
|
||||
if (featureVersion.list == supportedFeatures.list) {
|
||||
features.list = { skipSnapshot: false }
|
||||
}
|
||||
if (featureVersion.dislike == supportedFeatures.dislike) {
|
||||
features.dislike = { skipSnapshot: false }
|
||||
}
|
||||
return features
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
export default handler
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as handler from './handler'
|
||||
import handler from './handler'
|
||||
import { callObj as _callObj } from '../modules'
|
||||
export { modules } from '../modules'
|
||||
|
||||
|
10
src/types/sync.d.ts
vendored
10
src/types/sync.d.ts
vendored
@ -45,10 +45,16 @@ declare global {
|
||||
href: string
|
||||
}
|
||||
|
||||
interface ListConfig {
|
||||
skipSnapshot: boolean
|
||||
}
|
||||
interface DislikeConfig {
|
||||
skipSnapshot: boolean
|
||||
}
|
||||
type ServerType = 'desktop-app' | 'server'
|
||||
interface EnabledFeatures {
|
||||
list: boolean
|
||||
dislike: boolean
|
||||
list?: false | ListConfig
|
||||
dislike?: false | DislikeConfig
|
||||
}
|
||||
type SupportedFeatures = Partial<{ [k in keyof EnabledFeatures]: number }>
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user