UNPKG

scrape-meta

Version:

A library to easily scrape metadata from an article on the web using Open Graph metadata, regular HTML metadata, and series of fallbacks.

45 lines (41 loc) 1.23 kB
'use strict'; var isUrl = require('is-url'); var utils = require('../utils' /** * Wrap a rule with validation and formatting logic. * * @param {Function} rule * @return {Function} wrapped */ );function wrap(rule) { return function ($, sourceUrl) { var value = rule($); if (isUrl(value)) { return value; } else if (typeof value === 'string' && sourceUrl) { return utils.resolveImagePath(sourceUrl, value); } return; }; } /** * Rules. */ // CHECK SIZES AND GET LARGEST module.exports = [wrap(function ($) { return $('link[rel~="apple-touch-icon"]').first().attr('href'); }), wrap(function ($) { return $('link[rel~="apple-touch-startup-image"]').first().attr('href'); }), wrap(function ($) { return $('link[rel~="icon"]').first().attr('href'); }), wrap(function ($) { return $('link[rel~="shortcut icon"]').first().attr('href'); }), wrap(function ($) { return $('link[rel~="icon shortcut"]').first().attr('href'); }), wrap(function ($) { return $('link[rel~="ICON"]').first().attr('href'); }), wrap(function ($) { return $('link[rel~="ICON SHORTCUT"]').first().attr('href'); }), wrap(function ($) { return $('link[rel~="SHORTCUT ICON"]').first().attr('href'); })];