chore: bump parcel from 1.12.4 to 2.0.0-beta.2

This commit is contained in:
Dawid Wysokiński 2021-06-12 07:26:55 +02:00
parent 9c3e7cad04
commit 5746d3b3d0
29 changed files with 9547 additions and 13409 deletions

4
.gitignore vendored
View File

@ -67,4 +67,6 @@ yarn-error.log
# Yarn Integrity file
.yarn-integrity
.idea
.idea
.parcel-cache

View File

@ -1,400 +1,211 @@
// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles
parcelRequire = (function (modules, cache, entry, globalName) {
// Save the require from previous bundle to this closure if any
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
var nodeRequire = typeof require === 'function' && require;
function newRequire(name, jumped) {
if (!cache[name]) {
if (!modules[name]) {
// if we cannot find the module within our internal map or
// cache jump to the current global require ie. the last bundle
// that was added to the page.
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
if (!jumped && currentRequire) {
return currentRequire(name, true);
}
// If there are other bundles on this page the require from the
// previous one is saved to 'previousRequire'. Repeat this as
// many times as there are bundles until the module is found or
// we exhaust the require chain.
if (previousRequire) {
return previousRequire(name, true);
}
// Try the node require function if it exists.
if (nodeRequire && typeof name === 'string') {
return nodeRequire(name);
}
var err = new Error('Cannot find module \'' + name + '\'');
err.code = 'MODULE_NOT_FOUND';
throw err;
}
localRequire.resolve = resolve;
localRequire.cache = {};
var module = cache[name] = new newRequire.Module(name);
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
}
return cache[name].exports;
function localRequire(x){
return newRequire(localRequire.resolve(x));
}
function resolve(x){
return modules[name][1][x] || x;
}
}
function Module(moduleName) {
this.id = moduleName;
this.bundle = newRequire;
this.exports = {};
}
newRequire.isParcelRequire = true;
newRequire.Module = Module;
newRequire.modules = modules;
newRequire.cache = cache;
newRequire.parent = previousRequire;
newRequire.register = function (id, exports) {
modules[id] = [function (require, module) {
module.exports = exports;
}, {}];
};
var error;
for (var i = 0; i < entry.length; i++) {
try {
newRequire(entry[i]);
} catch (e) {
// Save first error but execute all entries
if (!error) {
error = e;
}
}
}
if (entry.length) {
// Expose entry point to Node, AMD or browser globals
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
var mainExports = newRequire(entry[entry.length - 1]);
// CommonJS
if (typeof exports === "object" && typeof module !== "undefined") {
module.exports = mainExports;
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(function () {
return mainExports;
});
// <script>
} else if (globalName) {
this[globalName] = mainExports;
}
}
// Override the current require with this new one
parcelRequire = newRequire;
if (error) {
// throw error from earlier, _after updating parcelRequire_
throw error;
}
return newRequire;
})({"Ph2E":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.API_URI = void 0;
const API_URI = 'https://api.tribalwarshelp.com/graphql';
exports.API_URI = API_URI;
var _default = function _default() {
let {
query,
variables = {}
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return fetch(API_URI, {
method: 'POST',
body: JSON.stringify({
query,
variables
}),
headers: {
'Content-Type': 'application/json'
}
}).then(res => {
return res.json();
}).then((_ref) => {
let {
data,
errors
} = _ref;
if (errors && Array.isArray(errors) && errors.length > 0) {
throw new Error(errors[0].message);
}
return new Promise(resolve => resolve(data));
});
};
exports.default = _default;
},{}],"MRps":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const translations = {
pl_PL: {
actualCoords: 'Aktualne koordynaty',
searchBonusBarbarianVillages: 'Wyszukaj koczownicze',
village: 'Wioska',
distance: 'Dystans',
action: 'Akcja'
},
en_DK: {
actualCoords: 'Actual coords',
searchBonusBarbarianVillages: 'Search bonus barbarian villages',
village: 'Village',
distance: 'Distance',
action: 'Action'
},
de_DE: {
actualCoords: 'Aktuelle Koordinaten',
searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer',
village: 'Dorf',
distance: 'Distanz',
action: 'Aktion'
}
};
var _default = () => translations[window.game_data.locale] || translations.en_DK;
exports.default = _default;
},{}],"DMkL":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = () => window.location.host.split('.')[0];
exports.default = _default;
},{}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.buildTribeURL = buildTribeURL;
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.buildPlayerURL = buildPlayerURL;
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.buildVillageURL = buildVillageURL;
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
const continent = 'K' + String(y)[0] + String(x)[0];
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
const buildImgURL = img => {
return image_base + img;
};
exports.buildImgURL = buildImgURL;
},{}],"XOOL":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.calcDistanceBetweenTwoPoints = void 0;
const calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => {
const a = x1 - x2;
const b = y1 - y2;
return Math.sqrt(a * a + b * b);
};
exports.calcDistanceBetweenTwoPoints = calcDistanceBetweenTwoPoints;
},{}],"fvjy":[function(require,module,exports) {
"use strict";
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
var _bonusBarbarianVillageFinder = _interopRequireDefault(require("./i18n/bonusBarbarianVillageFinder"));
var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer"));
var twutils = _interopRequireWildcard(require("./utils/tribalwars"));
var _math = require("./utils/math");
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// ==UserScript==
// @name Bonus barbarian village finder
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js
// @version 0.4.6
// @description Bonus barbarian village finder
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=map*
// @grant none
// ==/UserScript==
const SERVER = (0, _getCurrentServer.default)();
const QUERY = "\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n";
const TABLE_ID = 'bonusBarbarianVillageFinderTable';
const ACTUAL_COORDS_ID = 'actualCoords';
const translations = (0, _bonusBarbarianVillageFinder.default)();
let container = undefined;
const buildReqOptions = (bonus, offset) => {
return {
query: QUERY,
variables: {
server: SERVER,
sort: ['id DESC'],
filter: {
bonus,
playerID: [0]
},
offset
}
};
};
const loadBonusVillages = async bonus => {
const {
villages
} = await (0, _requestCreator.default)(buildReqOptions(bonus, 0));
for (let i = villages.length; i < villages.total; i += 1000) {
const data = await (0, _requestCreator.default)(buildReqOptions(bonus, 0));
villages.items = [...villages.items, ...data.villages.items];
}
return villages;
};
const searchBonusBarbarianVillages = async e => {
e.preventDefault();
const villages = await loadBonusVillages(parseInt(e.target[0].value));
const coords = TWMap.pos;
villages.items = villages.items.map(item => {
return _objectSpread(_objectSpread({}, item), {}, {
distance: (0, _math.calcDistanceBetweenTwoPoints)(coords[0], coords[1], item.x, item.y)
});
}).sort((a, b) => a.distance - b.distance);
document.querySelector('#' + TABLE_ID).innerHTML = buildTableBodyHTML(villages.items);
};
const getBonuses = () => {
let bonuses = [];
for (let i in TWMap.bonus_data) {
bonuses.push({
value: i,
text: TWMap.bonus_data[i].text
});
}
return bonuses;
};
const buildTableBodyHTML = villages => {
return "\n <tbody>\n <tr>\n <th>\n ".concat(translations.village, "\n </th>\n <th>\n ").concat(translations.distance, "\n </th>\n <th>\n ").concat(translations.action, "\n </th>\n </tr>\n ").concat(Array.isArray(villages) ? villages.map(village => "<tr>\n <td>\n <a href=\"".concat(twutils.buildVillageURL(village.id), "\">\n ").concat(twutils.buildVillageName(village.name, village.x, village.y), "\n </a>\n </td>\n <td>\n ").concat(village.distance.toFixed(1), "\n </td>\n <td>\n <a href=\"#\" onclick=\"return TWMap.focusUserSpecified(").concat(village.x, ", ").concat(village.y, ")\">Center</a>\n </td>\n </tr>")).join('') : '', "\n </tbody>\n ");
};
const updateActualCoords = () => {
document.querySelector('#' + ACTUAL_COORDS_ID).innerHTML = "".concat(translations.actualCoords, ": <strong>").concat(TWMap.pos.join('|'), "</strong>");
};
const renderUI = () => {
const html = "\n <p id=\"".concat(ACTUAL_COORDS_ID, "\"></p>\n <form>\n <select>\n ").concat(getBonuses().map(bonus => "<option value=\"".concat(bonus.value, "\">").concat(bonus.text, "</option>")).join(''), "\n </select>\n <button type=\"submit\">").concat(translations.searchBonusBarbarianVillages, "</button>\n </form>\n <table class=\"vis\" style=\"width: 100%;\" id=\"").concat(TABLE_ID, "\">\n ").concat(buildTableBodyHTML(), "\n </table>\n ");
if (!container) {
container = document.createElement('div');
container.classList.add('containerBorder');
container.style.clear = 'both';
document.querySelector('#map_big').appendChild(container);
}
container.innerHTML = html;
container.querySelector('form').addEventListener('submit', searchBonusBarbarianVillages);
updateActualCoords();
setInterval(updateActualCoords, 1000);
};
(function () {
renderUI();
const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql';
var $3af05e958b2a20a26445518aba292c50$export$default = function () {
let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, {
method: 'POST',
body: JSON.stringify({
query,
variables
}),
headers: {
'Content-Type': 'application/json'
}
}).then(res => {
return res.json();
}).then(_ref => {
let {data, errors} = _ref;
if (errors && Array.isArray(errors) && errors.length > 0) {
throw new Error(errors[0].message);
}
return new Promise(resolve => resolve(data));
});
};
const $3b197ddc404523dce25bd8470f854619$var$translations = {
pl_PL: {
actualCoords: 'Aktualne koordynaty',
searchBonusBarbarianVillages: 'Wyszukaj koczownicze',
village: 'Wioska',
distance: 'Dystans',
action: 'Akcja'
},
en_DK: {
actualCoords: 'Actual coords',
searchBonusBarbarianVillages: 'Search bonus barbarian villages',
village: 'Village',
distance: 'Distance',
action: 'Action'
},
de_DE: {
actualCoords: 'Aktuelle Koordinaten',
searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer',
village: 'Dorf',
distance: 'Distanz',
action: 'Aktion'
}
};
var $3b197ddc404523dce25bd8470f854619$export$default = () => $3b197ddc404523dce25bd8470f854619$var$translations[window.game_data.locale] || $3b197ddc404523dce25bd8470f854619$var$translations.en_DK;
var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0];
const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
const continent = 'K' + String(y)[0] + String(x)[0];
return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => {
return image_base + img;
};
const $3d57ea338a09b23ca4b283dff4f79ebd$export$calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => {
const a = x1 - x2;
const b = y1 - y2;
return Math.sqrt(a * a + b * b);
};
function $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) {
symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
}
keys.push.apply(keys, symbols);
}
return keys;
}
function $61671ab24a4170eb0a1c7d9e6ffb22e6$var$_objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$ownKeys(Object(source), true).forEach(function (key) {
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$_defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
function $61671ab24a4170eb0a1c7d9e6ffb22e6$var$_defineProperty(obj, key, value) {
if ((key in obj)) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
// ==UserScript==
// @name Bonus barbarian village finder
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js
// @version 0.4.6
// @description Bonus barbarian village finder
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=map*
// @grant none
// ==/UserScript==
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default();
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$QUERY = "\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n";
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$TABLE_ID = 'bonusBarbarianVillageFinderTable';
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ACTUAL_COORDS_ID = 'actualCoords';
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations = $3b197ddc404523dce25bd8470f854619$export$default();
let $61671ab24a4170eb0a1c7d9e6ffb22e6$var$container = undefined;
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildReqOptions = (bonus, offset) => {
return {
query: $61671ab24a4170eb0a1c7d9e6ffb22e6$var$QUERY,
variables: {
server: $61671ab24a4170eb0a1c7d9e6ffb22e6$var$SERVER,
sort: ['id DESC'],
filter: {
bonus,
playerID: [0]
},
offset
}
};
};
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$loadBonusVillages = async bonus => {
const {villages} = await $3af05e958b2a20a26445518aba292c50$export$default($61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildReqOptions(bonus, 0));
for (let i = villages.length; i < villages.total; i += 1000) {
const data = await $3af05e958b2a20a26445518aba292c50$export$default($61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildReqOptions(bonus, 0));
villages.items = [...villages.items, ...data.villages.items];
}
return villages;
};
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$searchBonusBarbarianVillages = async e => {
e.preventDefault();
const villages = await $61671ab24a4170eb0a1c7d9e6ffb22e6$var$loadBonusVillages(parseInt(e.target[0].value));
const coords = TWMap.pos;
villages.items = villages.items.map(item => {
return $61671ab24a4170eb0a1c7d9e6ffb22e6$var$_objectSpread($61671ab24a4170eb0a1c7d9e6ffb22e6$var$_objectSpread({}, item), {}, {
distance: $3d57ea338a09b23ca4b283dff4f79ebd$export$calcDistanceBetweenTwoPoints(coords[0], coords[1], item.x, item.y)
});
}).sort((a, b) => a.distance - b.distance);
document.querySelector('#' + $61671ab24a4170eb0a1c7d9e6ffb22e6$var$TABLE_ID).innerHTML = $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML(villages.items);
};
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$getBonuses = () => {
let bonuses = [];
for (let i in TWMap.bonus_data) {
bonuses.push({
value: i,
text: TWMap.bonus_data[i].text
});
}
return bonuses;
};
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML = villages => {
return ("\n <tbody>\n <tr>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.village, "\n </th>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.distance, "\n </th>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.action, "\n </th>\n </tr>\n ").concat(Array.isArray(villages) ? villages.map(village => ("<tr>\n <td>\n <a href=\"").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL(village.id), "\">\n ").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(village.name, village.x, village.y), "\n </a>\n </td>\n <td>\n ").concat(village.distance.toFixed(1), "\n </td>\n <td>\n <a href=\"#\" onclick=\"return TWMap.focusUserSpecified(").concat(village.x, ", ").concat(village.y, ")\">Center</a>\n </td>\n </tr>")).join('') : '', "\n </tbody>\n ");
};
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords = () => {
document.querySelector('#' + $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ACTUAL_COORDS_ID).innerHTML = ("").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.actualCoords, ": <strong>").concat(TWMap.pos.join('|'), "</strong>");
};
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$renderUI = () => {
const html = ("\n <p id=\"").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$ACTUAL_COORDS_ID, "\"></p>\n <form>\n <select>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$getBonuses().map(bonus => ("<option value=\"").concat(bonus.value, "\">").concat(bonus.text, "</option>")).join(''), "\n </select>\n <button type=\"submit\">").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.searchBonusBarbarianVillages, "</button>\n </form>\n <table class=\"vis\" style=\"width: 100%;\" id=\"").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$TABLE_ID, "\">\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML(), "\n </table>\n ");
if (!$61671ab24a4170eb0a1c7d9e6ffb22e6$var$container) {
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$container = document.createElement('div');
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.classList.add('containerBorder');
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.style.clear = 'both';
document.querySelector('#map_big').appendChild($61671ab24a4170eb0a1c7d9e6ffb22e6$var$container);
}
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.innerHTML = html;
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.querySelector('form').addEventListener('submit', $61671ab24a4170eb0a1c7d9e6ffb22e6$var$searchBonusBarbarianVillages);
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords();
setInterval($61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords, 1000);
};
(function () {
$61671ab24a4170eb0a1c7d9e6ffb22e6$var$renderUI();
})();
})();
},{"./libs/requestCreator":"Ph2E","./i18n/bonusBarbarianVillageFinder":"MRps","./utils/getCurrentServer":"DMkL","./utils/tribalwars":"fHHP","./utils/math":"XOOL"}]},{},["fvjy"], null)

