From df2b1e4012dc50b56141bf9012d8e367a3d08fdf Mon Sep 17 00:00:00 2001 From: wabilin Date: Fri, 31 Jul 2020 20:15:19 +0900 Subject: get datas without date --- src/parseScheduleHtml.ts | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/parseScheduleHtml.ts (limited to 'src/parseScheduleHtml.ts') diff --git a/src/parseScheduleHtml.ts b/src/parseScheduleHtml.ts new file mode 100644 index 0000000..8177eee --- /dev/null +++ b/src/parseScheduleHtml.ts @@ -0,0 +1,37 @@ +import { JSDOM } from "jsdom"; +import { mapNodeList } from "./util"; + +function selectTrimTextContent(ele: Element, selector: string): string { + return ele.querySelector(selector)?.textContent?.replace(/\s+/g, "") || ""; +} + +function dataFromAThumbnail(thumb: Element) { + const time = selectTrimTextContent(thumb, ".datetime") + const name = selectTrimTextContent(thumb, ".name") + + const images = mapNodeList( + thumb.querySelectorAll("img"), + (img) => img.src + ) + .filter((src) => src.startsWith("https://yt3.ggpht.com")); + + return { + time, + name, + images, + }; +} + +function parseScheduleHtml(html: string | Buffer) { + const { window } = new JSDOM(html); + const { document } = window; + + const allThumbnail = document.querySelectorAll("a.thumbnail"); + const data = mapNodeList(allThumbnail, dataFromAThumbnail); + + console.log(data); + + return ""; +} + +export default parseScheduleHtml; -- cgit v1.2.3