add init version of inADayTribeRankingGenerator.js

This commit is contained in:
Dawid Wysokiński 2020-08-05 21:10:42 +02:00
parent 2a6c4ae504
commit 6606c3804d
20 changed files with 686 additions and 1022 deletions

View File

@ -196,103 +196,13 @@ exports.default = void 0;
var _default = () => window.location.host.split('.')[0];
exports.default = _default;
},{}],"tQUs":[function(require,module,exports) {
},{}],"fHHP":[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(html) {
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
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 trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.loadInADayData = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
var _InADayParser = _interopRequireDefault(require("../libs/InADayParser"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
const formatTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
@ -331,46 +241,6 @@ const formatVillageName = function formatVillageName() {
exports.formatVillageName = formatVillageName;
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date()
};
}
};
exports.loadInADayData = loadInADayData;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
};
@ -382,7 +252,7 @@ const buildImgURL = img => {
};
exports.buildImgURL = buildImgURL;
},{"../libs/InADayParser":"dSAr"}],"XOOL":[function(require,module,exports) {
},{}],"XOOL":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {

View File

@ -214,103 +214,13 @@ const setItem = (key, payload) => {
};
exports.setItem = setItem;
},{}],"tQUs":[function(require,module,exports) {
},{}],"fHHP":[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(html) {
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
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 trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.loadInADayData = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
var _InADayParser = _interopRequireDefault(require("../libs/InADayParser"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
const formatTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
@ -349,46 +259,6 @@ const formatVillageName = function formatVillageName() {
exports.formatVillageName = formatVillageName;
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date()
};
}
};
exports.loadInADayData = loadInADayData;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
};
@ -400,7 +270,7 @@ const buildImgURL = img => {
};
exports.buildImgURL = buildImgURL;
},{"../libs/InADayParser":"dSAr"}],"DMkL":[function(require,module,exports) {
},{}],"DMkL":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {

View File

@ -518,103 +518,13 @@ const calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => {
};
exports.calcDistanceBetweenTwoPoints = calcDistanceBetweenTwoPoints;
},{}],"tQUs":[function(require,module,exports) {
},{}],"fHHP":[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(html) {
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
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 trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.loadInADayData = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
var _InADayParser = _interopRequireDefault(require("../libs/InADayParser"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
const formatTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
@ -653,46 +563,6 @@ const formatVillageName = function formatVillageName() {
exports.formatVillageName = formatVillageName;
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date()
};
}
};
exports.loadInADayData = loadInADayData;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
};
@ -704,7 +574,7 @@ const buildImgURL = img => {
};
exports.buildImgURL = buildImgURL;
},{"../libs/InADayParser":"dSAr"}],"KX6P":[function(require,module,exports) {
},{}],"KX6P":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {

View File

@ -117,7 +117,94 @@ parcelRequire = (function (modules, cache, entry, globalName) {
}
return newRequire;
})({"Ph2E":[function(require,module,exports) {
})({"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"}],"Ph2E":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -491,103 +578,13 @@ var _default = (date, options) => {
};
exports.default = _default;
},{}],"tQUs":[function(require,module,exports) {
},{}],"fHHP":[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(html) {
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
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 trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.loadInADayData = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
var _InADayParser = _interopRequireDefault(require("../libs/InADayParser"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
const formatTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
@ -626,46 +623,6 @@ const formatVillageName = function formatVillageName() {
exports.formatVillageName = formatVillageName;
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date()
};
}
};
exports.loadInADayData = loadInADayData;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
};
@ -677,7 +634,7 @@ const buildImgURL = img => {
};
exports.buildImgURL = buildImgURL;
},{"../libs/InADayParser":"dSAr"}],"vNT1":[function(require,module,exports) {
},{}],"vNT1":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -1105,6 +1062,8 @@ exports.setItem = setItem;
},{}],"yRop":[function(require,module,exports) {
"use strict";
var _InADayParser = _interopRequireDefault(require("./libs/InADayParser"));
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
var _extendedPlayerProfile = _interopRequireDefault(require("./i18n/extendedPlayerProfile"));
@ -1139,6 +1098,10 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
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; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
// ==UserScript==
// @name Extended Player Profile
// @namespace https://github.com/tribalwarshelp/scripts
@ -1182,6 +1145,45 @@ const cachePlayerData = function cachePlayerData() {
(0, _localStorage.setItem)(LOCAL_STORAGE_KEY, data);
};
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
tribe: '',
date: new Date()
};
}
};
const loadData = async () => {
const data = await (0, _requestCreator.default)({
query: PLAYER_QUERY,
@ -1198,31 +1200,31 @@ const loadData = async () => {
if (data.player) {
const inADay = {};
inADay.att = await (0, _tribalwars.loadInADayData)('kill_att', {
inADay.att = await loadInADayData('kill_att', {
name: data.player.name,
playerID: data.player.id
});
inADay.def = await (0, _tribalwars.loadInADayData)('kill_def', {
inADay.def = await loadInADayData('kill_def', {
name: data.player.name,
playerID: data.player.id
});
inADay.sup = await (0, _tribalwars.loadInADayData)('kill_sup', {
inADay.sup = await loadInADayData('kill_sup', {
name: data.player.name,
playerID: data.player.id
});
inADay.lootRes = await (0, _tribalwars.loadInADayData)('loot_res', {
inADay.lootRes = await loadInADayData('loot_res', {
name: data.player.name,
playerID: data.player.id
});
inADay.lootVil = await (0, _tribalwars.loadInADayData)('loot_vil', {
inADay.lootVil = await loadInADayData('loot_vil', {
name: data.player.name,
playerID: data.player.id
});
inADay.scavenge = await (0, _tribalwars.loadInADayData)('scavenge', {
inADay.scavenge = await loadInADayData('scavenge', {
name: data.player.name,
playerID: data.player.id
});
inADay.conquer = await (0, _tribalwars.loadInADayData)('conquer', {
inADay.conquer = await loadInADayData('conquer', {
name: data.player.name,
playerID: data.player.id
});
@ -1233,12 +1235,12 @@ const loadData = async () => {
return data;
};
const renderTr = (_ref) => {
const renderTr = (_ref2) => {
let {
title,
data,
id
} = _ref;
} = _ref2;
let tr = document.querySelector('#' + id);
if (!tr) {
@ -1300,11 +1302,11 @@ const renderInADayRanks = player => {
inADayRanks.innerHTML = "\n <table width=\"100%\" class=\"vis\">\n <tbody>\n <tr>\n <th colspan=\"2\">\n ".concat(translations.inADayBestScores, "\n </th>\n </tr>\n <tr>\n <td>\n ").concat(translations.unitsDefeatedWhileAttacking, "\n </td>\n <td>\n ").concat(player.inADay.att.score.toLocaleString(), " (").concat(player.inADay.att.rank, ".)\n </td>\n </tr>\n <tr>\n <td>\n ").concat(translations.unitsDefeatedWhileDefending, "\n </td>\n <td>\n ").concat(player.inADay.def.score.toLocaleString(), " (").concat(player.inADay.def.rank, ".)\n </td>\n </tr>\n <tr>\n <td>\n ").concat(translations.unitsDefeatedWhileSupporting, "\n </td>\n <td>\n ").concat(player.inADay.sup.score.toLocaleString(), " (").concat(player.inADay.sup.rank, ".)\n </td>\n </tr>\n <tr>\n <td>\n ").concat(translations.resourcesPlundered, "\n </td>\n <td>\n ").concat(player.inADay.lootRes.score.toLocaleString(), " (").concat(player.inADay.lootRes.rank, ".)\n </td>\n </tr>\n <tr>\n <td>\n ").concat(translations.villagesPlundered, "\n </td>\n <td>\n ").concat(player.inADay.lootVil.score.toLocaleString(), " (").concat(player.inADay.lootVil.rank, ".)\n </td>\n </tr>\n <tr>\n <td>\n ").concat(translations.resourcesGathered, "\n </td>\n <td>\n ").concat(player.inADay.scavenge.score.toLocaleString(), " (").concat(player.inADay.scavenge.rank, ".)\n </td>\n </tr>\n <tr>\n <td>\n ").concat(translations.villagesConquered, "\n </td>\n <td>\n ").concat(player.inADay.conquer.score.toLocaleString(), " (").concat(player.inADay.conquer.rank, ".)\n </td>\n </tr>\n </tbody>\n </table>\n ");
};
const render = (_ref2) => {
const render = (_ref3) => {
let {
player,
dailyPlayerStats
} = _ref2;
} = _ref3;
[{
title: translations.joinedAt + ':',
data: (0, _formatDate.default)(player.joinedAt),
@ -1521,4 +1523,4 @@ const renderActions = () => {
console.log('extended player profile', error);
}
})();
},{"./libs/requestCreator":"Ph2E","./i18n/extendedPlayerProfile":"I8dv","./common/renderTodaysStats":"yrCm","./utils/showPopup":"chDM","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/formatDate":"V6Mf","./utils/twstats":"Syko","./utils/tribalwars":"fHHP","./utils/localStorage":"KWxH"}]},{},["yRop"], null)
},{"./libs/InADayParser":"dSAr","./libs/requestCreator":"Ph2E","./i18n/extendedPlayerProfile":"I8dv","./common/renderTodaysStats":"yrCm","./utils/showPopup":"chDM","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/formatDate":"V6Mf","./utils/twstats":"Syko","./utils/tribalwars":"fHHP","./utils/localStorage":"KWxH"}]},{},["yRop"], null)

View File

@ -1280,103 +1280,13 @@ var _default = (date, options) => {
};
exports.default = _default;
},{}],"tQUs":[function(require,module,exports) {
},{}],"fHHP":[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(html) {
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
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 trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.loadInADayData = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
var _InADayParser = _interopRequireDefault(require("../libs/InADayParser"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
const formatTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
@ -1415,46 +1325,6 @@ const formatVillageName = function formatVillageName() {
exports.formatVillageName = formatVillageName;
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date()
};
}
};
exports.loadInADayData = loadInADayData;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
};
@ -1466,7 +1336,7 @@ const buildImgURL = img => {
};
exports.buildImgURL = buildImgURL;
},{"../libs/InADayParser":"dSAr"}],"vNT1":[function(require,module,exports) {
},{}],"vNT1":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -1763,7 +1633,18 @@ var _default = function _default(e, history, daily) {
};
exports.default = _default;
},{"date-fns/subDays":"mRRL","../i18n/showHistoryPopup":"hNDe","../utils/showPopup":"chDM","../utils/pagination":"fCHX","../utils/formatDate":"V6Mf","../utils/tribalwars":"fHHP"}],"DMkL":[function(require,module,exports) {
},{"date-fns/subDays":"mRRL","../i18n/showHistoryPopup":"hNDe","../utils/showPopup":"chDM","../utils/pagination":"fCHX","../utils/formatDate":"V6Mf","../utils/tribalwars":"fHHP"}],"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;
},{}],"DMkL":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {

View File

@ -373,92 +373,13 @@ var _default = (date, options) => {
};
exports.default = _default;
},{}],"dSAr":[function(require,module,exports) {
},{}],"fHHP":[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(html) {
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
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 trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.loadInADayData = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
var _InADayParser = _interopRequireDefault(require("../libs/InADayParser"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
const formatTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
@ -497,46 +418,6 @@ const formatVillageName = function formatVillageName() {
exports.formatVillageName = formatVillageName;
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date()
};
}
};
exports.loadInADayData = loadInADayData;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
};
@ -548,7 +429,7 @@ const buildImgURL = img => {
};
exports.buildImgURL = buildImgURL;
},{"../libs/InADayParser":"dSAr"}],"vNT1":[function(require,module,exports) {
},{}],"vNT1":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {

298
dist/inADayTribeRankingGenerator.js vendored Normal file
View File

@ -0,0 +1,298 @@
// 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"}],"s4G3":[function(require,module,exports) {
"use strict";
var _InADayParser = _interopRequireDefault(require("./libs/InADayParser"));
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.1.0
// @description 'In A Day' Tribe Ranking Generator
// @author Kichiyaki http://dawid-wysokinski.pl/
// @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 addTribe = () => {
const container = document.querySelector('#' + TRIBE_CONTAINER_ID);
const div = document.createElement('div');
div.innerHTML = "\n <label>Tribe: </label>\n <input type=\"text\" required />\n <button type=\"button\">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', "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++;
} catch (error) {
break;
}
}
players = players.slice(0, limit);
Dialog.show('iad_result', "\n <textarea cols=30 rows=8 readonly>[table]\n[**][||]Player[||]Tribe[||]Rank[||]Result[||]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\">Generate</button>\n <button id=\"").concat(addButtonID, "\" type=\"button\">Add tribe</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);
}
})();
},{"./libs/InADayParser":"dSAr"}]},{},["s4G3"], null)

