summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/en/ENCasualDateParser.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/en/ENCasualDateParser.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/en/ENCasualDateParser.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/en/ENCasualDateParser.js b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/en/ENCasualDateParser.js
new file mode 100644
index 00000000..86351e1e
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/parsers/en/ENCasualDateParser.js
@@ -0,0 +1,70 @@
+/*
+
+
+*/
+
+var moment = require('moment');
+var Parser = require('../parser').Parser;
+var ParsedResult = require('../../result').ParsedResult;
+
+var PATTERN = /(\W|^)(now|today|tonight|last\s*night|(?:tomorrow|tmr|yesterday)\s*|tomorrow|tmr|yesterday)(?=\W|$)/i;
+
+exports.Parser = function ENCasualDateParser(){
+
+ Parser.apply(this, arguments);
+
+ this.pattern = function() { return PATTERN; }
+
+ this.extract = function(text, ref, match, opt){
+
+ var text = match[0].substr(match[1].length);
+ var index = match.index + match[1].length;
+ var result = new ParsedResult({
+ index: index,
+ text: text,
+ ref: ref,
+ });
+
+ var refMoment = moment(ref);
+ var startMoment = refMoment.clone();
+ var lowerText = text.toLowerCase();
+
+ if(lowerText == 'tonight'){
+ // Normally means this coming midnight
+ result.start.imply('hour', 22);
+ result.start.imply('meridiem', 1);
+
+ } else if (/^tomorrow|^tmr/.test(lowerText)) {
+
+ // Check not "Tomorrow" on late night
+ if(refMoment.hour() > 1) {
+ startMoment.add(1, 'day');
+ }
+
+ } else if (/^yesterday/.test(lowerText)) {
+
+ startMoment.add(-1, 'day');
+
+ } else if(lowerText.match(/last\s*night/)) {
+
+ result.start.imply('hour', 0);
+ if (refMoment.hour() > 6) {
+ startMoment.add(-1, 'day');
+ }
+
+ } else if (lowerText.match("now")) {
+
+ result.start.assign('hour', refMoment.hour());
+ result.start.assign('minute', refMoment.minute());
+ result.start.assign('second', refMoment.second());
+ result.start.assign('millisecond', refMoment.millisecond());
+
+ }
+
+ result.start.assign('day', startMoment.date())
+ result.start.assign('month', startMoment.month() + 1)
+ result.start.assign('year', startMoment.year())
+ result.tags['ENCasualDateParser'] = true;
+ return result;
+ }
+}