Compare commits

..

1 commit

Author SHA1 Message Date
f0f6b7391a feat(api/music): initial implementation 2025-12-03 17:43:21 +05:00

View file

@ -1,15 +1,5 @@
import { LASTFM_API_KEY, LASTFM_USER } from "$env/static/private"; import { LASTFM_API_KEY, LASTFM_USER } from "$env/static/private";
import { LastFMUser } from "lastfm-ts-api"; import { LastFMUser } from "lastfm-ts-api";
import NodeCache from "node-cache";
/**
* API cache.
*/
const cache = new NodeCache({
// NOTE: TTL is 1 minute
stdTTL: 60,
});
/** /**
* Last.fm API client. * Last.fm API client.
@ -46,7 +36,11 @@ export interface RecentTrack {
url: string; url: string;
} }
async function _getRecentTrack(): Promise<RecentTrack> { /**
* Get the most recent track from a listening history.
* @returns Recent track.
*/
export async function getRecentTrack(): Promise<RecentTrack> {
// NOTE: fetch the recent tracks // NOTE: fetch the recent tracks
const { const {
recenttracks: { recenttracks: {
@ -68,20 +62,3 @@ async function _getRecentTrack(): Promise<RecentTrack> {
url: track.url, url: track.url,
}; };
} }
/**
* Get the most recent track from a listening history.
* @returns Recent track.
*/
export async function getRecentTrack(): Promise<RecentTrack> {
let result = cache.get<RecentTrack>("recentTrack");
if (result !== undefined) {
return result;
}
result = await _getRecentTrack();
cache.set("recentTrack", result);
return result;
}