View File

@ -233,103 +233,13 @@ var _default = (date, options) => {
};
exports.default = _default;
},{}],"tQUs":[function(require,module,exports) {
},{}],"fHHP":[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(html) {
let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
this.dom = new DOMParser().parseFromString(html, 'text/html');
this.filters = filters;
}
isValidRow(row) {
if (!row) {
return false;
}
if (this.filters.playerID && row.playerID !== this.filters.playerID) {
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 trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
const parsed = this.parseRow(row);
if (this.isValidRow(parsed)) {
result.push(parsed);
}
}
return result;
}
}
exports.default = InADayParser;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.loadInADayData = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
var _InADayParser = _interopRequireDefault(require("../libs/InADayParser"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
const formatTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
@ -368,46 +278,6 @@ const formatVillageName = function formatVillageName() {
exports.formatVillageName = formatVillageName;
const loadInADayData = async function loadInADayData(type) {
let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
{
name
} = _ref,
rest = _objectWithoutProperties(_ref, ["name"]);
try {
const response = await fetch(TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : ''
}));
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new _InADayParser.default(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date()
};
}
};
exports.loadInADayData = loadInADayData;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
};
@ -419,7 +289,7 @@ const buildImgURL = img => {
};
exports.buildImgURL = buildImgURL;
},{"../libs/InADayParser":"dSAr"}],"KWxH":[function(require,module,exports) {
},{}],"KWxH":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {

View File

@ -4,13 +4,9 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
"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"}};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;
},{}],"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=r(require("../utils/getIDFromURL"));function r(e){return e&&e.__esModule?e:{default:e}}class t{constructor(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.filters=r}isValidRow(e){return!!e&&(!this.filters.playerID||e.playerID===this.filters.playerID)}parseRow(r){if(!r||!r instanceof HTMLTableRowElement)return;let t={};return t.rank=parseInt(r.children[0].innerText.trim()),t.name=r.children[1].innerText.trim(),t.playerID=(0,e.default)(r.children[1].querySelector("a").getAttribute("href")),t.tribe=r.children[2].innerText.trim(),t.tribeID=0,t.tribe&&(t.tribeID=(0,e.default)(r.children[2].querySelector("a").getAttribute("href"))),t.score=parseInt(r.children[3].innerText.trim().replace(/\./g,"")),t.date=r.children[4].innerText.trim(),t}parse(){const e=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),r=[];for(let t=1;t<e.length;t++){const i=e[t],n=this.parseRow(i);this.isValidRow(n)&&r.push(n)}return r}}exports.default=t;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.loadInADayData=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;var t=e(require("../libs/InADayParser"));function e(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(null==t)return{};var r,n,a=o(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function o(t,e){if(null==t)return{};var r,o,n={},a=Object.keys(t);for(o=0;o<a.length;o++)r=a[o],e.indexOf(r)>=0||(n[r]=t[r]);return n}const n=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:t});exports.formatTribeURL=n;const a=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:t});exports.formatPlayerURL=a;const i=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:t});exports.formatVillageURL=i;const l=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const o="K"+String(r)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(r,") ").concat(o)};exports.formatVillageName=l;const c=async function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:n}=o,a=r(o,["name"]);try{const r=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:e,name:n||""})),o=await r.text();if(!o)throw new Error;const l=new t.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,date:new Date}}};exports.loadInADayData=c;const s=(t,e,r)=>Math.round(t*r/e);exports.calcAttackDuration=s;const u=t=>image_base+t;exports.buildImgURL=u;
},{"../libs/InADayParser":"dSAr"}],"XOOL":[function(require,module,exports) {
},{}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;const o=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:o});exports.formatTribeURL=o;const t=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:o});exports.formatPlayerURL=t;const r=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:o});exports.formatVillageURL=r;const e=function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const e="K"+String(r)[0]+String(t)[0];return"".concat(o," (").concat(t,"|").concat(r,") ").concat(e)};exports.formatVillageName=e;const i=(o,t,r)=>Math.round(o*r/t);exports.calcAttackDuration=i;const a=o=>image_base+o;exports.buildImgURL=a;
},{}],"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=o(require("./libs/requestCreator")),t=o(require("./i18n/bonusBarbarianVillageFinder")),n=o(require("./utils/getCurrentServer")),r=require("./utils/tribalwars"),a=require("./utils/math");function o(e){return e&&e.__esModule?e:{default:e}}function c(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 i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){s(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=(0,n.default)(),u="\n query villages($server: String!, $filter: VillageFilter) {\n villages(server: $server, filter: $filter) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",d="bonusBarbarianVillageFinderTable",b="actualCoords",f=(0,t.default)();let p=void 0;const y=(e,t)=>({query:u,variables:{server:l,filter:{bonus:e,sort:"id DESC",playerID:[0],offset:t}}}),m=async t=>{const{villages:n}=await(0,e.default)(y(t,0));for(let r=n.length;r<n.total;r+=1e3){const r=await(0,e.default)(y(t,0));n.items=[...n.items,...r.villages.items]}return n},v=async e=>{e.preventDefault();const t=await m(parseInt(e.target[0].value)),n=TWMap.pos;t.items=t.items.map(e=>i(i({},e),{},{distance:(0,a.calcDistanceBetweenTwoPoints)(n[0],n[1],e.x,e.y)})).sort((e,t)=>e.distance-t.distance),document.querySelector("#"+d).innerHTML=h(t.items)},g=()=>{let e=[];for(let t in TWMap.bonus_data)e.push({value:t,text:TWMap.bonus_data[t].text});return e},h=e=>"\n <tbody>\n <tr>\n <th>\n ".concat(f.village,"\n </th>\n <th>\n ").concat(f.distance,"\n </th>\n <th>\n ").concat(f.action,"\n </th>\n </tr>\n ").concat(Array.isArray(e)?e.map(e=>'<tr>\n <td>\n <a href="'.concat((0,r.formatVillageURL)(e.id),'">\n ').concat((0,r.formatVillageName)(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 "),O=()=>{document.querySelector("#actualCoords").innerHTML="".concat(f.actualCoords,": <strong>").concat(TWMap.pos.join("|"),"</strong>")},j=()=>{const e='\n <p id="'.concat("actualCoords",'"></p>\n <form>\n <select>\n ').concat(g().map(e=>'<option value="'.concat(e.value,'">').concat(e.text,"</option>")).join(""),'\n </select>\n <button type="submit">').concat(f.searchBonusBarbarianVillages,'</button>\n </form>\n <table class="vis" style="width: 100%;" id="').concat(d,'">\n ').concat(h(),"\n </table>\n ");p||((p=document.createElement("div")).classList.add("containerBorder"),p.style.clear="both",document.querySelector("#map_big").appendChild(p)),p.innerHTML=e,p.querySelector("form").addEventListener("submit",v),O(),setInterval(O,1e3)};j();

File diff suppressed because one or more lines are too long

View File

@ -22,13 +22,9 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=()=>window.location.host.split(".")[0];exports.default=e;
},{}],"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;
},{}],"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=r(require("../utils/getIDFromURL"));function r(e){return e&&e.__esModule?e:{default:e}}class t{constructor(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.filters=r}isValidRow(e){return!!e&&(!this.filters.playerID||e.playerID===this.filters.playerID)}parseRow(r){if(!r||!r instanceof HTMLTableRowElement)return;let t={};return t.rank=parseInt(r.children[0].innerText.trim()),t.name=r.children[1].innerText.trim(),t.playerID=(0,e.default)(r.children[1].querySelector("a").getAttribute("href")),t.tribe=r.children[2].innerText.trim(),t.tribeID=0,t.tribe&&(t.tribeID=(0,e.default)(r.children[2].querySelector("a").getAttribute("href"))),t.score=parseInt(r.children[3].innerText.trim().replace(/\./g,"")),t.date=r.children[4].innerText.trim(),t}parse(){const e=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),r=[];for(let t=1;t<e.length;t++){const i=e[t],n=this.parseRow(i);this.isValidRow(n)&&r.push(n)}return r}}exports.default=t;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.loadInADayData=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;var t=e(require("../libs/InADayParser"));function e(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(null==t)return{};var r,n,a=o(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function o(t,e){if(null==t)return{};var r,o,n={},a=Object.keys(t);for(o=0;o<a.length;o++)r=a[o],e.indexOf(r)>=0||(n[r]=t[r]);return n}const n=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:t});exports.formatTribeURL=n;const a=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:t});exports.formatPlayerURL=a;const i=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:t});exports.formatVillageURL=i;const l=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const o="K"+String(r)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(r,") ").concat(o)};exports.formatVillageName=l;const c=async function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:n}=o,a=r(o,["name"]);try{const r=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:e,name:n||""})),o=await r.text();if(!o)throw new Error;const l=new t.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,date:new Date}}};exports.loadInADayData=c;const s=(t,e,r)=>Math.round(t*r/e);exports.calcAttackDuration=s;const u=t=>image_base+t;exports.buildImgURL=u;
},{"../libs/InADayParser":"dSAr"}],"KX6P":[function(require,module,exports) {
},{}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;const o=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:o});exports.formatTribeURL=o;const t=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:o});exports.formatPlayerURL=t;const r=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:o});exports.formatVillageURL=r;const e=function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const e="K"+String(r)[0]+String(t)[0];return"".concat(o," (").concat(t,"|").concat(r,") ").concat(e)};exports.formatVillageName=e;const i=(o,t,r)=>Math.round(o*r/t);exports.calcAttackDuration=i;const a=o=>image_base+o;exports.buildImgURL=a;
},{}],"KX6P":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("./tribalwars"),t=t=>(0,e.buildImgURL)("unit/unit_".concat(t,".png"));exports.default=t;
},{"./tribalwars":"fHHP"}],"KWxH":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setItem=exports.getItem=void 0;const e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=localStorage.getItem(e);let s=t;return o&&(s=JSON.parse(o)),s};exports.getItem=e;const t=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))};exports.setItem=t;

