42 lines
1 KiB
JavaScript
42 lines
1 KiB
JavaScript
import EleventyFetch from "@11ty/eleventy-fetch";
|
|
|
|
const { POSTGREST_URL, POSTGREST_API_KEY } = process.env;
|
|
|
|
const fetchLatestListen = async () => {
|
|
try {
|
|
const data = await EleventyFetch(
|
|
`${POSTGREST_URL}/optimized_latest_listen?select=*`,
|
|
{
|
|
duration: "1h",
|
|
type: "json",
|
|
fetchOptions: {
|
|
method: "GET",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
Authorization: `Bearer ${POSTGREST_API_KEY}`,
|
|
},
|
|
},
|
|
},
|
|
);
|
|
|
|
const trackData = data[0];
|
|
if (!trackData) {
|
|
return { content: "🎧 No recent listens found" };
|
|
}
|
|
|
|
const emoji = trackData.artist_emoji || trackData.genre_emoji || "🎧";
|
|
|
|
return {
|
|
content: `${emoji} ${
|
|
trackData.track_name
|
|
} by <a href="https://www.coryd.dev${trackData.url}">${trackData.artist_name}</a>`,
|
|
};
|
|
} catch (error) {
|
|
console.error("Error fetching the latest listen:", error);
|
|
return {};
|
|
}
|
|
};
|
|
|
|
export default async function () {
|
|
return await fetchLatestListen();
|
|
}
|