neo-scraper/src/engines/Fallback.ts

31 lines
888 B
TypeScript

import { ScrapeEngine, ScrapeResult, ScrapedPost } from "../ScrapeEngine";
export default class Fallback implements ScrapeEngine {
name = "fallback";
canImport(location: Location): boolean {
return false;
}
scrapeDocument(document: Document): ScrapeResult {
function getSize(el: HTMLImageElement) {
return el.width * el.height;
}
// Get largest img element on this page
const largestImgElement = Array.from(document.getElementsByTagName('img'))
.reduce((a, b) => getSize(a) > getSize(b) ? a : b);
let result = new ScrapeResult(this.name);
if (largestImgElement) {
let post = new ScrapedPost();
post.source = document.location.href;
post.imageUrl = largestImgElement.src;
result.posts.push(post);
}
return result;
}
}