File diff suppressed because one or more lines are too long

View File

@ -38,13 +38,9 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=".popup_helper",t="#inline_popup";var o=function(){let{e:e,title:o,html:n,id:l}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const i=document.querySelector(t);i&&(i.style.width="auto",i.style.maxWidth="1000px"),i.classList.contains("show")?(i.querySelector("#inline_popup_title").innerHTML=o,i.querySelector("#inline_popup_content").innerHTML=n):inlinePopup(e,l,null,{offset_x:0,offset_y:0},n,o);const p=document.querySelector(".popup_helper");p&&(p.style.width="auto",p.style.position="fixed",p.style.zIndex="50001")};exports.default=o;
},{}],"V6Mf":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=(e,t)=>new Date(e).toLocaleDateString(window.game_data.locale.replace("_","-"),t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"});exports.default=e;
},{}],"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=r(require("../utils/getIDFromURL"));function r(e){return e&&e.__esModule?e:{default:e}}class t{constructor(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.filters=r}isValidRow(e){return!!e&&(!this.filters.playerID||e.playerID===this.filters.playerID)}parseRow(r){if(!r||!r instanceof HTMLTableRowElement)return;let t={};return t.rank=parseInt(r.children[0].innerText.trim()),t.name=r.children[1].innerText.trim(),t.playerID=(0,e.default)(r.children[1].querySelector("a").getAttribute("href")),t.tribe=r.children[2].innerText.trim(),t.tribeID=0,t.tribe&&(t.tribeID=(0,e.default)(r.children[2].querySelector("a").getAttribute("href"))),t.score=parseInt(r.children[3].innerText.trim().replace(/\./g,"")),t.date=r.children[4].innerText.trim(),t}parse(){const e=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),r=[];for(let t=1;t<e.length;t++){const i=e[t],n=this.parseRow(i);this.isValidRow(n)&&r.push(n)}return r}}exports.default=t;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.loadInADayData=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;var t=e(require("../libs/InADayParser"));function e(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(null==t)return{};var r,n,a=o(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function o(t,e){if(null==t)return{};var r,o,n={},a=Object.keys(t);for(o=0;o<a.length;o++)r=a[o],e.indexOf(r)>=0||(n[r]=t[r]);return n}const n=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:t});exports.formatTribeURL=n;const a=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:t});exports.formatPlayerURL=a;const i=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:t});exports.formatVillageURL=i;const l=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const o="K"+String(r)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(r,") ").concat(o)};exports.formatVillageName=l;const c=async function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:n}=o,a=r(o,["name"]);try{const r=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:e,name:n||""})),o=await r.text();if(!o)throw new Error;const l=new t.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,date:new Date}}};exports.loadInADayData=c;const s=(t,e,r)=>Math.round(t*r/e);exports.calcAttackDuration=s;const u=t=>image_base+t;exports.buildImgURL=u;
},{"../libs/InADayParser":"dSAr"}],"vNT1":[function(require,module,exports) {
},{}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;const o=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:o});exports.formatTribeURL=o;const t=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:o});exports.formatPlayerURL=t;const r=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:o});exports.formatVillageURL=r;const e=function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const e="K"+String(r)[0]+String(t)[0];return"".concat(o," (").concat(t,"|").concat(r,") ").concat(e)};exports.formatVillageName=e;const i=(o,t,r)=>Math.round(o*r/t);exports.calcAttackDuration=i;const a=o=>image_base+o;exports.buildImgURL=a;
},{}],"vNT1":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=l(require("../i18n/showEnnoblementsPopup")),e=require("../utils/pagination"),n=l(require("../utils/showPopup")),a=l(require("../utils/formatDate")),o=require("../utils/tribalwars");function l(t){return t&&t.__esModule?t:{default:t}}const r="ennoblementsPagination",i=(0,t.default)(),c=(t,e)=>t?'<td><a href="'.concat((0,o.formatPlayerURL)(t.id),'">').concat(t.name," (").concat(e?'<a href="'.concat((0,o.formatTribeURL)(e.id),'">').concat(e.tag,"</a>"):"-",")</a></td>"):"<td>-</td>";var d=function(t,l){let{limit:d=0,currentPage:s=1,onPageChange:u=(()=>{})}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const g=(0,e.generatePaginationItems)({total:l.total,limit:d,currentPage:s}),m='\n <div style="'.concat((0,e.getContainerStyles)(),'" id="').concat(r,'">\n ').concat(g.join(""),'\n </div>\n <table class="vis" style="border-collapse: separate; border-spacing: 2px; width: 100%;">\n <tbody>\n <tr>\n <th>\n ').concat(i.date,"\n </th>\n <th>\n ").concat(i.village,"\n </th>\n <th>\n ").concat(i.newOwner,"\n </th>\n <th>\n ").concat(i.oldOwner,"\n </th>\n </tr>\n ").concat(l.items.map(t=>{let e="<tr>"+"<td>".concat((0,a.default)(t.ennobledAt),"</td>");return t.village?e+='<td><a href="'.concat((0,o.formatVillageURL)(t.village.id),'">').concat((0,o.formatVillageName)(t.village.name,t.village.x,t.village.y),"</a></td>"):e+="<td>-</td>",e+=c(t.newOwner,t.newOwnerTribe),(e+=c(t.oldOwner,t.oldOwnerTribe))+"</tr>"}).join(""),"\n </tbody>\n </table>\n ");(0,n.default)({e:t,title:i.title,id:"ennoblements",html:m}),document.querySelectorAll("#ennoblementsPagination a").forEach(t=>{t.addEventListener("click",u)})};exports.default=d;
},{"../i18n/showEnnoblementsPopup":"tKRp","../utils/pagination":"fCHX","../utils/showPopup":"chDM","../utils/formatDate":"V6Mf","../utils/tribalwars":"fHHP"}],"VYL5":[function(require,module,exports) {
"use strict";function e(e){if(null===e||!0===e||!1===e)return NaN;var r=Number(e);return isNaN(r)?r:r<0?Math.ceil(r):Math.floor(r)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=e;
@ -56,7 +52,9 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e={pl_PL:{title:"Historia",date:"Data",tribe:"Plemię",points:"Punkty",rank:"Ranking",villages:"Liczba wiosek",members:"Liczba członków",oda:"Pokonani przeciwnicy jako agresor",odd:"Pokonani przeciwnicy jako obrońca",ods:"Pokonani przeciwnicy jako wspierający",od:"Pokonani przeciwnicy"},en_DK:{title:"History",date:"Date",tribe:"Tribe",points:"Points",villages:"Villages",members:"Members",oda:"ODA",odd:"ODD",ods:"ODS",od:"OD"}};var o=()=>e[window.game_data.locale]||e.en_DK;exports.default=o;
},{}],"kEDU":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=r(require("date-fns/subDays")),n=r(require("../i18n/showHistoryPopup")),e=r(require("../utils/showPopup")),o=require("../utils/pagination"),a=r(require("../utils/formatDate")),c=require("../utils/tribalwars");function r(t){return t&&t.__esModule?t:{default:t}}const i="historyPagination",s=(0,n.default)(),l=t=>t>0?"+"+t:t;var d=function(n,r,i){let{currentPage:d=1,limit:g=0,onPageChange:u=(()=>{}),tribe:h=!1}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const p=(0,o.generatePaginationItems)({total:r.total,limit:g,currentPage:d}),f='\n <div style="'.concat((0,o.getContainerStyles)(),'" id="').concat("historyPagination",'">\n ').concat(p.join(""),'\n </div>\n <table class="vis" style="border-collapse: separate; border-spacing: 2px; width: 100%;">\n <tbody>\n <tr>\n <th>\n ').concat(s.date,"\n </th>\n ").concat(h?"":"<th>".concat(s.tribe,"</th>"),"\n <th>\n ").concat(s.points,"\n </th>\n <th>\n ").concat(s.villages,"\n </th>\n ").concat(h?"<th>".concat(s.members,"</th>"):"","\n <th>\n ").concat(s.od,"\n </th>\n <th>\n ").concat(s.oda,"\n </th>\n <th>\n ").concat(s.odd,"\n </th>\n ").concat(h?"":"<th>".concat(s.ods,"</th>"),"\n </tr>\n ").concat(r.items.map(n=>{const e=(0,t.default)(new Date(n.createDate),1).toISOString().split(".")[0]+"Z",o=i.items.find(t=>t.createDate===e);let r="<tr>"+"<td>".concat((0,a.default)(n.createDate,{year:"numeric",month:"2-digit",day:"2-digit"}),"</td>");return!h&&n.tribe?r+='<td><a href="'.concat((0,c.formatTribeURL)(n.tribe.id),'">').concat(n.tribe.tag,"</a></td>"):h||(r+="<td>-</td>"),r+='\n <td title="'.concat(o?l(o.points):"",'">\n ').concat(n.points.toLocaleString()," (<strong>").concat(n.rank,'</strong>)\n </td>\n <td title="').concat(o?l(o.villages):"",'">\n ').concat(n.totalVillages.toLocaleString(),"\n </td>\n ").concat(h?'\n <td title="'.concat(o?l(o.members):"",'">\n ').concat(n.totalMembers,"\n </td>\n "):"",'\n <td title="').concat(o?l(o.scoreTotal):"",'">\n ').concat(n.scoreTotal.toLocaleString()," (<strong>").concat(n.rankTotal,'</strong>)\n </td>\n <td title="').concat(o?l(o.scoreAtt):"",'">\n ').concat(n.scoreAtt.toLocaleString()," (<strong>").concat(n.rankAtt,'</strong>)\n </td>\n <td title="').concat(o?l(o.scoreDef):"",'">\n ').concat(n.scoreDef.toLocaleString()," (<strong>").concat(n.rankDef,"</strong>)\n </td>\n ").concat(h?"":'\n <td title="'.concat(o?l(o.scoreSup):"",'">\n ').concat(n.scoreSup.toLocaleString()," (<strong>").concat(n.rankSup,"</strong>)\n </td>\n "),"\n ")+"</tr>"}).join(""),"\n </tbody>\n </table>\n ");(0,e.default)({e:n,title:s.title,id:"history",html:f}),document.querySelectorAll("#historyPagination a").forEach(t=>{t.addEventListener("click",u)})};exports.default=d;
},{"date-fns/subDays":"mRRL","../i18n/showHistoryPopup":"hNDe","../utils/showPopup":"chDM","../utils/pagination":"fCHX","../utils/formatDate":"V6Mf","../utils/tribalwars":"fHHP"}],"DMkL":[function(require,module,exports) {
},{"date-fns/subDays":"mRRL","../i18n/showHistoryPopup":"hNDe","../utils/showPopup":"chDM","../utils/pagination":"fCHX","../utils/formatDate":"V6Mf","../utils/tribalwars":"fHHP"}],"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;
},{}],"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;
},{}],"KWxH":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setItem=exports.getItem=void 0;const e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=localStorage.getItem(e);let s=t;return o&&(s=JSON.parse(o)),s};exports.getItem=e;const t=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))};exports.setItem=t;

