warStatsGenerator.js should make only one http request to the API for conquers

This commit is contained in:
Dawid Wysokiński 2020-08-16 15:49:32 +02:00
parent 3d46e660c9
commit 4496229656
3 changed files with 19 additions and 31 deletions

File diff suppressed because one or more lines are too long

View File

@ -279,7 +279,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js
// @version 0.2.7
// @version 0.3.0
// @description War stats generator
// @author Kichiyaki http://dawid-wysokinski.pl/
// @match *://*/game.php*screen=ranking*mode=wars*
@ -295,7 +295,7 @@ const TO_INPUT_ID = 'to';
const FROM_INPUT_ID = 'from';
const RESULT_CONTAINER_ID = 'warStatsResult';
const TRIBES_QUERY = "\n query tribes($server: String!, $filter: TribeFilter) {\n tribes(server: $server, filter: $filter) {\n items {\n id\n tag\n }\n }\n }\n";
const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter) {\n ennoblements(server: $server, filter: $filter) {\n total\n }\n }\n";
const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $sideOneFilter: EnnoblementFilter, $sideTwoFilter: EnnoblementFilter) {\n sideOneEnnoblements: ennoblements(server: $server, filter: $sideOneFilter) {\n total\n }\n sideTwoEnnoblements: ennoblements(server: $server, filter: $sideTwoFilter) {\n total\n }\n }\n";
const translations = (0, _warStatsGenerator.default)();
const showResult = function showResult() {
@ -365,28 +365,20 @@ const handleFormSubmit = async e => {
});
const sideOneTribes = tribes.items.filter(item => sideOneTags.some(tag => item.tag === tag)).map(tribe => tribe.id);
const sideTwoTribes = tribes.items.filter(item => sideTwoTags.some(tag => item.tag === tag)).map(tribe => tribe.id);
console.log(sideOneTribes, sideTwoTribes);
const {
ennoblements: sideOneEnnoblements
sideOneEnnoblements,
sideTwoEnnoblements
} = await (0, _requestCreator.default)({
query: ENNOBLEMENTS_QUERY,
variables: {
server: SERVER,
filter: {
sideOneFilter: {
newOwnerTribeID: sideOneTribes,
oldOwnerTribeID: sideTwoTribes,
ennobledAtGTE,
ennobledAtLTE
}
}
});
const {
ennoblements: sideTwoEnnoblements
} = await (0, _requestCreator.default)({
query: ENNOBLEMENTS_QUERY,
variables: {
server: SERVER,
filter: {
},
sideTwoFilter: {
newOwnerTribeID: sideTwoTribes,
oldOwnerTribeID: sideOneTribes,
ennobledAtGTE,
@ -406,7 +398,7 @@ const handleFormSubmit = async e => {
};
const showWarStatsForm = e => {
const html = "\n <form>\n <div id=\"".concat(RESULT_CONTAINER_ID, "\">\n </div>\n <div style=\"margin-bottom: 10px;\">\n <div id=\"").concat(FROM_INPUT_ID, "\">\n <label>").concat(translations.from, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n <div id=\"").concat(TO_INPUT_ID, "\">\n <label>").concat(translations.to, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n </div>\n <div style=\"display: flex; justify-content: space-between; margin-bottom: 10px;\">\n <div>\n <h3>").concat(translations.sideOne, "</h3>\n <div id=\"").concat(SIDE_ONE_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_ONE_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n <div style=\"margin: 0 5px;\"></div>\n <div>\n <h3>").concat(translations.sideTwo, "</h3>\n <div id=\"").concat(SIDE_TWO_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_TWO_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n </div>\n <div style=\"text-align: center;\">\n <button class=\"btn\" type=\"submit\">").concat(translations.generateWarStats, "</button>\n </div>\n </form>\n ");
const html = "\n <form>\n <div id=\"".concat(RESULT_CONTAINER_ID, "\">\n </div>\n <div style=\"margin-bottom: 10px;\">\n <div id=\"").concat(FROM_INPUT_ID, "\">\n <label>").concat(translations.from, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n <div id=\"").concat(TO_INPUT_ID, "\">\n <label>").concat(translations.to, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n </div>\n <div style=\"display: flex; justify-content: space-between; margin-bottom: 10px; min-width: 800px;\">\n <div>\n <h3>").concat(translations.sideOne, "</h3>\n <div id=\"").concat(SIDE_ONE_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_ONE_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n <div style=\"margin: 0 5px;\"></div>\n <div>\n <h3>").concat(translations.sideTwo, "</h3>\n <div id=\"").concat(SIDE_TWO_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_TWO_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n </div>\n <div style=\"text-align: center;\">\n <button class=\"btn\" type=\"submit\">").concat(translations.generateWarStats, "</button>\n </div>\n </form>\n ");
(0, _showPopup.default)({
title: translations.warStatsGenerator,
id: 'warStats',

View File

@ -8,7 +8,7 @@ import showPopup, { POPUP_SELECTOR } from './utils/showPopup';
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js
// @version 0.2.7
// @version 0.3.0
// @description War stats generator
// @author Kichiyaki http://dawid-wysokinski.pl/
// @match *://*/game.php*screen=ranking*mode=wars*
@ -35,8 +35,11 @@ const TRIBES_QUERY = `
}
`;
const ENNOBLEMENTS_QUERY = `
query ennoblements($server: String!, $filter: EnnoblementFilter) {
ennoblements(server: $server, filter: $filter) {
query ennoblements($server: String!, $sideOneFilter: EnnoblementFilter, $sideTwoFilter: EnnoblementFilter) {
sideOneEnnoblements: ennoblements(server: $server, filter: $sideOneFilter) {
total
}
sideTwoEnnoblements: ennoblements(server: $server, filter: $sideTwoFilter) {
total
}
}
@ -139,25 +142,18 @@ const handleFormSubmit = async (e) => {
const sideTwoTribes = tribes.items
.filter((item) => sideTwoTags.some((tag) => item.tag === tag))
.map((tribe) => tribe.id);
console.log(sideOneTribes, sideTwoTribes);
const { ennoblements: sideOneEnnoblements } = await requestCreator({
const { sideOneEnnoblements, sideTwoEnnoblements } = await requestCreator({
query: ENNOBLEMENTS_QUERY,
variables: {
server: SERVER,
filter: {
sideOneFilter: {
newOwnerTribeID: sideOneTribes,
oldOwnerTribeID: sideTwoTribes,
ennobledAtGTE,
ennobledAtLTE,
},
},
});
const { ennoblements: sideTwoEnnoblements } = await requestCreator({
query: ENNOBLEMENTS_QUERY,
variables: {
server: SERVER,
filter: {
sideTwoFilter: {
newOwnerTribeID: sideTwoTribes,
oldOwnerTribeID: sideOneTribes,
ennobledAtGTE,
@ -198,7 +194,7 @@ const showWarStatsForm = (e) => {
<input type="time" required />
</div>
</div>
<div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
<div style="display: flex; justify-content: space-between; margin-bottom: 10px; min-width: 800px;">
<div>
<h3>${translations.sideOne}</h3>
<div id="${SIDE_ONE_INPUT_CONTAINER_ID}">