Cleanup + fix issue where zerochan sometimes couldn't find the image

pull/2/head
neobooru 2020-01-04 17:30:01 +01:00
parent c55d10d7e5
commit f897d21664
10 changed files with 27 additions and 25 deletions

View File

@ -26,6 +26,7 @@ export default class NeoScraper {
for (const engine of this.engines) {
if (ignoreCanImport || engine.canImport(document.location)) {
console.log("Using engine: " + engine.name);
res.results.push(engine.scrapeDocument(document));
}
}
@ -34,10 +35,13 @@ export default class NeoScraper {
if (!this.fallbackEngine) {
console.error("NeoScraper.fallbackEngine is unset!");
} else {
console.log("Using fallback engine");
res.results.push(this.fallbackEngine.scrapeDocument(document));
}
}
console.dir(res);
return res;
}
}

View File

@ -25,6 +25,14 @@ export class ScrapeResult {
constructor(engine: string) {
this.engine = engine;
}
tryAddPost(post: ScrapedPost) {
if (!post.imageUrl) {
console.log(`[${this.engine}] Not adding post because imageUrl is unset!`);
} else {
this.posts.push(post);
}
}
}
export class ScrapeResults {

View File

@ -78,9 +78,7 @@ export default class Danbooru implements ScrapeEngine {
}
}
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}

View File

@ -135,9 +135,7 @@ export default class Gelbooru implements ScrapeEngine {
}
}
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}

View File

@ -88,10 +88,7 @@ export default class Moebooru implements ScrapeEngine {
post.tags.push(tag);
}
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}

View File

@ -25,9 +25,7 @@ export default class Reddit implements ScrapeEngine {
post.imageUrl = (newLinkElements[0] as HTMLAnchorElement).href;
}
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}

View File

@ -74,9 +74,7 @@ export default class SankakuComplex implements ScrapeEngine {
}
}
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}

View File

@ -41,9 +41,7 @@ export default class Shimmie2 implements ScrapeEngine {
.map(x => (x as HTMLAnchorElement).innerText.toLowerCase())
.map(x => new ScrapedTag(x));
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}

View File

@ -33,9 +33,7 @@ export default class Twitter implements ScrapeEngine {
post.imageUrl = getOriginalImageUrl((mediaImageElements[0] as HTMLImageElement).src);
}
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}

View File

@ -16,7 +16,14 @@ export default class Zerochan implements ScrapeEngine {
// Set image url
const previewElements = document.getElementsByClassName("preview");
if (previewElements.length > 0) {
// The preview element only exists when there is a larger size available. Preview's img element contains a downscaled version.
post.imageUrl = (previewElements[0] as HTMLAnchorElement).href;
} else {
// When there is no larger version available just use the displayed version.
const imgElement = document.querySelector("img[title='No larger size available']") as HTMLImageElement;
if (imgElement) {
post.imageUrl = imgElement.src;
}
}
// Set rating
@ -59,9 +66,7 @@ export default class Zerochan implements ScrapeEngine {
}
}
if (post.imageUrl) {
result.posts.push(post);
}
result.tryAddPost(post);
return result;
}