269
dist/commandRenamer.js vendored
View File

@ -1,215 +1,64 @@
// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles
parcelRequire = (function (modules, cache, entry, globalName) {
// Save the require from previous bundle to this closure if any
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
var nodeRequire = typeof require === 'function' && require;
function newRequire(name, jumped) {
if (!cache[name]) {
if (!modules[name]) {
// if we cannot find the module within our internal map or
// cache jump to the current global require ie. the last bundle
// that was added to the page.
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
if (!jumped && currentRequire) {
return currentRequire(name, true);
}
// If there are other bundles on this page the require from the
// previous one is saved to 'previousRequire'. Repeat this as
// many times as there are bundles until the module is found or
// we exhaust the require chain.
if (previousRequire) {
return previousRequire(name, true);
}
// Try the node require function if it exists.
if (nodeRequire && typeof name === 'string') {
return nodeRequire(name);
}
var err = new Error('Cannot find module \'' + name + '\'');
err.code = 'MODULE_NOT_FOUND';
throw err;
}
localRequire.resolve = resolve;
localRequire.cache = {};
var module = cache[name] = new newRequire.Module(name);
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
(function () {
const $f9de81cfe3f8a296e0e5a7ba4108bc8c$var$translations = {
pl_PL: {
rename: 'Zmień',
name: 'Nazwa'
},
en_DK: {
rename: 'Rename',
name: 'Name'
},
de_DE: {
rename: 'Umbenennen',
name: 'Name'
}
return cache[name].exports;
function localRequire(x){
return newRequire(localRequire.resolve(x));
}
function resolve(x){
return modules[name][1][x] || x;
}
}
function Module(moduleName) {
this.id = moduleName;
this.bundle = newRequire;
this.exports = {};
}
newRequire.isParcelRequire = true;
newRequire.Module = Module;
newRequire.modules = modules;
newRequire.cache = cache;
newRequire.parent = previousRequire;
newRequire.register = function (id, exports) {
modules[id] = [function (require, module) {
module.exports = exports;
}, {}];
};
var error;
for (var i = 0; i < entry.length; i++) {
var $f9de81cfe3f8a296e0e5a7ba4108bc8c$export$default = () => $f9de81cfe3f8a296e0e5a7ba4108bc8c$var$translations[window.game_data.locale] || $f9de81cfe3f8a296e0e5a7ba4108bc8c$var$translations.en_DK;
var $393a22f746cd1f6e45eff96c71b28370$export$default = t => new Promise(resolve => setTimeout(resolve, t));
// ==UserScript==
// @name Command renamer
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js
// @version 0.2.4
// @description Command renamer
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*mode=incomings*
// @grant none
// ==/UserScript==
const $a00f5166aafbcf4ccffe3cfb8f4b9923$var$translations = $f9de81cfe3f8a296e0e5a7ba4108bc8c$export$default();
const $a00f5166aafbcf4ccffe3cfb8f4b9923$var$handleSubmit = async e => {
e.preventDefault();
const name = e.target[0].value;
if (!name) return;
const checkboxes = document.querySelectorAll('#incomings_table input:checked');
e.target[1].disabled = true;
for (let i = 0; i < checkboxes.length; i++) {
const checkbox = checkboxes[i];
if (checkbox.id === 'select_all') continue;
const icon = checkbox.parentElement.querySelector('.rename-icon');
icon.click();
await $393a22f746cd1f6e45eff96c71b28370$export$default(20);
const quickeditForm = checkbox.parentElement.querySelector('.quickedit-edit');
quickeditForm.querySelector('input').value = name;
quickeditForm.querySelector('input[type="button"]').click();
await $393a22f746cd1f6e45eff96c71b28370$export$default(350);
}
e.target[1].disabled = false;
};
const $a00f5166aafbcf4ccffe3cfb8f4b9923$var$renderUI = () => {
const html = ("\n <input type=\"text\" placeholder=\"").concat($a00f5166aafbcf4ccffe3cfb8f4b9923$var$translations.name, "\" />\n <button type=\"submit\">").concat($a00f5166aafbcf4ccffe3cfb8f4b9923$var$translations.rename, "</button>\n ");
const form = document.createElement('form');
form.innerHTML = html;
form.addEventListener('submit', $a00f5166aafbcf4ccffe3cfb8f4b9923$var$handleSubmit);
document.querySelector('#paged_view_content').insertBefore(form, document.querySelector('#incomings_form'));
};
(async function () {
try {
newRequire(entry[i]);
} catch (e) {
// Save first error but execute all entries
if (!error) {
error = e;
}
$a00f5166aafbcf4ccffe3cfb8f4b9923$var$renderUI();
} catch (error) {
console.log('command renamer', error);
}
}
if (entry.length) {
// Expose entry point to Node, AMD or browser globals
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
var mainExports = newRequire(entry[entry.length - 1]);
// CommonJS
if (typeof exports === "object" && typeof module !== "undefined") {
module.exports = mainExports;
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(function () {
return mainExports;
});
// <script>
} else if (globalName) {
this[globalName] = mainExports;
}
}
// Override the current require with this new one
parcelRequire = newRequire;
if (error) {
// throw error from earlier, _after updating parcelRequire_
throw error;
}
return newRequire;
})({"ar93":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const translations = {
pl_PL: {
rename: 'Zmień',
name: 'Nazwa'
},
en_DK: {
rename: 'Rename',
name: 'Name'
},
de_DE: {
rename: 'Umbenennen',
name: 'Name'
}
};
var _default = () => translations[window.game_data.locale] || translations.en_DK;
exports.default = _default;
},{}],"oUdd":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = t => new Promise(resolve => setTimeout(resolve, t));
exports.default = _default;
},{}],"XXZR":[function(require,module,exports) {
"use strict";
var _commandRenamer = _interopRequireDefault(require("./i18n/commandRenamer"));
var _wait = _interopRequireDefault(require("./utils/wait"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// ==UserScript==
// @name Command renamer
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js
// @version 0.2.4
// @description Command renamer
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*mode=incomings*
// @grant none
// ==/UserScript==
const translations = (0, _commandRenamer.default)();
const handleSubmit = async e => {
e.preventDefault();
const name = e.target[0].value;
if (!name) return;
const checkboxes = document.querySelectorAll('#incomings_table input:checked');
e.target[1].disabled = true;
for (let i = 0; i < checkboxes.length; i++) {
const checkbox = checkboxes[i];
if (checkbox.id === 'select_all') continue;
const icon = checkbox.parentElement.querySelector('.rename-icon');
icon.click();
await (0, _wait.default)(20);
const quickeditForm = checkbox.parentElement.querySelector('.quickedit-edit');
quickeditForm.querySelector('input').value = name;
quickeditForm.querySelector('input[type="button"]').click();
await (0, _wait.default)(350);
}
e.target[1].disabled = false;
};
const renderUI = () => {
const html = "\n <input type=\"text\" placeholder=\"".concat(translations.name, "\" />\n <button type=\"submit\">").concat(translations.rename, "</button>\n ");
const form = document.createElement('form');
form.innerHTML = html;
form.addEventListener('submit', handleSubmit);
document.querySelector('#paged_view_content').insertBefore(form, document.querySelector('#incomings_form'));
};
(async function () {
try {
renderUI();
} catch (error) {
console.log('command renamer', error);
}
})();
})();
},{"./i18n/commandRenamer":"ar93","./utils/wait":"oUdd"}]},{},["XXZR"], null)

File diff suppressed because it is too large Load Diff

1361
dist/extendedMapPopup.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,364 +1,171 @@
// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles
parcelRequire = (function (modules, cache, entry, globalName) {
// Save the require from previous bundle to this closure if any
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
var nodeRequire = typeof require === 'function' && require;
function newRequire(name, jumped) {
if (!cache[name]) {
if (!modules[name]) {
// if we cannot find the module within our internal map or
// cache jump to the current global require ie. the last bundle
// that was added to the page.
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
if (!jumped && currentRequire) {
return currentRequire(name, true);
}
// If there are other bundles on this page the require from the
// previous one is saved to 'previousRequire'. Repeat this as
// many times as there are bundles until the module is found or
// we exhaust the require chain.
if (previousRequire) {
return previousRequire(name, true);
}
// Try the node require function if it exists.
if (nodeRequire && typeof name === 'string') {
return nodeRequire(name);
}
var err = new Error('Cannot find module \'' + name + '\'');
err.code = 'MODULE_NOT_FOUND';
throw err;
}
localRequire.resolve = resolve;
localRequire.cache = {};
var module = cache[name] = new newRequire.Module(name);
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
}
return cache[name].exports;
function localRequire(x){
return newRequire(localRequire.resolve(x));
}
function resolve(x){
return modules[name][1][x] || x;
}
}
function Module(moduleName) {
this.id = moduleName;
this.bundle = newRequire;
this.exports = {};
}
newRequire.isParcelRequire = true;
newRequire.Module = Module;
newRequire.modules = modules;
newRequire.cache = cache;
newRequire.parent = previousRequire;
newRequire.register = function (id, exports) {
modules[id] = [function (require, module) {
module.exports = exports;
}, {}];
};
var error;
for (var i = 0; i < entry.length; i++) {
try {
newRequire(entry[i]);
} catch (e) {
// Save first error but execute all entries
if (!error) {
error = e;
}
}
}
if (entry.length) {
// Expose entry point to Node, AMD or browser globals
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
var mainExports = newRequire(entry[entry.length - 1]);
// CommonJS
if (typeof exports === "object" && typeof module !== "undefined") {
module.exports = mainExports;
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(function () {
return mainExports;
});
// <script>
} else if (globalName) {
this[globalName] = mainExports;
}
}
// Override the current require with this new one
parcelRequire = newRequire;
if (error) {
// throw error from earlier, _after updating parcelRequire_
throw error;
}
return newRequire;
})({"tQUs":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = url => parseInt(new URLSearchParams(url).get('id'));
exports.default = _default;
},{}],"dSAr":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _getIDFromURL = _interopRequireDefault(require("../utils/getIDFromURL"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class InADayParser {
constructor() {
let html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
return false;
}
if (this.filters.tribes && Array.isArray(this.filters.tribes) && !this.filters.tribes.some(tribe => tribe === row.tribe)) {
return false;
}
return true;
}
parseRow(row) {
if (!row || !row instanceof HTMLTableRowElement) {
return undefined;
}
let obj = {};
obj.rank = parseInt(row.children[0].innerText.trim());
obj.name = row.children[1].innerText.trim();
obj.playerID = (0, _getIDFromURL.default)(row.children[1].querySelector('a').getAttribute('href'));
obj.tribe = row.children[2].innerText.trim();
obj.tribeID = 0;
if (obj.tribe) {
obj.tribeID = (0, _getIDFromURL.default)(row.children[2].querySelector('a').getAttribute('href'));
}
obj.score = parseInt(row.children[3].innerText.trim().replace(/\./g, ''));
obj.date = row.children[4].innerText.trim();
return obj;
}
parse() {
const result = [];
for (let i = 1; i < this.trs.length; i++) {
const row = this.trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"hPka":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const translations = {
pl_PL: {
addTribe: 'Dodaj plemię',
generate: 'Wygeneruj',
delete: 'Usuń',
player: 'Gracz',
tribe: 'Plemię',
rank: 'Ranking',
score: 'Wynik',
date: 'Data',
loaded: 'Załadowano'
},
en_DK: {
addTribe: 'Add tribe',
generate: 'Generate',
delete: 'Delete',
player: 'Player',
tribe: 'Tribe',
rank: 'Rank',
score: 'Score',
date: 'Date',
loaded: 'Loaded'
},
de_DE: {
addTribe: 'Stamm hinzufügen',
generate: 'Generieren',
delete: 'Löschen',
player: 'Spieler',
tribe: 'Stamm',
rank: 'Rang',
score: 'Punkte',
date: 'Datum',
loaded: 'Geladen'
}
};
var _default = () => translations[window.game_data.locale] || translations.en_DK;
exports.default = _default;
},{}],"oUdd":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = t => new Promise(resolve => setTimeout(resolve, t));
exports.default = _default;
},{}],"s4G3":[function(require,module,exports) {
"use strict";
var _InADayParser = _interopRequireDefault(require("./libs/InADayParser"));
var _inADayTribeRankingGenerator = _interopRequireDefault(require("./i18n/inADayTribeRankingGenerator"));
var _wait = _interopRequireDefault(require("./utils/wait"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// ==UserScript==
// @name 'In A Day' tribe ranking generator
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js
// @version 0.2.3
// @description 'In A Day' tribe ranking generator
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=ranking*mode=in_a_day*
// @grant none
// @run-at document-end
// ==/UserScript==
const TRIBE_CONTAINER_ID = 'iad_tribes';
const LIMIT_INPUT_ID = 'iad_limit';
const translations = (0, _inADayTribeRankingGenerator.default)();
const addTribe = () => {
const container = document.querySelector('#' + TRIBE_CONTAINER_ID);
const div = document.createElement('div');
div.innerHTML = "\n <label>".concat(translations.tribe, ": </label>\n <input type=\"text\" required />\n <button type=\"button\">").concat(translations.delete, "</button>\n ");
div.querySelector('button').addEventListener('click', () => {
if (container.children.length > 1) {
div.remove();
}
});
container.appendChild(div);
};
const handleFormSubmit = async e => {
e.preventDefault();
const limit = parseInt(document.querySelector('#' + LIMIT_INPUT_ID).value);
const tribes = [];
const type = new URLSearchParams(window.location.search).get('type') || 'kill_att';
document.querySelectorAll('#' + TRIBE_CONTAINER_ID + ' input').forEach(el => {
if (el.value) tribes.push(el.value.trim());
});
let players = [];
let page = 0;
while (players.length < limit) {
Dialog.show('iad_loading', "".concat(translations.loaded, ": <strong>").concat(players.length, "/").concat(limit, "</strong>"));
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
offset: page * 25
}));
const html = await response.text();
const parser = new _InADayParser.default(html, {
tribes
});
if (parser.trs.length !== 26) break;
players = [...players, ...parser.parse()];
page++;
await (0, _wait.default)(200);
} catch (error) {
break;
}
}
if (players.length > limit) {
players = players.slice(0, limit);
}
Dialog.show('iad_result', "\n <textarea cols=30 rows=8 readonly>[table]\n[**][||]".concat(translations.player, "[||]").concat(translations.tribe, "[||]").concat(translations.rank, "[||]").concat(translations.score, "[||]").concat(translations.date, "[/**]\n").concat(players.map((player, index) => {
return "[*]".concat(index + 1, ".[|][player]").concat(player.name, "[/player][|][ally]").concat(player.tribe, "[/ally][|]").concat(player.rank, "[|]").concat(player.score.toLocaleString(), "[|]").concat(player.date);
}).join('\n'), "\n[/table]</textarea>\n "));
};
const renderUI = () => {
const addButtonID = 'iad_add';
const div = document.createElement('div');
const html = "\n <form>\n <div id=\"".concat(TRIBE_CONTAINER_ID, "\">\n </div>\n <div>\n <label>Limit: </label>\n <input id=\"").concat(LIMIT_INPUT_ID, "\" type=\"number\" min=\"1\" value=\"10\" required />\n </div>\n <button type=\"submit\">").concat(translations.generate, "</button>\n <button id=\"").concat(addButtonID, "\" type=\"button\">").concat(translations.addTribe, "</button>\n </form>\n ");
div.innerHTML = html;
document.querySelector('#content_value > table > tbody > tr > td:nth-child(2)').prepend(div);
div.querySelector('form').addEventListener('submit', handleFormSubmit);
div.querySelector('#' + addButtonID).addEventListener('click', addTribe);
addTribe();
};
(function () {
try {
renderUI();
} catch (error) {
console.log("'In A Day' Tribe Ranking Generator", error);
var $39c4220bac5e8e55ae13cc7489410b3e$export$default = url => parseInt(new URLSearchParams(url).get('id'));
class $eb13db7801b83919c60cd8b3e0a8a6d8$export$default {
constructor() {
let html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
return false;
}
if (this.filters.tribes && Array.isArray(this.filters.tribes) && !this.filters.tribes.some(tribe => tribe === row.tribe)) {
return false;
}
return true;
}
parseRow(row) {
if (!row || !row instanceof HTMLTableRowElement) {
return undefined;
}
let obj = {};
obj.rank = parseInt(row.children[0].innerText.trim());
obj.name = row.children[1].innerText.trim();
obj.playerID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(row.children[1].querySelector('a').getAttribute('href'));
obj.tribe = row.children[2].innerText.trim();
obj.tribeID = 0;
if (obj.tribe) {
obj.tribeID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(row.children[2].querySelector('a').getAttribute('href'));
}
obj.score = parseInt(row.children[3].innerText.trim().replace(/\./g, ''));
obj.date = row.children[4].innerText.trim();
return obj;
}
parse() {
const result = [];
for (let i = 1; i < this.trs.length; i++) {
const row = this.trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
const $1ff13e3fe910eee13bb8940db87b1675$var$translations = {
pl_PL: {
addTribe: 'Dodaj plemię',
generate: 'Wygeneruj',
delete: 'Usuń',
player: 'Gracz',
tribe: 'Plemię',
rank: 'Ranking',
score: 'Wynik',
date: 'Data',
loaded: 'Załadowano'
},
en_DK: {
addTribe: 'Add tribe',
generate: 'Generate',
delete: 'Delete',
player: 'Player',
tribe: 'Tribe',
rank: 'Rank',
score: 'Score',
date: 'Date',
loaded: 'Loaded'
},
de_DE: {
addTribe: 'Stamm hinzufügen',
generate: 'Generieren',
delete: 'Löschen',
player: 'Spieler',
tribe: 'Stamm',
rank: 'Rang',
score: 'Punkte',
date: 'Datum',
loaded: 'Geladen'
}
};
var $1ff13e3fe910eee13bb8940db87b1675$export$default = () => $1ff13e3fe910eee13bb8940db87b1675$var$translations[window.game_data.locale] || $1ff13e3fe910eee13bb8940db87b1675$var$translations.en_DK;
var $393a22f746cd1f6e45eff96c71b28370$export$default = t => new Promise(resolve => setTimeout(resolve, t));
// ==UserScript==
// @name 'In A Day' tribe ranking generator
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js
// @version 0.2.3
// @description 'In A Day' tribe ranking generator
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=ranking*mode=in_a_day*
// @grant none
// @run-at document-end
// ==/UserScript==
const $cfc814bc73bf1f67f8083cc3d02e6787$var$TRIBE_CONTAINER_ID = 'iad_tribes';
const $cfc814bc73bf1f67f8083cc3d02e6787$var$LIMIT_INPUT_ID = 'iad_limit';
const $cfc814bc73bf1f67f8083cc3d02e6787$var$translations = $1ff13e3fe910eee13bb8940db87b1675$export$default();
const $cfc814bc73bf1f67f8083cc3d02e6787$var$addTribe = () => {
const container = document.querySelector('#' + $cfc814bc73bf1f67f8083cc3d02e6787$var$TRIBE_CONTAINER_ID);
const div = document.createElement('div');
div.innerHTML = ("\n <label>").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.tribe, ": </label>\n <input type=\"text\" required />\n <button type=\"button\">").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.delete, "</button>\n ");
div.querySelector('button').addEventListener('click', () => {
if (container.children.length > 1) {
div.remove();
}
});
container.appendChild(div);
};
const $cfc814bc73bf1f67f8083cc3d02e6787$var$handleFormSubmit = async e => {
e.preventDefault();
const limit = parseInt(document.querySelector('#' + $cfc814bc73bf1f67f8083cc3d02e6787$var$LIMIT_INPUT_ID).value);
const tribes = [];
const type = new URLSearchParams(window.location.search).get('type') || 'kill_att';
document.querySelectorAll('#' + $cfc814bc73bf1f67f8083cc3d02e6787$var$TRIBE_CONTAINER_ID + ' input').forEach(el => {
if (el.value) tribes.push(el.value.trim());
});
let players = [];
let page = 0;
while (players.length < limit) {
Dialog.show('iad_loading', ("").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.loaded, ": <strong>").concat(players.length, "/").concat(limit, "</strong>"));
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
offset: page * 25
}));
const html = await response.text();
const parser = new $eb13db7801b83919c60cd8b3e0a8a6d8$export$default(html, {
tribes
});
if (parser.trs.length !== 26) break;
players = [...players, ...parser.parse()];
page++;
await $393a22f746cd1f6e45eff96c71b28370$export$default(200);
} catch (error) {
break;
}
}
if (players.length > limit) {
players = players.slice(0, limit);
}
Dialog.show('iad_result', ("\n <textarea cols=30 rows=8 readonly>[table]\n[**][||]").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.player, "[||]").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.tribe, "[||]").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.rank, "[||]").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.score, "[||]").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.date, "[/**]\n").concat(players.map((player, index) => {
return ("[*]").concat(index + 1, ".[|][player]").concat(player.name, "[/player][|][ally]").concat(player.tribe, "[/ally][|]").concat(player.rank, "[|]").concat(player.score.toLocaleString(), "[|]").concat(player.date);
}).join('\n'), "\n[/table]</textarea>\n "));
};
const $cfc814bc73bf1f67f8083cc3d02e6787$var$renderUI = () => {
const addButtonID = 'iad_add';
const div = document.createElement('div');
const html = ("\n <form>\n <div id=\"").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$TRIBE_CONTAINER_ID, "\">\n </div>\n <div>\n <label>Limit: </label>\n <input id=\"").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$LIMIT_INPUT_ID, "\" type=\"number\" min=\"1\" value=\"10\" required />\n </div>\n <button type=\"submit\">").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.generate, "</button>\n <button id=\"").concat(addButtonID, "\" type=\"button\">").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.addTribe, "</button>\n </form>\n ");
div.innerHTML = html;
document.querySelector('#content_value > table > tbody > tr > td:nth-child(2)').prepend(div);
div.querySelector('form').addEventListener('submit', $cfc814bc73bf1f67f8083cc3d02e6787$var$handleFormSubmit);
div.querySelector('#' + addButtonID).addEventListener('click', $cfc814bc73bf1f67f8083cc3d02e6787$var$addTribe);
$cfc814bc73bf1f67f8083cc3d02e6787$var$addTribe();
};
(function () {
try {
$cfc814bc73bf1f67f8083cc3d02e6787$var$renderUI();
} catch (error) {
console.log("'In A Day' Tribe Ranking Generator", error);
}
})();
})();
},{"./libs/InADayParser":"dSAr","./i18n/inADayTribeRankingGenerator":"hPka","./utils/wait":"oUdd"}]},{},["s4G3"], null)

