This repository has been archived on 2025-03-28. You can view files and clone it, but cannot push or open issues or pull requests.
coryd.dev-eleventy/src/_data/albumReleases.js
2024-02-21 09:26:50 -08:00

25 lines
869 B
JavaScript

import { AssetCache } from '@11ty/eleventy-fetch'
import ics from 'ics-to-json-extended'
import { DateTime } from 'luxon'
export default async function () {
const URL = process.env.SECRET_FEED_ALBUM_RELEASES
const icsToJson = ics.default
const asset = new AssetCache('album_release_data')
if (asset.isCacheValid('1h')) return await asset.getCachedValue()
const icsRes = await fetch(URL)
const icsData = await icsRes.text()
const data = icsToJson(icsData)
const albumReleases = data
.filter((d) => DateTime.fromISO(d.startDate) > DateTime.now())
.sort((a, b) => new Date(a.startDate) - new Date(b.startDate))
.map((release) => {
return {
date: release.startDate,
url: release.location,
title: release.summary.replace(/\\/g, ''),
}
})
await asset.save(albumReleases, 'json')
return albumReleases
}