@sugarcube/plugin-google
Version:
A plugin for SugarCube to interact with some google services.
99 lines (79 loc) • 2.54 kB
JavaScript
;
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;