UNPKG

mstar-adsperformance

Version:

auto monitoring morningstar web pages ads performance

166 lines (140 loc) 5.38 kB
'use strict'; 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 _AdType = require('./AdType'); var _AdType2 = _interopRequireDefault(_AdType); 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 DataCenter = function () { function DataCenter() { _classCallCheck(this, DataCenter); this.pageUrls = {}; this.resultUrls = {}; } _createClass(DataCenter, [{ key: 'addUrls', value: function addUrls(url) { if (typeof this.pageUrls[url] === 'undefined') { this.pageUrls[url] = {}; 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; this.pageUrls[url][type] = []; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } } }, { key: 'pushData', value: function pushData(url, type, dataObject) { if (typeof this.pageUrls[url] === 'undefined') { return; } if (Array.isArray(this.pageUrls[url][type]) === false) { return; } this.pageUrls[url][type].push(dataObject); } }, { key: 'calculateData', value: function calculateData() { var _this = this; Object.keys(this.pageUrls).forEach(function (key) { var obj = _this.pageUrls[key]; var adTypes = _AdType2.default.getInstance().getAdTypes(); _this.resultUrls[key] = {}; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = adTypes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var type = _step2.value; var urlResultByAdType = _this.calculateDataForSpecificUrl(obj, type); _this.resultUrls[key][type] = urlResultByAdType; } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } }); return this.resultUrls; } }, { key: 'calculateDataForSpecificUrl', value: function calculateDataForSpecificUrl(page, type) { if (page[type] === null || typeof page[type] === 'undefined') { return; } var adArray = page[type]; var resultArray = []; var len = adArray.length; if (len === 0) { return; } resultArray = adArray[0]; var adInstanceLength = resultArray.length; for (var i = 1; i < len; i++) { if (adInstanceLength !== adArray[i].length) { console.log('Data loading incorrect, need check result, item number is: ', i); } for (var j = 0; j < adInstanceLength; j++) { resultArray[j] = this.assignObjectValue(resultArray[j], adArray[i][j]); } } resultArray.map(function (itemAd) { itemAd.generatetime = (Number(itemAd.generatetime) / len).toFixed(3); itemAd.setuptime = (Number(itemAd.setuptime) / len).toFixed(3); itemAd.rendertime = (Number(itemAd.rendertime) / len).toFixed(3); itemAd.renderadcontentstart = (Number(itemAd.renderadcontentstart) / len).toFixed(3); itemAd.renderadcontentend = (Number(itemAd.renderadcontentend) / len).toFixed(3); }); return resultArray; } }, { key: 'assignObjectValue', value: function assignObjectValue(targetObj, newObj) { // TODO make sure the instance will be order if (targetObj.dest === newObj.dest) { targetObj.generatetime = Number(targetObj.generatetime) + Number(newObj.generatetime); targetObj.setuptime = Number(targetObj.setuptime) + Number(newObj.setuptime); targetObj.rendertime = Number(targetObj.rendertime) + Number(newObj.rendertime); targetObj.renderadcontentstart = Number(targetObj.renderadcontentstart) + Number(newObj.renderadcontentstart); targetObj.renderadcontentend = Number(targetObj.renderadcontentend) + Number(newObj.renderadcontentend); } else { console.log("Ad object value is not match, check page source with Shone"); } return targetObj; } }]); return DataCenter; }(); exports.default = DataCenter;