A decentralized music tracking and discovery platform built on AT Protocol 馃幍 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz
at main 22 lines 738 B view raw
1import { ROCKSKY_API_URL } from "../consts"; 2import getLastDays from "../lib/getLastDays"; 3import type { Track } from "../types/track"; 4 5export default async function getTopTrack(handle: string) { 6 const [start, end] = getLastDays(7); 7 const url = new URL( 8 `${ROCKSKY_API_URL}/xrpc/app.rocksky.actor.getActorSongs`, 9 ); 10 url.searchParams.append("did", handle); 11 url.searchParams.append("limit", "1"); 12 url.searchParams.append("startDate", start.toISOString()); 13 url.searchParams.append("endDate", end.toISOString()); 14 const res = await fetch(url); 15 16 if (!res.ok) { 17 return { topTrack: null, ok: res.ok }; 18 } 19 20 const { tracks } = (await res.json()) as { tracks: Track[] }; 21 return { topTrack: tracks[0], ok: res.ok }; 22}