92 Commits

Author SHA1 Message Date
solitudechn
20b746bee5 fix(ncm): Handle mixed-type artist field in metadata parsing
The current implementation for parsing artist metadata in `ncmMetaMusic.GetArtists` does not handle cases where the "artist" JSON field is a list containing mixed-type inner lists.

For certain NCM files (often those with FLAC format), the artist data is structured as `[["Artist Name", 12345]]`. The existing type assertion for `[][]string` fails for this structure because the inner slice is of type `[]interface{}`, not `[]string`. This results in the artist metadata being dropped during the conversion process.

This commit enhances the `GetArtists` method by adding a new case to the `type switch` to specifically handle the `[]interface{}` type. The new logic iterates through the nested structure and correctly extracts the artist name, which is assumed to be the first string element in each inner slice.

This fix improves compatibility with a wider range of NCM files and ensures artist metadata is reliably parsed, preventing data loss for affected files.
2025-08-09 23:58:03 +00:00
鲁树人
17cde2a1a5 refactor: rename functions to follow go pattern 2025-05-08 06:10:17 +09:00
鲁树人
006bad8c48 feat: first version of kgg support 2025-05-07 08:12:57 +09:00
Zhang
208aceb1b5 fix: .mflacm support 2025-02-18 18:46:37 +08:00
鲁树人
f753b9c67d fix #78 #106: app crash due to imcompatible ncm metadata json 2024-11-02 13:44:29 +09:00
鲁树人
fbad7ec450 fix #102: support multi-part kgm extensions (kgm.flac/vpr.flac) 2024-10-21 03:58:21 +09:00
鲁树人
19bc6c466e refactor: allow multi-part extensions (#102) 2024-10-21 03:57:56 +09:00
鲁树人
c87204c78a fix #96: ncm file parsing when image cover 2 is not empty 2024-09-12 15:08:04 +01:00
鲁树人
59f3759d48 fix: add more extensions (Mac) #71 2024-09-04 22:47:02 +01:00
鲁树人
68e0c06246 refactor: rework on MusicEx footer parser 2024-07-06 20:32:26 +01:00
鲁树人
e010d1b308 refactor: make mmkv key optional; change cli params name 2024-07-06 19:55:31 +01:00
awalol
1c5310ffae 一些修改 2024-02-14 16:59:05 +08:00
awalol
2941a9ac76 refactor: qmc musicex footer parser 2024-02-13 02:41:42 +08:00
awalol
1835f9852a 修改 shuffixBuf 匹配方法 2024-02-13 01:17:52 +08:00
awalol
4f4d8db3d5 refactor: load mmkv on startup 2024-02-13 00:58:13 +08:00
awalol
877f37f01e feat: mmkv 加密数据库解析 2024-02-05 08:41:40 +08:00
NestorRay
9ddbd5f702 DELETE not necessary MusicID,AlbumID etc. 2024-01-28 16:24:58 +08:00
NestorRay
d480c9a2f8 CHANGE metadata INT into interface{} 2024-01-28 13:06:30 +08:00
鲁树人
4ad9a721f0 fix: dynamic music id type 2024-01-28 03:59:17 +00:00
Unlock Music Dev
fd6f830916
feat(meta): write album art & metadata into destination file 2022-12-06 23:55:43 +08:00
Unlock Music Dev
02e065aac4
feat(meta): add writing metadata by ffmpeg 2022-12-06 21:52:19 +08:00
Unlock Music Dev
9856f52070
feat: add meta parser from filename 2022-12-06 21:52:18 +08:00
Unlock Music Dev
112d9ab28e
feat(qmc): allow retrieve metadata online 2022-12-06 21:52:18 +08:00
Unlock Music Dev
f60f0b3d07
feat(qmc): add search interface 2022-12-06 21:52:17 +08:00
Unlock Music Dev
9494a535a9
feat(qmc): support audio meta getter 2022-12-06 21:52:16 +08:00
Unlock Music Dev
138adbf846
feat(ncm): support audio meta getter 2022-12-06 21:52:16 +08:00
Unlock Music Dev
e9e63ce175
feat(qmc): improve m4a & mp4 sniff 2022-12-06 21:47:33 +08:00
Unlock Music Dev
21eab14e6c
feat(qmc): add mmp4 format 2022-12-06 18:42:58 +08:00
Unlock Music Dev
12be881d42
chore: add accident removed comment 2022-12-05 11:10:40 +08:00
Unlock Music Dev
6f033af336
chore: remove unused debug log 2022-12-05 11:08:54 +08:00
Unlock Music Dev
79d00b356f
feat(qmc): use unicode normalize to match filename 2022-12-05 11:04:57 +08:00
Unlock Music Dev
3739638ddf
feat(qmc): use editorial distance to find the key 2022-12-05 09:43:33 +08:00
Unlock Music Dev
423767ba63
fix(qmc): fix key from mmkv 2022-12-05 08:54:40 +08:00
Unlock Music Dev
5fbcdb77d4
fix(qmc): use pure go mmkv 2022-12-05 07:24:03 +08:00
Unlock Music Dev
52e986e644
feat(qmc): support .mflach on darwin 2022-12-05 00:06:38 +08:00
Unlock Music Dev
d2019b04ec
fix: qmc test 2022-12-04 23:14:06 +08:00
Unlock Music Dev
ea3236e14b
refactor: change decoder init parameter 2022-12-04 23:05:38 +08:00
Unlock Music Dev
6c168ee536
refactor: move audio sniffer to internal package 2022-11-22 06:16:40 +08:00
Unlock Music Dev
62a38d5ab4
fix(ximalaya): x2m scramble table loading 2022-11-21 13:30:48 +08:00
Unlock Music Dev
81862b26c9
feat(ximalaya): initial support 2022-11-20 08:04:39 +08:00
Unlock Music Dev
d896925dff
fix(kwm): allow new magic header 2022-11-20 03:12:30 +08:00
Unlock Music Dev
bd95fdb53b
fix: unit tests 2022-11-20 02:53:04 +08:00
Unlock Music Dev
f6748d644d
refactor: code cleaning 2022-11-20 02:47:28 +08:00
Unlock Music Dev
8e068b9c8d
refactor: rename xm -> xiami 2022-11-20 02:18:50 +08:00
Unlock Music Dev
14c9d49d46
refactor: change module path 2022-11-19 07:44:44 +08:00
Unlock Music Dev
6f1cdc5b4f
fix: raw don't access registry 2022-11-19 07:25:45 +08:00
Unlock Music Dev
8fd6763b29
fix: allow unencrypted tm0 tm3 2022-11-19 07:25:44 +08:00
Unlock Music Dev
2880c63bf7
fix: seek to audio start after validate 2022-11-19 07:25:44 +08:00
Unlock Music Dev
67ff0c44cd
refactor: use io.Reader instead of custom method 2022-11-19 07:25:43 +08:00
Unlock Music Dev
4365628bff
refactor: qmc don't export internal functions 2022-11-19 07:25:42 +08:00