summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/metascraper-date/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/metascraper-date/index.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/metascraper-date/index.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/metascraper-date/index.js b/bin/wiki/ImportarDesdeURL/node_modules/metascraper-date/index.js
new file mode 100644
index 00000000..175900fc
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/metascraper-date/index.js
@@ -0,0 +1,58 @@
+'use strict'
+
+const { date, $filter, $jsonld } = 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 date(value)
+}
+
+/**
+ * Rules.
+ */
+
+module.exports = () => ({
+ date: [
+ wrap($jsonld('dateModified')),
+ wrap($jsonld('datePublished')),
+ wrap($jsonld('dateCreated')),
+ wrap($ => $('meta[property*="updated_time" i]').attr('content')),
+ wrap($ => $('meta[property*="modified_time" i]').attr('content')),
+ wrap($ => $('meta[property*="published_time" i]').attr('content')),
+ wrap($ => $('meta[property*="release_date" i]').attr('content')),
+ wrap($ => $('meta[name="date" i]').attr('content')),
+ wrap($ => $('[itemprop*="datemodified" i]').attr('content')),
+ wrap($ => $('[itemprop="datepublished" i]').attr('content')),
+ wrap($ => $('[itemprop*="date" i]').attr('content')),
+ wrap($ => $('time[itemprop*="date" i]').attr('datetime')),
+ wrap($ => $('time[datetime]').attr('datetime')),
+ wrap($ => $('time[datetime][pubdate]').attr('datetime')),
+ wrap($ => $('meta[name*="dc.date" i]').attr('content')),
+ wrap($ => $('meta[name*="dc.date.issued" i]').attr('content')),
+ wrap($ => $('meta[name*="dc.date.created" i]').attr('content')),
+ wrap($ => $('meta[name*="dcterms.date" i]').attr('content')),
+ wrap($ => $('[property*="dc:date" i]').attr('content')),
+ wrap($ => $('[property*="dc:created" i]').attr('content')),
+ wrap($ => $filter($, $('[class*="byline" i]'))),
+ wrap($ => $filter($, $('[class*="dateline" i]'))),
+ wrap($ => $filter($, $('[id*="metadata" i]'))),
+ wrap($ => $filter($, $('[class*="metadata" i]'))), // twitter, move into a bundle of rules
+ wrap($ => $filter($, $('[id*="date" i]'))),
+ wrap($ => $filter($, $('[class*="date" i]'))),
+ wrap($ => $filter($, $('[id*="publish" i]'))),
+ wrap($ => $filter($, $('[class*="publish" i]'))),
+ wrap($ => $filter($, $('[id*="post-timestamp" i]'))),
+ wrap($ => $filter($, $('[class*="post-timestamp" i]'))),
+ wrap($ => $filter($, $('[id*="post-meta" i]'))),
+ wrap($ => $filter($, $('[class*="post-meta" i]'))),
+ wrap($ => $filter($, $('[id*="time" i]'))),
+ wrap($ => $filter($, $('[class*="time" i]')))
+ ]
+})