1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { fetchHtmlDom } from "https://esm.town/v/aeaton/fetchHtmlDom";
export async function kpunkShow(url) {
const dom = await fetchHtmlDom(url);
const date = dom.querySelector(".postDate")?.textContent.trim();
const titleNode = dom.querySelector(".postTitle .postTitle");
const title = titleNode?.textContent.trim();
const id = new URL(titleNode?.getAttribute("href"), url).toString();
const trackNodes = dom.querySelectorAll(".postBody > ol > li");
const tracks = [...trackNodes].map((item) => {
const [artist, track] = item.textContent.split(" – ");
return { artist, track };
});
const mp3 = dom.querySelector('.postDetails > a[href~=".mp3"]')?.getAttribute(
"href",
);
return { date, title, id, mp3, tracks };
}