Map sensitive as sketchy on danbooru + small fix

pull/16/head
neobooru 2022-10-22 00:43:25 +02:00
parent de16edd143
commit be6111e166
5 changed files with 18 additions and 2 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "neo-scraper", "name": "neo-scraper",
"version": "0.5.6", "version": "0.5.7",
"description": "Scrape a booru-like post object from the DOM.", "description": "Scrape a booru-like post object from the DOM.",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",

View File

@ -34,3 +34,15 @@ test("get danbooru.donmai.us post 4924490", async () => {
expect(res.posts[0].notes).toHaveLength(17); expect(res.posts[0].notes).toHaveLength(17);
expect(res.posts[0]).toHaveNote("Nya~nya ♪"); expect(res.posts[0]).toHaveNote("Nya~nya ♪");
}); });
test("get danbooru.donmai.us post 4530532", async () => {
const pageUrl = "https://danbooru.donmai.us/posts/4530532";
const res = await scrapeUrl(pageUrl);
expect(res.posts.length).toBe(1);
expect(res.posts[0].rating).toBe("sketchy");
expect(res.posts[0]).toHaveTag("chainsaw_man", "copyright");
expect(res.posts[0]).toHaveResolution([1105, 1803]);
expect(res.posts[0].pageUrl).toBe(pageUrl);
expect(res.posts[0].contentUrl).toBe(
"https://cdn.donmai.us/original/fc/e3/__makima_power_and_reze_chainsaw_man_drawn_by_hews__fce35c7a8515a00c566b288a591fd5f9.png");
});

View File

@ -55,6 +55,7 @@ export default class Danbooru extends ScrapeEngineBase {
case "safe": case "safe":
post.rating = "safe"; post.rating = "safe";
break; break;
case "sensitive":
case "questionable": case "questionable":
post.rating = "sketchy"; post.rating = "sketchy";
break; break;

View File

@ -127,7 +127,9 @@ export default class Gelbooru extends ScrapeEngineBase {
// Some <li/> don't actually contain a name. // Some <li/> don't actually contain a name.
// E.g. the sub-headers ("Copyright", "Character", "General", "Meta") on rule34.xxx // E.g. the sub-headers ("Copyright", "Character", "General", "Meta") on rule34.xxx
if (nameElements.length > 0) { if (nameElements.length > 0) {
tagName = el.getElementsByTagName("a")[0].innerText; // Get the last element, because rule34.xxx also adds a "?" link in front.
const linkEls = Array.from(el.getElementsByTagName("a"));
tagName = linkEls[linkEls.length - 1].innerText;
} else { } else {
continue; continue;
} }

View File

@ -4,6 +4,7 @@ test("get rule34.paheal.net post 2505982", async () => {
const pageUrl = "https://rule34.paheal.net/post/view/2505982"; // Somewhat sketchy const pageUrl = "https://rule34.paheal.net/post/view/2505982"; // Somewhat sketchy
const res = await scrapeUrl(pageUrl); const res = await scrapeUrl(pageUrl);
expect(res.posts.length).toBe(1); expect(res.posts.length).toBe(1);
expect(res.posts[0]).toHaveTag("kai'sa");
expect(res.posts[0].pageUrl).toBe(pageUrl); expect(res.posts[0].pageUrl).toBe(pageUrl);
expect(res.posts[0]).toHaveSource( expect(res.posts[0]).toHaveSource(
"http://law-zilla.tumblr.com/post/171249285285/finished-subdraw-37-kaisa-from-league-of-legends" "http://law-zilla.tumblr.com/post/171249285285/finished-subdraw-37-kaisa-from-league-of-legends"