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'
|
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)
|
// const userSpace = getUserSpace(socket.userInfo.name)
|
||||||
switch (serverType) {
|
const features: LX.Sync.EnabledFeatures = {}
|
||||||
case 'server':
|
switch (serverType) {
|
||||||
return {
|
case 'server':
|
||||||
list: featureVersion.list == supportedFeatures.list,
|
if (featureVersion.list == supportedFeatures.list) {
|
||||||
dislike: featureVersion.dislike == supportedFeatures.dislike,
|
features.list = { skipSnapshot: false }
|
||||||
}
|
}
|
||||||
case 'desktop-app':
|
if (featureVersion.dislike == supportedFeatures.dislike) {
|
||||||
default:
|
features.dislike = { skipSnapshot: false }
|
||||||
return {
|
}
|
||||||
list: featureVersion.list == supportedFeatures.list,
|
return features
|
||||||
dislike: featureVersion.dislike == supportedFeatures.dislike,
|
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'
|
import { callObj as _callObj } from '../modules'
|
||||||
export { modules } 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
|
href: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ListConfig {
|
||||||
|
skipSnapshot: boolean
|
||||||
|
}
|
||||||
|
interface DislikeConfig {
|
||||||
|
skipSnapshot: boolean
|
||||||
|
}
|
||||||
type ServerType = 'desktop-app' | 'server'
|
type ServerType = 'desktop-app' | 'server'
|
||||||
interface EnabledFeatures {
|
interface EnabledFeatures {
|
||||||
list: boolean
|
list?: false | ListConfig
|
||||||
dislike: boolean
|
dislike?: false | DislikeConfig
|
||||||
}
|
}
|
||||||
type SupportedFeatures = Partial<{ [k in keyof EnabledFeatures]: number }>
|
type SupportedFeatures = Partial<{ [k in keyof EnabledFeatures]: number }>
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user