View File

@ -14,11 +14,9 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=".popup_helper",t="#inline_popup";var o=function(){let{e:e,title:o,html:n,id:l}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const i=document.querySelector(t);i&&(i.style.width="auto",i.style.maxWidth="1000px"),i.classList.contains("show")?(i.querySelector("#inline_popup_title").innerHTML=o,i.querySelector("#inline_popup_content").innerHTML=n):inlinePopup(e,l,null,{offset_x:0,offset_y:0},n,o);const p=document.querySelector(".popup_helper");p&&(p.style.width="auto",p.style.position="fixed",p.style.zIndex="50001")};exports.default=o;
},{}],"V6Mf":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=(e,t)=>new Date(e).toLocaleDateString(window.game_data.locale.replace("_","-"),t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"});exports.default=e;
},{}],"dSAr":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("../utils/getIDFromURL"));function r(e){return e&&e.__esModule?e:{default:e}}class t{constructor(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.filters=r}isValidRow(e){return!!e&&(!this.filters.playerID||e.playerID===this.filters.playerID)}parseRow(r){if(!r||!r instanceof HTMLTableRowElement)return;let t={};return t.rank=parseInt(r.children[0].innerText.trim()),t.name=r.children[1].innerText.trim(),t.playerID=(0,e.default)(r.children[1].querySelector("a").getAttribute("href")),t.tribe=r.children[2].innerText.trim(),t.tribeID=0,t.tribe&&(t.tribeID=(0,e.default)(r.children[2].querySelector("a").getAttribute("href"))),t.score=parseInt(r.children[3].innerText.trim().replace(/\./g,"")),t.date=r.children[4].innerText.trim(),t}parse(){const e=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),r=[];for(let t=1;t<e.length;t++){const i=e[t],n=this.parseRow(i);this.isValidRow(n)&&r.push(n)}return r}}exports.default=t;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.loadInADayData=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;var t=e(require("../libs/InADayParser"));function e(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(null==t)return{};var r,n,a=o(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function o(t,e){if(null==t)return{};var r,o,n={},a=Object.keys(t);for(o=0;o<a.length;o++)r=a[o],e.indexOf(r)>=0||(n[r]=t[r]);return n}const n=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:t});exports.formatTribeURL=n;const a=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:t});exports.formatPlayerURL=a;const i=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:t});exports.formatVillageURL=i;const l=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const o="K"+String(r)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(r,") ").concat(o)};exports.formatVillageName=l;const c=async function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:n}=o,a=r(o,["name"]);try{const r=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:e,name:n||""})),o=await r.text();if(!o)throw new Error;const l=new t.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,date:new Date}}};exports.loadInADayData=c;const s=(t,e,r)=>Math.round(t*r/e);exports.calcAttackDuration=s;const u=t=>image_base+t;exports.buildImgURL=u;
},{"../libs/InADayParser":"dSAr"}],"vNT1":[function(require,module,exports) {
},{}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;const o=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:o});exports.formatTribeURL=o;const t=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:o});exports.formatPlayerURL=t;const r=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:o});exports.formatVillageURL=r;const e=function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const e="K"+String(r)[0]+String(t)[0];return"".concat(o," (").concat(t,"|").concat(r,") ").concat(e)};exports.formatVillageName=e;const i=(o,t,r)=>Math.round(o*r/t);exports.calcAttackDuration=i;const a=o=>image_base+o;exports.buildImgURL=a;
},{}],"vNT1":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=l(require("../i18n/showEnnoblementsPopup")),e=require("../utils/pagination"),n=l(require("../utils/showPopup")),a=l(require("../utils/formatDate")),o=require("../utils/tribalwars");function l(t){return t&&t.__esModule?t:{default:t}}const r="ennoblementsPagination",i=(0,t.default)(),c=(t,e)=>t?'<td><a href="'.concat((0,o.formatPlayerURL)(t.id),'">').concat(t.name," (").concat(e?'<a href="'.concat((0,o.formatTribeURL)(e.id),'">').concat(e.tag,"</a>"):"-",")</a></td>"):"<td>-</td>";var d=function(t,l){let{limit:d=0,currentPage:s=1,onPageChange:u=(()=>{})}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const g=(0,e.generatePaginationItems)({total:l.total,limit:d,currentPage:s}),m='\n <div style="'.concat((0,e.getContainerStyles)(),'" id="').concat(r,'">\n ').concat(g.join(""),'\n </div>\n <table class="vis" style="border-collapse: separate; border-spacing: 2px; width: 100%;">\n <tbody>\n <tr>\n <th>\n ').concat(i.date,"\n </th>\n <th>\n ").concat(i.village,"\n </th>\n <th>\n ").concat(i.newOwner,"\n </th>\n <th>\n ").concat(i.oldOwner,"\n </th>\n </tr>\n ").concat(l.items.map(t=>{let e="<tr>"+"<td>".concat((0,a.default)(t.ennobledAt),"</td>");return t.village?e+='<td><a href="'.concat((0,o.formatVillageURL)(t.village.id),'">').concat((0,o.formatVillageName)(t.village.name,t.village.x,t.village.y),"</a></td>"):e+="<td>-</td>",e+=c(t.newOwner,t.newOwnerTribe),(e+=c(t.oldOwner,t.oldOwnerTribe))+"</tr>"}).join(""),"\n </tbody>\n </table>\n ");(0,n.default)({e:t,title:i.title,id:"ennoblements",html:m}),document.querySelectorAll("#ennoblementsPagination a").forEach(t=>{t.addEventListener("click",u)})};exports.default=d;
},{"../i18n/showEnnoblementsPopup":"tKRp","../utils/pagination":"fCHX","../utils/showPopup":"chDM","../utils/formatDate":"V6Mf","../utils/tribalwars":"fHHP"}],"UdfQ":[function(require,module,exports) {
"use strict";var e=a(require("./libs/requestCreator")),n=a(require("./i18n/extendedVillageProfile")),t=require("./utils/pagination"),r=a(require("./utils/getCurrentServer")),l=a(require("./utils/getIDFromURL")),i=a(require("./common/showEnnoblementsPopup"));function a(e){return e&&e.__esModule?e:{default:e}}const o=(0,r.default)(),d=(0,l.default)(window.location.search),s="\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n",u=15,c=document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),m=(0,n.default)(),f=async n=>{n.preventDefault();const r=(0,t.getPage)(n.target);if(!isNaN(r)){const t=await(0,e.default)({query:s,variables:{filter:{villageID:[d],offset:15*(r-1),limit:15,sort:"ennobledAt DESC"},server:o}});(0,i.default)(n,t.ennoblements,{currentPage:r,limit:15,onPageChange:f})}},b=e=>{const n=document.createElement("td");n.colSpan="2",n.append(e);const t=document.createElement("tr");return t.appendChild(n),t},g=()=>{const e=document.createElement("a");e.href="#",(0,t.setPage)(e,"1"),e.innerHTML=m.action.showEnnoblements,e.addEventListener("click",f),c.appendChild(b(e))};g();

View File

@ -0,0 +1,7 @@
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"}],"s4G3":[function(require,module,exports) {
"use strict";var e=t(require("./libs/InADayParser"));function t(e){return e&&e.__esModule?e:{default:e}}const n="iad_tribes",a="iad_limit",r=()=>{const e=document.querySelector("#iad_tribes"),t=document.createElement("div");t.innerHTML='\n <label>Tribe: </label>\n <input type="text" required />\n <button type="button">Delete</button>\n ',t.querySelector("button").addEventListener("click",()=>{e.children.length>1&&t.remove()}),e.appendChild(t)},i=async t=>{t.preventDefault();const n=parseInt(document.querySelector("#iad_limit").value),a=[],r=new URLSearchParams(window.location.search).get("type")||"kill_att";document.querySelectorAll("#iad_tribes input").forEach(e=>{e.value&&a.push(e.value.trim())});let i=[],o=0;for(;i.length<n;){Dialog.show("iad_loading","Loaded: <strong>".concat(i.length,"/").concat(n,"</strong>"));try{const t=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:r,offset:25*o})),n=await t.text(),l=new e.default(n,{tribes:a});if(26!==l.trs.length)break;i=[...i,...l.parse()],o++}catch(c){break}}i=i.slice(0,n),Dialog.show("iad_result","\n <textarea cols=30 rows=8 readonly>[table]\n[**][||]Player[||]Tribe[||]Rank[||]Result[||]Date[/**]\n".concat(i.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 "))},o=()=>{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">Generate</button>\n <button id="').concat("iad_add",'" type="button">Add tribe</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",i),e.querySelector("#iad_add").addEventListener("click",r),r()};!function(){try{o()}catch(e){console.log("'In A Day' Tribe Ranking Generator",e)}}();
},{"./libs/InADayParser":"dSAr"}]},{},["s4G3"], null)

