UNPKG

@sugarcube/plugin-google

Version:

A plugin for SugarCube to interact with some google services.

99 lines (79 loc) 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.maybeDate = exports.htmlP = exports.html = exports.browse = exports.promisify = exports.urlify = void 0; var _fp = require("lodash/fp"); var _nightmare = _interopRequireDefault(require("nightmare")); var _moment = _interopRequireDefault(require("moment")); var _url = require("url"); var _querystring = _interopRequireDefault(require("querystring")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } require("nightmare-upload")(_nightmare.default); const urlify = (0, _fp.curry)((params, url) => { const u = new _url.URL((0, _fp.trimCharsEnd)("/", url)); u.search = _querystring.default.stringify(params); return u.toString(); }); exports.urlify = urlify; const promisify = (0, _fp.curry)((f, p) => Promise.resolve(p).then(f)); exports.promisify = promisify; const browse = (0, _fp.curry)((show, url) => { const nightmare = (0, _nightmare.default)({ show }); return nightmare.goto(url); }); exports.browse = browse; const html = n => n.end().evaluate(() => document.body.innerHTML); // eslint-disable-line no-undef exports.html = html; const htmlP = promisify(html); exports.htmlP = htmlP; const maybeDate = string => { let date; if (!string) return date; try { // See: // - https://en.wikipedia.org/wiki/Date_format_by_country // - https://en.wikipedia.org/wiki/Date_and_time_representation_by_country switch (string) { // little-endian, German format case string.indexOf(".") > -1 ? string : null: { date = _moment.default.utc(string, "DD.MM.YYYY").toDate(); break; } // little-endian, gregorian/julian case string.indexOf("-") === 2 ? string : null: { date = _moment.default.utc(string, "DD-MM-YYYY").toDate(); break; } // middle-endian, US format case string.indexOf(",") > -1 ? string : null: { date = _moment.default.utc(string, "MMM DD, YYYY").toDate(); break; } // big-endian, ISO8601 format case string.indexOf("-") === 4 ? string : null: { date = _moment.default.utc(string).toDate(); break; } default: break; } } catch (e) {// do nothing is there is an error. } return date; }; exports.maybeDate = maybeDate; var _default = { urlify, browse, html, htmlP, maybeDate }; exports.default = _default;