File diff suppressed because it is too large Load Diff

View File

@ -1,461 +1,308 @@
// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles
parcelRequire = (function (modules, cache, entry, globalName) {
// Save the require from previous bundle to this closure if any
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
var nodeRequire = typeof require === 'function' && require;
function newRequire(name, jumped) {
if (!cache[name]) {
if (!modules[name]) {
// if we cannot find the module within our internal map or
// cache jump to the current global require ie. the last bundle
// that was added to the page.
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
if (!jumped && currentRequire) {
return currentRequire(name, true);
}
// If there are other bundles on this page the require from the
// previous one is saved to 'previousRequire'. Repeat this as
// many times as there are bundles until the module is found or
// we exhaust the require chain.
if (previousRequire) {
return previousRequire(name, true);
}
// Try the node require function if it exists.
if (nodeRequire && typeof name === 'string') {
return nodeRequire(name);
}
var err = new Error('Cannot find module \'' + name + '\'');
err.code = 'MODULE_NOT_FOUND';
throw err;
}
localRequire.resolve = resolve;
localRequire.cache = {};
var module = cache[name] = new newRequire.Module(name);
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
}
return cache[name].exports;
function localRequire(x){
return newRequire(localRequire.resolve(x));
}
function resolve(x){
return modules[name][1][x] || x;
}
}
function Module(moduleName) {
this.id = moduleName;
this.bundle = newRequire;
this.exports = {};
}
newRequire.isParcelRequire = true;
newRequire.Module = Module;
newRequire.modules = modules;
newRequire.cache = cache;
newRequire.parent = previousRequire;
newRequire.register = function (id, exports) {
modules[id] = [function (require, module) {
module.exports = exports;
}, {}];
};
var error;
for (var i = 0; i < entry.length; i++) {
try {
newRequire(entry[i]);
} catch (e) {
// Save first error but execute all entries
if (!error) {
error = e;
}
}
}
if (entry.length) {
// Expose entry point to Node, AMD or browser globals
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
var mainExports = newRequire(entry[entry.length - 1]);
// CommonJS
if (typeof exports === "object" && typeof module !== "undefined") {
module.exports = mainExports;
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(function () {
return mainExports;
});
// <script>
} else if (globalName) {
this[globalName] = mainExports;
}
}
// Override the current require with this new one
parcelRequire = newRequire;
if (error) {
// throw error from earlier, _after updating parcelRequire_
throw error;
}
return newRequire;
})({"jH35":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const translations = {
pl_PL: {
startCoordsPicker: 'Uruchom zbieracza koordynat',
stopCoordsPicker: 'Zatrzymaj zbieracza koordynat',
exportedVillages: 'Wyeksportowane wioski',
cannotDeleteSelectedGroup: 'Nie można usunąć wybranej grupy!',
select: 'Wybierz',
delete: 'Usuń',
add: 'Dodaj',
save: 'Zapisz',
groupName: 'Nazwa grupy',
export: 'Eksport'
},
en_DK: {
startCoordsPicker: 'Start coords picker',
stopCoordsPicker: 'Stop coords picker',
exportedVillages: 'Exported villages',
cannotDeleteSelectedGroup: 'Cannot delete selected group!',
select: 'Select',
delete: 'Delete',
add: 'Add',
save: 'Save',
groupName: 'Group name',
export: 'Export'
},
de_DE: {
startCoordsPicker: 'Starte Koordinaten-Selektor',
stopCoordsPicker: 'Stoppe Koordinaten-Selektor',
exportedVillages: 'Exportierte Dörfer',
cannotDeleteSelectedGroup: 'Gruppe kann nicht gelöscht werden!',
select: 'Selektieren',
delete: 'Löschen',
add: 'Hinzufügen',
save: 'Speichern',
groupName: 'Gruppen-Name',
export: 'Exportieren'
}
};
var _default = () => translations[window.game_data.locale] || translations.en_DK;
exports.default = _default;
},{}],"KWxH":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setItem = exports.getItem = void 0;
const getItem = function getItem(key) {
let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
const json = localStorage.getItem(key);
let obj = d;
if (json) {
obj = JSON.parse(json);
}
return obj;
};
exports.getItem = getItem;
const setItem = (key, payload) => {
localStorage.setItem(key, JSON.stringify(payload));
};
exports.setItem = setItem;
},{}],"FWa8":[function(require,module,exports) {
"use strict";
var _mapCoordsPicker = _interopRequireDefault(require("./i18n/mapCoordsPicker"));
var _localStorage = require("./utils/localStorage");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// ==UserScript==
// @name Map coords picker
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js
// @version 0.7.5
// @description Map coords picker
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=map*
// @grant none
// ==/UserScript==
const LOCAL_STORAGE_KEY = 'kichiyaki_map_coords_picker';
const container = document.querySelector('#content_value > h2');
let button;
let formsContainer;
let actionsContainer;
let config = (0, _localStorage.getItem)(LOCAL_STORAGE_KEY, {
started: false,
groups: {
All: {
villages: [],
color: '#ffffff'
}
},
selectedGroup: 'All'
});
let intervalID;
const translations = (0, _mapCoordsPicker.default)();
const saveConfig = () => {
(0, _localStorage.setItem)(LOCAL_STORAGE_KEY, config);
};
const villageIDByCoords = (x, y) => {
const xy = parseInt("".concat(x).concat(y), 10);
const village = TWMap.villages[xy];
if (village) {
return TWMap.villages[xy].id;
}
return NaN;
};
const setVillageBorder = function setVillageBorder(x, y) {
let color = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'transparent';
const id = villageIDByCoords(x, y);
if (isNaN(id)) return;
const village = document.querySelector('#map_village_' + id);
if (village) {
village.style.boxSizing = 'border-box';
village.style.border = color !== 'transparent' ? "5px solid ".concat(color) : 'none';
}
};
const deleteVillageFromOtherGroups = key => {
for (let name in config.groups) {
if (name === config.selectedGroup) return;
config.groups[name].villages = config.groups[name].villages.filter(village => village.key !== key);
}
};
const handleMapClick = (x, y, e) => {
e.preventDefault();
const key = "".concat(x, "|").concat(y);
const selected = config.groups[config.selectedGroup].villages.some(village => village.key === key);
if (selected) {
config.groups[config.selectedGroup].villages = config.groups[config.selectedGroup].villages.filter(village => village.key !== key);
setVillageBorder(x, y, 'transparent');
} else {
config.groups[config.selectedGroup].villages = [...config.groups[config.selectedGroup].villages, {
x,
y,
key
}];
setVillageBorder(x, y, config.groups[config.selectedGroup].color);
deleteVillageFromOtherGroups(key);
}
};
const renderForm = (container, group) => {
const selected = group && group.name !== config.selectedGroup;
const html = "\n <input type=\"color\" value=\"".concat(group ? group.color : '', "\" required />\n <input type=\"text\" required placeholder=\"").concat(translations.groupName, "\" value=\"").concat(group ? group.name : '', "\" />\n <button type=\"submit\">").concat(group ? translations.save : translations.add, "</button>\n ").concat(group ? "<button type=\"button\">".concat(translations.delete, "</button>") : '', "\n ").concat(selected ? "<button class=\"selectButton\" type=\"button\">".concat(translations.select, "</button>") : '', "\n ");
const form = document.createElement('form');
form.innerHTML = html;
form.addEventListener('submit', e => {
e.preventDefault();
if (group) {
if (group.name === config.selectedGroup) config.selectedGroup = e.target[1].value;
colorizeGroupVillages(group.name, e.target[0].value);
config.groups[e.target[1].value] = _objectSpread(_objectSpread({}, config.groups[group.name]), {}, {
color: e.target[0].value
});
if (group.name !== e.target[1].value) delete config.groups[group.name];
} else {
config.groups[e.target[1].value] = {
color: e.target[0].value,
villages: []
};
}
renderGroups();
});
if (group) {
form.querySelector('button[type="button"]').addEventListener('click', () => {
if (config.selectedGroup === group.name) {
return UI.ErrorMessage(translations.cannotDeleteSelectedGroup);
}
colorizeGroupVillages(group.name, 'transparent');
delete config.groups[group.name];
form.remove();
});
const selectButton = form.querySelector('.selectButton');
if (selectButton) {
selectButton.addEventListener('click', e => {
config.selectedGroup = group.name;
renderGroups();
});
}
}
container.appendChild(form);
};
const renderGroups = () => {
formsContainer.innerHTML = '';
for (let name in config.groups) {
renderForm(formsContainer, _objectSpread(_objectSpread({}, config.groups[name]), {}, {
name
}));
}
renderForm(formsContainer);
};
const handleExportVillages = () => {
const groups = [];
for (let name in config.groups) {
groups.push("<div style=\"margin-bottom: 30px;\">\n <h3>".concat(name, "</h3>\n <textarea cols=30 rows=8 readonly>").concat(config.groups[name].villages.map(village => village.key).join(' ').trim(), "</textarea>\n </div>"));
}
const html = "\n ".concat(groups.join(''), "\n ");
Dialog.show(translations.exportedVillages, html);
};
const renderActions = () => {
const exportVillages = document.createElement('button');
exportVillages.innerHTML = translations.export;
exportVillages.addEventListener('click', handleExportVillages);
actionsContainer.appendChild(exportVillages);
};
const handleSpawnSector = (data, sector) => {
TWMap.mapHandler.__spawnSector(data, sector);
colorizeVillages();
};
const handleStart = () => {
TWMap.map.handler.__onClick = TWMap.map.handler.onClick;
TWMap.map.handler.onClick = handleMapClick;
TWMap.mapHandler.__spawnSector = TWMap.map.handler.spawnSector;
TWMap.mapHandler.spawnSector = handleSpawnSector;
button.innerHTML = translations.stopCoordsPicker;
renderActions();
colorizeVillages();
renderGroups();
intervalID = setInterval(saveConfig, 500);
};
const handleStop = () => {
if (typeof TWMap.map.handler.__onClick === 'function') {
TWMap.map.handler.onClick = TWMap.map.handler.__onClick;
}
if (typeof TWMap.map.handler.__spawnSector === 'function') {
TWMap.mapHandler.spawnSector = TWMap.map.handler.__spawnSector;
}
button.innerHTML = translations.startCoordsPicker;
formsContainer.innerHTML = '';
actionsContainer.innerHTML = '';
colorizeVillages('transparent');
if (intervalID) {
clearInterval(intervalID);
}
for (let name in config.groups) {
config.groups[name].villages = [];
}
};
const handleButtonClick = () => {
if (config.started) {
handleStop();
} else {
handleStart();
}
config.started = !config.started;
saveConfig();
};
const colorizeGroupVillages = function colorizeGroupVillages(name) {
let bgColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
config.groups[name].villages.forEach(village => {
setVillageBorder(village.x, village.y, bgColor ? bgColor : config.groups[name].color);
});
};
const colorizeVillages = function colorizeVillages() {
let bgColor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
for (let name in config.groups) {
colorizeGroupVillages(name, bgColor);
}
};
const renderUI = () => {
button = document.createElement('button');
button.style.marginLeft = '5px';
button.innerHTML = config.started ? translations.stopCoordsPicker : translations.startCoordsPicker;
button.addEventListener('click', handleButtonClick);
container.appendChild(button);
formsContainer = document.createElement('div');
container.parentElement.insertBefore(formsContainer, container.nextSibling);
actionsContainer = document.createElement('div');
container.parentElement.insertBefore(actionsContainer, container.nextSibling);
if (config.started) {
handleStart();
}
};
(function () {
try {
renderUI();
} catch (error) {
console.log('Map Coords Picker', error);
const $c0d320b9a99b0a41aa9ca0954410051e$var$translations = {
pl_PL: {
startCoordsPicker: 'Uruchom zbieracza koordynat',
stopCoordsPicker: 'Zatrzymaj zbieracza koordynat',
exportedVillages: 'Wyeksportowane wioski',
cannotDeleteSelectedGroup: 'Nie można usunąć wybranej grupy!',
select: 'Wybierz',
delete: 'Usuń',
add: 'Dodaj',
save: 'Zapisz',
groupName: 'Nazwa grupy',
export: 'Eksport'
},
en_DK: {
startCoordsPicker: 'Start coords picker',
stopCoordsPicker: 'Stop coords picker',
exportedVillages: 'Exported villages',
cannotDeleteSelectedGroup: 'Cannot delete selected group!',
select: 'Select',
delete: 'Delete',
add: 'Add',
save: 'Save',
groupName: 'Group name',
export: 'Export'
},
de_DE: {
startCoordsPicker: 'Starte Koordinaten-Selektor',
stopCoordsPicker: 'Stoppe Koordinaten-Selektor',
exportedVillages: 'Exportierte Dörfer',
cannotDeleteSelectedGroup: 'Gruppe kann nicht gelöscht werden!',
select: 'Selektieren',
delete: 'Löschen',
add: 'Hinzufügen',
save: 'Speichern',
groupName: 'Gruppen-Name',
export: 'Exportieren'
}
};
var $c0d320b9a99b0a41aa9ca0954410051e$export$default = () => $c0d320b9a99b0a41aa9ca0954410051e$var$translations[window.game_data.locale] || $c0d320b9a99b0a41aa9ca0954410051e$var$translations.en_DK;
const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) {
let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
const json = localStorage.getItem(key);
let obj = d;
if (json) {
obj = JSON.parse(json);
}
return obj;
};
const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => {
localStorage.setItem(key, JSON.stringify(payload));
};
function $bfe8b11df18d9acc480580699499dd1a$var$ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) {
symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
}
keys.push.apply(keys, symbols);
}
return keys;
}
function $bfe8b11df18d9acc480580699499dd1a$var$_objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
$bfe8b11df18d9acc480580699499dd1a$var$ownKeys(Object(source), true).forEach(function (key) {
$bfe8b11df18d9acc480580699499dd1a$var$_defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
$bfe8b11df18d9acc480580699499dd1a$var$ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
function $bfe8b11df18d9acc480580699499dd1a$var$_defineProperty(obj, key, value) {
if ((key in obj)) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
// ==UserScript==
// @name Map coords picker
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js
// @version 0.7.5
// @description Map coords picker
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=map*
// @grant none
// ==/UserScript==
const $bfe8b11df18d9acc480580699499dd1a$var$LOCAL_STORAGE_KEY = 'kichiyaki_map_coords_picker';
const $bfe8b11df18d9acc480580699499dd1a$var$container = document.querySelector('#content_value > h2');
let $bfe8b11df18d9acc480580699499dd1a$var$button;
let $bfe8b11df18d9acc480580699499dd1a$var$formsContainer;
let $bfe8b11df18d9acc480580699499dd1a$var$actionsContainer;
let $bfe8b11df18d9acc480580699499dd1a$var$config = $3d935538f644f492fe681e00121114a4$export$getItem($bfe8b11df18d9acc480580699499dd1a$var$LOCAL_STORAGE_KEY, {
started: false,
groups: {
All: {
villages: [],
color: '#ffffff'
}
},
selectedGroup: 'All'
});
let $bfe8b11df18d9acc480580699499dd1a$var$intervalID;
const $bfe8b11df18d9acc480580699499dd1a$var$translations = $c0d320b9a99b0a41aa9ca0954410051e$export$default();
const $bfe8b11df18d9acc480580699499dd1a$var$saveConfig = () => {
$3d935538f644f492fe681e00121114a4$export$setItem($bfe8b11df18d9acc480580699499dd1a$var$LOCAL_STORAGE_KEY, $bfe8b11df18d9acc480580699499dd1a$var$config);
};
const $bfe8b11df18d9acc480580699499dd1a$var$villageIDByCoords = (x, y) => {
const xy = parseInt(("").concat(x).concat(y), 10);
const village = TWMap.villages[xy];
if (village) {
return TWMap.villages[xy].id;
}
return NaN;
};
const $bfe8b11df18d9acc480580699499dd1a$var$setVillageBorder = function setVillageBorder(x, y) {
let color = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'transparent';
const id = $bfe8b11df18d9acc480580699499dd1a$var$villageIDByCoords(x, y);
if (isNaN(id)) return;
const village = document.querySelector('#map_village_' + id);
if (village) {
village.style.boxSizing = 'border-box';
village.style.border = color !== 'transparent' ? ("5px solid ").concat(color) : 'none';
}
};
const $bfe8b11df18d9acc480580699499dd1a$var$deleteVillageFromOtherGroups = key => {
for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) {
if (name === $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup) return;
$bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages = $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages.filter(village => village.key !== key);
}
};
const $bfe8b11df18d9acc480580699499dd1a$var$handleMapClick = (x, y, e) => {
e.preventDefault();
const key = ("").concat(x, "|").concat(y);
const selected = $bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages.some(village => village.key === key);
if (selected) {
$bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages = $bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages.filter(village => village.key !== key);
$bfe8b11df18d9acc480580699499dd1a$var$setVillageBorder(x, y, 'transparent');
} else {
$bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages = [...$bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages, {
x,
y,
key
}];
$bfe8b11df18d9acc480580699499dd1a$var$setVillageBorder(x, y, $bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].color);
$bfe8b11df18d9acc480580699499dd1a$var$deleteVillageFromOtherGroups(key);
}
};
const $bfe8b11df18d9acc480580699499dd1a$var$renderForm = (container, group) => {
const selected = group && group.name !== $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup;
const html = ("\n <input type=\"color\" value=\"").concat(group ? group.color : '', "\" required />\n <input type=\"text\" required placeholder=\"").concat($bfe8b11df18d9acc480580699499dd1a$var$translations.groupName, "\" value=\"").concat(group ? group.name : '', "\" />\n <button type=\"submit\">").concat(group ? $bfe8b11df18d9acc480580699499dd1a$var$translations.save : $bfe8b11df18d9acc480580699499dd1a$var$translations.add, "</button>\n ").concat(group ? ("<button type=\"button\">").concat($bfe8b11df18d9acc480580699499dd1a$var$translations.delete, "</button>") : '', "\n ").concat(selected ? ("<button class=\"selectButton\" type=\"button\">").concat($bfe8b11df18d9acc480580699499dd1a$var$translations.select, "</button>") : '', "\n ");
const form = document.createElement('form');
form.innerHTML = html;
form.addEventListener('submit', e => {
e.preventDefault();
if (group) {
if (group.name === $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup) $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup = e.target[1].value;
$bfe8b11df18d9acc480580699499dd1a$var$colorizeGroupVillages(group.name, e.target[0].value);
$bfe8b11df18d9acc480580699499dd1a$var$config.groups[e.target[1].value] = $bfe8b11df18d9acc480580699499dd1a$var$_objectSpread($bfe8b11df18d9acc480580699499dd1a$var$_objectSpread({}, $bfe8b11df18d9acc480580699499dd1a$var$config.groups[group.name]), {}, {
color: e.target[0].value
});
if (group.name !== e.target[1].value) delete $bfe8b11df18d9acc480580699499dd1a$var$config.groups[group.name];
} else {
$bfe8b11df18d9acc480580699499dd1a$var$config.groups[e.target[1].value] = {
color: e.target[0].value,
villages: []
};
}
$bfe8b11df18d9acc480580699499dd1a$var$renderGroups();
});
if (group) {
form.querySelector('button[type="button"]').addEventListener('click', () => {
if ($bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup === group.name) {
return UI.ErrorMessage($bfe8b11df18d9acc480580699499dd1a$var$translations.cannotDeleteSelectedGroup);
}
$bfe8b11df18d9acc480580699499dd1a$var$colorizeGroupVillages(group.name, 'transparent');
delete $bfe8b11df18d9acc480580699499dd1a$var$config.groups[group.name];
form.remove();
});
const selectButton = form.querySelector('.selectButton');
if (selectButton) {
selectButton.addEventListener('click', e => {
$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup = group.name;
$bfe8b11df18d9acc480580699499dd1a$var$renderGroups();
});
}
}
container.appendChild(form);
};
const $bfe8b11df18d9acc480580699499dd1a$var$renderGroups = () => {
$bfe8b11df18d9acc480580699499dd1a$var$formsContainer.innerHTML = '';
for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) {
$bfe8b11df18d9acc480580699499dd1a$var$renderForm($bfe8b11df18d9acc480580699499dd1a$var$formsContainer, $bfe8b11df18d9acc480580699499dd1a$var$_objectSpread($bfe8b11df18d9acc480580699499dd1a$var$_objectSpread({}, $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name]), {}, {
name
}));
}
$bfe8b11df18d9acc480580699499dd1a$var$renderForm($bfe8b11df18d9acc480580699499dd1a$var$formsContainer);
};
const $bfe8b11df18d9acc480580699499dd1a$var$handleExportVillages = () => {
const groups = [];
for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) {
groups.push(("<div style=\"margin-bottom: 30px;\">\n <h3>").concat(name, "</h3>\n <textarea cols=30 rows=8 readonly>").concat($bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages.map(village => village.key).join(' ').trim(), "</textarea>\n </div>"));
}
const html = ("\n ").concat(groups.join(''), "\n ");
Dialog.show($bfe8b11df18d9acc480580699499dd1a$var$translations.exportedVillages, html);
};
const $bfe8b11df18d9acc480580699499dd1a$var$renderActions = () => {
const exportVillages = document.createElement('button');
exportVillages.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$translations.export;
exportVillages.addEventListener('click', $bfe8b11df18d9acc480580699499dd1a$var$handleExportVillages);
$bfe8b11df18d9acc480580699499dd1a$var$actionsContainer.appendChild(exportVillages);
};
const $bfe8b11df18d9acc480580699499dd1a$var$handleSpawnSector = (data, sector) => {
TWMap.mapHandler.__spawnSector(data, sector);
$bfe8b11df18d9acc480580699499dd1a$var$colorizeVillages();
};
const $bfe8b11df18d9acc480580699499dd1a$var$handleStart = () => {
TWMap.map.handler.__onClick = TWMap.map.handler.onClick;
TWMap.map.handler.onClick = $bfe8b11df18d9acc480580699499dd1a$var$handleMapClick;
TWMap.mapHandler.__spawnSector = TWMap.map.handler.spawnSector;
TWMap.mapHandler.spawnSector = $bfe8b11df18d9acc480580699499dd1a$var$handleSpawnSector;
$bfe8b11df18d9acc480580699499dd1a$var$button.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$translations.stopCoordsPicker;
$bfe8b11df18d9acc480580699499dd1a$var$renderActions();
$bfe8b11df18d9acc480580699499dd1a$var$colorizeVillages();
$bfe8b11df18d9acc480580699499dd1a$var$renderGroups();
$bfe8b11df18d9acc480580699499dd1a$var$intervalID = setInterval($bfe8b11df18d9acc480580699499dd1a$var$saveConfig, 500);
};
const $bfe8b11df18d9acc480580699499dd1a$var$handleStop = () => {
if (typeof TWMap.map.handler.__onClick === 'function') {
TWMap.map.handler.onClick = TWMap.map.handler.__onClick;
}
if (typeof TWMap.map.handler.__spawnSector === 'function') {
TWMap.mapHandler.spawnSector = TWMap.map.handler.__spawnSector;
}
$bfe8b11df18d9acc480580699499dd1a$var$button.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$translations.startCoordsPicker;
$bfe8b11df18d9acc480580699499dd1a$var$formsContainer.innerHTML = '';
$bfe8b11df18d9acc480580699499dd1a$var$actionsContainer.innerHTML = '';
$bfe8b11df18d9acc480580699499dd1a$var$colorizeVillages('transparent');
if ($bfe8b11df18d9acc480580699499dd1a$var$intervalID) {
clearInterval($bfe8b11df18d9acc480580699499dd1a$var$intervalID);
}
for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) {
$bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages = [];
}
};
const $bfe8b11df18d9acc480580699499dd1a$var$handleButtonClick = () => {
if ($bfe8b11df18d9acc480580699499dd1a$var$config.started) {
$bfe8b11df18d9acc480580699499dd1a$var$handleStop();
} else {
$bfe8b11df18d9acc480580699499dd1a$var$handleStart();
}
$bfe8b11df18d9acc480580699499dd1a$var$config.started = !$bfe8b11df18d9acc480580699499dd1a$var$config.started;
$bfe8b11df18d9acc480580699499dd1a$var$saveConfig();
};
const $bfe8b11df18d9acc480580699499dd1a$var$colorizeGroupVillages = function colorizeGroupVillages(name) {
let bgColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
$bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages.forEach(village => {
$bfe8b11df18d9acc480580699499dd1a$var$setVillageBorder(village.x, village.y, bgColor ? bgColor : $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].color);
});
};
const $bfe8b11df18d9acc480580699499dd1a$var$colorizeVillages = function colorizeVillages() {
let bgColor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) {
$bfe8b11df18d9acc480580699499dd1a$var$colorizeGroupVillages(name, bgColor);
}
};
const $bfe8b11df18d9acc480580699499dd1a$var$renderUI = () => {
$bfe8b11df18d9acc480580699499dd1a$var$button = document.createElement('button');
$bfe8b11df18d9acc480580699499dd1a$var$button.style.marginLeft = '5px';
$bfe8b11df18d9acc480580699499dd1a$var$button.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$config.started ? $bfe8b11df18d9acc480580699499dd1a$var$translations.stopCoordsPicker : $bfe8b11df18d9acc480580699499dd1a$var$translations.startCoordsPicker;
$bfe8b11df18d9acc480580699499dd1a$var$button.addEventListener('click', $bfe8b11df18d9acc480580699499dd1a$var$handleButtonClick);
$bfe8b11df18d9acc480580699499dd1a$var$container.appendChild($bfe8b11df18d9acc480580699499dd1a$var$button);
$bfe8b11df18d9acc480580699499dd1a$var$formsContainer = document.createElement('div');
$bfe8b11df18d9acc480580699499dd1a$var$container.parentElement.insertBefore($bfe8b11df18d9acc480580699499dd1a$var$formsContainer, $bfe8b11df18d9acc480580699499dd1a$var$container.nextSibling);
$bfe8b11df18d9acc480580699499dd1a$var$actionsContainer = document.createElement('div');
$bfe8b11df18d9acc480580699499dd1a$var$container.parentElement.insertBefore($bfe8b11df18d9acc480580699499dd1a$var$actionsContainer, $bfe8b11df18d9acc480580699499dd1a$var$container.nextSibling);
if ($bfe8b11df18d9acc480580699499dd1a$var$config.started) {
$bfe8b11df18d9acc480580699499dd1a$var$handleStart();
}
};
(function () {
try {
$bfe8b11df18d9acc480580699499dd1a$var$renderUI();
} catch (error) {
console.log('Map Coords Picker', error);
}
})();
})();
},{"./i18n/mapCoordsPicker":"jH35","./utils/localStorage":"KWxH"}]},{},["FWa8"], null)

