list correct artists in collab tracks

This commit is contained in:
Jill 2022-08-19 10:22:55 +03:00
parent f316b8542e
commit b8680d13f4
3 changed files with 33 additions and 28 deletions

View File

@ -55,19 +55,21 @@
</div> </div>
<div class="small">{artist.name}</div> <div class="small">{artist.name}</div>
</span> </span>
{#if !hideDownload || $butShowThisDownloadLinkInstead} <div class="album-inner-inner-bottom">
{#if $butShowThisDownloadLinkInstead} {#if !hideDownload || $butShowThisDownloadLinkInstead}
<a href={$butShowThisDownloadLinkInstead} target="_blank" rel="noopener" download="{$butShowThisDownloadLinkInstead.split('/').slice(-1)}"> {#if $butShowThisDownloadLinkInstead}
<div class="album-download" title="Download"> <a href={$butShowThisDownloadLinkInstead} target="_blank" rel="noopener" download="{$butShowThisDownloadLinkInstead.split('/').slice(-1)}">
<div class="album-download" title="Download">
<Icon icon={faDownload}/>
</div>
</a>
{:else}
<div class="album-download" title="Download" on:click={() => startDownload(id, {title, artist, cover}, true)}>
<Icon icon={faDownload}/> <Icon icon={faDownload}/>
</div> </div>
</a> {/if}
{:else}
<div class="album-download" title="Download" on:click={() => startDownload(id, {title, artist, cover}, true)}>
<Icon icon={faDownload}/>
</div>
{/if} {/if}
{/if} </div>
</div> </div>
<div class="album-image-wrapper"> <div class="album-image-wrapper">
<img class="album-image" class:explicit={album && album.explicitCover === 1} width="128" height="128" src="https://e-cdns-images.dzcdn.net/images/cover/{cover}/128x128-000000-80-0-0.jpg" alt="Cover for '{title}'"> <img class="album-image" class:explicit={album && album.explicitCover === 1} width="128" height="128" src="https://e-cdns-images.dzcdn.net/images/cover/{cover}/128x128-000000-80-0-0.jpg" alt="Cover for '{title}'">
@ -90,7 +92,7 @@
{/if} {/if}
{#if album && !short} {#if album && !short}
{#each album.tracks as track} {#each album.tracks as track}
<Track id={track.id} title={track.title} duration={track.duration} artist={track.artist} cover={cover} album={title} albumArtist={artist.name} explicit={track.explicit === 1}/> <Track id={track.id} title={track.title} duration={track.duration} artist={track.contributors.map(a => a && a.name).join(', ')} cover={cover} album={title} albumArtist={artist.name} explicit={track.explicit === 1}/>
{/each} {/each}
{/if} {/if}
</div> </div>
@ -113,13 +115,20 @@
.album-inner-top { .album-inner-top {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
gap: 0.5em; gap: 1em;
} }
.album-inner-bottom { .album-inner-bottom {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: stretch; align-items: stretch;
} }
.album-inner-inner-bottom {
display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%;
align-items: flex-end;
}
.album.short { .album.short {
border-radius: 10px 10px 10px 10px; border-radius: 10px 10px 10px 10px;
} }
@ -222,10 +231,6 @@
.album:hover .album-image-wrapper { .album:hover .album-image-wrapper {
border: 0px solid rgba(0, 0, 0, 0); border: 0px solid rgba(0, 0, 0, 0);
} }
.album-bottom {
background-color: #112;
border-left: 0rem solid rgb(131, 131, 243);
}
.progress-state { .progress-state {
background-color: #0a0a0f; background-color: #0a0a0f;
} }
@ -263,10 +268,6 @@
.album:hover .album-image-wrapper { .album:hover .album-image-wrapper {
border: 0px solid rgba(0, 0, 0, 0); border: 0px solid rgba(0, 0, 0, 0);
} }
.album-bottom {
background-color: #ffffff;
border-left: 0rem solid #ea74ac;
}
.progress-state { .progress-state {
background-color: #fafafa; background-color: #fafafa;
} }

View File

@ -47,17 +47,15 @@
align-items: center; align-items: center;
font-size: large; font-size: large;
transition: 0.05s background-color ease-out, 0.1s border-left ease-out; transition: 0.05s background-color ease-out, 0.1s border-left ease-out;
margin-bottom: 3px;
} }
.track:nth-last-child(1) { .track:nth-last-child(1) {
border-bottom: none;
border-radius: 0px 0px 15px 15px; border-radius: 0px 0px 15px 15px;
} }
.track-left { .track-left {
flex: 1 1 0px; flex: 1 1 0px;
text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
white-space: nowrap;
} }
.track-right { .track-right {
flex: 0 0 auto; flex: 0 0 auto;
@ -91,7 +89,6 @@
filter: drop-shadow( 0px 0px 6px #8383F3); filter: drop-shadow( 0px 0px 6px #8383F3);
} }
.track { .track {
border-bottom: 3px solid #0a0a0f;
border-left: 0rem solid rgb(131, 131, 243); border-left: 0rem solid rgb(131, 131, 243);
} }
.track:hover { .track:hover {
@ -102,6 +99,9 @@
background-color: #f0f0f0; background-color: #f0f0f0;
color: #0a0a0f; color: #0a0a0f;
} }
.track {
background-color: #112;
}
} }
@media (prefers-color-scheme: light) { @media (prefers-color-scheme: light) {
@ -114,7 +114,6 @@
filter: drop-shadow( 0px 0px 6px #f484b6); filter: drop-shadow( 0px 0px 6px #f484b6);
} }
.track { .track {
border-bottom: 3px solid #f0f0f0;
border-left: 0rem solid #ea74ac; border-left: 0rem solid #ea74ac;
} }
.track:hover { .track:hover {
@ -125,5 +124,8 @@
background-color: #0a0a0f; background-color: #0a0a0f;
color: #fff; color: #fff;
} }
.track {
background-color: #ffffff;
}
} }
</style> </style>

View File

@ -26,16 +26,18 @@ router.get('/api/album', async (req, res) => {
link: album.link, link: album.link,
releaseDate: album.release_date, releaseDate: album.release_date,
explicitCover: album.explicit_content_cover, explicitCover: album.explicit_content_cover,
tracks: album.tracks.data.map(t => { tracks: await Promise.all(album.tracks.data.map(async ({id}) => {
const t = await deezerInstance.api.get_track(id);
return { return {
id: t.id, id: t.id,
title: t.title, title: t.title,
duration: t.duration, duration: t.duration,
link: t.link, link: t.link,
artist: t.artist.name, artist: t.artist.name,
explicit: t.explicit_content_lyrics explicit: t.explicit_content_lyrics,
contributors: t.contributors
}; };
}) }))
}); });
}); });