aboutsummaryrefslogtreecommitdiff
path: root/src/parseScheduleHtml.ts
diff options
context:
space:
mode:
authorwabilin <[email protected]>2020-07-31 20:15:19 +0900
committerwabilin <[email protected]>2020-07-31 20:15:19 +0900
commitdf2b1e4012dc50b56141bf9012d8e367a3d08fdf (patch)
treef1876fbd2ecceaeef2e6757818987c0474bca46e /src/parseScheduleHtml.ts
parentadd jsdom (diff)
downloadholo-schedule-df2b1e4012dc50b56141bf9012d8e367a3d08fdf.tar.xz
holo-schedule-df2b1e4012dc50b56141bf9012d8e367a3d08fdf.zip
get datas without date
Diffstat (limited to 'src/parseScheduleHtml.ts')
-rw-r--r--src/parseScheduleHtml.ts37
1 files changed, 37 insertions, 0 deletions
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;