新增同步功能对“不喜欢歌曲”列表的同步
This commit is contained in:
@@ -61,10 +61,14 @@ export const File = {
|
||||
listDir: 'list',
|
||||
listSnapshotDir: 'snapshot',
|
||||
listSnapshotInfoJSON: 'snapshotInfo.json',
|
||||
dislikeDir: 'dislike',
|
||||
dislikeSnapshotDir: 'snapshot',
|
||||
dislikeSnapshotInfoJSON: 'snapshotInfo.json',
|
||||
|
||||
syncAuthKeysJSON: 'syncAuthKey.json',
|
||||
} as const
|
||||
|
||||
export const FeaturesList = [
|
||||
'list',
|
||||
'dislike',
|
||||
] as const
|
||||
|
||||
@@ -36,6 +36,12 @@ const modules = {
|
||||
list_music_check_exist: 'list_music_check_exist',
|
||||
list_music_get_list_ids: 'list_music_get_list_ids',
|
||||
},
|
||||
dislike: {
|
||||
get_dislike_music_infos: 'get_dislike_music_infos',
|
||||
add_dislike_music_infos: 'add_dislike_music_infos',
|
||||
overwrite_dislike_music_infos: 'overwrite_dislike_music_infos',
|
||||
clear_dislike_music_infos: 'clear_dislike_music_infos',
|
||||
},
|
||||
winMain: {
|
||||
focus: 'focus',
|
||||
close: 'close',
|
||||
@@ -126,10 +132,6 @@ const modules = {
|
||||
clear_music_url: 'clear_music_url',
|
||||
get_music_url_count: 'get_music_url_count',
|
||||
|
||||
get_dislike_music_infos: 'get_dislike_music_infos',
|
||||
add_dislike_music_infos: 'add_dislike_music_infos',
|
||||
overwrite_dislike_music_infos: 'overwrite_dislike_music_infos',
|
||||
|
||||
sync_action: 'sync_action',
|
||||
sync_get_server_devices: 'sync_get_server_devices',
|
||||
sync_remove_server_device: 'sync_remove_server_device',
|
||||
@@ -186,6 +188,7 @@ for (const moduleName of Object.keys(modules) as Array<keyof typeof modules>) {
|
||||
|
||||
export const CMMON_EVENT_NAME = modules.common
|
||||
export const PLAYER_EVENT_NAME = modules.player
|
||||
export const DISLIKE_EVENT_NAME = modules.dislike
|
||||
export const WIN_MAIN_RENDERER_EVENT_NAME = modules.winMain
|
||||
export const WIN_LYRIC_RENDERER_EVENT_NAME = modules.winLyric
|
||||
export const HOTKEY_RENDERER_EVENT_NAME = modules.hotKey
|
||||
|
||||
Vendored
+3
-1
@@ -23,13 +23,15 @@ declare namespace LX {
|
||||
singer: string
|
||||
}
|
||||
|
||||
type DislikeRules = string
|
||||
|
||||
interface DislikeInfo {
|
||||
// musicIds: Set<string>
|
||||
names: Set<string>
|
||||
musicNames: Set<string>
|
||||
singerNames: Set<string>
|
||||
// list: LX.Dislike.ListItem[]
|
||||
rules: string
|
||||
rules: DislikeRules
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
declare namespace LX {
|
||||
|
||||
namespace Sync {
|
||||
namespace Dislike {
|
||||
interface ListInfo {
|
||||
lastSyncDate?: number
|
||||
snapshotKey: string
|
||||
}
|
||||
|
||||
interface SyncActionBase <A> {
|
||||
action: A
|
||||
}
|
||||
interface SyncActionData<A, D> extends SyncActionBase<A> {
|
||||
data: D
|
||||
}
|
||||
type SyncAction<A, D = undefined> = D extends undefined ? SyncActionBase<A> : SyncActionData<A, D>
|
||||
type ActionList = SyncAction<'dislike_data_overwrite', LX.Dislike.DislikeRules>
|
||||
| SyncAction<'dislike_music_add', LX.Dislike.DislikeMusicInfo[]>
|
||||
| SyncAction<'dislike_music_clear'>
|
||||
|
||||
type SyncMode = 'merge_local_remote'
|
||||
| 'merge_remote_local'
|
||||
| 'overwrite_local_remote'
|
||||
| 'overwrite_remote_local'
|
||||
// | 'none'
|
||||
| 'cancel'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Vendored
+11
-2
@@ -19,12 +19,20 @@ declare namespace LX {
|
||||
}
|
||||
type SyncAction<A, D = undefined> = D extends undefined ? SyncActionBase<A> : SyncActionData<A, D>
|
||||
|
||||
type SyncMainWindowActions = SyncAction<'select_mode', string>
|
||||
|
||||
interface ModeTypes {
|
||||
list: LX.Sync.List.SyncMode
|
||||
dislike: LX.Sync.Dislike.SyncMode
|
||||
}
|
||||
|
||||
type ModeType = { [K in keyof ModeTypes]: { type: K, mode: ModeTypes[K] } }[keyof ModeTypes]
|
||||
|
||||
type SyncMainWindowActions = SyncAction<'select_mode', { deviceName: string, type: keyof ModeTypes }>
|
||||
| SyncAction<'close_select_mode'>
|
||||
| SyncAction<'client_status', ClientStatus>
|
||||
| SyncAction<'server_status', ServerStatus>
|
||||
|
||||
type SyncServiceActions = SyncAction<'select_mode', LX.Sync.List.SyncMode>
|
||||
type SyncServiceActions = SyncAction<'select_mode', ModeType>
|
||||
| SyncAction<'get_server_status'>
|
||||
| SyncAction<'get_client_status'>
|
||||
| SyncAction<'generate_code'>
|
||||
@@ -64,6 +72,7 @@ declare namespace LX {
|
||||
type ServerType = 'desktop-app' | 'server'
|
||||
interface EnabledFeatures {
|
||||
list: boolean
|
||||
dislike: boolean
|
||||
}
|
||||
type SupportedFeatures = Partial<{ [k in keyof EnabledFeatures]: number }>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user