add 'Todays stats' section to extendedTribeProfile
This commit is contained in:
parent
1a6e1b8220
commit
67e298ad62
73
dist/extendedPlayerProfile.js
vendored
73
dist/extendedPlayerProfile.js
vendored
|
@ -352,7 +352,52 @@ var _default = function _default() {
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.default = _default;
|
exports.default = _default;
|
||||||
},{}],"fCHX":[function(require,module,exports) {
|
},{}],"yQib":[function(require,module,exports) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _default = v => v === undefined || v === null;
|
||||||
|
|
||||||
|
exports.default = _default;
|
||||||
|
},{}],"dPMc":[function(require,module,exports) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _isNil = _interopRequireDefault(require("./isNil"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const getTodaysStatsTdStyle = value => {
|
||||||
|
const statIncreaseStyle = 'color: #000; background-color: #0f0';
|
||||||
|
const statDecreaseStyle = 'color: #000; background-color: #f00';
|
||||||
|
const defaultStyle = 'color: #000; background-color: #808080';
|
||||||
|
return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle;
|
||||||
|
};
|
||||||
|
|
||||||
|
var _default = (container, stats) => {
|
||||||
|
let todaysStats = container.querySelector('#todaysStats');
|
||||||
|
|
||||||
|
if (!todaysStats) {
|
||||||
|
todaysStats = document.createElement('div');
|
||||||
|
todaysStats.id = 'todaysStats';
|
||||||
|
todaysStats.width = '100%';
|
||||||
|
container.prepend(todaysStats);
|
||||||
|
}
|
||||||
|
|
||||||
|
const renderODS = !(0, _isNil.default)(stats.rankSup);
|
||||||
|
todaysStats.innerHTML = "\n <table width=\"100%\" class=\"vis\">\n <tbody>\n <tr>\n <th colspan=\"2\">\n Today's stats\n </th>\n </tr>\n <tr>\n <td>\n Points:\n </td>\n <td style=\"".concat(getTodaysStatsTdStyle(stats.points), "\">\n ").concat(Math.abs(stats.points).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rank), "\">\n ").concat(Math.abs(stats.rank), "\n </td>\n </tr>\n <tr>\n <td>\n Villages:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.villages), "\">\n ").concat(Math.abs(stats.villages).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODA:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreAtt), "\">\n ").concat(Math.abs(stats.scoreAtt).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODA Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankAtt), "\">\n ").concat(Math.abs(stats.rankAtt), "\n </td>\n </tr>\n <tr>\n <td>\n ODD:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreDef), "\">\n ").concat(Math.abs(stats.scoreDef).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODD Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankDef), "\">\n ").concat(Math.abs(stats.rankDef), "\n </td>\n </tr>\n ").concat(renderODS ? "<tr>\n <td>\n ODS:\n </td>\n <td style=\"".concat(getTodaysStatsTdStyle(stats.scoreSup), "\">\n ").concat(Math.abs(stats.scoreSup).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODS Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankSup), "\">\n ").concat(Math.abs(stats.rankSup), "\n </td>\n </tr>") : '', "\n <tr>\n <td>\n OD:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreTotal), "\">\n ").concat(Math.abs(stats.scoreTotal).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n OD Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankTotal), "\">\n ").concat(Math.abs(stats.rankTotal), "\n </td>\n </tr>\n </tbody>\n </table>\n ");
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.default = _default;
|
||||||
|
},{"./isNil":"yQib"}],"fCHX":[function(require,module,exports) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
@ -716,6 +761,8 @@ var _subDays = _interopRequireDefault(require("date-fns/subDays"));
|
||||||
|
|
||||||
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
|
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
|
||||||
|
|
||||||
|
var _renderTodaysStats = _interopRequireDefault(require("./utils/renderTodaysStats"));
|
||||||
|
|
||||||
var _pagination = require("./utils/pagination");
|
var _pagination = require("./utils/pagination");
|
||||||
|
|
||||||
var _getIDFromURL = _interopRequireDefault(require("./utils/getIDFromURL"));
|
var _getIDFromURL = _interopRequireDefault(require("./utils/getIDFromURL"));
|
||||||
|
@ -889,26 +936,6 @@ const renderPlayerOtherNames = player => {
|
||||||
}).join(''), "\n </tbody>\n </table>\n ");
|
}).join(''), "\n </tbody>\n </table>\n ");
|
||||||
};
|
};
|
||||||
|
|
||||||
const getTodaysStatsTdStyle = value => {
|
|
||||||
const statIncreaseStyle = 'color: #000; background-color: #0f0';
|
|
||||||
const statDecreaseStyle = 'color: #000; background-color: #f00';
|
|
||||||
const defaultStyle = 'color: #000; background-color: #808080';
|
|
||||||
return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle;
|
|
||||||
};
|
|
||||||
|
|
||||||
const renderTodaysStats = stats => {
|
|
||||||
let todaysStats = document.querySelector('#todaysStats');
|
|
||||||
|
|
||||||
if (!todaysStats) {
|
|
||||||
todaysStats = document.createElement('div');
|
|
||||||
todaysStats.id = 'todaysStats';
|
|
||||||
todaysStats.width = '100%';
|
|
||||||
otherElementsContainer.prepend(todaysStats);
|
|
||||||
}
|
|
||||||
|
|
||||||
todaysStats.innerHTML = "\n <table width=\"100%\" class=\"vis\">\n <tbody>\n <tr>\n <th colspan=\"2\">\n Today's stats\n </th>\n </tr>\n <tr>\n <td>\n Points:\n </td>\n <td style=\"".concat(getTodaysStatsTdStyle(stats.points), "\">\n ").concat(Math.abs(stats.points).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rank), "\">\n ").concat(Math.abs(stats.rank), "\n </td>\n </tr>\n <tr>\n <td>\n Villages:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.villages), "\">\n ").concat(Math.abs(stats.villages).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODA:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreAtt), "\">\n ").concat(Math.abs(stats.scoreAtt).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODA Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankAtt), "\">\n ").concat(Math.abs(stats.rankAtt), "\n </td>\n </tr>\n <tr>\n <td>\n ODD:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreDef), "\">\n ").concat(Math.abs(stats.scoreDef).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODD Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankDef), "\">\n ").concat(Math.abs(stats.rankDef), "\n </td>\n </tr>\n <tr>\n <td>\n ODS:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreSup), "\">\n ").concat(Math.abs(stats.scoreSup).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODS Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankSup), "\">\n ").concat(Math.abs(stats.rankSup), "\n </td>\n </tr>\n <tr>\n <td>\n OD:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreTotal), "\">\n ").concat(Math.abs(stats.scoreTotal).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n OD Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankTotal), "\">\n ").concat(Math.abs(stats.rankTotal), "\n </td>\n </tr>\n </tbody>\n </table>\n ");
|
|
||||||
};
|
|
||||||
|
|
||||||
const renderInADayRanks = player => {
|
const renderInADayRanks = player => {
|
||||||
let inADayRanks = document.querySelector('#inADayRanks');
|
let inADayRanks = document.querySelector('#inADayRanks');
|
||||||
|
|
||||||
|
@ -953,7 +980,7 @@ const render = (_ref2) => {
|
||||||
renderInADayRanks(player);
|
renderInADayRanks(player);
|
||||||
|
|
||||||
if (dailyPlayerStats && dailyPlayerStats.items.length > 0) {
|
if (dailyPlayerStats && dailyPlayerStats.items.length > 0) {
|
||||||
renderTodaysStats(dailyPlayerStats.items[0]);
|
(0, _renderTodaysStats.default)(otherElementsContainer, dailyPlayerStats.items[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.nameChanges.length > 0) {
|
if (player.nameChanges.length > 0) {
|
||||||
|
@ -1214,4 +1241,4 @@ const renderActions = () => {
|
||||||
console.log('extended player profile', error);
|
console.log('extended player profile', error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
},{"date-fns/subDays":"mRRL","./libs/requestCreator":"Ph2E","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/formatDate":"V6Mf","./utils/renderPopup":"P4rL","./utils/twstats":"Syko","./utils/tribalwars":"fHHP","./utils/localStorage":"KWxH"}]},{},["yRop"], null)
|
},{"date-fns/subDays":"mRRL","./libs/requestCreator":"Ph2E","./utils/renderTodaysStats":"dPMc","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/formatDate":"V6Mf","./utils/renderPopup":"P4rL","./utils/twstats":"Syko","./utils/tribalwars":"fHHP","./utils/localStorage":"KWxH"}]},{},["yRop"], null)
|
68
dist/extendedTribeProfile.js
vendored
68
dist/extendedTribeProfile.js
vendored
|
@ -158,7 +158,52 @@ var _default = function _default() {
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.default = _default;
|
exports.default = _default;
|
||||||
},{}],"tQUs":[function(require,module,exports) {
|
},{}],"yQib":[function(require,module,exports) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _default = v => v === undefined || v === null;
|
||||||
|
|
||||||
|
exports.default = _default;
|
||||||
|
},{}],"dPMc":[function(require,module,exports) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
var _isNil = _interopRequireDefault(require("./isNil"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const getTodaysStatsTdStyle = value => {
|
||||||
|
const statIncreaseStyle = 'color: #000; background-color: #0f0';
|
||||||
|
const statDecreaseStyle = 'color: #000; background-color: #f00';
|
||||||
|
const defaultStyle = 'color: #000; background-color: #808080';
|
||||||
|
return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle;
|
||||||
|
};
|
||||||
|
|
||||||
|
var _default = (container, stats) => {
|
||||||
|
let todaysStats = container.querySelector('#todaysStats');
|
||||||
|
|
||||||
|
if (!todaysStats) {
|
||||||
|
todaysStats = document.createElement('div');
|
||||||
|
todaysStats.id = 'todaysStats';
|
||||||
|
todaysStats.width = '100%';
|
||||||
|
container.prepend(todaysStats);
|
||||||
|
}
|
||||||
|
|
||||||
|
const renderODS = !(0, _isNil.default)(stats.rankSup);
|
||||||
|
todaysStats.innerHTML = "\n <table width=\"100%\" class=\"vis\">\n <tbody>\n <tr>\n <th colspan=\"2\">\n Today's stats\n </th>\n </tr>\n <tr>\n <td>\n Points:\n </td>\n <td style=\"".concat(getTodaysStatsTdStyle(stats.points), "\">\n ").concat(Math.abs(stats.points).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rank), "\">\n ").concat(Math.abs(stats.rank), "\n </td>\n </tr>\n <tr>\n <td>\n Villages:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.villages), "\">\n ").concat(Math.abs(stats.villages).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODA:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreAtt), "\">\n ").concat(Math.abs(stats.scoreAtt).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODA Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankAtt), "\">\n ").concat(Math.abs(stats.rankAtt), "\n </td>\n </tr>\n <tr>\n <td>\n ODD:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreDef), "\">\n ").concat(Math.abs(stats.scoreDef).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODD Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankDef), "\">\n ").concat(Math.abs(stats.rankDef), "\n </td>\n </tr>\n ").concat(renderODS ? "<tr>\n <td>\n ODS:\n </td>\n <td style=\"".concat(getTodaysStatsTdStyle(stats.scoreSup), "\">\n ").concat(Math.abs(stats.scoreSup).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n ODS Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankSup), "\">\n ").concat(Math.abs(stats.rankSup), "\n </td>\n </tr>") : '', "\n <tr>\n <td>\n OD:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.scoreTotal), "\">\n ").concat(Math.abs(stats.scoreTotal).toLocaleString(), "\n </td>\n </tr>\n <tr>\n <td>\n OD Rank:\n </td>\n <td style=\"").concat(getTodaysStatsTdStyle(stats.rankTotal), "\">\n ").concat(Math.abs(stats.rankTotal), "\n </td>\n </tr>\n </tbody>\n </table>\n ");
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.default = _default;
|
||||||
|
},{"./isNil":"yQib"}],"tQUs":[function(require,module,exports) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
@ -231,6 +276,8 @@ exports.default = _default;
|
||||||
|
|
||||||
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
|
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
|
||||||
|
|
||||||
|
var _renderTodaysStats = _interopRequireDefault(require("./utils/renderTodaysStats"));
|
||||||
|
|
||||||
var _getIDFromURL = _interopRequireDefault(require("./utils/getIDFromURL"));
|
var _getIDFromURL = _interopRequireDefault(require("./utils/getIDFromURL"));
|
||||||
|
|
||||||
var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer"));
|
var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer"));
|
||||||
|
@ -256,8 +303,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
||||||
const SERVER = (0, _getCurrentServer.default)();
|
const SERVER = (0, _getCurrentServer.default)();
|
||||||
const TRIBE_ID = (0, _getIDFromURL.default)(window.location.search);
|
const TRIBE_ID = (0, _getIDFromURL.default)(window.location.search);
|
||||||
const LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + TRIBE_ID;
|
const LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + TRIBE_ID;
|
||||||
const TRIBE_QUERY = "\n query tribe($server: String!, $id: Int!) {\n tribe(server: $server, id: $id) {\n id\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n createdAt\n dominance\n }\n }\n";
|
const TRIBE_QUERY = "\n query tribe($server: String!, $id: Int!, $dailyTribeStatsFilter: DailyTribeStatsFilter!) {\n tribe(server: $server, id: $id) {\n id\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n createdAt\n dominance\n }\n dailyTribeStats(server: $server, filter: $dailyTribeStatsFilter) {\n items {\n rank\n rankAtt\n rankDef\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreTotal\n villages\n }\n }\n }\n";
|
||||||
const profileInfoTBody = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody');
|
const profileInfoTBody = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody');
|
||||||
|
const otherElementsContainer = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)');
|
||||||
|
|
||||||
const loadDataFromCache = () => {
|
const loadDataFromCache = () => {
|
||||||
return (0, _localStorage.getItem)(LOCAL_STORAGE_KEY);
|
return (0, _localStorage.getItem)(LOCAL_STORAGE_KEY);
|
||||||
|
@ -273,7 +321,12 @@ const loadData = async () => {
|
||||||
query: TRIBE_QUERY,
|
query: TRIBE_QUERY,
|
||||||
variables: {
|
variables: {
|
||||||
server: SERVER,
|
server: SERVER,
|
||||||
id: TRIBE_ID
|
id: TRIBE_ID,
|
||||||
|
dailyTribeStatsFilter: {
|
||||||
|
sort: 'createDate DESC',
|
||||||
|
limit: 1,
|
||||||
|
tribeID: [TRIBE_ID]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
cacheTribeData(data);
|
cacheTribeData(data);
|
||||||
|
@ -302,7 +355,8 @@ const renderTr = (_ref) => {
|
||||||
|
|
||||||
const render = (_ref2) => {
|
const render = (_ref2) => {
|
||||||
let {
|
let {
|
||||||
tribe
|
tribe,
|
||||||
|
dailyTribeStats
|
||||||
} = _ref2;
|
} = _ref2;
|
||||||
[{
|
[{
|
||||||
title: 'Created at:',
|
title: 'Created at:',
|
||||||
|
@ -327,6 +381,10 @@ const render = (_ref2) => {
|
||||||
}].forEach(data => {
|
}].forEach(data => {
|
||||||
renderTr(data);
|
renderTr(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (dailyTribeStats && dailyTribeStats.items.length > 0) {
|
||||||
|
(0, _renderTodaysStats.default)(otherElementsContainer, dailyTribeStats.items[0]);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
(async function () {
|
(async function () {
|
||||||
|
@ -346,4 +404,4 @@ const render = (_ref2) => {
|
||||||
console.log('extended tribe profile', error);
|
console.log('extended tribe profile', error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
},{"./libs/requestCreator":"Ph2E","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/localStorage":"KWxH","./utils/formatDate":"V6Mf"}]},{},["r4nF"], null)
|
},{"./libs/requestCreator":"Ph2E","./utils/renderTodaysStats":"dPMc","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/localStorage":"KWxH","./utils/formatDate":"V6Mf"}]},{},["r4nF"], null)
|
|
@ -1,5 +1,6 @@
|
||||||
import subDays from 'date-fns/subDays';
|
import subDays from 'date-fns/subDays';
|
||||||
import requestCreator from './libs/requestCreator';
|
import requestCreator from './libs/requestCreator';
|
||||||
|
import renderTodaysStats from './utils/renderTodaysStats';
|
||||||
import { generatePaginationItems, setPage, getPage } from './utils/pagination';
|
import { generatePaginationItems, setPage, getPage } from './utils/pagination';
|
||||||
import getIDFromURL from './utils/getIDFromURL';
|
import getIDFromURL from './utils/getIDFromURL';
|
||||||
import getCurrentServer from './utils/getCurrentServer';
|
import getCurrentServer from './utils/getCurrentServer';
|
||||||
|
@ -334,128 +335,6 @@ const renderPlayerOtherNames = (player) => {
|
||||||
`;
|
`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getTodaysStatsTdStyle = (value) => {
|
|
||||||
const statIncreaseStyle = 'color: #000; background-color: #0f0';
|
|
||||||
const statDecreaseStyle = 'color: #000; background-color: #f00';
|
|
||||||
const defaultStyle = 'color: #000; background-color: #808080';
|
|
||||||
|
|
||||||
return value > 0
|
|
||||||
? statIncreaseStyle
|
|
||||||
: value < 0
|
|
||||||
? statDecreaseStyle
|
|
||||||
: defaultStyle;
|
|
||||||
};
|
|
||||||
|
|
||||||
const renderTodaysStats = (stats) => {
|
|
||||||
let todaysStats = document.querySelector('#todaysStats');
|
|
||||||
if (!todaysStats) {
|
|
||||||
todaysStats = document.createElement('div');
|
|
||||||
todaysStats.id = 'todaysStats';
|
|
||||||
todaysStats.width = '100%';
|
|
||||||
otherElementsContainer.prepend(todaysStats);
|
|
||||||
}
|
|
||||||
|
|
||||||
todaysStats.innerHTML = `
|
|
||||||
<table width="100%" class="vis">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th colspan="2">
|
|
||||||
Today's stats
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
Points:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.points)}">
|
|
||||||
${Math.abs(stats.points).toLocaleString()}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
Rank:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.rank)}">
|
|
||||||
${Math.abs(stats.rank)}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
Villages:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.villages)}">
|
|
||||||
${Math.abs(stats.villages).toLocaleString()}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
ODA:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.scoreAtt)}">
|
|
||||||
${Math.abs(stats.scoreAtt).toLocaleString()}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
ODA Rank:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.rankAtt)}">
|
|
||||||
${Math.abs(stats.rankAtt)}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
ODD:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.scoreDef)}">
|
|
||||||
${Math.abs(stats.scoreDef).toLocaleString()}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
ODD Rank:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.rankDef)}">
|
|
||||||
${Math.abs(stats.rankDef)}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
ODS:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.scoreSup)}">
|
|
||||||
${Math.abs(stats.scoreSup).toLocaleString()}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
ODS Rank:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.rankSup)}">
|
|
||||||
${Math.abs(stats.rankSup)}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
OD:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.scoreTotal)}">
|
|
||||||
${Math.abs(stats.scoreTotal).toLocaleString()}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
OD Rank:
|
|
||||||
</td>
|
|
||||||
<td style="${getTodaysStatsTdStyle(stats.rankTotal)}">
|
|
||||||
${Math.abs(stats.rankTotal)}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
`;
|
|
||||||
};
|
|
||||||
|
|
||||||
const renderInADayRanks = (player) => {
|
const renderInADayRanks = (player) => {
|
||||||
let inADayRanks = document.querySelector('#inADayRanks');
|
let inADayRanks = document.querySelector('#inADayRanks');
|
||||||
if (!inADayRanks) {
|
if (!inADayRanks) {
|
||||||
|
@ -585,7 +464,7 @@ const render = ({ player, dailyPlayerStats }) => {
|
||||||
|
|
||||||
renderInADayRanks(player);
|
renderInADayRanks(player);
|
||||||
if (dailyPlayerStats && dailyPlayerStats.items.length > 0) {
|
if (dailyPlayerStats && dailyPlayerStats.items.length > 0) {
|
||||||
renderTodaysStats(dailyPlayerStats.items[0]);
|
renderTodaysStats(otherElementsContainer, dailyPlayerStats.items[0]);
|
||||||
}
|
}
|
||||||
if (player.nameChanges.length > 0) {
|
if (player.nameChanges.length > 0) {
|
||||||
renderPlayerOtherNames(player);
|
renderPlayerOtherNames(player);
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import requestCreator from './libs/requestCreator';
|
import requestCreator from './libs/requestCreator';
|
||||||
|
import renderTodaysStats from './utils/renderTodaysStats';
|
||||||
import getIDFromURL from './utils/getIDFromURL';
|
import getIDFromURL from './utils/getIDFromURL';
|
||||||
import getCurrentServer from './utils/getCurrentServer';
|
import getCurrentServer from './utils/getCurrentServer';
|
||||||
import { setItem, getItem } from './utils/localStorage';
|
import { setItem, getItem } from './utils/localStorage';
|
||||||
|
@ -21,7 +22,7 @@ const SERVER = getCurrentServer();
|
||||||
const TRIBE_ID = getIDFromURL(window.location.search);
|
const TRIBE_ID = getIDFromURL(window.location.search);
|
||||||
const LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + TRIBE_ID;
|
const LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + TRIBE_ID;
|
||||||
const TRIBE_QUERY = `
|
const TRIBE_QUERY = `
|
||||||
query tribe($server: String!, $id: Int!) {
|
query tribe($server: String!, $id: Int!, $dailyTribeStatsFilter: DailyTribeStatsFilter!) {
|
||||||
tribe(server: $server, id: $id) {
|
tribe(server: $server, id: $id) {
|
||||||
id
|
id
|
||||||
bestRank
|
bestRank
|
||||||
|
@ -33,11 +34,28 @@ const TRIBE_QUERY = `
|
||||||
createdAt
|
createdAt
|
||||||
dominance
|
dominance
|
||||||
}
|
}
|
||||||
|
dailyTribeStats(server: $server, filter: $dailyTribeStatsFilter) {
|
||||||
|
items {
|
||||||
|
rank
|
||||||
|
rankAtt
|
||||||
|
rankDef
|
||||||
|
rankTotal
|
||||||
|
points
|
||||||
|
scoreAtt
|
||||||
|
scoreAtt
|
||||||
|
scoreDef
|
||||||
|
scoreTotal
|
||||||
|
villages
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
const profileInfoTBody = document.querySelector(
|
const profileInfoTBody = document.querySelector(
|
||||||
'#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody'
|
'#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody'
|
||||||
);
|
);
|
||||||
|
const otherElementsContainer = document.querySelector(
|
||||||
|
'#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)'
|
||||||
|
);
|
||||||
|
|
||||||
const loadDataFromCache = () => {
|
const loadDataFromCache = () => {
|
||||||
return getItem(LOCAL_STORAGE_KEY);
|
return getItem(LOCAL_STORAGE_KEY);
|
||||||
|
@ -53,6 +71,11 @@ const loadData = async () => {
|
||||||
variables: {
|
variables: {
|
||||||
server: SERVER,
|
server: SERVER,
|
||||||
id: TRIBE_ID,
|
id: TRIBE_ID,
|
||||||
|
dailyTribeStatsFilter: {
|
||||||
|
sort: 'createDate DESC',
|
||||||
|
limit: 1,
|
||||||
|
tribeID: [TRIBE_ID],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
cacheTribeData(data);
|
cacheTribeData(data);
|
||||||
|
@ -72,7 +95,7 @@ const renderTr = ({ title, data, id }) => {
|
||||||
tr.children[1].innerHTML = data;
|
tr.children[1].innerHTML = data;
|
||||||
};
|
};
|
||||||
|
|
||||||
const render = ({ tribe }) => {
|
const render = ({ tribe, dailyTribeStats }) => {
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
title: 'Created at:',
|
title: 'Created at:',
|
||||||
|
@ -105,6 +128,10 @@ const render = ({ tribe }) => {
|
||||||
].forEach((data) => {
|
].forEach((data) => {
|
||||||
renderTr(data);
|
renderTr(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (dailyTribeStats && dailyTribeStats.items.length > 0) {
|
||||||
|
renderTodaysStats(otherElementsContainer, dailyTribeStats.items[0]);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
(async function () {
|
(async function () {
|
||||||
|
|
1
src/utils/isNil.js
Normal file
1
src/utils/isNil.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export default (v) => v === undefined || v === null;
|
128
src/utils/renderTodaysStats.js
Normal file
128
src/utils/renderTodaysStats.js
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
import isNil from './isNil';
|
||||||
|
|
||||||
|
const getTodaysStatsTdStyle = (value) => {
|
||||||
|
const statIncreaseStyle = 'color: #000; background-color: #0f0';
|
||||||
|
const statDecreaseStyle = 'color: #000; background-color: #f00';
|
||||||
|
const defaultStyle = 'color: #000; background-color: #808080';
|
||||||
|
|
||||||
|
return value > 0
|
||||||
|
? statIncreaseStyle
|
||||||
|
: value < 0
|
||||||
|
? statDecreaseStyle
|
||||||
|
: defaultStyle;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default (container, stats) => {
|
||||||
|
let todaysStats = container.querySelector('#todaysStats');
|
||||||
|
if (!todaysStats) {
|
||||||
|
todaysStats = document.createElement('div');
|
||||||
|
todaysStats.id = 'todaysStats';
|
||||||
|
todaysStats.width = '100%';
|
||||||
|
container.prepend(todaysStats);
|
||||||
|
}
|
||||||
|
|
||||||
|
const renderODS = !isNil(stats.rankSup);
|
||||||
|
todaysStats.innerHTML = `
|
||||||
|
<table width="100%" class="vis">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">
|
||||||
|
Today's stats
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Points:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.points)}">
|
||||||
|
${Math.abs(stats.points).toLocaleString()}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Rank:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.rank)}">
|
||||||
|
${Math.abs(stats.rank)}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Villages:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.villages)}">
|
||||||
|
${Math.abs(stats.villages).toLocaleString()}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
ODA:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.scoreAtt)}">
|
||||||
|
${Math.abs(stats.scoreAtt).toLocaleString()}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
ODA Rank:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.rankAtt)}">
|
||||||
|
${Math.abs(stats.rankAtt)}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
ODD:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.scoreDef)}">
|
||||||
|
${Math.abs(stats.scoreDef).toLocaleString()}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
ODD Rank:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.rankDef)}">
|
||||||
|
${Math.abs(stats.rankDef)}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
${
|
||||||
|
renderODS
|
||||||
|
? `<tr>
|
||||||
|
<td>
|
||||||
|
ODS:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.scoreSup)}">
|
||||||
|
${Math.abs(stats.scoreSup).toLocaleString()}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
ODS Rank:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.rankSup)}">
|
||||||
|
${Math.abs(stats.rankSup)}
|
||||||
|
</td>
|
||||||
|
</tr>`
|
||||||
|
: ''
|
||||||
|
}
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
OD:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.scoreTotal)}">
|
||||||
|
${Math.abs(stats.scoreTotal).toLocaleString()}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
OD Rank:
|
||||||
|
</td>
|
||||||
|
<td style="${getTodaysStatsTdStyle(stats.rankTotal)}">
|
||||||
|
${Math.abs(stats.rankTotal)}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
`;
|
||||||
|
};
|
Reference in New Issue
Block a user