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
JavaScript
;
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');
})];