From 8ca5b08ac774f5d8c88f8b71f1aba358d80676b3 Mon Sep 17 00:00:00 2001 From: Sayem Chowdhury Date: Sat, 20 Mar 2021 13:13:11 +0600 Subject: [PATCH] improve album matching --- src/metadata-writer/index.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/metadata-writer/index.ts b/src/metadata-writer/index.ts index 02d169c..cdf4c80 100644 --- a/src/metadata-writer/index.ts +++ b/src/metadata-writer/index.ts @@ -2,9 +2,18 @@ import {downloadAlbumCover} from './abumCover'; import {getTrackLyrics} from './getTrackLyrics'; import {writeMetadataMp3} from './id3'; import {writeMetadataFlac} from './flacmetata'; -import {getAlbumInfoPublicApi} from '../api'; +import {getAlbumInfoPublicApi, getTrackInfoPublicApi} from '../api'; import type {trackType} from '../types'; +const albumInfo = async (track: trackType) => { + try { + return getAlbumInfoPublicApi(track.ALB_ID); + } catch (err) { + const {album} = await getTrackInfoPublicApi(track.SNG_ID); + return getAlbumInfoPublicApi(album.id.toString()); + } +}; + /** * Add metdata to the mp3 * @param {Buffer} trackBuffer decrypted track buffer @@ -15,7 +24,7 @@ export const addTrackTags = async (trackBuffer: Buffer, track: trackType, albumC const [cover, lyrics, album] = await Promise.all([ downloadAlbumCover(track, albumCoverSize), getTrackLyrics(track), - getAlbumInfoPublicApi(track.ALB_ID), + albumInfo(track), ]); if (lyrics) {