deezer-js/deezer/utils.js

462 lines
20 KiB
JavaScript
Raw Normal View History

// Explicit Content Lyrics
const LyricsStatus = {
NOT_EXPLICIT: 0, // Not Explicit
EXPLICIT: 1, // Explicit
UNKNOWN: 2, // Unknown
EDITED: 3, // Edited
PARTIALLY_EXPLICIT: 4, // Partially Explicit (Album "lyrics" only)
PARTIALLY_UNKNOWN: 5, // Partially Unknown (Album "lyrics" only)
NO_ADVICE: 6, // No Advice Available
PARTIALLY_NO_ADVICE: 7 // Partially No Advice Available (Album "lyrics" only)
}
const ReleaseType = ["single", "album", "compile", "ep", "bundle"]
// TODO: add missing role ids
const RoleID = ["Main", null, null, null, null, "Featured"]
// get explicit lyrics boolean from explicit_content_lyrics
function is_explicit(explicit_content_lyrics){
return [LyricsStatus.EXPLICIT, LyricsStatus.PARTIALLY_EXPLICIT].includes(parseInt(explicit_content_lyrics) || LyricsStatus.UNKNOWN)
}
2021-03-12 13:58:48 +00:00
// maps gw-light api user/tracks to standard api
2021-03-13 12:18:22 +00:00
function map_user_track(track){
let result = {
2021-03-12 13:58:48 +00:00
id: track.SNG_ID,
title: track.SNG_TITLE,
link: 'https://www.deezer.com/track/'+track.SNG_ID,
duration: track.DURATION,
rank: track.RANK_SNG,
explicit_lyrics: false,
explicit_content_lyrics: false,
explicit_content_cover: false,
time_add: track.DATE_ADD || track.DATE_FAVORITE,
2021-03-12 13:58:48 +00:00
album: {
id: track.ALB_ID,
title: track.ALB_TITLE,
cover: 'https://api.deezer.com/album/'+track.ALB_ID+'/image',
cover_small: 'https://e-cdns-images.dzcdn.net/images/cover/'+track.ALB_PICTURE+'/56x56-000000-80-0-0.jpg',
cover_medium: 'https://e-cdns-images.dzcdn.net/images/cover/'+track.ALB_PICTURE+'/250x250-000000-80-0-0.jpg',
cover_big: 'https://e-cdns-images.dzcdn.net/images/cover/'+track.ALB_PICTURE+'/500x500-000000-80-0-0.jpg',
cover_xl: 'https://e-cdns-images.dzcdn.net/images/cover/'+track.ALB_PICTURE+'/1000x1000-000000-80-0-0.jpg',
tracklist: 'https://api.deezer.com/album/'+track.ALB_ID+'/tracks',
type: 'album'
},
artist: {
id: track.ART_ID,
name: track.ART_NAME,
picture: 'https://api.deezer.com/artist/'+track.ART_ID+'/image',
picture_small: null,
picture_medium: null,
picture_big: null,
picture_xl: null,
2021-03-12 13:58:48 +00:00
tracklist: 'https://api.deezer.com/artist/'+track.ART_ID+'/top?limit=50',
type: 'artist'
},
type: 'track'
}
if (parseInt(track.SNG_ID) >= 0){
let art_picture = track.ART_PICTURE
if (!art_picture){
for (let artist of track.ARTISTS){
if (artist.ART_ID == track.ART_ID){
art_picture = artist.ART_PICTURE
break
}
}
}
result.explicit_lyrics = is_explicit(track.EXPLICIT_LYRICS)
result.explicit_content_lyrics = track.EXPLICIT_TRACK_CONTENT.EXPLICIT_COVER_STATUS
result.explicit_content_cover = track.EXPLICIT_TRACK_CONTENT.EXPLICIT_LYRICS_STATUS
result.artist.picture_small = 'https://e-cdns-images.dzcdn.net/images/artist/'+art_picture+'/56x56-000000-80-0-0.jpg'
result.artist.picture_medium = 'https://e-cdns-images.dzcdn.net/images/artist/'+art_picture+'/250x250-000000-80-0-0.jpg'
result.artist.picture_big = 'https://e-cdns-images.dzcdn.net/images/artist/'+art_picture+'/500x500-000000-80-0-0.jpg'
result.artist.picture_xl = 'https://e-cdns-images.dzcdn.net/images/artist/'+art_picture+'/1000x1000-000000-80-0-0.jpg'
}
return result
2021-03-12 13:58:48 +00:00
}
// maps gw-light api user/artists to standard api
2021-03-13 12:18:22 +00:00
function map_user_artist(artist){
2021-03-12 13:58:48 +00:00
return {
id: artist.ART_ID,
name: artist.ART_NAME,
link: 'https://www.deezer.com/artist/'+artist.ART_ID,
picture: 'https://api.deezer.com/artist/'+artist.ART_ID+'/image',
picture_small: 'https://e-cdns-images.dzcdn.net/images/artist/'+artist.ART_PICTURE+'/56x56-000000-80-0-0.jpg',
picture_medium: 'https://e-cdns-images.dzcdn.net/images/artist/'+artist.ART_PICTURE+'/250x250-000000-80-0-0.jpg',
picture_big: 'https://e-cdns-images.dzcdn.net/images/artist/'+artist.ART_PICTURE+'/500x500-000000-80-0-0.jpg',
picture_xl: 'https://e-cdns-images.dzcdn.net/images/artist/'+artist.ART_PICTURE+'/1000x1000-000000-80-0-0.jpg',
nb_fan: artist.NB_FAN,
tracklist: 'https://api.deezer.com/artist/'+artist.ART_ID+'/top?limit=50',
type: 'artist'
}
}
// maps gw-light api user/albums to standard api
2021-03-13 12:18:22 +00:00
function map_user_album(album){
2021-03-12 13:58:48 +00:00
return {
id: album.ALB_ID,
title: album.ALB_TITLE,
link: 'https://www.deezer.com/album/'+album.ALB_ID,
cover: 'https://api.deezer.com/album/'+album.ALB_ID+'/image',
cover_small: 'https://e-cdns-images.dzcdn.net/images/cover/'+album.ALB_PICTURE+'/56x56-000000-80-0-0.jpg',
cover_medium: 'https://e-cdns-images.dzcdn.net/images/cover/'+album.ALB_PICTURE+'/250x250-000000-80-0-0.jpg',
cover_big: 'https://e-cdns-images.dzcdn.net/images/cover/'+album.ALB_PICTURE+'/500x500-000000-80-0-0.jpg',
cover_xl: 'https://e-cdns-images.dzcdn.net/images/cover/'+album.ALB_PICTURE+'/1000x1000-000000-80-0-0.jpg',
tracklist: 'https://api.deezer.com/album/'+album.ALB_ID+'/tracks',
explicit_lyrics: is_explicit(album.EXPLICIT_ALBUM_CONTENT.EXPLICIT_LYRICS_STATUS),
2021-03-12 13:58:48 +00:00
artist: {
id: album.ART_ID,
name: album.ART_NAME,
picture: 'https://api.deezer.com/artist/'+album.ART_ID+'image',
tracklist: 'https://api.deezer.com/artist/'+album.ART_ID+'/top?limit=50'
},
type: 'album'
}
}
// maps gw-light api user/playlists to standard api
2021-03-13 12:18:22 +00:00
function map_user_playlist(playlist, default_user_name=""){
2021-03-12 13:58:48 +00:00
return {
id: playlist.PLAYLIST_ID,
title: playlist.TITLE,
description: playlist.DESCRIPTION || "",
nb_tracks: playlist.NB_SONG,
link: 'https://www.deezer.com/playlist/'+playlist.PLAYLIST_ID,
picture: 'https://api.deezer.com/playlist/'+playlist.PLAYLIST_ID+'/image',
picture_small: 'https://e-cdns-images.dzcdn.net/images/'+playlist.PICTURE_TYPE+'/'+playlist.PLAYLIST_PICTURE+'/56x56-000000-80-0-0.jpg',
picture_medium: 'https://e-cdns-images.dzcdn.net/images/'+playlist.PICTURE_TYPE+'/'+playlist.PLAYLIST_PICTURE+'/250x250-000000-80-0-0.jpg',
picture_big: 'https://e-cdns-images.dzcdn.net/images/'+playlist.PICTURE_TYPE+'/'+playlist.PLAYLIST_PICTURE+'/500x500-000000-80-0-0.jpg',
picture_xl: 'https://e-cdns-images.dzcdn.net/images/'+playlist.PICTURE_TYPE+'/'+playlist.PLAYLIST_PICTURE+'/1000x1000-000000-80-0-0.jpg',
tracklist: 'https://api.deezer.com/playlist/'+playlist.PLAYLIST_ID+'/tracks',
creation_date: playlist.DATE_ADD,
creator: {
id: playlist.PARENT_USER_ID,
name: playlist.PARENT_USERNAME || default_user_name
},
type: 'playlist'
}
}
// maps gw-light api albums to standard api
2021-03-13 12:18:22 +00:00
function map_album(album){
let result = {
2021-03-12 13:58:48 +00:00
id: album.ALB_ID,
title: album.ALB_TITLE,
title_short: album.ALB_TITLE,
2021-03-12 13:58:48 +00:00
link: `https://www.deezer.com/album/${album.ALB_ID}`,
share: `https://www.deezer.com/album/${album.ALB_ID}`,
2021-03-12 13:58:48 +00:00
cover: `https://api.deezer.com/album/${album.ALB_ID}/image`,
cover_small: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/56x56-000000-80-0-0.jpg`,
cover_medium: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/250x250-000000-80-0-0.jpg`,
cover_big: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/500x500-000000-80-0-0.jpg`,
cover_xl: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/1000x1000-000000-80-0-0.jpg`,
md5_image: album.ALB_PICTURE,
genres: {}, // not provided
label: album.LABEL_NAME,
duration: null, // not provided
fans: album.NB_FAN,
2021-03-12 13:58:48 +00:00
release_date: album.PHYSICAL_RELEASE_DATE,
record_type: null, // not provided
alternative: null, // not provided
contributors: [],
2021-03-12 13:58:48 +00:00
tracklist: `https://api.deezer.com/album/${album.ALB_ID}/tracks`,
explicit_lyrics: is_explicit(album.EXPLICIT_ALBUM_CONTENT.EXPLICIT_LYRICS_STATUS),
explicit_content_lyrics: album.EXPLICIT_ALBUM_CONTENT.EXPLICIT_LYRICS_STATUS,
explicit_content_cover: album.EXPLICIT_ALBUM_CONTENT.EXPLICIT_COVER_STATUS,
artist: {
id: album.ART_ID,
name: album.ART_NAME,
link: `https://www.deezer.com/artist/${album.ART_ID}`,
type: "artist",
// Extras
rank: album.RANK_ART
},
2021-03-12 13:58:48 +00:00
type: album.__TYPE__,
tracks: [], // not provided
2021-03-12 13:58:48 +00:00
// Extras
rating: album.RANK,
digital_release_date: album.DIGITAL_RELEASE_DATE,
physical_release_date: album.PHYSICAL_RELEASE_DATE,
original_release_date: album.ORIGINAL_RELEASE_DATE
}
result.title_version = (album.VERSION || "").trim()
if (result.title_version && result.title_short.includes(result.title_version)){
result.title_short = result.title_short.replace(result.title_version, "").trim()
}
result.title = `${result.title_short} ${result.title_version}`.trim()
if (album.UPC) result.upc = album.UPC // page only
if (album.GENRE_ID) result.genre_id = album.GENRE_ID // gw only
if (album.NUMBER_TRACK) result.nb_tracks = album.NUMBER_TRACK // gw only
if (album.AVAILABLE) result.available = album.AVAILABLE // page only
if (album.ALB_CONTRIBUTORS) result.album_contributors = album.ALB_CONTRIBUTORS // page only
if (album.NUMBER_DISK) result.nb_disk = album.NUMBER_DISK // gw only
if (album.COPYRIGHT) result.copyright = album.COPYRIGHT // gw only
if (album.ARTISTS){
album.ARTISTS.forEach(contributor => {
if (contributor.ART_ID == result.artist.id){
result.artist = {
...result.artist,
picture_small: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/56x56-000000-80-0-0.jpg`,
picture_medium: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/250x250-000000-80-0-0.jpg`,
picture_big: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/500x500-000000-80-0-0.jpg`,
picture_xl: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/1000x1000-000000-80-0-0.jpg`,
md5_image: contributor.ART_PICTURE
}
}
result.contributors.push({
id: contributor.ART_ID,
name: contributor.ART_NAME,
link: `https://www.deezer.com/artist/${contributor.ART_ID}`,
share: `https://www.deezer.com/artist/${contributor.ART_ID}`,
picture: `https://www.deezer.com/artist/${contributor.ART_ID}/image`,
picture_small: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/56x56-000000-80-0-0.jpg`,
picture_medium: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/250x250-000000-80-0-0.jpg`,
picture_big: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/500x500-000000-80-0-0.jpg`,
picture_xl: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/1000x1000-000000-80-0-0.jpg`,
md5_image: contributor.ART_PICTURE,
tracklist: `https://api.deezer.com/artist/${contributor.ART_ID}/top?limit=50`,
type: "artist",
role: RoleID[contributor.ROLE_ID],
// Extras
order: contributor.ARTISTS_SONGS_ORDER,
rank: contributor.RANK
})
})
2021-03-12 13:58:48 +00:00
}
return result
2021-03-12 13:58:48 +00:00
}
// maps gw-light api artist/albums to standard api
2021-03-13 12:18:22 +00:00
function map_artist_album(album){
2021-03-12 13:58:48 +00:00
return {
id: album.ALB_ID,
title: album.ALB_TITLE,
link: `https://www.deezer.com/album/${album.ALB_ID}`,
cover: `https://api.deezer.com/album/${album.ALB_ID}/image`,
cover_small: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/56x56-000000-80-0-0.jpg`,
cover_medium: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/250x250-000000-80-0-0.jpg`,
cover_big: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/500x500-000000-80-0-0.jpg`,
cover_xl: `https://cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/1000x1000-000000-80-0-0.jpg`,
md5_image: album.ALB_PICTURE,
2021-03-12 13:58:48 +00:00
genre_id: album.GENRE_ID,
fans: null, // not provided
2021-03-12 13:58:48 +00:00
release_date: album.PHYSICAL_RELEASE_DATE,
record_type: ReleaseType[parseInt(album.TYPE)] || "unknown",
2021-03-12 13:58:48 +00:00
tracklist: `https://api.deezer.com/album/${album.ALB_ID}/tracks`,
explicit_lyrics: is_explicit(album.EXPLICIT_LYRICS),
2021-03-12 13:58:48 +00:00
type: album.__TYPE__,
// Extras
nb_tracks: album.NUMBER_TRACK,
nb_disk: album.NUMBER_DISK,
copyright: album.COPYRIGHT,
rank: album.RANK,
digital_release_date: album.DIGITAL_RELEASE_DATE,
original_release_date: album.ORIGINAL_RELEASE_DATE,
physical_release_date: album.PHYSICAL_RELEASE_DATE,
is_official: album.ARTISTS_ALBUMS_IS_OFFICIAL,
explicit_content_cover: album.EXPLICIT_ALBUM_CONTENT.EXPLICIT_LYRICS_STATUS,
explicit_content_lyrics: album.EXPLICIT_ALBUM_CONTENT.EXPLICIT_COVER_STATUS,
artist_role: RoleID[album.ROLE_ID]
2021-03-12 13:58:48 +00:00
}
}
// maps gw-light api playlists to standard api
2021-03-13 12:18:22 +00:00
function map_playlist(playlist){
2021-03-12 13:58:48 +00:00
return {
id: playlist.PLAYLIST_ID,
title: playlist.TITLE,
description: playlist.DESCRIPTION,
duration: playlist.DURATION,
public: playlist.STATUS == 1,
is_loved_track: playlist.TYPE == 4,
collaborative: playlist.STATUS == 2,
nb_tracks: playlist.NB_SONG,
fans: playlist.NB_FAN,
link: "https://www.deezer.com/playlist/"+playlist.PLAYLIST_ID,
share: "https://www.deezer.com/playlist/"+playlist.PLAYLIST_ID,
picture: "https://api.deezer.com/playlist/"+playlist.PLAYLIST_ID+"/image",
picture_small: "https://cdns-images.dzcdn.net/images/"+playlist.PICTURE_TYPE+"/"+playlist.PLAYLIST_PICTURE+"/56x56-000000-80-0-0.jpg",
picture_medium: "https://cdns-images.dzcdn.net/images/"+playlist.PICTURE_TYPE+"/"+playlist.PLAYLIST_PICTURE+"/250x250-000000-80-0-0.jpg",
picture_big: "https://cdns-images.dzcdn.net/images/"+playlist.PICTURE_TYPE+"/"+playlist.PLAYLIST_PICTURE+"/500x500-000000-80-0-0.jpg",
picture_xl: "https://cdns-images.dzcdn.net/images/"+playlist.PICTURE_TYPE+"/"+playlist.PLAYLIST_PICTURE+"/1000x1000-000000-80-0-0.jpg",
checksum: playlist.CHECKSUM,
tracklist: "https://api.deezer.com/playlist/"+playlist.PLAYLIST_ID+"/tracks",
creation_date: playlist.DATE_ADD,
md5_image: playlist.PLAYLIST_PICTURE,
picture_type: playlist.PICTURE_TYPE,
2021-03-12 13:58:48 +00:00
creator: {
id: playlist.PARENT_USER_ID,
name: playlist.PARENT_USERNAME,
tracklist: "https://api.deezer.com/user/"+playlist.PARENT_USER_ID+"/flow",
type: "user"
},
type: "playlist"
}
}
// maps gw-light api tracks to standard api
function map_track(track){
let result = {
id: track.SNG_ID,
readable: true, // not provided
title: track.SNG_TITLE,
title_short: track.SNG_TITLE,
isrc: track.ISRC,
link: `https://www.deezer.com/track/${track.SNG_ID}`,
share: `https://www.deezer.com/track/${track.SNG_ID}`,
duration: track.DURATION,
bpm: null, // not provided
available_countries: [], // not provided
contributors: [],
md5_image: track.ALB_PICTURE,
artist: {
id: track.ART_ID,
name: track.ART_NAME,
link: `https://www.deezer.com/artist/${track.ART_ID}`,
share: `https://www.deezer.com/artist/${track.ART_ID}`,
picture: `https://www.deezer.com/artist/${track.ART_ID}/image`,
radio: null, // not provided
tracklist: `https://api.deezer.com/artist/${track.ART_ID}/top?limit=50`,
type: "artist"
},
album: {
id: track.ALB_ID,
title: track.ALB_TITLE,
link: `https://www.deezer.com/album/${track.ALB_ID}`,
cover: `https://api.deezer.com/album/${track.ALB_ID}/image`,
cover_small: `https://e-cdns-images.dzcdn.net/images/cover/${track.ALB_PICTURE}/56x56-000000-80-0-0.jpg`,
cover_medium: `https://e-cdns-images.dzcdn.net/images/cover/${track.ALB_PICTURE}/250x250-000000-80-0-0.jpg`,
cover_big: `https://e-cdns-images.dzcdn.net/images/cover/${track.ALB_PICTURE}/500x500-000000-80-0-0.jpg`,
cover_xl: `https://e-cdns-images.dzcdn.net/images/cover/${track.ALB_PICTURE}/1000x1000-000000-80-0-0.jpg`,
md5_image: track.ALB_PICTURE,
release_date: null, // not provided
tracklist: `https://api.deezer.com/album/${track.ALB_ID}/tracks`,
type: "album"
},
type: "track",
// Extras
md5_origin: track.MD5_ORIGIN,
filesizes: {
default: track.FILESIZE
},
media_version: track.MEDIA_VERSION,
track_token: track.TRACK_TOKEN,
track_token_expire: track.TRACK_TOKEN_EXPIRE
}
if (parseInt(track.SNG_ID) > 0){
result.title_version = (track.VERSION || "").trim()
if (result.title_version && result.title_short.includes(result.title_version)){
result.title_short = result.title_short.replace(result.title_version, "").trim()
}
result.title = `${result.title_short} ${result.title_version}`.trim()
result.track_position = track.TRACK_NUMBER
result.disk_number = track.DISK_NUMBER
result.rank = track.RANK || track.RANK_SNG
result.release_date = track.PHYSICAL_RELEASE_DATE
result.explicit_lyrics = is_explicit(track.EXPLICIT_LYRICS)
result.explicit_content_lyrics = track.EXPLICIT_TRACK_CONTENT.EXPLICIT_LYRICS_STATUS
result.explicit_content_cover = track.EXPLICIT_TRACK_CONTENT.EXPLICIT_COVER_STATUS
result.preview = track.MEDIA[0].HREF
result.gain = track.GAIN
if (track.ARTISTS){
track.ARTISTS.forEach(contributor => {
if (contributor.ART_ID == result.artist.id){
result.artist = {
...result.artist,
picture_small: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/56x56-000000-80-0-0.jpg`,
picture_medium: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/250x250-000000-80-0-0.jpg`,
picture_big: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/500x500-000000-80-0-0.jpg`,
picture_xl: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/1000x1000-000000-80-0-0.jpg`,
md5_image: contributor.ART_PICTURE
}
}
result.contributors.push({
id: contributor.ART_ID,
name: contributor.ART_NAME,
link: `https://www.deezer.com/artist/${contributor.ART_ID}`,
share: `https://www.deezer.com/artist/${contributor.ART_ID}`,
picture: `https://www.deezer.com/artist/${contributor.ART_ID}/image`,
picture_small: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/56x56-000000-80-0-0.jpg`,
picture_medium: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/250x250-000000-80-0-0.jpg`,
picture_big: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/500x500-000000-80-0-0.jpg`,
picture_xl: `https://e-cdns-images.dzcdn.net/images/artist/${contributor.ART_PICTURE}/1000x1000-000000-80-0-0.jpg`,
md5_image: contributor.ART_PICTURE,
tracklist: `https://api.deezer.com/artist/${contributor.ART_ID}/top?limit=50`,
type: "artist",
role: RoleID[contributor.ROLE_ID],
// Extras
order: contributor.ARTISTS_SONGS_ORDER,
rank: contributor.RANK
})
})
}
// Extras
result = {
...result,
lyrics_id: track.LYRICS_ID,
physical_release_date: track.PHYSICAL_RELEASE_DATE,
song_contributors: track.SNG_CONTRIBUTORS
}
if (track.FALLBACK) result.fallback_id = track.FALLBACK.SNG_ID
if (track.DIGITAL_RELEASE_DATE) result.digital_release_date = track.DIGITAL_RELEASE_DATE
if (track.GENRE_ID) result.genre_id = track.GENRE_ID
if (track.COPYRIGHT) result.copyright = track.COPYRIGHT
if (track.LYRICS) result.lyrics = track.LYRICS
if (track.ALBUM_FALLBACK) result.alternative_albums = track.ALBUM_FALLBACK
result.filesizes = {
...result.filesizes,
aac_64: track.FILESIZE_AAC_64,
mp3_64: track.FILESIZE_MP3_64,
mp3_128: track.FILESIZE_MP3_128,
mp3_256: track.FILESIZE_MP3_256,
mp3_320: track.FILESIZE_MP3_320,
mp4_ra1: track.FILESIZE_MP4_RA1,
mp4_ra2: track.FILESIZE_MP4_RA2,
mp4_ra3: track.FILESIZE_MP4_RA3,
flac: track.FILESIZE_FLAC
}
} else {
result.token = track.TOKEN
result.user_id = track.USER_ID
result.filesizes.mp3_misc = track.FILESIZE_MP3_MISC
}
return result
}
2021-03-12 13:58:48 +00:00
// Cleanup terms that can hurt search results
2021-03-13 12:18:22 +00:00
function clean_search_query(term){
2021-04-09 17:27:12 +00:00
/* eslint-disable no-useless-escape */
2021-03-12 13:58:48 +00:00
term = term.replaceAll(/ feat[\.]? /g, " ")
term = term.replaceAll(/ ft[\.]? /g, " ")
term = term.replaceAll(/\(feat[\.]? /g, " ")
term = term.replaceAll(/\(ft[\.]? /g, " ")
term = term.replace(' & ', " ").replace('', "-").replace('—', "-")
return term
}
2021-03-13 12:18:22 +00:00
module.exports = {
LyricsStatus,
ReleaseType,
RoleID,
is_explicit,
2021-03-13 12:18:22 +00:00
map_user_track,
map_user_artist,
map_user_album,
map_user_playlist,
map_album,
map_artist_album,
map_playlist,
map_track,
2021-03-13 12:18:22 +00:00
clean_search_query
}