🐛 fix null artists bugs

This commit is contained in:
zS1L3NT Mac 2023-12-28 02:28:28 +08:00
parent aca523a303
commit 6be353b46f
No known key found for this signature in database
GPG Key ID: 02BE07CD431E4F42
4 changed files with 8 additions and 9 deletions

View File

@ -15,7 +15,7 @@ export default class AlbumParser {
const artistData = traverse(data, "header", "subtitle", "runs") const artistData = traverse(data, "header", "subtitle", "runs")
const artistBasic: ArtistBasic = { const artistBasic: ArtistBasic = {
artistId: traverseString(artistData, "browseId")(), artistId: traverseString(artistData, "browseId")() || null,
name: traverseString(artistData, "text")(), name: traverseString(artistData, "text")(),
} }

View File

@ -16,7 +16,7 @@ export default class PlaylistParser {
name: traverseString(data, "header", "title", "text")(), name: traverseString(data, "header", "title", "text")(),
artist: { artist: {
name: traverseString(artist, "text")(), name: traverseString(artist, "text")(),
artistId: traverseString(artist, "browseId")(), artistId: traverseString(artist, "browseId")() || null,
}, },
videoCount: videoCount:
+traverseList(data, "header", "secondSubtitle", "text") +traverseList(data, "header", "secondSubtitle", "text")
@ -35,8 +35,7 @@ export default class PlaylistParser {
// No specific way to identify the title // No specific way to identify the title
const title = columns[0] const title = columns[0]
// Possibility to be empty because it's by YouTube Music const artist = columns.find(isArtist) || columns[3]
const artist = columns.find(isArtist)
return checkType( return checkType(
{ {
@ -44,7 +43,7 @@ export default class PlaylistParser {
playlistId: traverseString(item, "overlay", "playlistId")(), playlistId: traverseString(item, "overlay", "playlistId")(),
name: traverseString(title, "text")(), name: traverseString(title, "text")(),
artist: { artist: {
name: artist ? traverseString(artist, "text")() : "YouTube Music", name: traverseString(artist, "text")(),
artistId: traverseString(artist, "browseId")() || null, artistId: traverseString(artist, "browseId")() || null,
}, },
thumbnails: traverseList(item, "thumbnails"), thumbnails: traverseList(item, "thumbnails"),

View File

@ -29,7 +29,7 @@ export default class SongParser {
const columns = traverseList(item, "flexColumns", "runs").flat() const columns = traverseList(item, "flexColumns", "runs").flat()
const title = columns.find(isTitle) const title = columns.find(isTitle)
const artist = columns.find(isArtist) const artist = columns.find(isArtist) || columns[1]
const album = columns.find(isAlbum) const album = columns.find(isAlbum)
const duration = columns.find(isDuration) const duration = columns.find(isDuration)
@ -40,7 +40,7 @@ export default class SongParser {
name: traverseString(title, "text")(), name: traverseString(title, "text")(),
artist: { artist: {
name: traverseString(artist, "text")(), name: traverseString(artist, "text")(),
artistId: traverseString(artist, "browseId")(), artistId: traverseString(artist, "browseId")() || null,
}, },
album: { album: {
name: traverseString(album, "text")(), name: traverseString(album, "text")(),

View File

@ -29,7 +29,7 @@ export default class VideoParser {
const columns = traverseList(item, "flexColumns", "runs").flat() const columns = traverseList(item, "flexColumns", "runs").flat()
const title = columns.find(isTitle) const title = columns.find(isTitle)
const artist = columns.find(isArtist) const artist = columns.find(isArtist) || columns[1]
const duration = columns.find(isDuration) const duration = columns.find(isDuration)
return { return {
@ -37,8 +37,8 @@ export default class VideoParser {
videoId: traverseString(item, "playNavigationEndpoint", "videoId")(), videoId: traverseString(item, "playNavigationEndpoint", "videoId")(),
name: traverseString(title, "text")(), name: traverseString(title, "text")(),
artist: { artist: {
artistId: traverseString(artist, "browseId") || null,
name: traverseString(artist, "text")(), name: traverseString(artist, "text")(),
artistId: traverseString(artist, "browseId")(),
}, },
duration: Parser.parseDuration(duration.text), duration: Parser.parseDuration(duration.text),
thumbnails: traverseList(item, "thumbnails"), thumbnails: traverseList(item, "thumbnails"),