Compare commits
1 commit
f0f6b7391a
...
13fb29389e
| Author | SHA1 | Date | |
|---|---|---|---|
| 13fb29389e |
1 changed files with 28 additions and 5 deletions
|
|
@ -1,5 +1,15 @@
|
|||
import { LASTFM_API_KEY, LASTFM_USER } from "$env/static/private";
|
||||
|
||||
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.
|
||||
|
|
@ -36,11 +46,7 @@ export interface RecentTrack {
|
|||
url: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the most recent track from a listening history.
|
||||
* @returns Recent track.
|
||||
*/
|
||||
export async function getRecentTrack(): Promise<RecentTrack> {
|
||||
async function _getRecentTrack(): Promise<RecentTrack> {
|
||||
// NOTE: fetch the recent tracks
|
||||
const {
|
||||
recenttracks: {
|
||||
|
|
@ -62,3 +68,20 @@ export async function getRecentTrack(): Promise<RecentTrack> {
|
|||
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue