chore: bump parcel from 1.12.4 to 2.0.0-beta.2
This commit is contained in:
parent
9c3e7cad04
commit
5746d3b3d0
|
@ -67,4 +67,6 @@ yarn-error.log
|
|||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
.idea
|
||||
.idea
|
||||
|
||||
.parcel-cache
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
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
|
@ -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
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)})()}();
|
|
@ -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
|
@ -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
|
@ -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)
|
||||
|
||||
|
|
11
package.json
11
package.json
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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) => {
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
||||
|
|
Reference in New Issue