mirror of
https://github.com/abocn/TelegramBot.git
synced 2025-03-10 04:39:57 +00:00
MusicBrainz API for larger album art (using Last.fm API as fallback)
This commit is contained in:
parent
31aa86d390
commit
49e1bc8661
@ -34,6 +34,27 @@ function saveUsers() {
|
||||
}
|
||||
}
|
||||
|
||||
async function getFromMusicBrainz(mbid) {
|
||||
try {
|
||||
const response = await axios.get(`https://coverartarchive.org/release/${mbid}`);
|
||||
const imageUrl = response.data.images[0]?.thumbnails?.large || '';
|
||||
return imageUrl;
|
||||
} catch (error) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getFromLast(track) {
|
||||
if (!track || !track.image) return '';
|
||||
|
||||
const imageExtralarge = track.image.find(img => img.size === 'extralarge');
|
||||
const imageMega = track.image.find(img => img.size === 'mega');
|
||||
const imageUrl = (imageExtralarge?.['#text']) || (imageMega?.['#text']) || '';
|
||||
|
||||
return imageUrl;
|
||||
}
|
||||
|
||||
module.exports = (bot) => {
|
||||
loadUsers();
|
||||
|
||||
@ -104,6 +125,18 @@ module.exports = (bot) => {
|
||||
const trackName = track.name;
|
||||
const artistName = track.artist['#text'];
|
||||
const nowPlaying = track['@attr'] && track['@attr'].nowplaying ? Strings.varIs : Strings.varWas;
|
||||
const albumMbid = track.album.mbid;
|
||||
|
||||
let imageUrl = "";
|
||||
|
||||
if (albumMbid) {
|
||||
imageUrl = await getFromMusicBrainz(albumMbid);
|
||||
}
|
||||
|
||||
if (!imageUrl) {
|
||||
imageUrl = getFromLast(track);
|
||||
}
|
||||
|
||||
if (imageUrl == genericImg) {
|
||||
imageUrl = "";
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user