View File

@ -1,13 +1 @@
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"Ph2E":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.API_URI=void 0;const e="https://api.tribalwarshelp.com/graphql";exports.API_URI=e;var r=function(){let{query:r,variables:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(e,{method:"POST",body:JSON.stringify({query:r,variables:t}),headers:{"Content-Type":"application/json"}}).then(e=>e.json()).then(e=>{let{data:r,errors:t}=e;if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise(e=>e(r))})};exports.default=r;
},{}],"MRps":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const a={pl_PL:{actualCoords:"Aktualne koordynaty",searchBonusBarbarianVillages:"Wyszukaj koczownicze",village:"Wioska",distance:"Dystans",action:"Akcja"},en_DK:{actualCoords:"Actual coords",searchBonusBarbarianVillages:"Search bonus barbarian villages",village:"Village",distance:"Distance",action:"Action"},de_DE:{actualCoords:"Aktuelle Koordinaten",searchBonusBarbarianVillages:"Suche Bonus-Barbarendörfer",village:"Dorf",distance:"Distanz",action:"Aktion"}};var e=()=>a[window.game_data.locale]||a.en_DK;exports.default=e;
},{}],"DMkL":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=()=>window.location.host.split(".")[0];exports.default=e;
},{}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.buildVillageName=exports.buildVillageURL=exports.buildPlayerURL=exports.buildTribeURL=void 0;const i=i=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:i});exports.buildTribeURL=i;const o=i=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:i});exports.buildPlayerURL=o;const e=i=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:i});exports.buildVillageURL=e;const t=function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const t="K"+String(e)[0]+String(o)[0];return"".concat(i," (").concat(o,"|").concat(e,") ").concat(t)};exports.buildVillageName=t;const l=(i,o)=>Math.round(i*o);exports.calcAttackDuration=l;const r=i=>image_base+i;exports.buildImgURL=r;
},{}],"XOOL":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.calcDistanceBetweenTwoPoints=void 0;const e=(e,t,s,o)=>{const c=e-s,n=t-o;return Math.sqrt(c*c+n*n)};exports.calcDistanceBetweenTwoPoints=e;
},{}],"fvjy":[function(require,module,exports) {
"use strict";var e=c(require("./libs/requestCreator")),t=c(require("./i18n/bonusBarbarianVillageFinder")),n=c(require("./utils/getCurrentServer")),r=i(require("./utils/tribalwars")),a=require("./utils/math");function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function i(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=r?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function c(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const f=(0,n.default)(),d="\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",p="bonusBarbarianVillageFinderTable",b="actualCoords",y=(0,t.default)();let v=void 0;const g=(e,t)=>({query:d,variables:{server:f,sort:["id DESC"],filter:{bonus:e,playerID:[0]},offset:t}}),m=async t=>{const{villages:n}=await(0,e.default)(g(t,0));for(let r=n.length;r<n.total;r+=1e3){const r=await(0,e.default)(g(t,0));n.items=[...n.items,...r.villages.items]}return n},O=async e=>{e.preventDefault();const t=await m(parseInt(e.target[0].value)),n=TWMap.pos;t.items=t.items.map(e=>l(l({},e),{},{distance:(0,a.calcDistanceBetweenTwoPoints)(n[0],n[1],e.x,e.y)})).sort((e,t)=>e.distance-t.distance),document.querySelector("#"+p).innerHTML=j(t.items)},h=()=>{let e=[];for(let t in TWMap.bonus_data)e.push({value:t,text:TWMap.bonus_data[t].text});return e},j=e=>"\n <tbody>\n <tr>\n <th>\n ".concat(y.village,"\n </th>\n <th>\n ").concat(y.distance,"\n </th>\n <th>\n ").concat(y.action,"\n </th>\n </tr>\n ").concat(Array.isArray(e)?e.map(e=>'<tr>\n <td>\n <a href="'.concat(r.buildVillageURL(e.id),'">\n ').concat(r.buildVillageName(e.name,e.x,e.y),"\n </a>\n </td>\n <td>\n ").concat(e.distance.toFixed(1),'\n </td>\n <td>\n <a href="#" onclick="return TWMap.focusUserSpecified(').concat(e.x,", ").concat(e.y,')">Center</a>\n </td>\n </tr>')).join(""):"","\n </tbody>\n "),w=()=>{document.querySelector("#actualCoords").innerHTML="".concat(y.actualCoords,": <strong>").concat(TWMap.pos.join("|"),"</strong>")},P=()=>{const e='\n <p id="'.concat("actualCoords",'"></p>\n <form>\n <select>\n ').concat(h().map(e=>'<option value="'.concat(e.value,'">').concat(e.text,"</option>")).join(""),'\n </select>\n <button type="submit">').concat(y.searchBonusBarbarianVillages,'</button>\n </form>\n <table class="vis" style="width: 100%;" id="').concat(p,'">\n ').concat(j(),"\n </table>\n ");v||((v=document.createElement("div")).classList.add("containerBorder"),v.style.clear="both",document.querySelector("#map_big").appendChild(v)),v.innerHTML=e,v.querySelector("form").addEventListener("submit",O),w(),setInterval(w,1e3)};P();
},{"./libs/requestCreator":"Ph2E","./i18n/bonusBarbarianVillageFinder":"MRps","./utils/getCurrentServer":"DMkL","./utils/tribalwars":"fHHP","./utils/math":"XOOL"}]},{},["fvjy"], null)
!function(){const t="https://api.tribalwarshelp.com/graphql";var n=function(){let{query:n,variables:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(t,{method:"POST",body:JSON.stringify({query:n,variables:e}),headers:{"Content-Type":"application/json"}}).then((t=>t.json())).then((t=>{let{data:n,errors:e}=t;if(e&&Array.isArray(e)&&e.length>0)throw new Error(e[0].message);return new Promise((t=>t(n)))}))};const e={pl_PL:{actualCoords:"Aktualne koordynaty",searchBonusBarbarianVillages:"Wyszukaj koczownicze",village:"Wioska",distance:"Dystans",action:"Akcja"},en_DK:{actualCoords:"Actual coords",searchBonusBarbarianVillages:"Search bonus barbarian villages",village:"Village",distance:"Distance",action:"Action"},de_DE:{actualCoords:"Aktuelle Koordinaten",searchBonusBarbarianVillages:"Suche Bonus-Barbarendörfer",village:"Dorf",distance:"Distanz",action:"Aktion"}};const a=(t,n,e,a)=>{const r=t-e,o=n-a;return Math.sqrt(r*r+o*o)};function r(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,a)}return e}function o(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?r(Object(e),!0).forEach((function(n){i(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):r(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}function i(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}const c=window.location.host.split(".")[0],s="bonusBarbarianVillageFinderTable",l="actualCoords",u=e[window.game_data.locale]||e.en_DK;let d;const b=(t,n)=>({query:"\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",variables:{server:c,sort:["id DESC"],filter:{bonus:t,playerID:[0]},offset:n}}),p=async t=>{t.preventDefault();const e=await(async t=>{const{villages:e}=await n(b(t,0));for(let a=e.length;a<e.total;a+=1e3){const a=await n(b(t,0));e.items=[...e.items,...a.villages.items]}return e})(parseInt(t.target[0].value)),r=TWMap.pos;e.items=e.items.map((t=>o(o({},t),{},{distance:a(r[0],r[1],t.x,t.y)}))).sort(((t,n)=>t.distance-n.distance)),document.querySelector("#bonusBarbarianVillageFinderTable").innerHTML=f(e.items)},f=t=>"\n <tbody>\n <tr>\n <th>\n ".concat(u.village,"\n </th>\n <th>\n ").concat(u.distance,"\n </th>\n <th>\n ").concat(u.action,"\n </th>\n </tr>\n ").concat(Array.isArray(t)?t.map((t=>{return'<tr>\n <td>\n <a href="'.concat((n=t.id,window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:n})),'">\n ').concat(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const a="K"+String(e)[0]+String(n)[0];return"".concat(t," (").concat(n,"|").concat(e,") ").concat(a)}(t.name,t.x,t.y),"\n </a>\n </td>\n <td>\n ").concat(t.distance.toFixed(1),'\n </td>\n <td>\n <a href="#" onclick="return TWMap.focusUserSpecified(').concat(t.x,", ").concat(t.y,')">Center</a>\n </td>\n </tr>');var n})).join(""):"","\n </tbody>\n "),g=()=>{document.querySelector("#actualCoords").innerHTML="".concat(u.actualCoords,": <strong>").concat(TWMap.pos.join("|"),"</strong>")};(()=>{const t='\n <p id="'.concat(l,'"></p>\n <form>\n <select>\n ').concat((()=>{let t=[];for(let n in TWMap.bonus_data)t.push({value:n,text:TWMap.bonus_data[n].text});return t})().map((t=>'<option value="'.concat(t.value,'">').concat(t.text,"</option>"))).join(""),'\n </select>\n <button type="submit">').concat(u.searchBonusBarbarianVillages,'</button>\n </form>\n <table class="vis" style="width: 100%;" id="').concat(s,'">\n ').concat(f(),"\n </table>\n ");d||(d=document.createElement("div"),d.classList.add("containerBorder"),d.style.clear="both",document.querySelector("#map_big").appendChild(d)),d.innerHTML=t,d.querySelector("form").addEventListener("submit",p),g(),setInterval(g,1e3)})()}();

