From 18e9b57e12844cdffff9e88526d6c6cab0b3f9f0 Mon Sep 17 00:00:00 2001 From: neobooru <50623835+neobooru@users.noreply.github.com> Date: Sat, 22 Jul 2023 14:35:28 +0200 Subject: [PATCH] Add Philomena video resolution test --- package.json | 2 +- src/engines/Philomena.test.ts | 13 +++++++++++++ src/engines/Philomena.ts | 4 +++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f0d627a..1b503a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "neo-scraper", - "version": "0.7.1", + "version": "0.7.2", "description": "Scrape a booru-like post object from the DOM.", "type": "module", "main": "dist/index.js", diff --git a/src/engines/Philomena.test.ts b/src/engines/Philomena.test.ts index 155a6e9..186d33b 100644 --- a/src/engines/Philomena.test.ts +++ b/src/engines/Philomena.test.ts @@ -28,3 +28,16 @@ test("get derpibooru.org post 3157356", async () => { expect(res.posts[0].pageUrl).toBe(pageUrl); expect(res.posts[0].contentUrl).toBe("https://derpicdn.net/img/download/2023/7/5/3157356.png"); }); + +test("get derpibooru.org video post 3161674", async () => { + const pageUrl = "https://derpibooru.org/images/3161674?q=video"; + const res = await scrapeUrl(pageUrl); + expect(res.posts.length).toBe(1); + expect(res.posts[0].rating).toBe("safe"); + expect(res.posts[0]).not.toHaveTag("safe"); + expect(res.posts[0]).toHaveTag("oc"); + expect(res.posts[0]).toHaveTag("rainbow_dash", "character"); + expect(res.posts[0]).toHaveResolution([1920, 1080]); + expect(res.posts[0].pageUrl).toBe(pageUrl); + expect(res.posts[0].contentUrl).toBe("https://derpicdn.net/img/download/2023/7/12/3161674.webm"); +}); diff --git a/src/engines/Philomena.ts b/src/engines/Philomena.ts index 759d35b..96a12b4 100644 --- a/src/engines/Philomena.ts +++ b/src/engines/Philomena.ts @@ -49,7 +49,9 @@ export default class Philomena extends ScrapeEngineBase { post.rating = "unsafe"; // Set resolution - const resStr = (document.querySelector("span[class='image-size']"))?.innerText?.match(/(\d+x\d+)/)?.[0]; + const resStr = (document.querySelector("span[class='image-size']"))?.innerText?.match( + /(\d+x\d+)/ + )?.[0]; if (resStr) { const res = parseResolutionString(resStr); if (res) {