summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/refiners/ExtractTimezoneOffsetRefiner.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/refiners/ExtractTimezoneOffsetRefiner.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/refiners/ExtractTimezoneOffsetRefiner.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/refiners/ExtractTimezoneOffsetRefiner.js b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/refiners/ExtractTimezoneOffsetRefiner.js
new file mode 100644
index 00000000..15d7f614
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/chrono-node/src/refiners/ExtractTimezoneOffsetRefiner.js
@@ -0,0 +1,46 @@
+/*
+
+*/
+var Refiner = require('./refiner').Refiner;
+
+
+var TIMEZONE_OFFSET_PATTERN = new RegExp("^\\s*(GMT|UTC)?(\\+|\\-)(\\d{1,2}):?(\\d{2})", 'i');
+var TIMEZONE_OFFSET_SIGN_GROUP = 2;
+var TIMEZONE_OFFSET_HOUR_OFFSET_GROUP = 3;
+var TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP = 4;
+
+exports.Refiner = function ExtractTimezoneOffsetRefiner() {
+ Refiner.call(this);
+
+ this.refine = function(text, results, opt) {
+
+ results.forEach(function(result) {
+
+ if (result.start.isCertain('timezoneOffset')) {
+ return;
+ }
+
+ var match = TIMEZONE_OFFSET_PATTERN.exec(text.substring(result.index + result.text.length));
+ if (!match) {
+ return;
+ }
+
+ var hourOffset = parseInt(match[TIMEZONE_OFFSET_HOUR_OFFSET_GROUP]);
+ var minuteOffset = parseInt(match[TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP]);
+ var timezoneOffset = hourOffset * 60 + minuteOffset;
+ if (match[TIMEZONE_OFFSET_SIGN_GROUP] === '-') {
+ timezoneOffset = -timezoneOffset;
+ }
+
+ if (result.end != null) {
+ result.end.assign('timezoneOffset', timezoneOffset);
+ }
+
+ result.start.assign('timezoneOffset', timezoneOffset);
+ result.text += match[0];
+ result.tags['ExtractTimezoneOffsetRefiner'] = true;
+ });
+
+ return results;
+ }
+}