View File

@ -6,13 +6,9 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=()=>window.location.host.split(".")[0];exports.default=e;
},{}],"V6Mf":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=(e,t)=>new Date(e).toLocaleDateString(window.game_data.locale.replace("_","-"),t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"});exports.default=e;
},{}],"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=r(require("../utils/getIDFromURL"));function r(e){return e&&e.__esModule?e:{default:e}}class t{constructor(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.filters=r}isValidRow(e){return!!e&&(!this.filters.playerID||e.playerID===this.filters.playerID)}parseRow(r){if(!r||!r instanceof HTMLTableRowElement)return;let t={};return t.rank=parseInt(r.children[0].innerText.trim()),t.name=r.children[1].innerText.trim(),t.playerID=(0,e.default)(r.children[1].querySelector("a").getAttribute("href")),t.tribe=r.children[2].innerText.trim(),t.tribeID=0,t.tribe&&(t.tribeID=(0,e.default)(r.children[2].querySelector("a").getAttribute("href"))),t.score=parseInt(r.children[3].innerText.trim().replace(/\./g,"")),t.date=r.children[4].innerText.trim(),t}parse(){const e=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),r=[];for(let t=1;t<e.length;t++){const i=e[t],n=this.parseRow(i);this.isValidRow(n)&&r.push(n)}return r}}exports.default=t;
},{"../utils/getIDFromURL":"tQUs"}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.loadInADayData=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;var t=e(require("../libs/InADayParser"));function e(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(null==t)return{};var r,n,a=o(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function o(t,e){if(null==t)return{};var r,o,n={},a=Object.keys(t);for(o=0;o<a.length;o++)r=a[o],e.indexOf(r)>=0||(n[r]=t[r]);return n}const n=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:t});exports.formatTribeURL=n;const a=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:t});exports.formatPlayerURL=a;const i=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:t});exports.formatVillageURL=i;const l=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const o="K"+String(r)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(r,") ").concat(o)};exports.formatVillageName=l;const c=async function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:n}=o,a=r(o,["name"]);try{const r=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:e,name:n||""})),o=await r.text();if(!o)throw new Error;const l=new t.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,date:new Date}}};exports.loadInADayData=c;const s=(t,e,r)=>Math.round(t*r/e);exports.calcAttackDuration=s;const u=t=>image_base+t;exports.buildImgURL=u;
},{"../libs/InADayParser":"dSAr"}],"KWxH":[function(require,module,exports) {
},{}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;const o=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:o});exports.formatTribeURL=o;const t=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:o});exports.formatPlayerURL=t;const r=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:o});exports.formatVillageURL=r;const e=function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const e="K"+String(r)[0]+String(t)[0];return"".concat(o," (").concat(t,"|").concat(r,") ").concat(e)};exports.formatVillageName=e;const i=(o,t,r)=>Math.round(o*r/t);exports.calcAttackDuration=i;const a=o=>image_base+o;exports.buildImgURL=a;
},{}],"KWxH":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setItem=exports.getItem=void 0;const e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=localStorage.getItem(e);let s=t;return o&&(s=JSON.parse(o)),s};exports.getItem=e;const t=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))};exports.setItem=t;
},{}],"FxgK":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e={pl_PL:{showLatestEnnoblements:"Pokaż najnowsze przejęcia",village:"Wioska",newOwner:"Nowy właściciel",oldOwner:"Poprzedni właściciel",date:"Data",filters:"Filtry",apply:"Zastosuj",ennoblements:"Przejęcia"},en_DK:{showLatestEnnoblements:"Show latest ennoblements",village:"Village",newOwner:"New owner",newOwnerTribe:"New owner tribe",oldOwner:"Old owner",oldOwnerTribe:"Old owner tribe",filters:"Filters",date:"Date",apply:"Apply",ennoblements:"Ennoblements"}};var n=()=>e[window.game_data.locale]||e.en_DK;exports.default=n;

