Compare commits
1 commit
13fb29389e
...
f0f6b7391a
| Author | SHA1 | Date | |
|---|---|---|---|
| f0f6b7391a |
1 changed files with 5 additions and 28 deletions
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue