Equicord/src/equicordplugins/rpcStats/native.ts
2024-07-18 17:48:50 -04:00

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;
}
}