View File

@ -1,7 +1 @@
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"ar93":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e={pl_PL:{rename:"Zmień",name:"Nazwa"},en_DK:{rename:"Rename",name:"Name"},de_DE:{rename:"Umbenennen",name:"Name"}};var a=()=>e[window.game_data.locale]||e.en_DK;exports.default=a;
},{}],"oUdd":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>new Promise(t=>setTimeout(t,e));exports.default=e;
},{}],"XXZR":[function(require,module,exports) {
"use strict";var e=n(require("./i18n/commandRenamer")),t=n(require("./utils/wait"));function n(e){return e&&e.__esModule?e:{default:e}}const c=(0,e.default)(),r=async e=>{e.preventDefault();const n=e.target[0].value;if(!n)return;const c=document.querySelectorAll("#incomings_table input:checked");e.target[1].disabled=!0;for(let r=0;r<c.length;r++){const e=c[r];if("select_all"===e.id)continue;e.parentElement.querySelector(".rename-icon").click(),await(0,t.default)(20);const o=e.parentElement.querySelector(".quickedit-edit");o.querySelector("input").value=n,o.querySelector('input[type="button"]').click(),await(0,t.default)(350)}e.target[1].disabled=!1},o=()=>{const e='\n <input type="text" placeholder="'.concat(c.name,'" />\n <button type="submit">').concat(c.rename,"</button>\n "),t=document.createElement("form");t.innerHTML=e,t.addEventListener("submit",r),document.querySelector("#paged_view_content").insertBefore(t,document.querySelector("#incomings_form"))};!async function(){try{o()}catch(e){console.log("command renamer",e)}}();
},{"./i18n/commandRenamer":"ar93","./utils/wait":"oUdd"}]},{},["XXZR"], null)
!function(){const e={pl_PL:{rename:"Zmień",name:"Nazwa"},en_DK:{rename:"Rename",name:"Name"},de_DE:{rename:"Umbenennen",name:"Name"}};var t=e=>new Promise((t=>setTimeout(t,e)));const n=e[window.game_data.locale]||e.en_DK,a=async e=>{e.preventDefault();const n=e.target[0].value;if(!n)return;const a=document.querySelectorAll("#incomings_table input:checked");e.target[1].disabled=!0;for(let e=0;e<a.length;e++){const c=a[e];if("select_all"===c.id)continue;c.parentElement.querySelector(".rename-icon").click(),await t(20);const o=c.parentElement.querySelector(".quickedit-edit");o.querySelector("input").value=n,o.querySelector('input[type="button"]').click(),await t(350)}e.target[1].disabled=!1};!async function(){try{(()=>{const e='\n <input type="text" placeholder="'.concat(n.name,'" />\n <button type="submit">').concat(n.rename,"</button>\n "),t=document.createElement("form");t.innerHTML=e,t.addEventListener("submit",a),document.querySelector("#paged_view_content").insertBefore(t,document.querySelector("#incomings_form"))})()}catch(e){console.log("command renamer",e)}}()}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1 @@
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"tQUs":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>parseInt(new URLSearchParams(e).get("id"));exports.default=e;
},{}],"dSAr":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("../utils/getIDFromURL"));function t(e){return e&&e.__esModule?e:{default:e}}class r{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.trs=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),this.filters=t}isValidRow(e){return!!e&&((!this.filters.playerID||e.playerID===this.filters.playerID)&&!(this.filters.tribes&&Array.isArray(this.filters.tribes)&&!this.filters.tribes.some(t=>t===e.tribe)))}parseRow(t){if(!t||!t instanceof HTMLTableRowElement)return;let r={};return r.rank=parseInt(t.children[0].innerText.trim()),r.name=t.children[1].innerText.trim(),r.playerID=(0,e.default)(t.children[1].querySelector("a").getAttribute("href")),r.tribe=t.children[2].innerText.trim(),r.tribeID=0,r.tribe&&(r.tribeID=(0,e.default)(t.children[2].querySelector("a").getAttribute("href"))),r.score=parseInt(t.children[3].innerText.trim().replace(/\./g,"")),r.date=t.children[4].innerText.trim(),r}parse(){const e=[];for(let t=1;t<this.trs.length;t++){const r=this.trs[t],i=this.parseRow(r);this.isValidRow(i)&&e.push(i)}return e}}exports.default=r;
},{"../utils/getIDFromURL":"tQUs"}],"hPka":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e={pl_PL:{addTribe:"Dodaj plemię",generate:"Wygeneruj",delete:"Usuń",player:"Gracz",tribe:"Plemię",rank:"Ranking",score:"Wynik",date:"Data",loaded:"Załadowano"},en_DK:{addTribe:"Add tribe",generate:"Generate",delete:"Delete",player:"Player",tribe:"Tribe",rank:"Rank",score:"Score",date:"Date",loaded:"Loaded"},de_DE:{addTribe:"Stamm hinzufügen",generate:"Generieren",delete:"Löschen",player:"Spieler",tribe:"Stamm",rank:"Rang",score:"Punkte",date:"Datum",loaded:"Geladen"}};var a=()=>e[window.game_data.locale]||e.en_DK;exports.default=a;
},{}],"oUdd":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>new Promise(t=>setTimeout(t,e));exports.default=e;
},{}],"s4G3":[function(require,module,exports) {
"use strict";var e=a(require("./libs/InADayParser")),t=a(require("./i18n/inADayTribeRankingGenerator")),n=a(require("./utils/wait"));function a(e){return e&&e.__esModule?e:{default:e}}const r="iad_tribes",c="iad_limit",i=(0,t.default)(),o=()=>{const e=document.querySelector("#iad_tribes"),t=document.createElement("div");t.innerHTML="\n <label>".concat(i.tribe,': </label>\n <input type="text" required />\n <button type="button">').concat(i.delete,"</button>\n "),t.querySelector("button").addEventListener("click",()=>{e.children.length>1&&t.remove()}),e.appendChild(t)},l=async t=>{t.preventDefault();const a=parseInt(document.querySelector("#iad_limit").value),r=[],c=new URLSearchParams(window.location.search).get("type")||"kill_att";document.querySelectorAll("#iad_tribes input").forEach(e=>{e.value&&r.push(e.value.trim())});let o=[],l=0;for(;o.length<a;){Dialog.show("iad_loading","".concat(i.loaded,": <strong>").concat(o.length,"/").concat(a,"</strong>"));try{const t=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:c,offset:25*l})),a=await t.text(),i=new e.default(a,{tribes:r});if(26!==i.trs.length)break;o=[...o,...i.parse()],l++,await(0,n.default)(200)}catch(d){break}}o.length>a&&(o=o.slice(0,a)),Dialog.show("iad_result","\n <textarea cols=30 rows=8 readonly>[table]\n[**][||]".concat(i.player,"[||]").concat(i.tribe,"[||]").concat(i.rank,"[||]").concat(i.score,"[||]").concat(i.date,"[/**]\n").concat(o.map((e,t)=>"[*]".concat(t+1,".[|][player]").concat(e.name,"[/player][|][ally]").concat(e.tribe,"[/ally][|]").concat(e.rank,"[|]").concat(e.score.toLocaleString(),"[|]").concat(e.date)).join("\n"),"\n[/table]</textarea>\n "))},d=()=>{const e=document.createElement("div"),t='\n <form>\n <div id="'.concat("iad_tribes",'">\n </div>\n <div>\n <label>Limit: </label>\n <input id="').concat("iad_limit",'" type="number" min="1" value="10" required />\n </div>\n <button type="submit">').concat(i.generate,'</button>\n <button id="').concat("iad_add",'" type="button">').concat(i.addTribe,"</button>\n </form>\n ");e.innerHTML=t,document.querySelector("#content_value > table > tbody > tr > td:nth-child(2)").prepend(e),e.querySelector("form").addEventListener("submit",l),e.querySelector("#iad_add").addEventListener("click",o),o()};!function(){try{d()}catch(e){console.log("'In A Day' Tribe Ranking Generator",e)}}();
},{"./libs/InADayParser":"dSAr","./i18n/inADayTribeRankingGenerator":"hPka","./utils/wait":"oUdd"}]},{},["s4G3"], null)
!function(){var e=e=>parseInt(new URLSearchParams(e).get("id"));class t{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.trs=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),this.filters=t}isValidRow(e){return!!e&&((!this.filters.playerID||e.playerID===this.filters.playerID)&&!(this.filters.tribes&&Array.isArray(this.filters.tribes)&&!this.filters.tribes.some((t=>t===e.tribe))))}parseRow(t){if(!t||!t instanceof HTMLTableRowElement)return;let r={};return r.rank=parseInt(t.children[0].innerText.trim()),r.name=t.children[1].innerText.trim(),r.playerID=e(t.children[1].querySelector("a").getAttribute("href")),r.tribe=t.children[2].innerText.trim(),r.tribeID=0,r.tribe&&(r.tribeID=e(t.children[2].querySelector("a").getAttribute("href"))),r.score=parseInt(t.children[3].innerText.trim().replace(/\./g,"")),r.date=t.children[4].innerText.trim(),r}parse(){const e=[];for(let t=1;t<this.trs.length;t++){const r=this.trs[t],n=this.parseRow(r);this.isValidRow(n)&&e.push(n)}return e}}const r={pl_PL:{addTribe:"Dodaj plemię",generate:"Wygeneruj",delete:"Usuń",player:"Gracz",tribe:"Plemię",rank:"Ranking",score:"Wynik",date:"Data",loaded:"Załadowano"},en_DK:{addTribe:"Add tribe",generate:"Generate",delete:"Delete",player:"Player",tribe:"Tribe",rank:"Rank",score:"Score",date:"Date",loaded:"Loaded"},de_DE:{addTribe:"Stamm hinzufügen",generate:"Generieren",delete:"Löschen",player:"Spieler",tribe:"Stamm",rank:"Rang",score:"Punkte",date:"Datum",loaded:"Geladen"}};var n=e=>new Promise((t=>setTimeout(t,e)));const a="iad_tribes",i="iad_limit",o=r[window.game_data.locale]||r.en_DK,l=()=>{const e=document.querySelector("#iad_tribes"),t=document.createElement("div");t.innerHTML="\n <label>".concat(o.tribe,': </label>\n <input type="text" required />\n <button type="button">').concat(o.delete,"</button>\n "),t.querySelector("button").addEventListener("click",(()=>{e.children.length>1&&t.remove()})),e.appendChild(t)},c=async e=>{e.preventDefault();const r=parseInt(document.querySelector("#iad_limit").value),a=[],i=new URLSearchParams(window.location.search).get("type")||"kill_att";document.querySelectorAll("#iad_tribes input").forEach((e=>{e.value&&a.push(e.value.trim())}));let l=[],c=0;for(;l.length<r;){Dialog.show("iad_loading","".concat(o.loaded,": <strong>").concat(l.length,"/").concat(r,"</strong>"));try{const e=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:i,offset:25*c})),r=await e.text(),o=new t(r,{tribes:a});if(26!==o.trs.length)break;l=[...l,...o.parse()],c++,await n(200)}catch(e){break}}l.length>r&&(l=l.slice(0,r)),Dialog.show("iad_result","\n <textarea cols=30 rows=8 readonly>[table]\n[**][||]".concat(o.player,"[||]").concat(o.tribe,"[||]").concat(o.rank,"[||]").concat(o.score,"[||]").concat(o.date,"[/**]\n").concat(l.map(((e,t)=>"[*]".concat(t+1,".[|][player]").concat(e.name,"[/player][|][ally]").concat(e.tribe,"[/ally][|]").concat(e.rank,"[|]").concat(e.score.toLocaleString(),"[|]").concat(e.date))).join("\n"),"\n[/table]</textarea>\n "))};!function(){try{(()=>{const e="iad_add",t=document.createElement("div"),r='\n <form>\n <div id="'.concat(a,'">\n </div>\n <div>\n <label>Limit: </label>\n <input id="').concat(i,'" type="number" min="1" value="10" required />\n </div>\n <button type="submit">').concat(o.generate,'</button>\n <button id="').concat(e,'" type="button">').concat(o.addTribe,"</button>\n </form>\n ");t.innerHTML=r,document.querySelector("#content_value > table > tbody > tr > td:nth-child(2)").prepend(t),t.querySelector("form").addEventListener("submit",c),t.querySelector("#iad_add").addEventListener("click",l),l()})()}catch(e){console.log("'In A Day' Tribe Ranking Generator",e)}}()}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,501 +1,257 @@
// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles
parcelRequire = (function (modules, cache, entry, globalName) {
// Save the require from previous bundle to this closure if any
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
var nodeRequire = typeof require === 'function' && require;
function newRequire(name, jumped) {
if (!cache[name]) {
if (!modules[name]) {
// if we cannot find the module within our internal map or
// cache jump to the current global require ie. the last bundle
// that was added to the page.
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
if (!jumped && currentRequire) {
return currentRequire(name, true);
}
// If there are other bundles on this page the require from the
// previous one is saved to 'previousRequire'. Repeat this as
// many times as there are bundles until the module is found or
// we exhaust the require chain.
if (previousRequire) {
return previousRequire(name, true);
}
// Try the node require function if it exists.
if (nodeRequire && typeof name === 'string') {
return nodeRequire(name);
}
var err = new Error('Cannot find module \'' + name + '\'');
err.code = 'MODULE_NOT_FOUND';
throw err;
}
localRequire.resolve = resolve;
localRequire.cache = {};
var module = cache[name] = new newRequire.Module(name);
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
}
return cache[name].exports;
function localRequire(x){
return newRequire(localRequire.resolve(x));
}
function resolve(x){
return modules[name][1][x] || x;
}
}
function Module(moduleName) {
this.id = moduleName;
this.bundle = newRequire;
this.exports = {};
}
newRequire.isParcelRequire = true;
newRequire.Module = Module;
newRequire.modules = modules;
newRequire.cache = cache;
newRequire.parent = previousRequire;
newRequire.register = function (id, exports) {
modules[id] = [function (require, module) {
module.exports = exports;
}, {}];
};
var error;
for (var i = 0; i < entry.length; i++) {
try {
newRequire(entry[i]);
} catch (e) {
// Save first error but execute all entries
if (!error) {
error = e;
}
}
}
if (entry.length) {
// Expose entry point to Node, AMD or browser globals
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
var mainExports = newRequire(entry[entry.length - 1]);
// CommonJS
if (typeof exports === "object" && typeof module !== "undefined") {
module.exports = mainExports;
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(function () {
return mainExports;
});
// <script>
} else if (globalName) {
this[globalName] = mainExports;
}
}
// Override the current require with this new one
parcelRequire = newRequire;
if (error) {
// throw error from earlier, _after updating parcelRequire_
throw error;
}
return newRequire;
})({"Ph2E":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.API_URI = void 0;
const API_URI = 'https://api.tribalwarshelp.com/graphql';
exports.API_URI = API_URI;
var _default = function _default() {
let {
query,
variables = {}
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return fetch(API_URI, {
method: 'POST',
body: JSON.stringify({
query,
variables
}),
headers: {
'Content-Type': 'application/json'
}
}).then(res => {
return res.json();
}).then((_ref) => {
let {
data,
errors
} = _ref;
if (errors && Array.isArray(errors) && errors.length > 0) {
throw new Error(errors[0].message);
}
return new Promise(resolve => resolve(data));
});
};
exports.default = _default;
},{}],"vPH5":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const translations = {
pl_PL: {
conquers: 'Przejęcia',
sideOne: 'Strona 1',
sideTwo: 'Strona 2',
difference: 'Różnica',
tribeTag: 'Skrót plemienia',
delete: 'Usuń',
notEnoughTribesSideOne: 'Musisz dodać jakiekolwiek plemię do strony 1.',
notEnoughTribesSideTwo: 'Musisz dodać jakiekolwiek plemię do strony 2.',
from: 'Od',
to: 'Do',
warStatsGenerator: 'Generator statystyk wojennych',
generateWarStats: 'Wygeneruj statystyki wojenne',
addTribe: 'Dodaj plemię',
devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).'
},
en_DK: {
conquers: 'Conquers',
sideOne: 'Side one',
sideTwo: 'Side two',
difference: 'Difference',
tribeTag: 'Tribe tag',
delete: 'Delete',
notEnoughTribesSideOne: 'Not enough tribes added to the side one.',
notEnoughTribesSideTwo: 'Not enough tribes added to the side two.',
from: 'From',
to: 'To',
warStatsGenerator: 'War stats generator',
generateWarStats: 'Generate war stats',
addTribe: 'Add tribe',
devNote: "Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."
},
de_DE: {
conquers: 'Eroberungen',
sideOne: 'Partei A',
sideTwo: 'Partei B',
difference: 'Differenz',
tribeTag: 'Stammeskürzel',
delete: 'Löschen',
notEnoughTribesSideOne: 'Nicht genügend Stämme hinzugefügt zu Partei A.',
notEnoughTribesSideTwo: 'Nicht genügend Stämme hinzugefügt zu Partei B.',
from: 'Von',
to: 'Zu',
warStatsGenerator: 'Kriegsstatistik Generator',
generateWarStats: 'Generiere Statistik',
addTribe: 'Stamm Hinzufügen',
devNote: "Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."
}
};
var _default = () => translations[window.game_data.locale] || translations.en_DK;
exports.default = _default;
},{}],"DMkL":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = () => window.location.host.split('.')[0];
exports.default = _default;
},{}],"J1Ly":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _default = function _default() {
let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return server.substr(0, 2);
};
exports.default = _default;
},{}],"gvXE":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildVillageURL = exports.buildTribeURL = exports.buildPlayerURL = exports.buildURLToProfile = exports.buildURLToServerPage = exports.BASE_URL = void 0;
const BASE_URL = 'tribalwarshelp.com';
exports.BASE_URL = BASE_URL;
const buildURLToServerPage = function buildURLToServerPage() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
return "https://".concat(version, ".").concat(BASE_URL, "/server/").concat(server);
};
exports.buildURLToServerPage = buildURLToServerPage;
const buildURLToProfile = function buildURLToProfile() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
return "".concat(buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id);
};
exports.buildURLToProfile = buildURLToProfile;
const buildPlayerURL = function buildPlayerURL() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
return buildURLToProfile(version, server, id, 'player');
};
exports.buildPlayerURL = buildPlayerURL;
const buildTribeURL = function buildTribeURL() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
return buildURLToProfile(version, server, id, 'tribe');
};
exports.buildTribeURL = buildTribeURL;
const buildVillageURL = function buildVillageURL() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
return buildURLToProfile(version, server, id, 'village');
};
exports.buildVillageURL = buildVillageURL;
},{}],"chDM":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.POPUP_SELECTOR = void 0;
const POPUP_SELECTOR = '.popup_box';
exports.POPUP_SELECTOR = POPUP_SELECTOR;
const showPopup = function showPopup() {
let {
html,
id,
title
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
Dialog.show(id, "<h3>".concat(title, "</h3>") + html);
const popup = document.querySelector(POPUP_SELECTOR);
if (popup) {
popup.style.width = 'auto';
popup.style.maxWidth = '1000px';
}
};
var _default = showPopup;
exports.default = _default;
},{}],"H9GS":[function(require,module,exports) {
"use strict";
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
var _warStatsGenerator = _interopRequireDefault(require("./i18n/warStatsGenerator"));
var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer"));
var _getServerVersionCode = _interopRequireDefault(require("./utils/getServerVersionCode"));
var twhelputils = _interopRequireWildcard(require("./utils/twhelp"));
var _showPopup = _interopRequireWildcard(require("./utils/showPopup"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// ==UserScript==
// @name War stats generator
// @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.3.4
// @description War stats generator
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=ranking*mode=wars*
// @grant none
// @run-at document-end
// ==/UserScript==
const SERVER = (0, _getCurrentServer.default)();
const SIDE_ONE_BUTTON_ID = 'sideOneAdd';
const SIDE_ONE_INPUT_CONTAINER_ID = 'sideOneInputs';
const SIDE_TWO_BUTTON_ID = 'sideTwoAdd';
const SIDE_TWO_INPUT_CONTAINER_ID = 'sideTwoInputs';
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!, $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() {
let sideOne = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
let sideTwo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
const html = "\n <div>\n <h3>".concat(translations.conquers, ":</h3>\n <p style=\"margin: 0;\"><strong>").concat(translations.sideOne, ": ").concat(sideOne, "</strong></p>\n <p style=\"margin: 0;\"><strong>").concat(translations.sideTwo, ": ").concat(sideTwo, "</strong></p>\n <p style=\"margin: 0;\"><strong>").concat(translations.difference, ": ").concat(Math.abs(sideOne - sideTwo), "</strong></p>\n <hr style=\"margin: 10px 0;\" />\n </div>\n ");
document.querySelector('#' + RESULT_CONTAINER_ID).innerHTML = html;
};
const createAddTribeHandler = container => {
return () => {
const div = document.createElement('div');
div.innerHTML = "\n <label>".concat(translations.tribeTag, ": </label>\n <input type=\"text\" required />\n <button type=\"button\" class=\"btn\">").concat(translations.delete, "</button>\n ");
div.querySelector('button').addEventListener('click', () => {
div.remove();
});
container.appendChild(div);
};
};
const handleFormSubmit = async e => {
e.preventDefault();
const sideOneTags = [];
const sideTwoTags = [];
e.target.querySelectorAll("#".concat(SIDE_ONE_INPUT_CONTAINER_ID, " input")).forEach(el => {
if (el.value.trim()) {
sideOneTags.push(el.value.trim());
}
});
e.target.querySelectorAll("#".concat(SIDE_TWO_INPUT_CONTAINER_ID, " input")).forEach(el => {
if (el.value.trim()) {
sideTwoTags.push(el.value.trim());
}
});
console.log('sideOneTags', sideOneTags, 'sideTwoTags', sideTwoTags);
if (sideOneTags.length === 0) return UI.ErrorMessage(translations.notEnoughTribesSideOne);
if (sideTwoTags.length === 0) return UI.ErrorMessage(translations.notEnoughTribesSideTwo);
const fromInputs = document.querySelectorAll("".concat(_showPopup.POPUP_SELECTOR, " form #").concat(FROM_INPUT_ID, " input"));
let ennobledAtGTE;
if (fromInputs.length === 2 && fromInputs[0].value && fromInputs[1].value) {
ennobledAtGTE = new Date("".concat(fromInputs[0].value, "T").concat(fromInputs[1].value, ":00"));
}
const toInputs = document.querySelectorAll("".concat(_showPopup.POPUP_SELECTOR, " form #").concat(TO_INPUT_ID, " input"));
let ennobledAtLTE;
if (toInputs.length === 2 && toInputs[0].value && toInputs[1].value) {
ennobledAtLTE = new Date("".concat(toInputs[0].value, "T").concat(toInputs[1].value, ":00"));
}
e.target.querySelectorAll('button').forEach(button => {
button.disabled = true;
});
try {
const {
tribes
} = await (0, _requestCreator.default)({
query: TRIBES_QUERY,
variables: {
server: SERVER,
filter: {
tag: [...sideOneTags, ...sideTwoTags]
}
}
});
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);
const {
sideOneEnnoblements,
sideTwoEnnoblements
} = await (0, _requestCreator.default)({
query: ENNOBLEMENTS_QUERY,
variables: {
server: SERVER,
sideOneFilter: {
newOwnerTribeID: sideOneTribes,
oldOwnerTribeID: sideTwoTribes,
ennobledAtGTE,
ennobledAtLTE
},
sideTwoFilter: {
newOwnerTribeID: sideTwoTribes,
oldOwnerTribeID: sideOneTribes,
ennobledAtGTE,
ennobledAtLTE
}
}
});
console.log('sideOneEnnoblements', sideOneEnnoblements, 'sideTwoEnnoblements', sideTwoEnnoblements);
showResult(sideOneEnnoblements.total, sideTwoEnnoblements.total);
} catch (error) {
console.log('handleFormSubmit', error);
}
e.target.querySelectorAll('button').forEach(button => {
button.disabled = false;
});
};
const showWarStatsForm = e => {
const html = "\n <form>\n <h1 style=\"margin-bottom: 0px; text-align: center;\"><a href=\"".concat(twhelputils.buildURLToServerPage((0, _getServerVersionCode.default)(SERVER), SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat(translations.devNote, "</h3>\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',
html,
e
});
document.querySelector("".concat(_showPopup.POPUP_SELECTOR, " form #").concat(SIDE_ONE_BUTTON_ID)).addEventListener('click', createAddTribeHandler(document.querySelector('#' + SIDE_ONE_INPUT_CONTAINER_ID)));
document.querySelector("".concat(_showPopup.POPUP_SELECTOR, " form #").concat(SIDE_TWO_BUTTON_ID)).addEventListener('click', createAddTribeHandler(document.querySelector('#' + SIDE_TWO_INPUT_CONTAINER_ID)));
document.querySelector("".concat(_showPopup.POPUP_SELECTOR, " form")).addEventListener('submit', handleFormSubmit);
};
const renderUI = () => {
const div = document.createElement('div');
const button = document.createElement('button');
button.innerHTML = translations.generateWarStats;
button.addEventListener('click', showWarStatsForm);
div.appendChild(button);
document.querySelector('#wars_ranking_table').parentElement.prepend(div);
};
(function () {
try {
renderUI();
} catch (error) {
console.log('war stats', error);
}
const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql';
var $3af05e958b2a20a26445518aba292c50$export$default = function () {
let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, {
method: 'POST',
body: JSON.stringify({
query,
variables
}),
headers: {
'Content-Type': 'application/json'
}
}).then(res => {
return res.json();
}).then(_ref => {
let {data, errors} = _ref;
if (errors && Array.isArray(errors) && errors.length > 0) {
throw new Error(errors[0].message);
}
return new Promise(resolve => resolve(data));
});
};
const $5adf165e6af4801598a359969d322bf5$var$translations = {
pl_PL: {
conquers: 'Przejęcia',
sideOne: 'Strona 1',
sideTwo: 'Strona 2',
difference: 'Różnica',
tribeTag: 'Skrót plemienia',
delete: 'Usuń',
notEnoughTribesSideOne: 'Musisz dodać jakiekolwiek plemię do strony 1.',
notEnoughTribesSideTwo: 'Musisz dodać jakiekolwiek plemię do strony 2.',
from: 'Od',
to: 'Do',
warStatsGenerator: 'Generator statystyk wojennych',
generateWarStats: 'Wygeneruj statystyki wojenne',
addTribe: 'Dodaj plemię',
devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).'
},
en_DK: {
conquers: 'Conquers',
sideOne: 'Side one',
sideTwo: 'Side two',
difference: 'Difference',
tribeTag: 'Tribe tag',
delete: 'Delete',
notEnoughTribesSideOne: 'Not enough tribes added to the side one.',
notEnoughTribesSideTwo: 'Not enough tribes added to the side two.',
from: 'From',
to: 'To',
warStatsGenerator: 'War stats generator',
generateWarStats: 'Generate war stats',
addTribe: 'Add tribe',
devNote: "Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."
},
de_DE: {
conquers: 'Eroberungen',
sideOne: 'Partei A',
sideTwo: 'Partei B',
difference: 'Differenz',
tribeTag: 'Stammeskürzel',
delete: 'Löschen',
notEnoughTribesSideOne: 'Nicht genügend Stämme hinzugefügt zu Partei A.',
notEnoughTribesSideTwo: 'Nicht genügend Stämme hinzugefügt zu Partei B.',
from: 'Von',
to: 'Zu',
warStatsGenerator: 'Kriegsstatistik Generator',
generateWarStats: 'Generiere Statistik',
addTribe: 'Stamm Hinzufügen',
devNote: "Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."
}
};
var $5adf165e6af4801598a359969d322bf5$export$default = () => $5adf165e6af4801598a359969d322bf5$var$translations[window.game_data.locale] || $5adf165e6af4801598a359969d322bf5$var$translations.en_DK;
var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0];
var $1f14636dcc53402ba1b7661b758ca0aa$export$default = function () {
let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return server.substr(0, 2);
};
const $d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL = 'tribalwarshelp.com';
const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage = function buildURLToServerPage() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
return ("https://").concat(version, ".").concat($d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL, "/server/").concat(server);
};
const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile = function buildURLToProfile() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
return ("").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id);
};
const $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL = function buildPlayerURL() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'player');
};
const $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL = function buildTribeURL() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'tribe');
};
const $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL = function buildVillageURL() {
let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'village');
};
const $6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR = '.popup_box';
const $6412e4d8722bc72f55b3c382206290ed$export$default = function showPopup() {
let {html, id, title} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
Dialog.show(id, ("<h3>").concat(title, "</h3>") + html);
const popup = document.querySelector($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR);
if (popup) {
popup.style.width = 'auto';
popup.style.maxWidth = '1000px';
}
};
// ==UserScript==
// @name War stats generator
// @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.3.4
// @description War stats generator
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=ranking*mode=wars*
// @grant none
// @run-at document-end
// ==/UserScript==
const $1f04f025e20ce30abc71521ae440de01$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default();
const $1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_BUTTON_ID = 'sideOneAdd';
const $1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_INPUT_CONTAINER_ID = 'sideOneInputs';
const $1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_BUTTON_ID = 'sideTwoAdd';
const $1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_INPUT_CONTAINER_ID = 'sideTwoInputs';
const $1f04f025e20ce30abc71521ae440de01$var$TO_INPUT_ID = 'to';
const $1f04f025e20ce30abc71521ae440de01$var$FROM_INPUT_ID = 'from';
const $1f04f025e20ce30abc71521ae440de01$var$RESULT_CONTAINER_ID = 'warStatsResult';
const $1f04f025e20ce30abc71521ae440de01$var$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 $1f04f025e20ce30abc71521ae440de01$var$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 $1f04f025e20ce30abc71521ae440de01$var$translations = $5adf165e6af4801598a359969d322bf5$export$default();
const $1f04f025e20ce30abc71521ae440de01$var$showResult = function showResult() {
let sideOne = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
let sideTwo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
const html = ("\n <div>\n <h3>").concat($1f04f025e20ce30abc71521ae440de01$var$translations.conquers, ":</h3>\n <p style=\"margin: 0;\"><strong>").concat($1f04f025e20ce30abc71521ae440de01$var$translations.sideOne, ": ").concat(sideOne, "</strong></p>\n <p style=\"margin: 0;\"><strong>").concat($1f04f025e20ce30abc71521ae440de01$var$translations.sideTwo, ": ").concat(sideTwo, "</strong></p>\n <p style=\"margin: 0;\"><strong>").concat($1f04f025e20ce30abc71521ae440de01$var$translations.difference, ": ").concat(Math.abs(sideOne - sideTwo), "</strong></p>\n <hr style=\"margin: 10px 0;\" />\n </div>\n ");
document.querySelector('#' + $1f04f025e20ce30abc71521ae440de01$var$RESULT_CONTAINER_ID).innerHTML = html;
};
const $1f04f025e20ce30abc71521ae440de01$var$createAddTribeHandler = container => {
return () => {
const div = document.createElement('div');
div.innerHTML = ("\n <label>").concat($1f04f025e20ce30abc71521ae440de01$var$translations.tribeTag, ": </label>\n <input type=\"text\" required />\n <button type=\"button\" class=\"btn\">").concat($1f04f025e20ce30abc71521ae440de01$var$translations.delete, "</button>\n ");
div.querySelector('button').addEventListener('click', () => {
div.remove();
});
container.appendChild(div);
};
};
const $1f04f025e20ce30abc71521ae440de01$var$handleFormSubmit = async e => {
e.preventDefault();
const sideOneTags = [];
const sideTwoTags = [];
e.target.querySelectorAll(("#").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_INPUT_CONTAINER_ID, " input")).forEach(el => {
if (el.value.trim()) {
sideOneTags.push(el.value.trim());
}
});
e.target.querySelectorAll(("#").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_INPUT_CONTAINER_ID, " input")).forEach(el => {
if (el.value.trim()) {
sideTwoTags.push(el.value.trim());
}
});
console.log('sideOneTags', sideOneTags, 'sideTwoTags', sideTwoTags);
if (sideOneTags.length === 0) return UI.ErrorMessage($1f04f025e20ce30abc71521ae440de01$var$translations.notEnoughTribesSideOne);
if (sideTwoTags.length === 0) return UI.ErrorMessage($1f04f025e20ce30abc71521ae440de01$var$translations.notEnoughTribesSideTwo);
const fromInputs = document.querySelectorAll(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$FROM_INPUT_ID, " input"));
let ennobledAtGTE;
if (fromInputs.length === 2 && fromInputs[0].value && fromInputs[1].value) {
ennobledAtGTE = new Date(("").concat(fromInputs[0].value, "T").concat(fromInputs[1].value, ":00"));
}
const toInputs = document.querySelectorAll(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$TO_INPUT_ID, " input"));
let ennobledAtLTE;
if (toInputs.length === 2 && toInputs[0].value && toInputs[1].value) {
ennobledAtLTE = new Date(("").concat(toInputs[0].value, "T").concat(toInputs[1].value, ":00"));
}
e.target.querySelectorAll('button').forEach(button => {
button.disabled = true;
});
try {
const {tribes} = await $3af05e958b2a20a26445518aba292c50$export$default({
query: $1f04f025e20ce30abc71521ae440de01$var$TRIBES_QUERY,
variables: {
server: $1f04f025e20ce30abc71521ae440de01$var$SERVER,
filter: {
tag: [...sideOneTags, ...sideTwoTags]
}
}
});
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);
const {sideOneEnnoblements, sideTwoEnnoblements} = await $3af05e958b2a20a26445518aba292c50$export$default({
query: $1f04f025e20ce30abc71521ae440de01$var$ENNOBLEMENTS_QUERY,
variables: {
server: $1f04f025e20ce30abc71521ae440de01$var$SERVER,
sideOneFilter: {
newOwnerTribeID: sideOneTribes,
oldOwnerTribeID: sideTwoTribes,
ennobledAtGTE,
ennobledAtLTE
},
sideTwoFilter: {
newOwnerTribeID: sideTwoTribes,
oldOwnerTribeID: sideOneTribes,
ennobledAtGTE,
ennobledAtLTE
}
}
});
console.log('sideOneEnnoblements', sideOneEnnoblements, 'sideTwoEnnoblements', sideTwoEnnoblements);
$1f04f025e20ce30abc71521ae440de01$var$showResult(sideOneEnnoblements.total, sideTwoEnnoblements.total);
} catch (error) {
console.log('handleFormSubmit', error);
}
e.target.querySelectorAll('button').forEach(button => {
button.disabled = false;
});
};
const $1f04f025e20ce30abc71521ae440de01$var$showWarStatsForm = e => {
const html = ("\n <form>\n <h1 style=\"margin-bottom: 0px; text-align: center;\"><a href=\"").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage($1f14636dcc53402ba1b7661b758ca0aa$export$default($1f04f025e20ce30abc71521ae440de01$var$SERVER), $1f04f025e20ce30abc71521ae440de01$var$SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat($1f04f025e20ce30abc71521ae440de01$var$translations.devNote, "</h3>\n <div id=\"").concat($1f04f025e20ce30abc71521ae440de01$var$RESULT_CONTAINER_ID, "\">\n </div>\n <div style=\"margin-bottom: 10px;\">\n <div id=\"").concat($1f04f025e20ce30abc71521ae440de01$var$FROM_INPUT_ID, "\">\n <label>").concat($1f04f025e20ce30abc71521ae440de01$var$translations.from, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n <div id=\"").concat($1f04f025e20ce30abc71521ae440de01$var$TO_INPUT_ID, "\">\n <label>").concat($1f04f025e20ce30abc71521ae440de01$var$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($1f04f025e20ce30abc71521ae440de01$var$translations.sideOne, "</h3>\n <div id=\"").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat($1f04f025e20ce30abc71521ae440de01$var$translations.addTribe, "</button>\n </div>\n <div style=\"margin: 0 5px;\"></div>\n <div>\n <h3>").concat($1f04f025e20ce30abc71521ae440de01$var$translations.sideTwo, "</h3>\n <div id=\"").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat($1f04f025e20ce30abc71521ae440de01$var$translations.addTribe, "</button>\n </div>\n </div>\n <div style=\"text-align: center;\">\n <button class=\"btn\" type=\"submit\">").concat($1f04f025e20ce30abc71521ae440de01$var$translations.generateWarStats, "</button>\n </div>\n </form>\n ");
$6412e4d8722bc72f55b3c382206290ed$export$default({
title: $1f04f025e20ce30abc71521ae440de01$var$translations.warStatsGenerator,
id: 'warStats',
html,
e
});
document.querySelector(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_BUTTON_ID)).addEventListener('click', $1f04f025e20ce30abc71521ae440de01$var$createAddTribeHandler(document.querySelector('#' + $1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_INPUT_CONTAINER_ID)));
document.querySelector(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_BUTTON_ID)).addEventListener('click', $1f04f025e20ce30abc71521ae440de01$var$createAddTribeHandler(document.querySelector('#' + $1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_INPUT_CONTAINER_ID)));
document.querySelector(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form")).addEventListener('submit', $1f04f025e20ce30abc71521ae440de01$var$handleFormSubmit);
};
const $1f04f025e20ce30abc71521ae440de01$var$renderUI = () => {
const div = document.createElement('div');
const button = document.createElement('button');
button.innerHTML = $1f04f025e20ce30abc71521ae440de01$var$translations.generateWarStats;
button.addEventListener('click', $1f04f025e20ce30abc71521ae440de01$var$showWarStatsForm);
div.appendChild(button);
document.querySelector('#wars_ranking_table').parentElement.prepend(div);
};
(function () {
try {
$1f04f025e20ce30abc71521ae440de01$var$renderUI();
} catch (error) {
console.log('war stats', error);
}
})();
})();
},{"./libs/requestCreator":"Ph2E","./i18n/warStatsGenerator":"vPH5","./utils/getCurrentServer":"DMkL","./utils/getServerVersionCode":"J1Ly","./utils/twhelp":"gvXE","./utils/showPopup":"chDM"}]},{},["H9GS"], null)