View File

@ -1,3 +1,4 @@
import InADayParser from './libs/InADayParser';
import requestCreator from './libs/requestCreator';
import getTranslations from './i18n/extendedPlayerProfile';
import renderTodaysStats from './common/renderTodaysStats';
@ -14,7 +15,7 @@ import getIDFromURL from './utils/getIDFromURL';
import getCurrentServer from './utils/getCurrentServer';
import formatDate from './utils/formatDate';
import { formatPlayerURL } from './utils/twstats';
import { formatTribeURL, loadInADayData } from './utils/tribalwars';
import { formatTribeURL } from './utils/tribalwars';
import { setItem, getItem } from './utils/localStorage';
// ==UserScript==
@ -191,6 +192,37 @@ const cachePlayerData = (data = {}) => {
setItem(LOCAL_STORAGE_KEY, data);
};
const loadInADayData = async (type, { name, ...rest } = {}) => {
try {
const response = await fetch(
TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : '',
})
);
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new InADayParser(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
tribe: '',
date: new Date(),
};
}
};
const loadData = async () => {
const data = await requestCreator({
query: PLAYER_QUERY,

View File

@ -0,0 +1,128 @@
import InADayParser from './libs/InADayParser';
// ==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.1.0
// @description 'In A Day' Tribe Ranking Generator
// @author Kichiyaki http://dawid-wysokinski.pl/
// @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 addTribe = () => {
const container = document.querySelector('#' + TRIBE_CONTAINER_ID);
const div = document.createElement('div');
div.innerHTML = `
<label>Tribe: </label>
<input type="text" required />
<button type="button">Delete</button>
`;
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',
`Loaded: <strong>${players.length}/${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(html, {
tribes,
});
if (parser.trs.length !== 26) break;
players = [...players, ...parser.parse()];
page++;
} catch (error) {
break;
}
}
players = players.slice(0, limit);
Dialog.show(
'iad_result',
`
<textarea cols=30 rows=8 readonly>[table]
[**][||]Player[||]Tribe[||]Rank[||]Result[||]Date[/**]
${players
.map((player, index) => {
return `[*]${index + 1}[|][player]${player.name}[/player][|][ally]${
player.tribe
}[/ally][|]${player.rank}[|]${player.score.toLocaleString()}[|]${
player.date
}`;
})
.join('\n')}
[/table]</textarea>
`
);
};
const renderUI = () => {
const addButtonID = 'iad_add';
const div = document.createElement('div');
const html = `
<form>
<div id="${TRIBE_CONTAINER_ID}">
</div>
<div>
<label>Limit: </label>
<input id="${LIMIT_INPUT_ID}" type="number" min="1" value="10" required />
</div>
<button type="submit">Generate</button>
<button id="${addButtonID}" type="button">Add tribe</button>
</form>
`;
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);
}
})();

View File

@ -1,8 +1,9 @@
import getIDFromURL from '../utils/getIDFromURL';
export default class InADayParser {
constructor(html, filters = {}) {
constructor(html = '', filters = {}) {
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) {
@ -12,6 +13,13 @@ export default class InADayParser {
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) {
@ -36,10 +44,9 @@ export default class InADayParser {
return obj;
}
parse() {
const trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr');
const result = [];
for (let i = 1; i < trs.length; i++) {
const row = trs[i];
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);

View File

@ -1,5 +1,3 @@
import InADayParser from '../libs/InADayParser';
export const formatTribeURL = (id) => {
return (
window.location.origin +
@ -35,36 +33,6 @@ export const formatVillageName = (n = '', x = 500, y = 500) => {
return `${n} (${x}|${y}) ${continent}`;
};
export const loadInADayData = async (type, { name, ...rest } = {}) => {
try {
const response = await fetch(
TribalWars.buildURL('', {
screen: 'ranking',
mode: 'in_a_day',
type,
name: name ? name : '',
})
);
const html = await response.text();
if (!html) {
throw new Error();
}
const res = new InADayParser(html, rest).parse();
if (res.length === 0) {
throw new Error();
}
return res[0];
} catch (error) {
return {
rank: 0,
playerID: 0,
score: 0,
tribeID: 0,
date: new Date(),
};
}
};
export const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round((distance * baseSpeed) / unitSpeed);
};