summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/metascraper-image/index.js
blob: c45b24330a92d51e3bcb611d792a9918ac6257a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'use strict'

const { $jsonld, $filter, image } = require('@metascraper/helpers')

/**
 * Wrap a rule with validation and formatting logic.
 *
 * @param {Function} rule
 * @return {Function} wrapped
 */

const wrap = rule => ({ htmlDom, url }) => {
  const value = rule(htmlDom, url)
  return image(value, { url })
}

const getSrc = el => el.attr('src')

/**
 * Rules.
 */
module.exports = () => ({
  image: [
    wrap($ => $('meta[property="og:image:secure_url"]').attr('content')),
    wrap($ => $('meta[property="og:image:url"]').attr('content')),
    wrap($ => $('meta[property="og:image"]').attr('content')),
    wrap($ => $('meta[name="twitter:image:src"]').attr('content')),
    wrap($ => $('meta[name="twitter:image"]').attr('content')),
    wrap($ => $('meta[itemprop="image"]').attr('content')),
    wrap($jsonld('image.0.url')),
    wrap($jsonld('image.url')),
    wrap($jsonld('image.url')),
    wrap($jsonld('image')),
    wrap($ => $filter($, $('article img[src]'), getSrc)),
    wrap($ => $filter($, $('#content img[src]'), getSrc)),
    wrap($ => $('img[alt*="author" i]').attr('src')),
    wrap($ => $('img[src]').attr('src'))
  ]
})