View File

@ -1,20 +1,19 @@
{
"name": "scripts",
"version": "1.0.0",
"main": "index.js",
"repository": "git@github.com:tribalwarshelp/scripts.git",
"author": "Kichiyaki <xyztojajestem@gmail.com>",
"license": "MIT",
"scripts": {
"build:tamper": "parcel build ./src/*.js --no-minify --no-source-maps",
"build:quickbar": "parcel build ./src/*.js --out-dir dist/quickbar --no-source-maps",
"build:tamper": "parcel build ./src/*.js --dist-dir dist --no-optimize --no-source-maps",
"build:quickbar": "parcel build ./src/*.js --dist-dir dist/quickbar --no-source-maps",
"build": "npm-run-all build:*",
"git:add": "git add .",
"format": "prettier --write \"src/*.{js,jsx,ts,tsx,json,md}\""
},
"dependencies": {
"date-fns": "^2.14.0",
"parcel": "^1.12.4"
"date-fns": "^2.22.1",
"parcel": "2.0.0-beta.2"
},
"browserslist": [
"since 2017-06"
@ -22,7 +21,7 @@
"devDependencies": {
"npm-run-all": "^4.1.5",
"pre-commit": "^1.2.2",
"prettier": "^2.2.1"
"prettier": "^2.3.1"
},
"pre-commit": [
"format",

View File

@ -29,9 +29,8 @@ const handleSubmit = async e => {
const icon = checkbox.parentElement.querySelector('.rename-icon');
icon.click();
await wait(20);
const quickeditForm = checkbox.parentElement.querySelector(
'.quickedit-edit'
);
const quickeditForm =
checkbox.parentElement.querySelector('.quickedit-edit');
quickeditForm.querySelector('input').value = name;
quickeditForm.querySelector('input[type="button"]').click();
await wait(350);

View File

@ -257,9 +257,8 @@ const loadData = async () => {
'scavenge',
'conquer',
]) {
inADay[
hyphensToCamelCase(type.replace('kill_', ''))
] = await loadInADayData(type, filter);
inADay[hyphensToCamelCase(type.replace('kill_', ''))] =
await loadInADayData(type, filter);
}
data.player.inADay = inADay;
}

View File

@ -555,9 +555,8 @@ const MEMBERS_GROWTH_FORM = MEMBERS_GROWTH_TABLE_ID + 'Form';
const createChangeTypeHandler = stats => e => {
e.preventDefault();
MEMBERS_GROWTH_MODE = e.target[0].value;
document.querySelector(
'#' + MEMBERS_GROWTH_TABLE_ID
).innerHTML = buildMembersGrowthTBody(stats);
document.querySelector('#' + MEMBERS_GROWTH_TABLE_ID).innerHTML =
buildMembersGrowthTBody(stats);
};
const renderMembersGrowthPopup = (e, stats) => {

View File

@ -147,11 +147,8 @@ const applyFilters = (e, ennoblements) => {
oldOwner: e.target[2].value,
oldOwnerTribe: e.target[3].value,
};
document.querySelector(
`#${TABLE_ID} tbody`
).innerHTML = buildEnnoblementsRows(
filterEnnoblements(ennoblements, filters)
).join('');
document.querySelector(`#${TABLE_ID} tbody`).innerHTML =
buildEnnoblementsRows(filterEnnoblements(ennoblements, filters)).join('');
cacheFilters(filters);
};

3851
yarn.lock

File diff suppressed because it is too large Load Diff