From b764b684dd14f84a2cd498ea57854c0e69368922 Mon Sep 17 00:00:00 2001 From: Sayem Chowdhury Date: Fri, 26 Mar 2021 20:07:53 +0600 Subject: [PATCH] include song version --- src/converter/parse.ts | 15 ++++++++++++++- src/types/tracks.ts | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/converter/parse.ts b/src/converter/parse.ts index 35138ab..e8bca77 100644 --- a/src/converter/parse.ts +++ b/src/converter/parse.ts @@ -50,13 +50,16 @@ const getUrlParts = async (url: string): Promise => { case 'deezer': const deezerUrlParts = url.split(/\/(\w+)\/(\d+)/); return {type: deezerUrlParts[1] as any, id: deezerUrlParts[2]}; + case 'spotify': const spotifyUrlParts = spotifyUri.parse(url); await spotify.setSpotifyAnonymousToken(); return {type: ('spotify-' + spotifyUrlParts.type) as any, id: (spotifyUrlParts as any).id}; + case 'tidal': const tidalUrlParts = url.split(/\/(\w+)\/(\d+|\w+-\w+-\w+-\w+-\w+)/); return {type: ('tidal-' + tidalUrlParts[1]) as any, id: tidalUrlParts[2]}; + default: throw new Error('Unable to parse URL: ' + url); } @@ -162,5 +165,15 @@ export const parseInfo = async (url: string) => { throw new Error('Unknown type: ' + info.type); } - return {info, linktype, linkinfo, tracks}; + return { + info, + linktype, + linkinfo, + tracks: tracks.map((t) => { + if (t.VERSION) { + t.SNG_TITLE += ' ' + t.VERSION; + } + return t; + }), + }; }; diff --git a/src/types/tracks.ts b/src/types/tracks.ts index d3a9c51..4e41bae 100644 --- a/src/types/tracks.ts +++ b/src/types/tracks.ts @@ -62,7 +62,7 @@ interface songType { S_PREMIUM: number; // 0 TRACK_NUMBER: number; // '4' URL_REWRITING: string; // 'daft-punk' - VERSION: string; // '' + VERSION?: string; // '(Extended Club Mix Edit)' MD5_ORIGIN: string; // '51afcde9f56a132096c0496cc95eb24b' FILESIZE_AAC_64: '0'; FILESIZE_MP3_64: string; // '1798059'