mstar-adsperformance
Version:
auto monitoring morningstar web pages ads performance
158 lines (131 loc) • 4.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _cheerio = require('cheerio');
var _cheerio2 = _interopRequireDefault(_cheerio);
var _handlebars = require('handlebars');
var _handlebars2 = _interopRequireDefault(_handlebars);
var _AdType = require('./AdType');
var _AdType2 = _interopRequireDefault(_AdType);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var RenderResult = function () {
function RenderResult(data, config) {
_classCallCheck(this, RenderResult);
this.data = data;
this.config = config;
}
_createClass(RenderResult, [{
key: 'render',
value: function render() {
var _this = this;
var source = _fs2.default.readFileSync(_path2.default.join(__dirname, '/html/result.html'), 'utf8');
var $ = _cheerio2.default.load(source);
// this.addMDSStyle($);
// foreach Url
Object.keys(this.data).forEach(function (key) {
_this.addPageHead($, key);
_this.addPageTables($, _this.data[key]);
});
this.writeResult($);
return this;
}
}, {
key: 'addMDSStyle',
value: function addMDSStyle($) {
$('html >head').append('<link rel="stylesheet" type="text/css" href="' + process.env.INIT_CWD + '/dist/css/mds_doc_library.css">');
}
}, {
key: 'addPageHead',
value: function addPageHead($, title) {
$('.col-md-12').append('<h1 class="title">' + title + '</h1>');
}
}, {
key: 'addTableHead',
value: function addTableHead($, title) {
$('.col-md-12').append('<h4 class="title">' + title + '</h4>');
}
}, {
key: 'addPageTables',
value: function addPageTables($, dataObject) {
var tableSource = _fs2.default.readFileSync(_path2.default.join(__dirname, '/html/table.html'), 'utf8');
this.registerHandlebarsHelper();
var template = _handlebars2.default.compile(tableSource);
var adTypes = _AdType2.default.getInstance().getAdTypes();
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = adTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var type = _step.value;
var data = dataObject[type];
var resultTableHtml = template(data);
this.addTableHead($, type.toUpperCase() + ' Result');
$('.col-md-12').append(resultTableHtml);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
}, {
key: 'registerHandlebarsHelper',
value: function registerHandlebarsHelper() {
_handlebars2.default.registerHelper('isNumber', function (value, options) {
if (typeof value === 'number') {
return options.fn(this);
} else if (typeof value === 'string' && (value.match(/^-{0,1}\d+$/) || value.match(/^\d+\.\d+$/))) {
return options.fn(this);
}
return options.inverse(this);
});
}
}, {
key: 'writeResult',
value: function writeResult($) {
var outFileName = process.env.HOME + '/Documents/performance.html';
if (this.config.outfile !== null && this.config.outfile !== '') {
outFileName = _path2.default.resolve(this.config.outfile);
}
_fs2.default.writeFile(outFileName, $.html(), 'utf8', function (err) {
if (err) {
console.log(err);
throw err;
}
});
}
}, {
key: 'writeRealData',
value: function writeRealData(data) {
var folderPath = process.env.HOME + '/Documents/nativeData.json';
if (this.config.outfile !== null && this.config.outfile !== '') {
var outFileName = _path2.default.resolve(this.config.outfile);
folderPath = _path2.default.dirname(outFileName) + '/nativeData.json';
}
_fs2.default.writeFile(folderPath, JSON.stringify(data, null, 4), 'utf8', function (err) {
if (err) {
console.log(err);
throw err;
}
});
}
}]);
return RenderResult;
}();
exports.default = RenderResult;