diff --git a/api/spider.ts b/api/spider.ts index b3daeacd..798ccc16 100644 --- a/api/spider.ts +++ b/api/spider.ts @@ -288,6 +288,16 @@ const refreshMusicList = async () => { Korean: '"계획대로" 보완 계획' }, musicList: [] + }, + HideMap: { + displayName: { + ChineseS: "有里谱", + ChineseT: "有里譜", + English: "With Hidden Sheet", + Japanese: "裏譜面あり", + Korean: "히든 채보" + }, + musicList: [] } } @@ -301,7 +311,6 @@ const refreshMusicList = async () => { await checkNewSong(uid) } - const newList: Record = {} for (const { uid } of musicList) { if (await isNewSong(uid)) { @@ -318,12 +327,13 @@ const refreshMusicList = async () => { const { music_tag_list: rawTag } = await downloadTag().catch(e => { log(e) - return { music_tag_list: [] } + return { music_tag_list: [] } as MusicTagList }) if (!rawTag.length) { return } - const collab = rawTag.filter(({ tag_name: { English } }) => English === 'Collab').flatMap(({ music_list }) => music_list) + + const { music_list: collab } = rawTag.find(({ tag_name: { English } }) => English === 'Collab') const collabMusicList: Record = {} collab.forEach(id => { const [albumNum] = id.split('-') @@ -336,6 +346,20 @@ const refreshMusicList = async () => { tags.X.musicList = Object.entries(collabMusicList).map(([json, ids]) => ({ json, musics: ids })) + const hideMapList: Record = {} + for (const { json, music } of albumList) { + for (const { uid, difficulty } of music) { + if (difficulty[3] !== '0' || difficulty[4] !== '0') { + if (!hideMapList[json]) { + hideMapList[json] = [] + } + hideMapList[json].push(uid) + } + } + } + + tags.HideMap.musicList = Object.entries(hideMapList).map(([json, ids]) => ({ json, musics: ids })) + const tagExport = Object.entries(tags).map(([n, v]) => ({ name: n, ...v })) await putTag(tagExport) } diff --git a/src/icons/IconHideMap.png b/src/icons/IconHideMap.png new file mode 100644 index 00000000..09844973 Binary files /dev/null and b/src/icons/IconHideMap.png differ diff --git a/src/views/Home.vue b/src/views/Home.vue index cf97f7e9..067708d7 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -43,6 +43,7 @@ export default { Cute: 'IconCuteIsEveryting.png', GiveUp: 'IconGiveUpTreatment.png', X: 'X.png', + HideMap: 'IconHideMap.png', New: 'IconNew.png', PlannedPlus: 'IconJustAsPlanned.png' }