mirror of
https://github.com/Equicord/Equicord.git
synced 2025-02-26 10:08:52 -05:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
/*
|
|
* Vencord, a Discord client mod
|
|
* Copyright (c) 2024 Vendicated and contributors
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
interface Album {
|
|
name: string;
|
|
artist: { name: string; };
|
|
image: { "#text": string; }[];
|
|
}
|
|
|
|
interface TopAlbumsResponse {
|
|
topalbums: {
|
|
album: Album[];
|
|
};
|
|
}
|
|
|
|
export async function fetchTopAlbum(_, args) {
|
|
const { apiKey, user, period } = args;
|
|
|
|
const url = `http://ws.audioscrobbler.com/2.0/?method=user.getTopAlbums&user=${user}&api_key=${apiKey}&period=${period}&format=json&limit=1`;
|
|
|
|
const response = await fetch(url);
|
|
const data: TopAlbumsResponse = await response.json();
|
|
|
|
if (data.topalbums && data.topalbums.album.length > 0) {
|
|
const topAlbum = data.topalbums.album[0];
|
|
const albumName = topAlbum.name;
|
|
const artistName = topAlbum.artist.name;
|
|
const albumCoverUrl = topAlbum.image[topAlbum.image.length - 1]["#text"];
|
|
|
|
return JSON.stringify({ albumName: albumName, artistName: artistName, albumCoverUrl });
|
|
}
|
|
else {
|
|
return null;
|
|
}
|
|
}
|