diff --git a/dist/bonusBarbarianVillageFinder.js b/dist/bonusBarbarianVillageFinder.js index 2d2b31e..c837064 100644 --- a/dist/bonusBarbarianVillageFinder.js +++ b/dist/bonusBarbarianVillageFinder.js @@ -1,214 +1,301 @@ (function () { - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); - }); - }; - const $3b197ddc404523dce25bd8470f854619$var$translations = { - pl_PL: { - actualCoords: 'Aktualne koordynaty', - searchBonusBarbarianVillages: 'Wyszukaj koczownicze', - village: 'Wioska', - distance: 'Dystans', - action: 'Akcja', - center: 'Wycentruj' - }, - en_DK: { - actualCoords: 'Actual coords', - searchBonusBarbarianVillages: 'Search bonus barbarian villages', - village: 'Village', - distance: 'Distance', - action: 'Action', - center: 'Center' - }, - de_DE: { - actualCoords: 'Aktuelle Koordinaten', - searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer', - village: 'Dorf', - distance: 'Distanz', - action: 'Aktion', - center: 'Center' - } - }; - var $3b197ddc404523dce25bd8470f854619$export$default = () => $3b197ddc404523dce25bd8470f854619$var$translations[window.game_data.locale] || $3b197ddc404523dce25bd8470f854619$var$translations.en_DK; - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_ally', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_player', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_village', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() { - let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; - let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; - const continent = 'K' + String(y)[0] + String(x)[0]; - return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => { - return Math.round(distance * baseSpeed); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => { - return image_base + img; - }; - const $3d57ea338a09b23ca4b283dff4f79ebd$export$calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => { - const a = x1 - x2; - const b = y1 - y2; - return Math.sqrt(a * a + b * b); - }; - function $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); - } - return keys; - } - function $61671ab24a4170eb0a1c7d9e6ffb22e6$var$_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ownKeys(Object(source), true).forEach(function (key) { - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$_defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; - } - function $61671ab24a4170eb0a1c7d9e6ffb22e6$var$_defineProperty(obj, key, value) { - if ((key in obj)) { - Object.defineProperty(obj, key, { +function $6a49e4c969cec444$export$2e2bcd8739ae039(obj, key, value) { + if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true - }); - } else { - obj[key] = value; - } + }); + else obj[key] = value; return obj; - } - // ==UserScript== - // @name Bonus barbarian village finder - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js - // @version 0.4.7 - // @description Bonus barbarian village finder - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=map* - // @grant none - // ==/UserScript== - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$QUERY = "\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n"; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$TABLE_ID = 'bonusBarbarianVillageFinderTable'; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ACTUAL_COORDS_ID = 'actualCoords'; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations = $3b197ddc404523dce25bd8470f854619$export$default(); - let $61671ab24a4170eb0a1c7d9e6ffb22e6$var$container = undefined; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildReqOptions = (bonus, offset) => { - return { - query: $61671ab24a4170eb0a1c7d9e6ffb22e6$var$QUERY, - variables: { - server: $61671ab24a4170eb0a1c7d9e6ffb22e6$var$SERVER, - sort: ['id DESC'], - filter: { - bonus, - playerID: [0] - }, - offset - } +} + + +function $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { + }; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); + }); + } + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { }; - }; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$loadBonusVillages = async bonus => { - const {villages} = await $3af05e958b2a20a26445518aba292c50$export$default($61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildReqOptions(bonus, 0)); - for (let i = villages.length; i < villages.total; i += 1000) { - const data = await $3af05e958b2a20a26445518aba292c50$export$default($61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildReqOptions(bonus, 0)); - villages.items = [...villages.items, ...data.villages.items]; + 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; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + + +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); + }); +}; + + +const $71f792443ec67043$var$translations = { + pl_PL: { + actualCoords: 'Aktualne koordynaty', + searchBonusBarbarianVillages: 'Wyszukaj koczownicze', + village: 'Wioska', + distance: 'Dystans', + action: 'Akcja', + center: 'Wycentruj' + }, + en_DK: { + actualCoords: 'Actual coords', + searchBonusBarbarianVillages: 'Search bonus barbarian villages', + village: 'Village', + distance: 'Distance', + action: 'Action', + center: 'Center' + }, + de_DE: { + actualCoords: 'Aktuelle Koordinaten', + searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer', + village: 'Dorf', + distance: 'Distanz', + action: 'Aktion', + center: 'Center' + } +}; +var $71f792443ec67043$export$2e2bcd8739ae039 = ()=>$71f792443ec67043$var$translations[window.game_data.locale] || $71f792443ec67043$var$translations.en_DK +; + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_ally', + id: id + }); +}; +const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_player', + id: id + }); +}; +const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_village', + id: id + }); +}; +const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{ + const continent = 'K' + String(y)[0] + String(x)[0]; + return `${n} (${x}|${y}) ${continent}`; +}; +const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{ + return Math.round(distance * baseSpeed); +}; +const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{ + return image_base + img; +}; + + +const $8f952366ce71d0fe$export$6e378131ceaf17af = (x1, y1, x2, y2)=>{ + const a = x1 - x2; + const b = y1 - y2; + return Math.sqrt(a * a + b * b); +}; + + +// ==UserScript== +// @name Bonus barbarian village finder +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js +// @version 0.4.7 +// @description Bonus barbarian village finder +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=map* +// @grant none +// ==/UserScript== +const $0e40ff93e5ed20a5$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $0e40ff93e5ed20a5$var$QUERY = ` + query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) { + villages(server: $server, filter: $filter, offset: $offset, sort: $sort) { + total + items { + id + name + bonus + x + y + } + } + } +`; +const $0e40ff93e5ed20a5$var$TABLE_ID = 'bonusBarbarianVillageFinderTable'; +const $0e40ff93e5ed20a5$var$ACTUAL_COORDS_ID = 'actualCoords'; +const $0e40ff93e5ed20a5$var$translations = $71f792443ec67043$export$2e2bcd8739ae039(); +let $0e40ff93e5ed20a5$var$container = undefined; +const $0e40ff93e5ed20a5$var$buildReqOptions = (bonus, offset)=>{ + return { + query: $0e40ff93e5ed20a5$var$QUERY, + variables: { + server: $0e40ff93e5ed20a5$var$SERVER, + sort: [ + 'id DESC' + ], + filter: { + bonus: bonus, + playerID: [ + 0 + ] + }, + offset: offset + } + }; +}; +const $0e40ff93e5ed20a5$var$loadBonusVillages = async (bonus)=>{ + const { villages: villages } = await $902f167bfdc7b30b$export$2e2bcd8739ae039($0e40ff93e5ed20a5$var$buildReqOptions(bonus, 0)); + for(let i = villages.length; i < villages.total; i += 1000){ + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039($0e40ff93e5ed20a5$var$buildReqOptions(bonus, 0)); + villages.items = [ + ...villages.items, + ...data.villages.items + ]; } return villages; - }; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$searchBonusBarbarianVillages = async e => { +}; +const $0e40ff93e5ed20a5$var$searchBonusBarbarianVillages = async (e)=>{ e.preventDefault(); - const villages = await $61671ab24a4170eb0a1c7d9e6ffb22e6$var$loadBonusVillages(parseInt(e.target[0].value)); + const villages = await $0e40ff93e5ed20a5$var$loadBonusVillages(parseInt(e.target[0].value)); const coords = TWMap.pos; - villages.items = villages.items.map(item => { - return $61671ab24a4170eb0a1c7d9e6ffb22e6$var$_objectSpread($61671ab24a4170eb0a1c7d9e6ffb22e6$var$_objectSpread({}, item), {}, { - distance: $3d57ea338a09b23ca4b283dff4f79ebd$export$calcDistanceBetweenTwoPoints(coords[0], coords[1], item.x, item.y) - }); - }).sort((a, b) => a.distance - b.distance); - document.querySelector('#' + $61671ab24a4170eb0a1c7d9e6ffb22e6$var$TABLE_ID).innerHTML = $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML(villages.items); - }; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$getBonuses = () => { + villages.items = villages.items.map((item)=>{ + return $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, item, { + distance: $8f952366ce71d0fe$export$6e378131ceaf17af(coords[0], coords[1], item.x, item.y) + }); + }).sort((a, b)=>a.distance - b.distance + ); + document.querySelector('#' + $0e40ff93e5ed20a5$var$TABLE_ID).innerHTML = $0e40ff93e5ed20a5$var$buildTableBodyHTML(villages.items); +}; +const $0e40ff93e5ed20a5$var$getBonuses = ()=>{ let bonuses = []; - for (let i in TWMap.bonus_data) { - bonuses.push({ + for(let i in TWMap.bonus_data)bonuses.push({ value: i, text: TWMap.bonus_data[i].text - }); - } + }); return bonuses; - }; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML = villages => { - return ("\n \n \n \n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.village, "\n \n \n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.distance, "\n \n \n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.action, "\n \n \n ").concat(Array.isArray(villages) ? villages.map(village => ("\n \n \n ").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(village.name, village.x, village.y), "\n \n \n \n ").concat(village.distance.toFixed(1), "\n \n \n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.center, "\n \n ")).join('') : '', "\n \n "); - }; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords = () => { - document.querySelector('#' + $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ACTUAL_COORDS_ID).innerHTML = ("").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.actualCoords, ": ").concat(TWMap.pos.join('|'), ""); - }; - const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$renderUI = () => { - const html = ("\n

\n
\n \n \n
\n \n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML(), "\n
\n "); - if (!$61671ab24a4170eb0a1c7d9e6ffb22e6$var$container) { - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$container = document.createElement('div'); - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.classList.add('containerBorder'); - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.style.clear = 'both'; - document.querySelector('#map_big').appendChild($61671ab24a4170eb0a1c7d9e6ffb22e6$var$container); +}; +const $0e40ff93e5ed20a5$var$buildTableBodyHTML = (villages)=>{ + return ` + + + + ${$0e40ff93e5ed20a5$var$translations.village} + + + ${$0e40ff93e5ed20a5$var$translations.distance} + + + ${$0e40ff93e5ed20a5$var$translations.action} + + + ${Array.isArray(villages) ? villages.map((village)=>` + + + ${$db1dd60e5389e0c9$export$c6f77ec2633c38b1(village.name, village.x, village.y)} + + + + ${village.distance.toFixed(1)} + + + ${$0e40ff93e5ed20a5$var$translations.center} + + ` + ).join('') : ''} + + `; +}; +const $0e40ff93e5ed20a5$var$updateActualCoords = ()=>{ + document.querySelector('#' + $0e40ff93e5ed20a5$var$ACTUAL_COORDS_ID).innerHTML = `${$0e40ff93e5ed20a5$var$translations.actualCoords}: ${TWMap.pos.join('|')}`; +}; +const $0e40ff93e5ed20a5$var$renderUI = ()=>{ + const html = ` +

+
+ + +
+ + ${$0e40ff93e5ed20a5$var$buildTableBodyHTML()} +
+ `; + if (!$0e40ff93e5ed20a5$var$container) { + $0e40ff93e5ed20a5$var$container = document.createElement('div'); + $0e40ff93e5ed20a5$var$container.classList.add('containerBorder'); + $0e40ff93e5ed20a5$var$container.style.clear = 'both'; + document.querySelector('#map_big').appendChild($0e40ff93e5ed20a5$var$container); } - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.innerHTML = html; - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$container.querySelector('form').addEventListener('submit', $61671ab24a4170eb0a1c7d9e6ffb22e6$var$searchBonusBarbarianVillages); - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords(); - setInterval($61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords, 1000); - }; - (function () { - $61671ab24a4170eb0a1c7d9e6ffb22e6$var$renderUI(); - })(); + $0e40ff93e5ed20a5$var$container.innerHTML = html; + $0e40ff93e5ed20a5$var$container.querySelector('form').addEventListener('submit', $0e40ff93e5ed20a5$var$searchBonusBarbarianVillages); + $0e40ff93e5ed20a5$var$updateActualCoords(); + setInterval($0e40ff93e5ed20a5$var$updateActualCoords, 1000); +}; +(function() { + $0e40ff93e5ed20a5$var$renderUI(); })(); +})(); diff --git a/dist/commandRenamer.js b/dist/commandRenamer.js index 92b02b4..855dc8d 100644 --- a/dist/commandRenamer.js +++ b/dist/commandRenamer.js @@ -1,64 +1,74 @@ (function () { - const $f9de81cfe3f8a296e0e5a7ba4108bc8c$var$translations = { +const $76945efd441c6f3e$var$translations = { pl_PL: { - rename: 'Zmień', - name: 'Nazwa' + rename: 'Zmień', + name: 'Nazwa' }, en_DK: { - rename: 'Rename', - name: 'Name' + rename: 'Rename', + name: 'Name' }, de_DE: { - rename: 'Umbenennen', - name: 'Name' + rename: 'Umbenennen', + name: 'Name' } - }; - var $f9de81cfe3f8a296e0e5a7ba4108bc8c$export$default = () => $f9de81cfe3f8a296e0e5a7ba4108bc8c$var$translations[window.game_data.locale] || $f9de81cfe3f8a296e0e5a7ba4108bc8c$var$translations.en_DK; - var $393a22f746cd1f6e45eff96c71b28370$export$default = t => new Promise(resolve => setTimeout(resolve, t)); - // ==UserScript== - // @name Command renamer - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js - // @version 0.2.5 - // @description Command renamer - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*mode=incomings* - // @grant none - // ==/UserScript== - const $a00f5166aafbcf4ccffe3cfb8f4b9923$var$translations = $f9de81cfe3f8a296e0e5a7ba4108bc8c$export$default(); - const $a00f5166aafbcf4ccffe3cfb8f4b9923$var$handleSubmit = async e => { +}; +var $76945efd441c6f3e$export$2e2bcd8739ae039 = ()=>$76945efd441c6f3e$var$translations[window.game_data.locale] || $76945efd441c6f3e$var$translations.en_DK +; + + +var $fc029eaf0e980c2d$export$2e2bcd8739ae039 = (t)=>new Promise((resolve)=>setTimeout(resolve, t) + ) +; + + +// ==UserScript== +// @name Command renamer +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js +// @version 0.2.5 +// @description Command renamer +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*mode=incomings* +// @grant none +// ==/UserScript== +const $1e4faa846c4448db$var$translations = $76945efd441c6f3e$export$2e2bcd8739ae039(); +const $1e4faa846c4448db$var$handleSubmit = async (e)=>{ e.preventDefault(); const name = e.target[0].value; if (!name) return; const checkboxes = document.querySelectorAll('#incomings_table input:checked'); e.target[1].disabled = true; - for (let i = 0; i < checkboxes.length; i++) { - const checkbox = checkboxes[i]; - if (checkbox.id === 'select_all') continue; - const icon = checkbox.parentElement.querySelector('.rename-icon'); - icon.click(); - await $393a22f746cd1f6e45eff96c71b28370$export$default(20); - const quickeditForm = checkbox.parentElement.querySelector('.quickedit-edit'); - quickeditForm.querySelector('input').value = name; - quickeditForm.querySelector('input[type="button"]').click(); - await $393a22f746cd1f6e45eff96c71b28370$export$default(350); + for(let i = 0; i < checkboxes.length; i++){ + const checkbox = checkboxes[i]; + if (checkbox.id === 'select_all') continue; + const icon = checkbox.parentElement.querySelector('.rename-icon'); + icon.click(); + await $fc029eaf0e980c2d$export$2e2bcd8739ae039(20); + const quickeditForm = checkbox.parentElement.querySelector('.quickedit-edit'); + quickeditForm.querySelector('input').value = name; + quickeditForm.querySelector('input[type="button"]').click(); + await $fc029eaf0e980c2d$export$2e2bcd8739ae039(350); } e.target[1].disabled = false; - }; - const $a00f5166aafbcf4ccffe3cfb8f4b9923$var$renderUI = () => { - const html = ("\n \n \n "); +}; +const $1e4faa846c4448db$var$renderUI = ()=>{ + const html = ` + + + `; const form = document.createElement('form'); form.innerHTML = html; - form.addEventListener('submit', $a00f5166aafbcf4ccffe3cfb8f4b9923$var$handleSubmit); + form.addEventListener('submit', $1e4faa846c4448db$var$handleSubmit); document.querySelector('#paged_view_content').insertBefore(form, document.querySelector('#incomings_form')); - }; - (async function () { +}; +(async function() { try { - $a00f5166aafbcf4ccffe3cfb8f4b9923$var$renderUI(); + $1e4faa846c4448db$var$renderUI(); } catch (error) { - console.log('command renamer', error); + console.log('command renamer', error); } - })(); })(); +})(); diff --git a/dist/dailyAchievements.js b/dist/dailyAchievements.js index 3814575..01f2738 100644 --- a/dist/dailyAchievements.js +++ b/dist/dailyAchievements.js @@ -1,890 +1,992 @@ (function () { - function $5a91e85e34da2364b77064ee2dfe41c1$export$default(required, args) { - if (args.length < required) { - throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); +function $6a49e4c969cec444$export$2e2bcd8739ae039(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 $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { + }; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); + }); } - } - /** - * @name toDate - * @category Common Helpers - * @summary Convert the given argument to an instance of Date. - * - * @description - * Convert the given argument to an instance of Date. - * - * If the argument is an instance of Date, the function returns its clone. - * - * If the argument is a number, it is treated as a timestamp. - * - * If the argument is none of the above, the function returns Invalid Date. - * - * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. - * - * @param {Date|Number} argument - the value to convert - * @returns {Date} the parsed date in the local time zone - * @throws {TypeError} 1 argument required - * - * @example - * // Clone the date: - * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) - * //=> Tue Feb 11 2014 11:30:30 - * - * @example - * // Convert the timestamp to date: - * const result = toDate(1392098430000) - * //=> Tue Feb 11 2014 11:30:30 - */ - function $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(argument) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var argStr = Object.prototype.toString.call(argument); - // Clone the date - if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') { - // Prevent the date to lose the milliseconds when passed to new Date() in IE10 - return new Date(argument.getTime()); - } else if (typeof argument === 'number' || argStr === '[object Number]') { - return new Date(argument); - } else { - if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { - // eslint-disable-next-line no-console - console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); - // eslint-disable-next-line no-console - console.warn(new Error().stack); - } - return new Date(NaN); + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(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]; } - } - /** - * @name isValid - * @category Common Helpers - * @summary Is the given date valid? - * - * @description - * Returns false if argument is Invalid Date and true otherwise. - * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate} - * Invalid Date is a Date, whose time value is NaN. - * - * Time value of Date: http://es5.github.io/#x15.9.1.1 - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * - Now `isValid` doesn't throw an exception - * if the first argument is not an instance of Date. - * Instead, argument is converted beforehand using `toDate`. - * - * Examples: - * - * | `isValid` argument | Before v2.0.0 | v2.0.0 onward | - * |---------------------------|---------------|---------------| - * | `new Date()` | `true` | `true` | - * | `new Date('2016-01-01')` | `true` | `true` | - * | `new Date('')` | `false` | `false` | - * | `new Date(1488370835081)` | `true` | `true` | - * | `new Date(NaN)` | `false` | `false` | - * | `'2016-01-01'` | `TypeError` | `false` | - * | `''` | `TypeError` | `false` | - * | `1488370835081` | `TypeError` | `true` | - * | `NaN` | `TypeError` | `false` | - * - * We introduce this change to make *date-fns* consistent with ECMAScript behavior - * that try to coerce arguments to the expected type - * (which is also the case with other *date-fns* functions). - * - * @param {*} date - the date to check - * @returns {Boolean} the date is valid - * @throws {TypeError} 1 argument required - * - * @example - * // For the valid date: - * var result = isValid(new Date(2014, 1, 31)) - * //=> true - * - * @example - * // For the value, convertable into a date: - * var result = isValid(1393804800000) - * //=> true - * - * @example - * // For the invalid date: - * var result = isValid(new Date('')) - * //=> false - */ - function $9f3abccc6bcce2be062107647201d225$export$default(dirtyDate) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); + return target; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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 $14473fdd7558f621$export$2e2bcd8739ae039(required, args) { + if (args.length < required) throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); +} + + +function $cef0ab118a15bdd4$export$2e2bcd8739ae039(argument) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var argStr = Object.prototype.toString.call(argument); // Clone the date + if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()); + else if (typeof argument === 'number' || argStr === '[object Number]') return new Date(argument); + else { + if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { + // eslint-disable-next-line no-console + console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console + console.warn(new Error().stack); + } + return new Date(NaN); + } +} + + + +function $9dee1d3ade18edf3$export$2e2bcd8739ae039(dirtyDate) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); return !isNaN(date); - } - var $af5ae195c918de448c5161b2fb827963$var$formatDistanceLocale = { +} + + +var $7086ba38aadd3849$var$formatDistanceLocale = { lessThanXSeconds: { - one: 'less than a second', - other: 'less than {{count}} seconds' + one: 'less than a second', + other: 'less than {{count}} seconds' }, xSeconds: { - one: '1 second', - other: '{{count}} seconds' + one: '1 second', + other: '{{count}} seconds' }, halfAMinute: 'half a minute', lessThanXMinutes: { - one: 'less than a minute', - other: 'less than {{count}} minutes' + one: 'less than a minute', + other: 'less than {{count}} minutes' }, xMinutes: { - one: '1 minute', - other: '{{count}} minutes' + one: '1 minute', + other: '{{count}} minutes' }, aboutXHours: { - one: 'about 1 hour', - other: 'about {{count}} hours' + one: 'about 1 hour', + other: 'about {{count}} hours' }, xHours: { - one: '1 hour', - other: '{{count}} hours' + one: '1 hour', + other: '{{count}} hours' }, xDays: { - one: '1 day', - other: '{{count}} days' + one: '1 day', + other: '{{count}} days' }, aboutXWeeks: { - one: 'about 1 week', - other: 'about {{count}} weeks' + one: 'about 1 week', + other: 'about {{count}} weeks' }, xWeeks: { - one: '1 week', - other: '{{count}} weeks' + one: '1 week', + other: '{{count}} weeks' }, aboutXMonths: { - one: 'about 1 month', - other: 'about {{count}} months' + one: 'about 1 month', + other: 'about {{count}} months' }, xMonths: { - one: '1 month', - other: '{{count}} months' + one: '1 month', + other: '{{count}} months' }, aboutXYears: { - one: 'about 1 year', - other: 'about {{count}} years' + one: 'about 1 year', + other: 'about {{count}} years' }, xYears: { - one: '1 year', - other: '{{count}} years' + one: '1 year', + other: '{{count}} years' }, overXYears: { - one: 'over 1 year', - other: 'over {{count}} years' + one: 'over 1 year', + other: 'over {{count}} years' }, almostXYears: { - one: 'almost 1 year', - other: 'almost {{count}} years' + one: 'almost 1 year', + other: 'almost {{count}} years' } - }; - function $af5ae195c918de448c5161b2fb827963$export$default(token, count, options) { - options = options || ({}); +}; +function $7086ba38aadd3849$export$2e2bcd8739ae039(token, count, options) { + options = options || { + }; var result; - if (typeof $af5ae195c918de448c5161b2fb827963$var$formatDistanceLocale[token] === 'string') { - result = $af5ae195c918de448c5161b2fb827963$var$formatDistanceLocale[token]; - } else if (count === 1) { - result = $af5ae195c918de448c5161b2fb827963$var$formatDistanceLocale[token].one; - } else { - result = $af5ae195c918de448c5161b2fb827963$var$formatDistanceLocale[token].other.replace('{{count}}', count); - } + if (typeof $7086ba38aadd3849$var$formatDistanceLocale[token] === 'string') result = $7086ba38aadd3849$var$formatDistanceLocale[token]; + else if (count === 1) result = $7086ba38aadd3849$var$formatDistanceLocale[token].one; + else result = $7086ba38aadd3849$var$formatDistanceLocale[token].other.replace('{{count}}', count); if (options.addSuffix) { - if (options.comparison > 0) { - return 'in ' + result; - } else { - return result + ' ago'; - } + if (options.comparison > 0) return 'in ' + result; + else return result + ' ago'; } return result; - } - function $601bcbb57db8e79c76c0c0045fe97d0e$export$default(args) { - return function (dirtyOptions) { - var options = dirtyOptions || ({}); - var width = options.width ? String(options.width) : args.defaultWidth; - var format = args.formats[width] || args.formats[args.defaultWidth]; - return format; +} + + +function $9ae2382f7157e841$export$2e2bcd8739ae039(args) { + return function(dirtyOptions) { + var options = dirtyOptions || { + }; + var width = options.width ? String(options.width) : args.defaultWidth; + var format = args.formats[width] || args.formats[args.defaultWidth]; + return format; }; - } - var $d03d651528c41c13a935389aaf457a5e$var$dateFormats = { +} + + +var $c97d8185919fa02d$var$dateFormats = { full: 'EEEE, MMMM do, y', long: 'MMMM do, y', medium: 'MMM d, y', short: 'MM/dd/yyyy' - }; - var $d03d651528c41c13a935389aaf457a5e$var$timeFormats = { +}; +var $c97d8185919fa02d$var$timeFormats = { full: 'h:mm:ss a zzzz', long: 'h:mm:ss a z', medium: 'h:mm:ss a', short: 'h:mm a' - }; - var $d03d651528c41c13a935389aaf457a5e$var$dateTimeFormats = { +}; +var $c97d8185919fa02d$var$dateTimeFormats = { full: "{{date}} 'at' {{time}}", long: "{{date}} 'at' {{time}}", medium: '{{date}}, {{time}}', short: '{{date}}, {{time}}' - }; - var $d03d651528c41c13a935389aaf457a5e$export$default = { - date: $601bcbb57db8e79c76c0c0045fe97d0e$export$default({ - formats: $d03d651528c41c13a935389aaf457a5e$var$dateFormats, - defaultWidth: 'full' +}; +var $c97d8185919fa02d$var$formatLong = { + date: $9ae2382f7157e841$export$2e2bcd8739ae039({ + formats: $c97d8185919fa02d$var$dateFormats, + defaultWidth: 'full' }), - time: $601bcbb57db8e79c76c0c0045fe97d0e$export$default({ - formats: $d03d651528c41c13a935389aaf457a5e$var$timeFormats, - defaultWidth: 'full' + time: $9ae2382f7157e841$export$2e2bcd8739ae039({ + formats: $c97d8185919fa02d$var$timeFormats, + defaultWidth: 'full' }), - dateTime: $601bcbb57db8e79c76c0c0045fe97d0e$export$default({ - formats: $d03d651528c41c13a935389aaf457a5e$var$dateTimeFormats, - defaultWidth: 'full' + dateTime: $9ae2382f7157e841$export$2e2bcd8739ae039({ + formats: $c97d8185919fa02d$var$dateTimeFormats, + defaultWidth: 'full' }) - }; - var $64b9b8ef8e7f61cef206fda76895899b$var$formatRelativeLocale = { +}; +var $c97d8185919fa02d$export$2e2bcd8739ae039 = $c97d8185919fa02d$var$formatLong; + + +var $0526b88958b192d6$var$formatRelativeLocale = { lastWeek: "'last' eeee 'at' p", yesterday: "'yesterday at' p", today: "'today at' p", tomorrow: "'tomorrow at' p", nextWeek: "eeee 'at' p", other: 'P' - }; - function $64b9b8ef8e7f61cef206fda76895899b$export$default(token, _date, _baseDate, _options) { - return $64b9b8ef8e7f61cef206fda76895899b$var$formatRelativeLocale[token]; - } - function $063a8fe6186d2e1f790f2c7201b4cc7c$export$default(args) { - return function (dirtyIndex, dirtyOptions) { - var options = dirtyOptions || ({}); - var context = options.context ? String(options.context) : 'standalone'; - var valuesArray; - if (context === 'formatting' && args.formattingValues) { - var defaultWidth = args.defaultFormattingWidth || args.defaultWidth; - var width = options.width ? String(options.width) : defaultWidth; - valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth]; - } else { - var _defaultWidth = args.defaultWidth; - var _width = options.width ? String(options.width) : args.defaultWidth; - valuesArray = args.values[_width] || args.values[_defaultWidth]; - } - var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; - return valuesArray[index]; +}; +function $0526b88958b192d6$export$2e2bcd8739ae039(token, _date, _baseDate, _options) { + return $0526b88958b192d6$var$formatRelativeLocale[token]; +} + + +function $d1f924bc50f2b2f5$export$2e2bcd8739ae039(args) { + return function(dirtyIndex, dirtyOptions) { + var options = dirtyOptions || { + }; + var context = options.context ? String(options.context) : 'standalone'; + var valuesArray; + if (context === 'formatting' && args.formattingValues) { + var defaultWidth = args.defaultFormattingWidth || args.defaultWidth; + var width = options.width ? String(options.width) : defaultWidth; + valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth]; + } else { + var _defaultWidth = args.defaultWidth; + var _width = options.width ? String(options.width) : args.defaultWidth; + valuesArray = args.values[_width] || args.values[_defaultWidth]; + } + var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; + return valuesArray[index]; }; - } - var $edb16548602ab1d797ec3d23d7087a5f$var$eraValues = { - narrow: ['B', 'A'], - abbreviated: ['BC', 'AD'], - wide: ['Before Christ', 'Anno Domini'] - }; - var $edb16548602ab1d797ec3d23d7087a5f$var$quarterValues = { - narrow: ['1', '2', '3', '4'], - abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'], - wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] - }; - var $edb16548602ab1d797ec3d23d7087a5f$var$monthValues = { - narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], - abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] - }; - var $edb16548602ab1d797ec3d23d7087a5f$var$dayValues = { - narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], - short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], - abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], - wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] - }; - var $edb16548602ab1d797ec3d23d7087a5f$var$dayPeriodValues = { +} + + +var $2466c6ff78161864$var$eraValues = { + narrow: [ + 'B', + 'A' + ], + abbreviated: [ + 'BC', + 'AD' + ], + wide: [ + 'Before Christ', + 'Anno Domini' + ] +}; +var $2466c6ff78161864$var$quarterValues = { + narrow: [ + '1', + '2', + '3', + '4' + ], + abbreviated: [ + 'Q1', + 'Q2', + 'Q3', + 'Q4' + ], + wide: [ + '1st quarter', + '2nd quarter', + '3rd quarter', + '4th quarter' + ] // Note: in English, the names of days of the week and months are capitalized. +}; +var $2466c6ff78161864$var$monthValues = { + narrow: [ + 'J', + 'F', + 'M', + 'A', + 'M', + 'J', + 'J', + 'A', + 'S', + 'O', + 'N', + 'D' + ], + abbreviated: [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec' + ], + wide: [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' + ] +}; +var $2466c6ff78161864$var$dayValues = { + narrow: [ + 'S', + 'M', + 'T', + 'W', + 'T', + 'F', + 'S' + ], + short: [ + 'Su', + 'Mo', + 'Tu', + 'We', + 'Th', + 'Fr', + 'Sa' + ], + abbreviated: [ + 'Sun', + 'Mon', + 'Tue', + 'Wed', + 'Thu', + 'Fri', + 'Sat' + ], + wide: [ + 'Sunday', + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday' + ] +}; +var $2466c6ff78161864$var$dayPeriodValues = { narrow: { - am: 'a', - pm: 'p', - midnight: 'mi', - noon: 'n', - morning: 'morning', - afternoon: 'afternoon', - evening: 'evening', - night: 'night' + am: 'a', + pm: 'p', + midnight: 'mi', + noon: 'n', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' }, abbreviated: { - am: 'AM', - pm: 'PM', - midnight: 'midnight', - noon: 'noon', - morning: 'morning', - afternoon: 'afternoon', - evening: 'evening', - night: 'night' + am: 'AM', + pm: 'PM', + midnight: 'midnight', + noon: 'noon', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' }, wide: { - am: 'a.m.', - pm: 'p.m.', - midnight: 'midnight', - noon: 'noon', - morning: 'morning', - afternoon: 'afternoon', - evening: 'evening', - night: 'night' + am: 'a.m.', + pm: 'p.m.', + midnight: 'midnight', + noon: 'noon', + morning: 'morning', + afternoon: 'afternoon', + evening: 'evening', + night: 'night' } - }; - var $edb16548602ab1d797ec3d23d7087a5f$var$formattingDayPeriodValues = { +}; +var $2466c6ff78161864$var$formattingDayPeriodValues = { narrow: { - am: 'a', - pm: 'p', - midnight: 'mi', - noon: 'n', - morning: 'in the morning', - afternoon: 'in the afternoon', - evening: 'in the evening', - night: 'at night' + am: 'a', + pm: 'p', + midnight: 'mi', + noon: 'n', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' }, abbreviated: { - am: 'AM', - pm: 'PM', - midnight: 'midnight', - noon: 'noon', - morning: 'in the morning', - afternoon: 'in the afternoon', - evening: 'in the evening', - night: 'at night' + am: 'AM', + pm: 'PM', + midnight: 'midnight', + noon: 'noon', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' }, wide: { - am: 'a.m.', - pm: 'p.m.', - midnight: 'midnight', - noon: 'noon', - morning: 'in the morning', - afternoon: 'in the afternoon', - evening: 'in the evening', - night: 'at night' + am: 'a.m.', + pm: 'p.m.', + midnight: 'midnight', + noon: 'noon', + morning: 'in the morning', + afternoon: 'in the afternoon', + evening: 'in the evening', + night: 'at night' } - }; - function $edb16548602ab1d797ec3d23d7087a5f$var$ordinalNumber(dirtyNumber, _dirtyOptions) { - var number = Number(dirtyNumber); - // If ordinal numbers depend on context, for example, +}; +function $2466c6ff78161864$var$ordinalNumber(dirtyNumber, _dirtyOptions) { + var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example, // if they are different for different grammatical genders, // use `options.unit`: - // - // var options = dirtyOptions || {} - // var unit = String(options.unit) - // + // + // var options = dirtyOptions || {} + // var unit = String(options.unit) + // // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear', // 'day', 'hour', 'minute', 'second' var rem100 = number % 100; - if (rem100 > 20 || rem100 < 10) { - switch (rem100 % 10) { + if (rem100 > 20 || rem100 < 10) switch(rem100 % 10){ case 1: - return number + 'st'; + return number + 'st'; case 2: - return number + 'nd'; + return number + 'nd'; case 3: - return number + 'rd'; - } + return number + 'rd'; } return number + 'th'; - } - var $edb16548602ab1d797ec3d23d7087a5f$export$default = { - ordinalNumber: $edb16548602ab1d797ec3d23d7087a5f$var$ordinalNumber, - era: $063a8fe6186d2e1f790f2c7201b4cc7c$export$default({ - values: $edb16548602ab1d797ec3d23d7087a5f$var$eraValues, - defaultWidth: 'wide' +} +var $2466c6ff78161864$var$localize = { + ordinalNumber: $2466c6ff78161864$var$ordinalNumber, + era: $d1f924bc50f2b2f5$export$2e2bcd8739ae039({ + values: $2466c6ff78161864$var$eraValues, + defaultWidth: 'wide' }), - quarter: $063a8fe6186d2e1f790f2c7201b4cc7c$export$default({ - values: $edb16548602ab1d797ec3d23d7087a5f$var$quarterValues, - defaultWidth: 'wide', - argumentCallback: function (quarter) { - return Number(quarter) - 1; - } + quarter: $d1f924bc50f2b2f5$export$2e2bcd8739ae039({ + values: $2466c6ff78161864$var$quarterValues, + defaultWidth: 'wide', + argumentCallback: function(quarter) { + return Number(quarter) - 1; + } }), - month: $063a8fe6186d2e1f790f2c7201b4cc7c$export$default({ - values: $edb16548602ab1d797ec3d23d7087a5f$var$monthValues, - defaultWidth: 'wide' + month: $d1f924bc50f2b2f5$export$2e2bcd8739ae039({ + values: $2466c6ff78161864$var$monthValues, + defaultWidth: 'wide' }), - day: $063a8fe6186d2e1f790f2c7201b4cc7c$export$default({ - values: $edb16548602ab1d797ec3d23d7087a5f$var$dayValues, - defaultWidth: 'wide' + day: $d1f924bc50f2b2f5$export$2e2bcd8739ae039({ + values: $2466c6ff78161864$var$dayValues, + defaultWidth: 'wide' }), - dayPeriod: $063a8fe6186d2e1f790f2c7201b4cc7c$export$default({ - values: $edb16548602ab1d797ec3d23d7087a5f$var$dayPeriodValues, - defaultWidth: 'wide', - formattingValues: $edb16548602ab1d797ec3d23d7087a5f$var$formattingDayPeriodValues, - defaultFormattingWidth: 'wide' + dayPeriod: $d1f924bc50f2b2f5$export$2e2bcd8739ae039({ + values: $2466c6ff78161864$var$dayPeriodValues, + defaultWidth: 'wide', + formattingValues: $2466c6ff78161864$var$formattingDayPeriodValues, + defaultFormattingWidth: 'wide' }) - }; - function $04898f84f553404b5ec92df2543959d4$export$default(args) { - return function (dirtyString, dirtyOptions) { - var string = String(dirtyString); - var options = dirtyOptions || ({}); - var matchResult = string.match(args.matchPattern); - if (!matchResult) { - return null; - } - var matchedString = matchResult[0]; - var parseResult = string.match(args.parsePattern); - if (!parseResult) { - return null; - } - var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0]; - value = options.valueCallback ? options.valueCallback(value) : value; - return { - value: value, - rest: string.slice(matchedString.length) - }; +}; +var $2466c6ff78161864$export$2e2bcd8739ae039 = $2466c6ff78161864$var$localize; + + +function $c372d697f4a6bf78$export$2e2bcd8739ae039(args) { + return function(dirtyString, dirtyOptions) { + var string = String(dirtyString); + var options = dirtyOptions || { + }; + var matchResult = string.match(args.matchPattern); + if (!matchResult) return null; + var matchedString = matchResult[0]; + var parseResult = string.match(args.parsePattern); + if (!parseResult) return null; + var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0]; + value = options.valueCallback ? options.valueCallback(value) : value; + return { + value: value, + rest: string.slice(matchedString.length) + }; }; - } - function $c27f9966a203ec3e38f2c4484638744c$export$default(args) { - return function (dirtyString, dirtyOptions) { - var string = String(dirtyString); - var options = dirtyOptions || ({}); - var width = options.width; - var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth]; - var matchResult = string.match(matchPattern); - if (!matchResult) { - return null; - } - var matchedString = matchResult[0]; - var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth]; - var value; - if (Object.prototype.toString.call(parsePatterns) === '[object Array]') { - value = $c27f9966a203ec3e38f2c4484638744c$var$findIndex(parsePatterns, function (pattern) { - return pattern.test(matchedString); +} + + +function $853f33f57cdbeba9$export$2e2bcd8739ae039(args) { + return function(dirtyString, dirtyOptions) { + var string = String(dirtyString); + var options = dirtyOptions || { + }; + var width = options.width; + var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth]; + var matchResult = string.match(matchPattern); + if (!matchResult) return null; + var matchedString = matchResult[0]; + var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth]; + var value; + if (Object.prototype.toString.call(parsePatterns) === '[object Array]') value = $853f33f57cdbeba9$var$findIndex(parsePatterns, function(pattern) { + return pattern.test(matchedString); }); - } else { - value = $c27f9966a203ec3e38f2c4484638744c$var$findKey(parsePatterns, function (pattern) { - return pattern.test(matchedString); + else value = $853f33f57cdbeba9$var$findKey(parsePatterns, function(pattern) { + return pattern.test(matchedString); }); - } - value = args.valueCallback ? args.valueCallback(value) : value; - value = options.valueCallback ? options.valueCallback(value) : value; - return { - value: value, - rest: string.slice(matchedString.length) - }; + value = args.valueCallback ? args.valueCallback(value) : value; + value = options.valueCallback ? options.valueCallback(value) : value; + return { + value: value, + rest: string.slice(matchedString.length) + }; }; - } - function $c27f9966a203ec3e38f2c4484638744c$var$findKey(object, predicate) { - for (var key in object) { - if (object.hasOwnProperty(key) && predicate(object[key])) { - return key; - } +} +function $853f33f57cdbeba9$var$findKey(object, predicate) { + for(var key in object){ + if (object.hasOwnProperty(key) && predicate(object[key])) return key; } - } - function $c27f9966a203ec3e38f2c4484638744c$var$findIndex(array, predicate) { - for (var key = 0; key < array.length; key++) { - if (predicate(array[key])) { - return key; - } +} +function $853f33f57cdbeba9$var$findIndex(array, predicate) { + for(var key = 0; key < array.length; key++){ + if (predicate(array[key])) return key; } - } - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseOrdinalNumberPattern = /\d+/i; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchEraPatterns = { +} + + +var $877f5795b2ed9cb4$var$matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; +var $877f5795b2ed9cb4$var$parseOrdinalNumberPattern = /\d+/i; +var $877f5795b2ed9cb4$var$matchEraPatterns = { narrow: /^(b|a)/i, abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, wide: /^(before christ|before common era|anno domini|common era)/i - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseEraPatterns = { - any: [/^b/i, /^(a|c)/i] - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchQuarterPatterns = { +}; +var $877f5795b2ed9cb4$var$parseEraPatterns = { + any: [ + /^b/i, + /^(a|c)/i + ] +}; +var $877f5795b2ed9cb4$var$matchQuarterPatterns = { narrow: /^[1234]/i, abbreviated: /^q[1234]/i, wide: /^[1234](th|st|nd|rd)? quarter/i - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseQuarterPatterns = { - any: [/1/i, /2/i, /3/i, /4/i] - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchMonthPatterns = { +}; +var $877f5795b2ed9cb4$var$parseQuarterPatterns = { + any: [ + /1/i, + /2/i, + /3/i, + /4/i + ] +}; +var $877f5795b2ed9cb4$var$matchMonthPatterns = { narrow: /^[jfmasond]/i, abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseMonthPatterns = { - narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i], - any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i] - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchDayPatterns = { +}; +var $877f5795b2ed9cb4$var$parseMonthPatterns = { + narrow: [ + /^j/i, + /^f/i, + /^m/i, + /^a/i, + /^m/i, + /^j/i, + /^j/i, + /^a/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i + ], + any: [ + /^ja/i, + /^f/i, + /^mar/i, + /^ap/i, + /^may/i, + /^jun/i, + /^jul/i, + /^au/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i + ] +}; +var $877f5795b2ed9cb4$var$matchDayPatterns = { narrow: /^[smtwf]/i, short: /^(su|mo|tu|we|th|fr|sa)/i, abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseDayPatterns = { - narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], - any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchDayPeriodPatterns = { +}; +var $877f5795b2ed9cb4$var$parseDayPatterns = { + narrow: [ + /^s/i, + /^m/i, + /^t/i, + /^w/i, + /^t/i, + /^f/i, + /^s/i + ], + any: [ + /^su/i, + /^m/i, + /^tu/i, + /^w/i, + /^th/i, + /^f/i, + /^sa/i + ] +}; +var $877f5795b2ed9cb4$var$matchDayPeriodPatterns = { narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseDayPeriodPatterns = { +}; +var $877f5795b2ed9cb4$var$parseDayPeriodPatterns = { any: { - am: /^a/i, - pm: /^p/i, - midnight: /^mi/i, - noon: /^no/i, - morning: /morning/i, - afternoon: /afternoon/i, - evening: /evening/i, - night: /night/i + am: /^a/i, + pm: /^p/i, + midnight: /^mi/i, + noon: /^no/i, + morning: /morning/i, + afternoon: /afternoon/i, + evening: /evening/i, + night: /night/i } - }; - var $efa6ce01b3c72c03ca04fedd15b0b1dc$export$default = { - ordinalNumber: $04898f84f553404b5ec92df2543959d4$export$default({ - matchPattern: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchOrdinalNumberPattern, - parsePattern: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseOrdinalNumberPattern, - valueCallback: function (value) { - return parseInt(value, 10); - } +}; +var $877f5795b2ed9cb4$var$match = { + ordinalNumber: $c372d697f4a6bf78$export$2e2bcd8739ae039({ + matchPattern: $877f5795b2ed9cb4$var$matchOrdinalNumberPattern, + parsePattern: $877f5795b2ed9cb4$var$parseOrdinalNumberPattern, + valueCallback: function(value) { + return parseInt(value, 10); + } }), - era: $c27f9966a203ec3e38f2c4484638744c$export$default({ - matchPatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchEraPatterns, - defaultMatchWidth: 'wide', - parsePatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseEraPatterns, - defaultParseWidth: 'any' + era: $853f33f57cdbeba9$export$2e2bcd8739ae039({ + matchPatterns: $877f5795b2ed9cb4$var$matchEraPatterns, + defaultMatchWidth: 'wide', + parsePatterns: $877f5795b2ed9cb4$var$parseEraPatterns, + defaultParseWidth: 'any' }), - quarter: $c27f9966a203ec3e38f2c4484638744c$export$default({ - matchPatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchQuarterPatterns, - defaultMatchWidth: 'wide', - parsePatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseQuarterPatterns, - defaultParseWidth: 'any', - valueCallback: function (index) { - return index + 1; - } + quarter: $853f33f57cdbeba9$export$2e2bcd8739ae039({ + matchPatterns: $877f5795b2ed9cb4$var$matchQuarterPatterns, + defaultMatchWidth: 'wide', + parsePatterns: $877f5795b2ed9cb4$var$parseQuarterPatterns, + defaultParseWidth: 'any', + valueCallback: function(index) { + return index + 1; + } }), - month: $c27f9966a203ec3e38f2c4484638744c$export$default({ - matchPatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchMonthPatterns, - defaultMatchWidth: 'wide', - parsePatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseMonthPatterns, - defaultParseWidth: 'any' + month: $853f33f57cdbeba9$export$2e2bcd8739ae039({ + matchPatterns: $877f5795b2ed9cb4$var$matchMonthPatterns, + defaultMatchWidth: 'wide', + parsePatterns: $877f5795b2ed9cb4$var$parseMonthPatterns, + defaultParseWidth: 'any' }), - day: $c27f9966a203ec3e38f2c4484638744c$export$default({ - matchPatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchDayPatterns, - defaultMatchWidth: 'wide', - parsePatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseDayPatterns, - defaultParseWidth: 'any' + day: $853f33f57cdbeba9$export$2e2bcd8739ae039({ + matchPatterns: $877f5795b2ed9cb4$var$matchDayPatterns, + defaultMatchWidth: 'wide', + parsePatterns: $877f5795b2ed9cb4$var$parseDayPatterns, + defaultParseWidth: 'any' }), - dayPeriod: $c27f9966a203ec3e38f2c4484638744c$export$default({ - matchPatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$matchDayPeriodPatterns, - defaultMatchWidth: 'any', - parsePatterns: $efa6ce01b3c72c03ca04fedd15b0b1dc$var$parseDayPeriodPatterns, - defaultParseWidth: 'any' + dayPeriod: $853f33f57cdbeba9$export$2e2bcd8739ae039({ + matchPatterns: $877f5795b2ed9cb4$var$matchDayPeriodPatterns, + defaultMatchWidth: 'any', + parsePatterns: $877f5795b2ed9cb4$var$parseDayPeriodPatterns, + defaultParseWidth: 'any' }) - }; - /** - * @type {Locale} - * @category Locales - * @summary English locale (United States). - * @language English - * @iso-639-2 eng - * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp} - * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss} - */ - var $807b1f3a9a2de2b79a9bb1f7f1dd4c42$export$default = { +}; +var $877f5795b2ed9cb4$export$2e2bcd8739ae039 = $877f5795b2ed9cb4$var$match; + + +/** + * @type {Locale} + * @category Locales + * @summary English locale (United States). + * @language English + * @iso-639-2 eng + * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp} + * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss} + */ var $436ec39a217422b7$var$locale = { code: 'en-US', - formatDistance: $af5ae195c918de448c5161b2fb827963$export$default, - formatLong: $d03d651528c41c13a935389aaf457a5e$export$default, - formatRelative: $64b9b8ef8e7f61cef206fda76895899b$export$default, - localize: $edb16548602ab1d797ec3d23d7087a5f$export$default, - match: $efa6ce01b3c72c03ca04fedd15b0b1dc$export$default, + formatDistance: $7086ba38aadd3849$export$2e2bcd8739ae039, + formatLong: $c97d8185919fa02d$export$2e2bcd8739ae039, + formatRelative: $0526b88958b192d6$export$2e2bcd8739ae039, + localize: $2466c6ff78161864$export$2e2bcd8739ae039, + match: $877f5795b2ed9cb4$export$2e2bcd8739ae039, options: { - weekStartsOn: 0, - /*Sunday*/ - firstWeekContainsDate: 1 - } - }; - function $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyNumber) { - if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { - return NaN; + weekStartsOn: 0, + firstWeekContainsDate: 1 } +}; +var $436ec39a217422b7$export$2e2bcd8739ae039 = $436ec39a217422b7$var$locale; + + +function $70df79293cae00de$export$2e2bcd8739ae039(dirtyNumber) { + if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) return NaN; var number = Number(dirtyNumber); - if (isNaN(number)) { - return number; - } + if (isNaN(number)) return number; return number < 0 ? Math.ceil(number) : Math.floor(number); - } - /** - * @name addMilliseconds - * @category Millisecond Helpers - * @summary Add the specified number of milliseconds to the given date. - * - * @description - * Add the specified number of milliseconds to the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the milliseconds added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 750 milliseconds to 10 July 2014 12:45:30.000: - * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) - * //=> Thu Jul 10 2014 12:45:30.750 - */ - function $11f02e6f39aa1698d361463648fba3d0$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var timestamp = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate).getTime(); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); +} + + + + + +function $b214e0d241adf6d7$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var timestamp = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate).getTime(); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); return new Date(timestamp + amount); - } - /** - * @name subMilliseconds - * @category Millisecond Helpers - * @summary Subtract the specified number of milliseconds from the given date. - * - * @description - * Subtract the specified number of milliseconds from the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the milliseconds subtracted - * @throws {TypeError} 2 arguments required - * - * @example - * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000: - * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) - * //=> Thu Jul 10 2014 12:45:29.250 - */ - function $fbfb2a8e0aab45b7d81bf45460dfe6e6$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); - return $11f02e6f39aa1698d361463648fba3d0$export$default(dirtyDate, -amount); - } - function $af15729eae81e8788655f6959813fca7$export$default(number, targetLength) { +} + + + +function $09f369bc154a7d4e$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); + return $b214e0d241adf6d7$export$2e2bcd8739ae039(dirtyDate, -amount); +} + + + +function $6fdfe876f242fcf0$export$2e2bcd8739ae039(number, targetLength) { var sign = number < 0 ? '-' : ''; var output = Math.abs(number).toString(); - while (output.length < targetLength) { - output = '0' + output; - } + while(output.length < targetLength)output = '0' + output; return sign + output; - } - /* - * | | Unit | | Unit | - * |-----|--------------------------------|-----|--------------------------------| - * | a | AM, PM | A* | | - * | d | Day of month | D | | - * | h | Hour [1-12] | H | Hour [0-23] | - * | m | Minute | M | Month | - * | s | Second | S | Fraction of second | - * | y | Year (abs) | Y | | - * - * Letters marked by * are not implemented but reserved by Unicode standard. - */ - var $5e5446392772c21c578c945508e44e6b$export$default = { +} + + +/* + * | | Unit | | Unit | + * |-----|--------------------------------|-----|--------------------------------| + * | a | AM, PM | A* | | + * | d | Day of month | D | | + * | h | Hour [1-12] | H | Hour [0-23] | + * | m | Minute | M | Month | + * | s | Second | S | Fraction of second | + * | y | Year (abs) | Y | | + * + * Letters marked by * are not implemented but reserved by Unicode standard. + */ var $7182a21931ede399$var$formatters = { // Year - y: function (date, token) { - // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens - // | Year | y | yy | yyy | yyyy | yyyyy | - // |----------|-------|----|-------|-------|-------| - // | AD 1 | 1 | 01 | 001 | 0001 | 00001 | - // | AD 12 | 12 | 12 | 012 | 0012 | 00012 | - // | AD 123 | 123 | 23 | 123 | 0123 | 00123 | - // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | - // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | - var signedYear = date.getUTCFullYear(); - // Returns 1 for 1 BC (which is year 0 in JavaScript) - var year = signedYear > 0 ? signedYear : 1 - signedYear; - return $af15729eae81e8788655f6959813fca7$export$default(token === 'yy' ? year % 100 : year, token.length); + y: function(date, token) { + // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens + // | Year | y | yy | yyy | yyyy | yyyyy | + // |----------|-------|----|-------|-------|-------| + // | AD 1 | 1 | 01 | 001 | 0001 | 00001 | + // | AD 12 | 12 | 12 | 012 | 0012 | 00012 | + // | AD 123 | 123 | 23 | 123 | 0123 | 00123 | + // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 | + // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 | + var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript) + var year = signedYear > 0 ? signedYear : 1 - signedYear; + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(token === 'yy' ? year % 100 : year, token.length); }, // Month - M: function (date, token) { - var month = date.getUTCMonth(); - return token === 'M' ? String(month + 1) : $af15729eae81e8788655f6959813fca7$export$default(month + 1, 2); + M: function(date, token) { + var month = date.getUTCMonth(); + return token === 'M' ? String(month + 1) : $6fdfe876f242fcf0$export$2e2bcd8739ae039(month + 1, 2); }, // Day of the month - d: function (date, token) { - return $af15729eae81e8788655f6959813fca7$export$default(date.getUTCDate(), token.length); + d: function(date, token) { + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(date.getUTCDate(), token.length); }, // AM or PM - a: function (date, token) { - var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am'; - switch (token) { - case 'a': - case 'aa': - return dayPeriodEnumValue.toUpperCase(); - case 'aaa': - return dayPeriodEnumValue; - case 'aaaaa': - return dayPeriodEnumValue[0]; - case 'aaaa': - default: - return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.'; - } + a: function(date, token) { + var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am'; + switch(token){ + case 'a': + case 'aa': + return dayPeriodEnumValue.toUpperCase(); + case 'aaa': + return dayPeriodEnumValue; + case 'aaaaa': + return dayPeriodEnumValue[0]; + case 'aaaa': + default: + return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.'; + } }, // Hour [1-12] - h: function (date, token) { - return $af15729eae81e8788655f6959813fca7$export$default(date.getUTCHours() % 12 || 12, token.length); + h: function(date, token) { + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(date.getUTCHours() % 12 || 12, token.length); }, // Hour [0-23] - H: function (date, token) { - return $af15729eae81e8788655f6959813fca7$export$default(date.getUTCHours(), token.length); + H: function(date, token) { + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(date.getUTCHours(), token.length); }, // Minute - m: function (date, token) { - return $af15729eae81e8788655f6959813fca7$export$default(date.getUTCMinutes(), token.length); + m: function(date, token) { + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(date.getUTCMinutes(), token.length); }, // Second - s: function (date, token) { - return $af15729eae81e8788655f6959813fca7$export$default(date.getUTCSeconds(), token.length); + s: function(date, token) { + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(date.getUTCSeconds(), token.length); }, // Fraction of second - S: function (date, token) { - var numberOfDigits = token.length; - var milliseconds = date.getUTCMilliseconds(); - var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3)); - return $af15729eae81e8788655f6959813fca7$export$default(fractionalSeconds, token.length); + S: function(date, token) { + var numberOfDigits = token.length; + var milliseconds = date.getUTCMilliseconds(); + var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3)); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(fractionalSeconds, token.length); } - }; - var $9d113a4ed556945096e6c9063beac0c8$var$MILLISECONDS_IN_DAY = 86400000; - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $9d113a4ed556945096e6c9063beac0c8$export$default(dirtyDate) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); +}; +var $7182a21931ede399$export$2e2bcd8739ae039 = $7182a21931ede399$var$formatters; + + + + +var $b0d3dd691f5f7194$var$MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented. +function $b0d3dd691f5f7194$export$2e2bcd8739ae039(dirtyDate) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); var timestamp = date.getTime(); date.setUTCMonth(0, 1); date.setUTCHours(0, 0, 0, 0); var startOfYearTimestamp = date.getTime(); var difference = timestamp - startOfYearTimestamp; - return Math.floor(difference / $9d113a4ed556945096e6c9063beac0c8$var$MILLISECONDS_IN_DAY) + 1; - } - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $ae30d016311b28f7594240ac1880d7c7$export$default(dirtyDate) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); + return Math.floor(difference / $b0d3dd691f5f7194$var$MILLISECONDS_IN_DAY) + 1; +} + + + + + +function $c997942f4278a40b$export$2e2bcd8739ae039(dirtyDate) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); var weekStartsOn = 1; - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); var day = date.getUTCDay(); var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; - } - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $02185343cade05e104d91834e6aee75f$export$default(dirtyDate) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); +} + + + + + +function $67c0a83ed5adeffa$export$2e2bcd8739ae039(dirtyDate) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); var year = date.getUTCFullYear(); var fourthOfJanuaryOfNextYear = new Date(0); fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4); fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0); - var startOfNextYear = $ae30d016311b28f7594240ac1880d7c7$export$default(fourthOfJanuaryOfNextYear); + var startOfNextYear = $c997942f4278a40b$export$2e2bcd8739ae039(fourthOfJanuaryOfNextYear); var fourthOfJanuaryOfThisYear = new Date(0); fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4); fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0); - var startOfThisYear = $ae30d016311b28f7594240ac1880d7c7$export$default(fourthOfJanuaryOfThisYear); - if (date.getTime() >= startOfNextYear.getTime()) { - return year + 1; - } else if (date.getTime() >= startOfThisYear.getTime()) { - return year; - } else { - return year - 1; - } - } - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $bd71cbfd3eab3e839f70061a9822618c$export$default(dirtyDate) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var year = $02185343cade05e104d91834e6aee75f$export$default(dirtyDate); + var startOfThisYear = $c997942f4278a40b$export$2e2bcd8739ae039(fourthOfJanuaryOfThisYear); + if (date.getTime() >= startOfNextYear.getTime()) return year + 1; + else if (date.getTime() >= startOfThisYear.getTime()) return year; + else return year - 1; +} + + + + +function $b8c2fa8dd98c48fc$export$2e2bcd8739ae039(dirtyDate) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var year = $67c0a83ed5adeffa$export$2e2bcd8739ae039(dirtyDate); var fourthOfJanuary = new Date(0); fourthOfJanuary.setUTCFullYear(year, 0, 4); fourthOfJanuary.setUTCHours(0, 0, 0, 0); - var date = $ae30d016311b28f7594240ac1880d7c7$export$default(fourthOfJanuary); + var date = $c997942f4278a40b$export$2e2bcd8739ae039(fourthOfJanuary); return date; - } - var $8186dd95d178a425c6133b92a5f54d5e$var$MILLISECONDS_IN_WEEK = 604800000; - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $8186dd95d178a425c6133b92a5f54d5e$export$default(dirtyDate) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); - var diff = $ae30d016311b28f7594240ac1880d7c7$export$default(date).getTime() - $bd71cbfd3eab3e839f70061a9822618c$export$default(date).getTime(); - // Round the number of days to the nearest integer +} + + + +var $c8b12db2f9ec2fd9$var$MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented. +function $c8b12db2f9ec2fd9$export$2e2bcd8739ae039(dirtyDate) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); + var diff = $c997942f4278a40b$export$2e2bcd8739ae039(date).getTime() - $b8c2fa8dd98c48fc$export$2e2bcd8739ae039(date).getTime(); // Round the number of days to the nearest integer // because the number of milliseconds in a week is not constant // (e.g. it's different in the week of the daylight saving time clock shift) - return Math.round(diff / $8186dd95d178a425c6133b92a5f54d5e$var$MILLISECONDS_IN_WEEK) + 1; - } - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $d499db06b95a8b8b1b5b5a19e6c3f53e$export$default(dirtyDate, dirtyOptions) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var options = dirtyOptions || ({}); + return Math.round(diff / $c8b12db2f9ec2fd9$var$MILLISECONDS_IN_WEEK) + 1; +} + + + + + + + +function $ba817ba95b32d048$export$2e2bcd8739ae039(dirtyDate, dirtyOptions) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var options = dirtyOptions || { + }; var locale = options.locale; var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn; - var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : $76d20ec5245457ba4d0be92324e15d11$export$default(localeWeekStartsOn); - var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : $76d20ec5245457ba4d0be92324e15d11$export$default(options.weekStartsOn); - // Test if weekStartsOn is between 0 and 6 _and_ is not NaN - if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { - throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); - } - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); + var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : $70df79293cae00de$export$2e2bcd8739ae039(localeWeekStartsOn); + var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : $70df79293cae00de$export$2e2bcd8739ae039(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN + if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); var day = date.getUTCDay(); var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn; date.setUTCDate(date.getUTCDate() - diff); date.setUTCHours(0, 0, 0, 0); return date; - } - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $1d4201c4fa38e76b60e0ff4c488f61f5$export$default(dirtyDate, dirtyOptions) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate, dirtyOptions); +} + + + + + + + +function $d54680960a25f7f1$export$2e2bcd8739ae039(dirtyDate, dirtyOptions) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate, dirtyOptions); var year = date.getUTCFullYear(); - var options = dirtyOptions || ({}); + var options = dirtyOptions || { + }; var locale = options.locale; var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate; - var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : $76d20ec5245457ba4d0be92324e15d11$export$default(localeFirstWeekContainsDate); - var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : $76d20ec5245457ba4d0be92324e15d11$export$default(options.firstWeekContainsDate); - // Test if weekStartsOn is between 1 and 7 _and_ is not NaN - if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { - throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); - } + var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : $70df79293cae00de$export$2e2bcd8739ae039(localeFirstWeekContainsDate); + var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : $70df79293cae00de$export$2e2bcd8739ae039(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN + if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); var firstWeekOfNextYear = new Date(0); firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate); firstWeekOfNextYear.setUTCHours(0, 0, 0, 0); - var startOfNextYear = $d499db06b95a8b8b1b5b5a19e6c3f53e$export$default(firstWeekOfNextYear, dirtyOptions); + var startOfNextYear = $ba817ba95b32d048$export$2e2bcd8739ae039(firstWeekOfNextYear, dirtyOptions); var firstWeekOfThisYear = new Date(0); firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate); firstWeekOfThisYear.setUTCHours(0, 0, 0, 0); - var startOfThisYear = $d499db06b95a8b8b1b5b5a19e6c3f53e$export$default(firstWeekOfThisYear, dirtyOptions); - if (date.getTime() >= startOfNextYear.getTime()) { - return year + 1; - } else if (date.getTime() >= startOfThisYear.getTime()) { - return year; - } else { - return year - 1; - } - } - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $8037b6dc9b18d8aedae5fea2d33d0790$export$default(dirtyDate, dirtyOptions) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var options = dirtyOptions || ({}); + var startOfThisYear = $ba817ba95b32d048$export$2e2bcd8739ae039(firstWeekOfThisYear, dirtyOptions); + if (date.getTime() >= startOfNextYear.getTime()) return year + 1; + else if (date.getTime() >= startOfThisYear.getTime()) return year; + else return year - 1; +} + + + + +function $72f3fc966dcdcd0b$export$2e2bcd8739ae039(dirtyDate, dirtyOptions) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var options = dirtyOptions || { + }; var locale = options.locale; var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate; - var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : $76d20ec5245457ba4d0be92324e15d11$export$default(localeFirstWeekContainsDate); - var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : $76d20ec5245457ba4d0be92324e15d11$export$default(options.firstWeekContainsDate); - var year = $1d4201c4fa38e76b60e0ff4c488f61f5$export$default(dirtyDate, dirtyOptions); + var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : $70df79293cae00de$export$2e2bcd8739ae039(localeFirstWeekContainsDate); + var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : $70df79293cae00de$export$2e2bcd8739ae039(options.firstWeekContainsDate); + var year = $d54680960a25f7f1$export$2e2bcd8739ae039(dirtyDate, dirtyOptions); var firstWeek = new Date(0); firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate); firstWeek.setUTCHours(0, 0, 0, 0); - var date = $d499db06b95a8b8b1b5b5a19e6c3f53e$export$default(firstWeek, dirtyOptions); + var date = $ba817ba95b32d048$export$2e2bcd8739ae039(firstWeek, dirtyOptions); return date; - } - var $3827dcceb609d6bcd5512e2cd225051e$var$MILLISECONDS_IN_WEEK = 604800000; - // This function will be a part of public API when UTC function will be implemented. - // See issue: https://github.com/date-fns/date-fns/issues/376 - function $3827dcceb609d6bcd5512e2cd225051e$export$default(dirtyDate, options) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); - var diff = $d499db06b95a8b8b1b5b5a19e6c3f53e$export$default(date, options).getTime() - $8037b6dc9b18d8aedae5fea2d33d0790$export$default(date, options).getTime(); - // Round the number of days to the nearest integer +} + + + +var $f7f1e8140211954c$var$MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented. +function $f7f1e8140211954c$export$2e2bcd8739ae039(dirtyDate, options) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); + var diff = $ba817ba95b32d048$export$2e2bcd8739ae039(date, options).getTime() - $72f3fc966dcdcd0b$export$2e2bcd8739ae039(date, options).getTime(); // Round the number of days to the nearest integer // because the number of milliseconds in a week is not constant // (e.g. it's different in the week of the daylight saving time clock shift) - return Math.round(diff / $3827dcceb609d6bcd5512e2cd225051e$var$MILLISECONDS_IN_WEEK) + 1; - } - var $729bdfda59a079a96ef4d2b07705f531$var$dayPeriodEnum = { + return Math.round(diff / $f7f1e8140211954c$var$MILLISECONDS_IN_WEEK) + 1; +} + + + + +var $7439c3200c97d4cf$var$dayPeriodEnum = { am: 'am', pm: 'pm', midnight: 'midnight', @@ -893,66 +995,62 @@ afternoon: 'afternoon', evening: 'evening', night: 'night' - }; - var $729bdfda59a079a96ef4d2b07705f531$export$default = { +}; +var $7439c3200c97d4cf$var$formatters = { // Era - G: function (date, token, localize) { - var era = date.getUTCFullYear() > 0 ? 1 : 0; - switch (token) { - case 'G': - case 'GG': - case 'GGG': - return localize.era(era, { - width: 'abbreviated' - }); - case 'GGGGG': - return localize.era(era, { - width: 'narrow' - }); - case 'GGGG': - default: - return localize.era(era, { - width: 'wide' - }); - } + G: function(date, token, localize) { + var era = date.getUTCFullYear() > 0 ? 1 : 0; + switch(token){ + // AD, BC + case 'G': + case 'GG': + case 'GGG': + return localize.era(era, { + width: 'abbreviated' + }); + // A, B + case 'GGGGG': + return localize.era(era, { + width: 'narrow' + }); + // Anno Domini, Before Christ + case 'GGGG': + default: + return localize.era(era, { + width: 'wide' + }); + } }, // Year - y: function (date, token, localize) { - // Ordinal number - if (token === 'yo') { - var signedYear = date.getUTCFullYear(); - // Returns 1 for 1 BC (which is year 0 in JavaScript) - var year = signedYear > 0 ? signedYear : 1 - signedYear; - return localize.ordinalNumber(year, { - unit: 'year' - }); - } - return $5e5446392772c21c578c945508e44e6b$export$default.y(date, token); + y: function(date, token, localize) { + // Ordinal number + if (token === 'yo') { + var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript) + var year = signedYear > 0 ? signedYear : 1 - signedYear; + return localize.ordinalNumber(year, { + unit: 'year' + }); + } + return $7182a21931ede399$export$2e2bcd8739ae039.y(date, token); }, // Local week-numbering year - Y: function (date, token, localize, options) { - var signedWeekYear = $1d4201c4fa38e76b60e0ff4c488f61f5$export$default(date, options); - // Returns 1 for 1 BC (which is year 0 in JavaScript) - var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; - // Two digit year - if (token === 'YY') { - var twoDigitYear = weekYear % 100; - return $af15729eae81e8788655f6959813fca7$export$default(twoDigitYear, 2); - } - // Ordinal number - if (token === 'Yo') { - return localize.ordinalNumber(weekYear, { - unit: 'year' + Y: function(date, token, localize, options) { + var signedWeekYear = $d54680960a25f7f1$export$2e2bcd8739ae039(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript) + var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year + if (token === 'YY') { + var twoDigitYear = weekYear % 100; + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(twoDigitYear, 2); + } // Ordinal number + if (token === 'Yo') return localize.ordinalNumber(weekYear, { + unit: 'year' }); - } - // Padding - return $af15729eae81e8788655f6959813fca7$export$default(weekYear, token.length); + // Padding + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(weekYear, token.length); }, // ISO week-numbering year - R: function (date, token) { - var isoWeekYear = $02185343cade05e104d91834e6aee75f$export$default(date); - // Padding - return $af15729eae81e8788655f6959813fca7$export$default(isoWeekYear, token.length); + R: function(date, token) { + var isoWeekYear = $67c0a83ed5adeffa$export$2e2bcd8739ae039(date); // Padding + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(isoWeekYear, token.length); }, // Extended year. This is a single number designating the year of this calendar system. // The main difference between `y` and `u` localizers are B.C. years: @@ -963,1349 +1061,1078 @@ // | BC 2 | 2 | -1 | // Also `yy` always returns the last two digits of a year, // while `uu` pads single digit years to 2 characters and returns other years unchanged. - u: function (date, token) { - var year = date.getUTCFullYear(); - return $af15729eae81e8788655f6959813fca7$export$default(year, token.length); + u: function(date, token) { + var year = date.getUTCFullYear(); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(year, token.length); }, // Quarter - Q: function (date, token, localize) { - var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); - switch (token) { - case 'Q': - return String(quarter); - case 'QQ': - return $af15729eae81e8788655f6959813fca7$export$default(quarter, 2); - case 'Qo': - return localize.ordinalNumber(quarter, { - unit: 'quarter' - }); - case 'QQQ': - return localize.quarter(quarter, { - width: 'abbreviated', - context: 'formatting' - }); - case 'QQQQQ': - return localize.quarter(quarter, { - width: 'narrow', - context: 'formatting' - }); - case 'QQQQ': - default: - return localize.quarter(quarter, { - width: 'wide', - context: 'formatting' - }); - } + Q: function(date, token, localize) { + var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); + switch(token){ + // 1, 2, 3, 4 + case 'Q': + return String(quarter); + // 01, 02, 03, 04 + case 'QQ': + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(quarter, 2); + // 1st, 2nd, 3rd, 4th + case 'Qo': + return localize.ordinalNumber(quarter, { + unit: 'quarter' + }); + // Q1, Q2, Q3, Q4 + case 'QQQ': + return localize.quarter(quarter, { + width: 'abbreviated', + context: 'formatting' + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case 'QQQQQ': + return localize.quarter(quarter, { + width: 'narrow', + context: 'formatting' + }); + // 1st quarter, 2nd quarter, ... + case 'QQQQ': + default: + return localize.quarter(quarter, { + width: 'wide', + context: 'formatting' + }); + } }, // Stand-alone quarter - q: function (date, token, localize) { - var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); - switch (token) { - case 'q': - return String(quarter); - case 'qq': - return $af15729eae81e8788655f6959813fca7$export$default(quarter, 2); - case 'qo': - return localize.ordinalNumber(quarter, { - unit: 'quarter' - }); - case 'qqq': - return localize.quarter(quarter, { - width: 'abbreviated', - context: 'standalone' - }); - case 'qqqqq': - return localize.quarter(quarter, { - width: 'narrow', - context: 'standalone' - }); - case 'qqqq': - default: - return localize.quarter(quarter, { - width: 'wide', - context: 'standalone' - }); - } + q: function(date, token, localize) { + var quarter = Math.ceil((date.getUTCMonth() + 1) / 3); + switch(token){ + // 1, 2, 3, 4 + case 'q': + return String(quarter); + // 01, 02, 03, 04 + case 'qq': + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(quarter, 2); + // 1st, 2nd, 3rd, 4th + case 'qo': + return localize.ordinalNumber(quarter, { + unit: 'quarter' + }); + // Q1, Q2, Q3, Q4 + case 'qqq': + return localize.quarter(quarter, { + width: 'abbreviated', + context: 'standalone' + }); + // 1, 2, 3, 4 (narrow quarter; could be not numerical) + case 'qqqqq': + return localize.quarter(quarter, { + width: 'narrow', + context: 'standalone' + }); + // 1st quarter, 2nd quarter, ... + case 'qqqq': + default: + return localize.quarter(quarter, { + width: 'wide', + context: 'standalone' + }); + } }, // Month - M: function (date, token, localize) { - var month = date.getUTCMonth(); - switch (token) { - case 'M': - case 'MM': - return $5e5446392772c21c578c945508e44e6b$export$default.M(date, token); - case 'Mo': - return localize.ordinalNumber(month + 1, { - unit: 'month' - }); - case 'MMM': - return localize.month(month, { - width: 'abbreviated', - context: 'formatting' - }); - case 'MMMMM': - return localize.month(month, { - width: 'narrow', - context: 'formatting' - }); - case 'MMMM': - default: - return localize.month(month, { - width: 'wide', - context: 'formatting' - }); - } + M: function(date, token, localize) { + var month = date.getUTCMonth(); + switch(token){ + case 'M': + case 'MM': + return $7182a21931ede399$export$2e2bcd8739ae039.M(date, token); + // 1st, 2nd, ..., 12th + case 'Mo': + return localize.ordinalNumber(month + 1, { + unit: 'month' + }); + // Jan, Feb, ..., Dec + case 'MMM': + return localize.month(month, { + width: 'abbreviated', + context: 'formatting' + }); + // J, F, ..., D + case 'MMMMM': + return localize.month(month, { + width: 'narrow', + context: 'formatting' + }); + // January, February, ..., December + case 'MMMM': + default: + return localize.month(month, { + width: 'wide', + context: 'formatting' + }); + } }, // Stand-alone month - L: function (date, token, localize) { - var month = date.getUTCMonth(); - switch (token) { - case 'L': - return String(month + 1); - case 'LL': - return $af15729eae81e8788655f6959813fca7$export$default(month + 1, 2); - case 'Lo': - return localize.ordinalNumber(month + 1, { - unit: 'month' - }); - case 'LLL': - return localize.month(month, { - width: 'abbreviated', - context: 'standalone' - }); - case 'LLLLL': - return localize.month(month, { - width: 'narrow', - context: 'standalone' - }); - case 'LLLL': - default: - return localize.month(month, { - width: 'wide', - context: 'standalone' - }); - } + L: function(date, token, localize) { + var month = date.getUTCMonth(); + switch(token){ + // 1, 2, ..., 12 + case 'L': + return String(month + 1); + // 01, 02, ..., 12 + case 'LL': + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(month + 1, 2); + // 1st, 2nd, ..., 12th + case 'Lo': + return localize.ordinalNumber(month + 1, { + unit: 'month' + }); + // Jan, Feb, ..., Dec + case 'LLL': + return localize.month(month, { + width: 'abbreviated', + context: 'standalone' + }); + // J, F, ..., D + case 'LLLLL': + return localize.month(month, { + width: 'narrow', + context: 'standalone' + }); + // January, February, ..., December + case 'LLLL': + default: + return localize.month(month, { + width: 'wide', + context: 'standalone' + }); + } }, // Local week of year - w: function (date, token, localize, options) { - var week = $3827dcceb609d6bcd5512e2cd225051e$export$default(date, options); - if (token === 'wo') { - return localize.ordinalNumber(week, { - unit: 'week' + w: function(date, token, localize, options) { + var week = $f7f1e8140211954c$export$2e2bcd8739ae039(date, options); + if (token === 'wo') return localize.ordinalNumber(week, { + unit: 'week' }); - } - return $af15729eae81e8788655f6959813fca7$export$default(week, token.length); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(week, token.length); }, // ISO week of year - I: function (date, token, localize) { - var isoWeek = $8186dd95d178a425c6133b92a5f54d5e$export$default(date); - if (token === 'Io') { - return localize.ordinalNumber(isoWeek, { - unit: 'week' + I: function(date, token, localize) { + var isoWeek = $c8b12db2f9ec2fd9$export$2e2bcd8739ae039(date); + if (token === 'Io') return localize.ordinalNumber(isoWeek, { + unit: 'week' }); - } - return $af15729eae81e8788655f6959813fca7$export$default(isoWeek, token.length); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(isoWeek, token.length); }, // Day of the month - d: function (date, token, localize) { - if (token === 'do') { - return localize.ordinalNumber(date.getUTCDate(), { - unit: 'date' + d: function(date, token, localize) { + if (token === 'do') return localize.ordinalNumber(date.getUTCDate(), { + unit: 'date' }); - } - return $5e5446392772c21c578c945508e44e6b$export$default.d(date, token); + return $7182a21931ede399$export$2e2bcd8739ae039.d(date, token); }, // Day of year - D: function (date, token, localize) { - var dayOfYear = $9d113a4ed556945096e6c9063beac0c8$export$default(date); - if (token === 'Do') { - return localize.ordinalNumber(dayOfYear, { - unit: 'dayOfYear' + D: function(date, token, localize) { + var dayOfYear = $b0d3dd691f5f7194$export$2e2bcd8739ae039(date); + if (token === 'Do') return localize.ordinalNumber(dayOfYear, { + unit: 'dayOfYear' }); - } - return $af15729eae81e8788655f6959813fca7$export$default(dayOfYear, token.length); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(dayOfYear, token.length); }, // Day of week - E: function (date, token, localize) { - var dayOfWeek = date.getUTCDay(); - switch (token) { - case 'E': - case 'EE': - case 'EEE': - return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'formatting' - }); - case 'EEEEE': - return localize.day(dayOfWeek, { - width: 'narrow', - context: 'formatting' - }); - case 'EEEEEE': - return localize.day(dayOfWeek, { - width: 'short', - context: 'formatting' - }); - case 'EEEE': - default: - return localize.day(dayOfWeek, { - width: 'wide', - context: 'formatting' - }); - } + E: function(date, token, localize) { + var dayOfWeek = date.getUTCDay(); + switch(token){ + // Tue + case 'E': + case 'EE': + case 'EEE': + return localize.day(dayOfWeek, { + width: 'abbreviated', + context: 'formatting' + }); + // T + case 'EEEEE': + return localize.day(dayOfWeek, { + width: 'narrow', + context: 'formatting' + }); + // Tu + case 'EEEEEE': + return localize.day(dayOfWeek, { + width: 'short', + context: 'formatting' + }); + // Tuesday + case 'EEEE': + default: + return localize.day(dayOfWeek, { + width: 'wide', + context: 'formatting' + }); + } }, // Local day of week - e: function (date, token, localize, options) { - var dayOfWeek = date.getUTCDay(); - var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token) { - case 'e': - return String(localDayOfWeek); - case 'ee': - return $af15729eae81e8788655f6959813fca7$export$default(localDayOfWeek, 2); - case 'eo': - return localize.ordinalNumber(localDayOfWeek, { - unit: 'day' - }); - case 'eee': - return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'formatting' - }); - case 'eeeee': - return localize.day(dayOfWeek, { - width: 'narrow', - context: 'formatting' - }); - case 'eeeeee': - return localize.day(dayOfWeek, { - width: 'short', - context: 'formatting' - }); - case 'eeee': - default: - return localize.day(dayOfWeek, { - width: 'wide', - context: 'formatting' - }); - } + e: function(date, token, localize, options) { + var dayOfWeek = date.getUTCDay(); + var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; + switch(token){ + // Numerical value (Nth day of week with current locale or weekStartsOn) + case 'e': + return String(localDayOfWeek); + // Padded numerical value + case 'ee': + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(localDayOfWeek, 2); + // 1st, 2nd, ..., 7th + case 'eo': + return localize.ordinalNumber(localDayOfWeek, { + unit: 'day' + }); + case 'eee': + return localize.day(dayOfWeek, { + width: 'abbreviated', + context: 'formatting' + }); + // T + case 'eeeee': + return localize.day(dayOfWeek, { + width: 'narrow', + context: 'formatting' + }); + // Tu + case 'eeeeee': + return localize.day(dayOfWeek, { + width: 'short', + context: 'formatting' + }); + // Tuesday + case 'eeee': + default: + return localize.day(dayOfWeek, { + width: 'wide', + context: 'formatting' + }); + } }, // Stand-alone local day of week - c: function (date, token, localize, options) { - var dayOfWeek = date.getUTCDay(); - var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; - switch (token) { - case 'c': - return String(localDayOfWeek); - case 'cc': - return $af15729eae81e8788655f6959813fca7$export$default(localDayOfWeek, token.length); - case 'co': - return localize.ordinalNumber(localDayOfWeek, { - unit: 'day' - }); - case 'ccc': - return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'standalone' - }); - case 'ccccc': - return localize.day(dayOfWeek, { - width: 'narrow', - context: 'standalone' - }); - case 'cccccc': - return localize.day(dayOfWeek, { - width: 'short', - context: 'standalone' - }); - case 'cccc': - default: - return localize.day(dayOfWeek, { - width: 'wide', - context: 'standalone' - }); - } + c: function(date, token, localize, options) { + var dayOfWeek = date.getUTCDay(); + var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; + switch(token){ + // Numerical value (same as in `e`) + case 'c': + return String(localDayOfWeek); + // Padded numerical value + case 'cc': + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(localDayOfWeek, token.length); + // 1st, 2nd, ..., 7th + case 'co': + return localize.ordinalNumber(localDayOfWeek, { + unit: 'day' + }); + case 'ccc': + return localize.day(dayOfWeek, { + width: 'abbreviated', + context: 'standalone' + }); + // T + case 'ccccc': + return localize.day(dayOfWeek, { + width: 'narrow', + context: 'standalone' + }); + // Tu + case 'cccccc': + return localize.day(dayOfWeek, { + width: 'short', + context: 'standalone' + }); + // Tuesday + case 'cccc': + default: + return localize.day(dayOfWeek, { + width: 'wide', + context: 'standalone' + }); + } }, // ISO day of week - i: function (date, token, localize) { - var dayOfWeek = date.getUTCDay(); - var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; - switch (token) { - case 'i': - return String(isoDayOfWeek); - case 'ii': - return $af15729eae81e8788655f6959813fca7$export$default(isoDayOfWeek, token.length); - case 'io': - return localize.ordinalNumber(isoDayOfWeek, { - unit: 'day' - }); - case 'iii': - return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'formatting' - }); - case 'iiiii': - return localize.day(dayOfWeek, { - width: 'narrow', - context: 'formatting' - }); - case 'iiiiii': - return localize.day(dayOfWeek, { - width: 'short', - context: 'formatting' - }); - case 'iiii': - default: - return localize.day(dayOfWeek, { - width: 'wide', - context: 'formatting' - }); - } + i: function(date, token, localize) { + var dayOfWeek = date.getUTCDay(); + var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; + switch(token){ + // 2 + case 'i': + return String(isoDayOfWeek); + // 02 + case 'ii': + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(isoDayOfWeek, token.length); + // 2nd + case 'io': + return localize.ordinalNumber(isoDayOfWeek, { + unit: 'day' + }); + // Tue + case 'iii': + return localize.day(dayOfWeek, { + width: 'abbreviated', + context: 'formatting' + }); + // T + case 'iiiii': + return localize.day(dayOfWeek, { + width: 'narrow', + context: 'formatting' + }); + // Tu + case 'iiiiii': + return localize.day(dayOfWeek, { + width: 'short', + context: 'formatting' + }); + // Tuesday + case 'iiii': + default: + return localize.day(dayOfWeek, { + width: 'wide', + context: 'formatting' + }); + } }, // AM or PM - a: function (date, token, localize) { - var hours = date.getUTCHours(); - var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; - switch (token) { - case 'a': - case 'aa': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting' - }); - case 'aaa': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting' - }).toLowerCase(); - case 'aaaaa': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'narrow', - context: 'formatting' - }); - case 'aaaa': - default: - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'wide', - context: 'formatting' - }); - } + a: function(date, token, localize) { + var hours = date.getUTCHours(); + var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; + switch(token){ + case 'a': + case 'aa': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'abbreviated', + context: 'formatting' + }); + case 'aaa': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'abbreviated', + context: 'formatting' + }).toLowerCase(); + case 'aaaaa': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'narrow', + context: 'formatting' + }); + case 'aaaa': + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'wide', + context: 'formatting' + }); + } }, // AM, PM, midnight, noon - b: function (date, token, localize) { - var hours = date.getUTCHours(); - var dayPeriodEnumValue; - if (hours === 12) { - dayPeriodEnumValue = $729bdfda59a079a96ef4d2b07705f531$var$dayPeriodEnum.noon; - } else if (hours === 0) { - dayPeriodEnumValue = $729bdfda59a079a96ef4d2b07705f531$var$dayPeriodEnum.midnight; - } else { - dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; - } - switch (token) { - case 'b': - case 'bb': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting' - }); - case 'bbb': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting' - }).toLowerCase(); - case 'bbbbb': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'narrow', - context: 'formatting' - }); - case 'bbbb': - default: - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'wide', - context: 'formatting' - }); - } + b: function(date, token, localize) { + var hours = date.getUTCHours(); + var dayPeriodEnumValue; + if (hours === 12) dayPeriodEnumValue = $7439c3200c97d4cf$var$dayPeriodEnum.noon; + else if (hours === 0) dayPeriodEnumValue = $7439c3200c97d4cf$var$dayPeriodEnum.midnight; + else dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; + switch(token){ + case 'b': + case 'bb': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'abbreviated', + context: 'formatting' + }); + case 'bbb': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'abbreviated', + context: 'formatting' + }).toLowerCase(); + case 'bbbbb': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'narrow', + context: 'formatting' + }); + case 'bbbb': + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'wide', + context: 'formatting' + }); + } }, // in the morning, in the afternoon, in the evening, at night - B: function (date, token, localize) { - var hours = date.getUTCHours(); - var dayPeriodEnumValue; - if (hours >= 17) { - dayPeriodEnumValue = $729bdfda59a079a96ef4d2b07705f531$var$dayPeriodEnum.evening; - } else if (hours >= 12) { - dayPeriodEnumValue = $729bdfda59a079a96ef4d2b07705f531$var$dayPeriodEnum.afternoon; - } else if (hours >= 4) { - dayPeriodEnumValue = $729bdfda59a079a96ef4d2b07705f531$var$dayPeriodEnum.morning; - } else { - dayPeriodEnumValue = $729bdfda59a079a96ef4d2b07705f531$var$dayPeriodEnum.night; - } - switch (token) { - case 'B': - case 'BB': - case 'BBB': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting' - }); - case 'BBBBB': - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'narrow', - context: 'formatting' - }); - case 'BBBB': - default: - return localize.dayPeriod(dayPeriodEnumValue, { - width: 'wide', - context: 'formatting' - }); - } + B: function(date, token, localize) { + var hours = date.getUTCHours(); + var dayPeriodEnumValue; + if (hours >= 17) dayPeriodEnumValue = $7439c3200c97d4cf$var$dayPeriodEnum.evening; + else if (hours >= 12) dayPeriodEnumValue = $7439c3200c97d4cf$var$dayPeriodEnum.afternoon; + else if (hours >= 4) dayPeriodEnumValue = $7439c3200c97d4cf$var$dayPeriodEnum.morning; + else dayPeriodEnumValue = $7439c3200c97d4cf$var$dayPeriodEnum.night; + switch(token){ + case 'B': + case 'BB': + case 'BBB': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'abbreviated', + context: 'formatting' + }); + case 'BBBBB': + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'narrow', + context: 'formatting' + }); + case 'BBBB': + default: + return localize.dayPeriod(dayPeriodEnumValue, { + width: 'wide', + context: 'formatting' + }); + } }, // Hour [1-12] - h: function (date, token, localize) { - if (token === 'ho') { - var hours = date.getUTCHours() % 12; - if (hours === 0) hours = 12; - return localize.ordinalNumber(hours, { - unit: 'hour' - }); - } - return $5e5446392772c21c578c945508e44e6b$export$default.h(date, token); + h: function(date, token, localize) { + if (token === 'ho') { + var hours = date.getUTCHours() % 12; + if (hours === 0) hours = 12; + return localize.ordinalNumber(hours, { + unit: 'hour' + }); + } + return $7182a21931ede399$export$2e2bcd8739ae039.h(date, token); }, // Hour [0-23] - H: function (date, token, localize) { - if (token === 'Ho') { - return localize.ordinalNumber(date.getUTCHours(), { - unit: 'hour' + H: function(date, token, localize) { + if (token === 'Ho') return localize.ordinalNumber(date.getUTCHours(), { + unit: 'hour' }); - } - return $5e5446392772c21c578c945508e44e6b$export$default.H(date, token); + return $7182a21931ede399$export$2e2bcd8739ae039.H(date, token); }, // Hour [0-11] - K: function (date, token, localize) { - var hours = date.getUTCHours() % 12; - if (token === 'Ko') { - return localize.ordinalNumber(hours, { - unit: 'hour' + K: function(date, token, localize) { + var hours = date.getUTCHours() % 12; + if (token === 'Ko') return localize.ordinalNumber(hours, { + unit: 'hour' }); - } - return $af15729eae81e8788655f6959813fca7$export$default(hours, token.length); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(hours, token.length); }, // Hour [1-24] - k: function (date, token, localize) { - var hours = date.getUTCHours(); - if (hours === 0) hours = 24; - if (token === 'ko') { - return localize.ordinalNumber(hours, { - unit: 'hour' + k: function(date, token, localize) { + var hours = date.getUTCHours(); + if (hours === 0) hours = 24; + if (token === 'ko') return localize.ordinalNumber(hours, { + unit: 'hour' }); - } - return $af15729eae81e8788655f6959813fca7$export$default(hours, token.length); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(hours, token.length); }, // Minute - m: function (date, token, localize) { - if (token === 'mo') { - return localize.ordinalNumber(date.getUTCMinutes(), { - unit: 'minute' + m: function(date, token, localize) { + if (token === 'mo') return localize.ordinalNumber(date.getUTCMinutes(), { + unit: 'minute' }); - } - return $5e5446392772c21c578c945508e44e6b$export$default.m(date, token); + return $7182a21931ede399$export$2e2bcd8739ae039.m(date, token); }, // Second - s: function (date, token, localize) { - if (token === 'so') { - return localize.ordinalNumber(date.getUTCSeconds(), { - unit: 'second' + s: function(date, token, localize) { + if (token === 'so') return localize.ordinalNumber(date.getUTCSeconds(), { + unit: 'second' }); - } - return $5e5446392772c21c578c945508e44e6b$export$default.s(date, token); + return $7182a21931ede399$export$2e2bcd8739ae039.s(date, token); }, // Fraction of second - S: function (date, token) { - return $5e5446392772c21c578c945508e44e6b$export$default.S(date, token); + S: function(date, token) { + return $7182a21931ede399$export$2e2bcd8739ae039.S(date, token); }, // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) - X: function (date, token, _localize, options) { - var originalDate = options._originalDate || date; - var timezoneOffset = originalDate.getTimezoneOffset(); - if (timezoneOffset === 0) { - return 'Z'; - } - switch (token) { - case 'X': - return $729bdfda59a079a96ef4d2b07705f531$var$formatTimezoneWithOptionalMinutes(timezoneOffset); - case 'XXXX': - case 'XX': - // Hours and minutes without `:` delimiter - return $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(timezoneOffset); - case 'XXXXX': - case 'XXX': - default: - return $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(timezoneOffset, ':'); - } + X: function(date, token, _localize, options) { + var originalDate = options._originalDate || date; + var timezoneOffset = originalDate.getTimezoneOffset(); + if (timezoneOffset === 0) return 'Z'; + switch(token){ + // Hours and optional minutes + case 'X': + return $7439c3200c97d4cf$var$formatTimezoneWithOptionalMinutes(timezoneOffset); + // Hours, minutes and optional seconds without `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `XX` + case 'XXXX': + case 'XX': + // Hours and minutes without `:` delimiter + return $7439c3200c97d4cf$var$formatTimezone(timezoneOffset); + // Hours, minutes and optional seconds with `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `XXX` + case 'XXXXX': + case 'XXX': + default: + return $7439c3200c97d4cf$var$formatTimezone(timezoneOffset, ':'); + } }, // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) - x: function (date, token, _localize, options) { - var originalDate = options._originalDate || date; - var timezoneOffset = originalDate.getTimezoneOffset(); - switch (token) { - case 'x': - return $729bdfda59a079a96ef4d2b07705f531$var$formatTimezoneWithOptionalMinutes(timezoneOffset); - case 'xxxx': - case 'xx': - // Hours and minutes without `:` delimiter - return $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(timezoneOffset); - case 'xxxxx': - case 'xxx': - default: - return $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(timezoneOffset, ':'); - } + x: function(date, token, _localize, options) { + var originalDate = options._originalDate || date; + var timezoneOffset = originalDate.getTimezoneOffset(); + switch(token){ + // Hours and optional minutes + case 'x': + return $7439c3200c97d4cf$var$formatTimezoneWithOptionalMinutes(timezoneOffset); + // Hours, minutes and optional seconds without `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `xx` + case 'xxxx': + case 'xx': + // Hours and minutes without `:` delimiter + return $7439c3200c97d4cf$var$formatTimezone(timezoneOffset); + // Hours, minutes and optional seconds with `:` delimiter + // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets + // so this token always has the same output as `xxx` + case 'xxxxx': + case 'xxx': + default: + return $7439c3200c97d4cf$var$formatTimezone(timezoneOffset, ':'); + } }, // Timezone (GMT) - O: function (date, token, _localize, options) { - var originalDate = options._originalDate || date; - var timezoneOffset = originalDate.getTimezoneOffset(); - switch (token) { - case 'O': - case 'OO': - case 'OOO': - return 'GMT' + $729bdfda59a079a96ef4d2b07705f531$var$formatTimezoneShort(timezoneOffset, ':'); - case 'OOOO': - default: - return 'GMT' + $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(timezoneOffset, ':'); - } + O: function(date, token, _localize, options) { + var originalDate = options._originalDate || date; + var timezoneOffset = originalDate.getTimezoneOffset(); + switch(token){ + // Short + case 'O': + case 'OO': + case 'OOO': + return 'GMT' + $7439c3200c97d4cf$var$formatTimezoneShort(timezoneOffset, ':'); + // Long + case 'OOOO': + default: + return 'GMT' + $7439c3200c97d4cf$var$formatTimezone(timezoneOffset, ':'); + } }, // Timezone (specific non-location) - z: function (date, token, _localize, options) { - var originalDate = options._originalDate || date; - var timezoneOffset = originalDate.getTimezoneOffset(); - switch (token) { - case 'z': - case 'zz': - case 'zzz': - return 'GMT' + $729bdfda59a079a96ef4d2b07705f531$var$formatTimezoneShort(timezoneOffset, ':'); - case 'zzzz': - default: - return 'GMT' + $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(timezoneOffset, ':'); - } + z: function(date, token, _localize, options) { + var originalDate = options._originalDate || date; + var timezoneOffset = originalDate.getTimezoneOffset(); + switch(token){ + // Short + case 'z': + case 'zz': + case 'zzz': + return 'GMT' + $7439c3200c97d4cf$var$formatTimezoneShort(timezoneOffset, ':'); + // Long + case 'zzzz': + default: + return 'GMT' + $7439c3200c97d4cf$var$formatTimezone(timezoneOffset, ':'); + } }, // Seconds timestamp - t: function (date, token, _localize, options) { - var originalDate = options._originalDate || date; - var timestamp = Math.floor(originalDate.getTime() / 1000); - return $af15729eae81e8788655f6959813fca7$export$default(timestamp, token.length); + t: function(date, token, _localize, options) { + var originalDate = options._originalDate || date; + var timestamp = Math.floor(originalDate.getTime() / 1000); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(timestamp, token.length); }, // Milliseconds timestamp - T: function (date, token, _localize, options) { - var originalDate = options._originalDate || date; - var timestamp = originalDate.getTime(); - return $af15729eae81e8788655f6959813fca7$export$default(timestamp, token.length); + T: function(date, token, _localize, options) { + var originalDate = options._originalDate || date; + var timestamp = originalDate.getTime(); + return $6fdfe876f242fcf0$export$2e2bcd8739ae039(timestamp, token.length); } - }; - function $729bdfda59a079a96ef4d2b07705f531$var$formatTimezoneShort(offset, dirtyDelimiter) { +}; +function $7439c3200c97d4cf$var$formatTimezoneShort(offset, dirtyDelimiter) { var sign = offset > 0 ? '-' : '+'; var absOffset = Math.abs(offset); var hours = Math.floor(absOffset / 60); var minutes = absOffset % 60; - if (minutes === 0) { - return sign + String(hours); - } + if (minutes === 0) return sign + String(hours); var delimiter = dirtyDelimiter || ''; - return sign + String(hours) + delimiter + $af15729eae81e8788655f6959813fca7$export$default(minutes, 2); - } - function $729bdfda59a079a96ef4d2b07705f531$var$formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) { + return sign + String(hours) + delimiter + $6fdfe876f242fcf0$export$2e2bcd8739ae039(minutes, 2); +} +function $7439c3200c97d4cf$var$formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) { if (offset % 60 === 0) { - var sign = offset > 0 ? '-' : '+'; - return sign + $af15729eae81e8788655f6959813fca7$export$default(Math.abs(offset) / 60, 2); + var sign = offset > 0 ? '-' : '+'; + return sign + $6fdfe876f242fcf0$export$2e2bcd8739ae039(Math.abs(offset) / 60, 2); } - return $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(offset, dirtyDelimiter); - } - function $729bdfda59a079a96ef4d2b07705f531$var$formatTimezone(offset, dirtyDelimiter) { + return $7439c3200c97d4cf$var$formatTimezone(offset, dirtyDelimiter); +} +function $7439c3200c97d4cf$var$formatTimezone(offset, dirtyDelimiter) { var delimiter = dirtyDelimiter || ''; var sign = offset > 0 ? '-' : '+'; var absOffset = Math.abs(offset); - var hours = $af15729eae81e8788655f6959813fca7$export$default(Math.floor(absOffset / 60), 2); - var minutes = $af15729eae81e8788655f6959813fca7$export$default(absOffset % 60, 2); + var hours = $6fdfe876f242fcf0$export$2e2bcd8739ae039(Math.floor(absOffset / 60), 2); + var minutes = $6fdfe876f242fcf0$export$2e2bcd8739ae039(absOffset % 60, 2); return sign + hours + delimiter + minutes; - } - function $941ceef04b2333e7d6930b3c1a286a9f$var$dateLongFormatter(pattern, formatLong) { - switch (pattern) { - case 'P': - return formatLong.date({ - width: 'short' - }); - case 'PP': - return formatLong.date({ - width: 'medium' - }); - case 'PPP': - return formatLong.date({ - width: 'long' - }); - case 'PPPP': - default: - return formatLong.date({ - width: 'full' - }); +} +var $7439c3200c97d4cf$export$2e2bcd8739ae039 = $7439c3200c97d4cf$var$formatters; + + +function $3eca41ae94948c1b$var$dateLongFormatter(pattern, formatLong) { + switch(pattern){ + case 'P': + return formatLong.date({ + width: 'short' + }); + case 'PP': + return formatLong.date({ + width: 'medium' + }); + case 'PPP': + return formatLong.date({ + width: 'long' + }); + case 'PPPP': + default: + return formatLong.date({ + width: 'full' + }); } - } - function $941ceef04b2333e7d6930b3c1a286a9f$var$timeLongFormatter(pattern, formatLong) { - switch (pattern) { - case 'p': - return formatLong.time({ - width: 'short' - }); - case 'pp': - return formatLong.time({ - width: 'medium' - }); - case 'ppp': - return formatLong.time({ - width: 'long' - }); - case 'pppp': - default: - return formatLong.time({ - width: 'full' - }); +} +function $3eca41ae94948c1b$var$timeLongFormatter(pattern, formatLong) { + switch(pattern){ + case 'p': + return formatLong.time({ + width: 'short' + }); + case 'pp': + return formatLong.time({ + width: 'medium' + }); + case 'ppp': + return formatLong.time({ + width: 'long' + }); + case 'pppp': + default: + return formatLong.time({ + width: 'full' + }); } - } - function $941ceef04b2333e7d6930b3c1a286a9f$var$dateTimeLongFormatter(pattern, formatLong) { +} +function $3eca41ae94948c1b$var$dateTimeLongFormatter(pattern, formatLong) { var matchResult = pattern.match(/(P+)(p+)?/); var datePattern = matchResult[1]; var timePattern = matchResult[2]; - if (!timePattern) { - return $941ceef04b2333e7d6930b3c1a286a9f$var$dateLongFormatter(pattern, formatLong); - } + if (!timePattern) return $3eca41ae94948c1b$var$dateLongFormatter(pattern, formatLong); var dateTimeFormat; - switch (datePattern) { - case 'P': - dateTimeFormat = formatLong.dateTime({ - width: 'short' - }); - break; - case 'PP': - dateTimeFormat = formatLong.dateTime({ - width: 'medium' - }); - break; - case 'PPP': - dateTimeFormat = formatLong.dateTime({ - width: 'long' - }); - break; - case 'PPPP': - default: - dateTimeFormat = formatLong.dateTime({ - width: 'full' - }); - break; + switch(datePattern){ + case 'P': + dateTimeFormat = formatLong.dateTime({ + width: 'short' + }); + break; + case 'PP': + dateTimeFormat = formatLong.dateTime({ + width: 'medium' + }); + break; + case 'PPP': + dateTimeFormat = formatLong.dateTime({ + width: 'long' + }); + break; + case 'PPPP': + default: + dateTimeFormat = formatLong.dateTime({ + width: 'full' + }); + break; } - return dateTimeFormat.replace('{{date}}', $941ceef04b2333e7d6930b3c1a286a9f$var$dateLongFormatter(datePattern, formatLong)).replace('{{time}}', $941ceef04b2333e7d6930b3c1a286a9f$var$timeLongFormatter(timePattern, formatLong)); - } - var $941ceef04b2333e7d6930b3c1a286a9f$export$default = { - p: $941ceef04b2333e7d6930b3c1a286a9f$var$timeLongFormatter, - P: $941ceef04b2333e7d6930b3c1a286a9f$var$dateTimeLongFormatter - }; - /** - * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. - * They usually appear for dates that denote time before the timezones were introduced - * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 - * and GMT+01:00:00 after that date) - * - * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, - * which would lead to incorrect calculations. - * - * This function returns the timezone offset in milliseconds that takes seconds in account. - */ - function $1e5dc0a4c535edd7892d441879eac816$export$default(date) { + return dateTimeFormat.replace('{{date}}', $3eca41ae94948c1b$var$dateLongFormatter(datePattern, formatLong)).replace('{{time}}', $3eca41ae94948c1b$var$timeLongFormatter(timePattern, formatLong)); +} +var $3eca41ae94948c1b$var$longFormatters = { + p: $3eca41ae94948c1b$var$timeLongFormatter, + P: $3eca41ae94948c1b$var$dateTimeLongFormatter +}; +var $3eca41ae94948c1b$export$2e2bcd8739ae039 = $3eca41ae94948c1b$var$longFormatters; + + +function $5c7eb77435f5b299$export$2e2bcd8739ae039(date) { var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); utcDate.setUTCFullYear(date.getFullYear()); return date.getTime() - utcDate.getTime(); - } - var $e0cc849ee462ea4fab19de8f1a3968f0$var$protectedDayOfYearTokens = ['D', 'DD']; - var $e0cc849ee462ea4fab19de8f1a3968f0$var$protectedWeekYearTokens = ['YY', 'YYYY']; - function $e0cc849ee462ea4fab19de8f1a3968f0$export$isProtectedDayOfYearToken(token) { - return $e0cc849ee462ea4fab19de8f1a3968f0$var$protectedDayOfYearTokens.indexOf(token) !== -1; - } - function $e0cc849ee462ea4fab19de8f1a3968f0$export$isProtectedWeekYearToken(token) { - return $e0cc849ee462ea4fab19de8f1a3968f0$var$protectedWeekYearTokens.indexOf(token) !== -1; - } - function $e0cc849ee462ea4fab19de8f1a3968f0$export$throwProtectedError(token, format, input) { - if (token === 'YYYY') { - throw new RangeError(("Use `yyyy` instead of `YYYY` (in `").concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr")); - } else if (token === 'YY') { - throw new RangeError(("Use `yy` instead of `YY` (in `").concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr")); - } else if (token === 'D') { - throw new RangeError(("Use `d` instead of `D` (in `").concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr")); - } else if (token === 'DD') { - throw new RangeError(("Use `dd` instead of `DD` (in `").concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr")); - } - } - // This RegExp consists of three parts separated by `|`: - // - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token - // (one of the certain letters followed by `o`) - // - (\w)\1* matches any sequences of the same letter - // - '' matches two quote characters in a row - // - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), - // except a single quote symbol, which ends the sequence. - // Two quote characters do not end the sequence. - // If there is no matching single quote - // then the sequence will continue until the end of the string. - // - . matches any single character unmatched by previous parts of the RegExps - var $d395262bbac0963dee25c928b5ce5e8e$var$formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; - // This RegExp catches symbols escaped by quotes, and also - // sequences of symbols P, p, and the combinations like `PPPPPPPppppp` - var $d395262bbac0963dee25c928b5ce5e8e$var$longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; - var $d395262bbac0963dee25c928b5ce5e8e$var$escapedStringRegExp = /^'([^]*?)'?$/; - var $d395262bbac0963dee25c928b5ce5e8e$var$doubleQuoteRegExp = /''/g; - var $d395262bbac0963dee25c928b5ce5e8e$var$unescapedLatinCharacterRegExp = /[a-zA-Z]/; - /** - * @name format - * @category Common Helpers - * @summary Format the date. - * - * @description - * Return the formatted date string in the given format. The result may vary by locale. - * - * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries. - * > See: https://git.io/fxCyr - * - * The characters wrapped between two single quotes characters (') are escaped. - * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. - * (see the last example) - * - * Format of the string is based on Unicode Technical Standard #35: - * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table - * with a few additions (see note 7 below the table). - * - * Accepted patterns: - * | Unit | Pattern | Result examples | Notes | - * |---------------------------------|---------|-----------------------------------|-------| - * | Era | G..GGG | AD, BC | | - * | | GGGG | Anno Domini, Before Christ | 2 | - * | | GGGGG | A, B | | - * | Calendar year | y | 44, 1, 1900, 2017 | 5 | - * | | yo | 44th, 1st, 0th, 17th | 5,7 | - * | | yy | 44, 01, 00, 17 | 5 | - * | | yyy | 044, 001, 1900, 2017 | 5 | - * | | yyyy | 0044, 0001, 1900, 2017 | 5 | - * | | yyyyy | ... | 3,5 | - * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 | - * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 | - * | | YY | 44, 01, 00, 17 | 5,8 | - * | | YYY | 044, 001, 1900, 2017 | 5 | - * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 | - * | | YYYYY | ... | 3,5 | - * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 | - * | | RR | -43, 00, 01, 1900, 2017 | 5,7 | - * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 | - * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 | - * | | RRRRR | ... | 3,5,7 | - * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 | - * | | uu | -43, 01, 1900, 2017 | 5 | - * | | uuu | -043, 001, 1900, 2017 | 5 | - * | | uuuu | -0043, 0001, 1900, 2017 | 5 | - * | | uuuuu | ... | 3,5 | - * | Quarter (formatting) | Q | 1, 2, 3, 4 | | - * | | Qo | 1st, 2nd, 3rd, 4th | 7 | - * | | QQ | 01, 02, 03, 04 | | - * | | QQQ | Q1, Q2, Q3, Q4 | | - * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 | - * | | QQQQQ | 1, 2, 3, 4 | 4 | - * | Quarter (stand-alone) | q | 1, 2, 3, 4 | | - * | | qo | 1st, 2nd, 3rd, 4th | 7 | - * | | qq | 01, 02, 03, 04 | | - * | | qqq | Q1, Q2, Q3, Q4 | | - * | | qqqq | 1st quarter, 2nd quarter, ... | 2 | - * | | qqqqq | 1, 2, 3, 4 | 4 | - * | Month (formatting) | M | 1, 2, ..., 12 | | - * | | Mo | 1st, 2nd, ..., 12th | 7 | - * | | MM | 01, 02, ..., 12 | | - * | | MMM | Jan, Feb, ..., Dec | | - * | | MMMM | January, February, ..., December | 2 | - * | | MMMMM | J, F, ..., D | | - * | Month (stand-alone) | L | 1, 2, ..., 12 | | - * | | Lo | 1st, 2nd, ..., 12th | 7 | - * | | LL | 01, 02, ..., 12 | | - * | | LLL | Jan, Feb, ..., Dec | | - * | | LLLL | January, February, ..., December | 2 | - * | | LLLLL | J, F, ..., D | | - * | Local week of year | w | 1, 2, ..., 53 | | - * | | wo | 1st, 2nd, ..., 53th | 7 | - * | | ww | 01, 02, ..., 53 | | - * | ISO week of year | I | 1, 2, ..., 53 | 7 | - * | | Io | 1st, 2nd, ..., 53th | 7 | - * | | II | 01, 02, ..., 53 | 7 | - * | Day of month | d | 1, 2, ..., 31 | | - * | | do | 1st, 2nd, ..., 31st | 7 | - * | | dd | 01, 02, ..., 31 | | - * | Day of year | D | 1, 2, ..., 365, 366 | 9 | - * | | Do | 1st, 2nd, ..., 365th, 366th | 7 | - * | | DD | 01, 02, ..., 365, 366 | 9 | - * | | DDD | 001, 002, ..., 365, 366 | | - * | | DDDD | ... | 3 | - * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | | - * | | EEEE | Monday, Tuesday, ..., Sunday | 2 | - * | | EEEEE | M, T, W, T, F, S, S | | - * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | | - * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 | - * | | io | 1st, 2nd, ..., 7th | 7 | - * | | ii | 01, 02, ..., 07 | 7 | - * | | iii | Mon, Tue, Wed, ..., Sun | 7 | - * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 | - * | | iiiii | M, T, W, T, F, S, S | 7 | - * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 | - * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | | - * | | eo | 2nd, 3rd, ..., 1st | 7 | - * | | ee | 02, 03, ..., 01 | | - * | | eee | Mon, Tue, Wed, ..., Sun | | - * | | eeee | Monday, Tuesday, ..., Sunday | 2 | - * | | eeeee | M, T, W, T, F, S, S | | - * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | | - * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | | - * | | co | 2nd, 3rd, ..., 1st | 7 | - * | | cc | 02, 03, ..., 01 | | - * | | ccc | Mon, Tue, Wed, ..., Sun | | - * | | cccc | Monday, Tuesday, ..., Sunday | 2 | - * | | ccccc | M, T, W, T, F, S, S | | - * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | | - * | AM, PM | a..aa | AM, PM | | - * | | aaa | am, pm | | - * | | aaaa | a.m., p.m. | 2 | - * | | aaaaa | a, p | | - * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | | - * | | bbb | am, pm, noon, midnight | | - * | | bbbb | a.m., p.m., noon, midnight | 2 | - * | | bbbbb | a, p, n, mi | | - * | Flexible day period | B..BBB | at night, in the morning, ... | | - * | | BBBB | at night, in the morning, ... | 2 | - * | | BBBBB | at night, in the morning, ... | | - * | Hour [1-12] | h | 1, 2, ..., 11, 12 | | - * | | ho | 1st, 2nd, ..., 11th, 12th | 7 | - * | | hh | 01, 02, ..., 11, 12 | | - * | Hour [0-23] | H | 0, 1, 2, ..., 23 | | - * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 | - * | | HH | 00, 01, 02, ..., 23 | | - * | Hour [0-11] | K | 1, 2, ..., 11, 0 | | - * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 | - * | | KK | 01, 02, ..., 11, 00 | | - * | Hour [1-24] | k | 24, 1, 2, ..., 23 | | - * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 | - * | | kk | 24, 01, 02, ..., 23 | | - * | Minute | m | 0, 1, ..., 59 | | - * | | mo | 0th, 1st, ..., 59th | 7 | - * | | mm | 00, 01, ..., 59 | | - * | Second | s | 0, 1, ..., 59 | | - * | | so | 0th, 1st, ..., 59th | 7 | - * | | ss | 00, 01, ..., 59 | | - * | Fraction of second | S | 0, 1, ..., 9 | | - * | | SS | 00, 01, ..., 99 | | - * | | SSS | 000, 001, ..., 999 | | - * | | SSSS | ... | 3 | - * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | | - * | | XX | -0800, +0530, Z | | - * | | XXX | -08:00, +05:30, Z | | - * | | XXXX | -0800, +0530, Z, +123456 | 2 | - * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | | - * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | | - * | | xx | -0800, +0530, +0000 | | - * | | xxx | -08:00, +05:30, +00:00 | 2 | - * | | xxxx | -0800, +0530, +0000, +123456 | | - * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | | - * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | | - * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 | - * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 | - * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 | - * | Seconds timestamp | t | 512969520 | 7 | - * | | tt | ... | 3,7 | - * | Milliseconds timestamp | T | 512969520900 | 7 | - * | | TT | ... | 3,7 | - * | Long localized date | P | 04/29/1453 | 7 | - * | | PP | Apr 29, 1453 | 7 | - * | | PPP | April 29th, 1453 | 7 | - * | | PPPP | Friday, April 29th, 1453 | 2,7 | - * | Long localized time | p | 12:00 AM | 7 | - * | | pp | 12:00:00 AM | 7 | - * | | ppp | 12:00:00 AM GMT+2 | 7 | - * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 | - * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 | - * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 | - * | | PPPppp | April 29th, 1453 at ... | 7 | - * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 | - * Notes: - * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale - * are the same as "stand-alone" units, but are different in some languages. - * "Formatting" units are declined according to the rules of the language - * in the context of a date. "Stand-alone" units are always nominative singular: - * - * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'` - * - * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` - * - * 2. Any sequence of the identical letters is a pattern, unless it is escaped by - * the single quote characters (see below). - * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`) - * the output will be the same as default pattern for this unit, usually - * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units - * are marked with "2" in the last column of the table. - * - * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'` - * - * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'` - * - * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'` - * - * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'` - * - * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'` - * - * 3. Some patterns could be unlimited length (such as `yyyyyyyy`). - * The output will be padded with zeros to match the length of the pattern. - * - * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'` - * - * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales. - * These tokens represent the shortest form of the quarter. - * - * 5. The main difference between `y` and `u` patterns are B.C. years: - * - * | Year | `y` | `u` | - * |------|-----|-----| - * | AC 1 | 1 | 1 | - * | BC 1 | 1 | 0 | - * | BC 2 | 2 | -1 | - * - * Also `yy` always returns the last two digits of a year, - * while `uu` pads single digit years to 2 characters and returns other years unchanged: - * - * | Year | `yy` | `uu` | - * |------|------|------| - * | 1 | 01 | 01 | - * | 14 | 14 | 14 | - * | 376 | 76 | 376 | - * | 1453 | 53 | 1453 | - * - * The same difference is true for local and ISO week-numbering years (`Y` and `R`), - * except local week-numbering years are dependent on `options.weekStartsOn` - * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear} - * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}). - * - * 6. Specific non-location timezones are currently unavailable in `date-fns`, - * so right now these tokens fall back to GMT timezones. - * - * 7. These patterns are not in the Unicode Technical Standard #35: - * - `i`: ISO day of week - * - `I`: ISO week of year - * - `R`: ISO week-numbering year - * - `t`: seconds timestamp - * - `T`: milliseconds timestamp - * - `o`: ordinal number modifier - * - `P`: long localized date - * - `p`: long localized time - * - * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. - * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr - * - * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month. - * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * - The second argument is now required for the sake of explicitness. - * - * ```javascript - * // Before v2.0.0 - * format(new Date(2016, 0, 1)) - * - * // v2.0.0 onward - * format(new Date(2016, 0, 1), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx") - * ``` - * - * - New format string API for `format` function - * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table). - * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details. - * - * - Characters are now escaped using single quote symbols (`'`) instead of square brackets. - * - * @param {Date|Number} date - the original date - * @param {String} format - the string of tokens - * @param {Object} [options] - an object with options. - * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale} - * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday) - * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is - * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`; - * see: https://git.io/fxCyr - * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`; - * see: https://git.io/fxCyr - * @returns {String} the formatted date string - * @throws {TypeError} 2 arguments required - * @throws {RangeError} `date` must not be Invalid Date - * @throws {RangeError} `options.locale` must contain `localize` property - * @throws {RangeError} `options.locale` must contain `formatLong` property - * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6 - * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7 - * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr - * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr - * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr - * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr - * @throws {RangeError} format string contains an unescaped latin alphabet character - * - * @example - * // Represent 11 February 2014 in middle-endian format: - * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy') - * //=> '02/11/2014' - * - * @example - * // Represent 2 July 2014 in Esperanto: - * import { eoLocale } from 'date-fns/locale/eo' - * var result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", { - * locale: eoLocale - * }) - * //=> '2-a de julio 2014' - * - * @example - * // Escape string by single quote characters: - * var result = format(new Date(2014, 6, 2, 15), "h 'o''clock'") - * //=> "3 o'clock" - */ - function $d395262bbac0963dee25c928b5ce5e8e$export$default(dirtyDate, dirtyFormatStr, dirtyOptions) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); +} + + +var $679f35d164ce4636$var$protectedDayOfYearTokens = [ + 'D', + 'DD' +]; +var $679f35d164ce4636$var$protectedWeekYearTokens = [ + 'YY', + 'YYYY' +]; +function $679f35d164ce4636$export$c6cc36aa33304772(token) { + return $679f35d164ce4636$var$protectedDayOfYearTokens.indexOf(token) !== -1; +} +function $679f35d164ce4636$export$c6b49d6dceb604a1(token) { + return $679f35d164ce4636$var$protectedWeekYearTokens.indexOf(token) !== -1; +} +function $679f35d164ce4636$export$8073c1ae88f0e727(token, format, input) { + if (token === 'YYYY') throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr")); + else if (token === 'YY') throw new RangeError("Use `yy` instead of `YY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr")); + else if (token === 'D') throw new RangeError("Use `d` instead of `D` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr")); + else if (token === 'DD') throw new RangeError("Use `dd` instead of `DD` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr")); +} + + + + +// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token +// (one of the certain letters followed by `o`) +// - (\w)\1* matches any sequences of the same letter +// - '' matches two quote characters in a row +// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), +// except a single quote symbol, which ends the sequence. +// Two quote characters do not end the sequence. +// If there is no matching single quote +// then the sequence will continue until the end of the string. +// - . matches any single character unmatched by previous parts of the RegExps +var $94db3e879bd42ac5$var$formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also +// sequences of symbols P, p, and the combinations like `PPPPPPPppppp` +var $94db3e879bd42ac5$var$longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g; +var $94db3e879bd42ac5$var$escapedStringRegExp = /^'([^]*?)'?$/; +var $94db3e879bd42ac5$var$doubleQuoteRegExp = /''/g; +var $94db3e879bd42ac5$var$unescapedLatinCharacterRegExp = /[a-zA-Z]/; +function $94db3e879bd42ac5$export$2e2bcd8739ae039(dirtyDate, dirtyFormatStr, dirtyOptions) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); var formatStr = String(dirtyFormatStr); - var options = dirtyOptions || ({}); - var locale = options.locale || $807b1f3a9a2de2b79a9bb1f7f1dd4c42$export$default; + var options = dirtyOptions || { + }; + var locale = options.locale || $436ec39a217422b7$export$2e2bcd8739ae039; var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate; - var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : $76d20ec5245457ba4d0be92324e15d11$export$default(localeFirstWeekContainsDate); - var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : $76d20ec5245457ba4d0be92324e15d11$export$default(options.firstWeekContainsDate); - // Test if weekStartsOn is between 1 and 7 _and_ is not NaN - if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) { - throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); - } + var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : $70df79293cae00de$export$2e2bcd8739ae039(localeFirstWeekContainsDate); + var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : $70df79293cae00de$export$2e2bcd8739ae039(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN + if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively'); var localeWeekStartsOn = locale.options && locale.options.weekStartsOn; - var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : $76d20ec5245457ba4d0be92324e15d11$export$default(localeWeekStartsOn); - var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : $76d20ec5245457ba4d0be92324e15d11$export$default(options.weekStartsOn); - // Test if weekStartsOn is between 0 and 6 _and_ is not NaN - if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) { - throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); - } - if (!locale.localize) { - throw new RangeError('locale must contain localize property'); - } - if (!locale.formatLong) { - throw new RangeError('locale must contain formatLong property'); - } - var originalDate = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); - if (!$9f3abccc6bcce2be062107647201d225$export$default(originalDate)) { - throw new RangeError('Invalid time value'); - } - // Convert the date in system timezone to the same date in UTC+00:00 timezone. + var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : $70df79293cae00de$export$2e2bcd8739ae039(localeWeekStartsOn); + var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : $70df79293cae00de$export$2e2bcd8739ae039(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN + if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively'); + if (!locale.localize) throw new RangeError('locale must contain localize property'); + if (!locale.formatLong) throw new RangeError('locale must contain formatLong property'); + var originalDate = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); + if (!$9dee1d3ade18edf3$export$2e2bcd8739ae039(originalDate)) throw new RangeError('Invalid time value'); + // Convert the date in system timezone to the same date in UTC+00:00 timezone. // This ensures that when UTC functions will be implemented, locales will be compatible with them. // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376 - var timezoneOffset = $1e5dc0a4c535edd7892d441879eac816$export$default(originalDate); - var utcDate = $fbfb2a8e0aab45b7d81bf45460dfe6e6$export$default(originalDate, timezoneOffset); + var timezoneOffset = $5c7eb77435f5b299$export$2e2bcd8739ae039(originalDate); + var utcDate = $09f369bc154a7d4e$export$2e2bcd8739ae039(originalDate, timezoneOffset); var formatterOptions = { - firstWeekContainsDate: firstWeekContainsDate, - weekStartsOn: weekStartsOn, - locale: locale, - _originalDate: originalDate + firstWeekContainsDate: firstWeekContainsDate, + weekStartsOn: weekStartsOn, + locale: locale, + _originalDate: originalDate }; - var result = formatStr.match($d395262bbac0963dee25c928b5ce5e8e$var$longFormattingTokensRegExp).map(function (substring) { - var firstCharacter = substring[0]; - if (firstCharacter === 'p' || firstCharacter === 'P') { - var longFormatter = $941ceef04b2333e7d6930b3c1a286a9f$export$default[firstCharacter]; - return longFormatter(substring, locale.formatLong, formatterOptions); - } - return substring; - }).join('').match($d395262bbac0963dee25c928b5ce5e8e$var$formattingTokensRegExp).map(function (substring) { - // Replace two single quote characters with one single quote character - if (substring === "''") { - return "'"; - } - var firstCharacter = substring[0]; - if (firstCharacter === "'") { - return $d395262bbac0963dee25c928b5ce5e8e$var$cleanEscapedString(substring); - } - var formatter = $729bdfda59a079a96ef4d2b07705f531$export$default[firstCharacter]; - if (formatter) { - if (!options.useAdditionalWeekYearTokens && $e0cc849ee462ea4fab19de8f1a3968f0$export$isProtectedWeekYearToken(substring)) { - $e0cc849ee462ea4fab19de8f1a3968f0$export$throwProtectedError(substring, dirtyFormatStr, dirtyDate); + var result = formatStr.match($94db3e879bd42ac5$var$longFormattingTokensRegExp).map(function(substring) { + var firstCharacter = substring[0]; + if (firstCharacter === 'p' || firstCharacter === 'P') { + var longFormatter = $3eca41ae94948c1b$export$2e2bcd8739ae039[firstCharacter]; + return longFormatter(substring, locale.formatLong, formatterOptions); } - if (!options.useAdditionalDayOfYearTokens && $e0cc849ee462ea4fab19de8f1a3968f0$export$isProtectedDayOfYearToken(substring)) { - $e0cc849ee462ea4fab19de8f1a3968f0$export$throwProtectedError(substring, dirtyFormatStr, dirtyDate); + return substring; + }).join('').match($94db3e879bd42ac5$var$formattingTokensRegExp).map(function(substring) { + // Replace two single quote characters with one single quote character + if (substring === "''") return "'"; + var firstCharacter = substring[0]; + if (firstCharacter === "'") return $94db3e879bd42ac5$var$cleanEscapedString(substring); + var formatter = $7439c3200c97d4cf$export$2e2bcd8739ae039[firstCharacter]; + if (formatter) { + if (!options.useAdditionalWeekYearTokens && $679f35d164ce4636$export$c6b49d6dceb604a1(substring)) $679f35d164ce4636$export$8073c1ae88f0e727(substring, dirtyFormatStr, dirtyDate); + if (!options.useAdditionalDayOfYearTokens && $679f35d164ce4636$export$c6cc36aa33304772(substring)) $679f35d164ce4636$export$8073c1ae88f0e727(substring, dirtyFormatStr, dirtyDate); + return formatter(utcDate, substring, locale.localize, formatterOptions); } - return formatter(utcDate, substring, locale.localize, formatterOptions); - } - if (firstCharacter.match($d395262bbac0963dee25c928b5ce5e8e$var$unescapedLatinCharacterRegExp)) { - throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`'); - } - return substring; + if (firstCharacter.match($94db3e879bd42ac5$var$unescapedLatinCharacterRegExp)) throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`'); + return substring; }).join(''); return result; - } - function $d395262bbac0963dee25c928b5ce5e8e$var$cleanEscapedString(input) { - return input.match($d395262bbac0963dee25c928b5ce5e8e$var$escapedStringRegExp)[1].replace($d395262bbac0963dee25c928b5ce5e8e$var$doubleQuoteRegExp, "'"); - } - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); +} +function $94db3e879bd42ac5$var$cleanEscapedString(input) { + return input.match($94db3e879bd42ac5$var$escapedStringRegExp)[1].replace($94db3e879bd42ac5$var$doubleQuoteRegExp, "'"); +} + + +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); }); - }; - const $a777d6796a2564869cad39f35c35c293$var$translations = { +}; + + +const $bcb3eebcd6da1b00$var$translations = { pl_PL: { - title: 'Dzienne osiągnięcia - prawdopodobni gracze', - warning: 'Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.', - aotd: 'Agresor dnia', - dotd: 'Obrońca dnia', - sotd: 'Pomocnik dnia', - gpotd: 'Mocarstwo dnia', - devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' + title: 'Dzienne osiągnięcia - prawdopodobni gracze', + warning: 'Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.', + aotd: 'Agresor dnia', + dotd: 'Obrońca dnia', + sotd: 'Pomocnik dnia', + gpotd: 'Mocarstwo dnia', + devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' }, en_DK: { - title: 'Daily achievements - probable players', - warning: 'Remember! This script shows scores, not defeated units.', - aotd: 'Attacker of the day', - dotd: 'Defender of the day', - sotd: 'Supporter of the day', - gpotd: 'Great power of the day', - devNote: "Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)." + title: 'Daily achievements - probable players', + warning: 'Remember! This script shows scores, not defeated units.', + aotd: 'Attacker of the day', + dotd: 'Defender of the day', + sotd: 'Supporter of the day', + gpotd: 'Great power of the day', + devNote: `Information from the author - I've just launched a new stat tracking website, don't forget to check it out :).` }, de_DE: { - title: 'Tägliche Erfolge - Wahrscheinliche Spieler', - warning: 'Hinweis! Das Script zeigt die Punke, nicht besiegte Einheiten.', - aotd: 'Angreifer des Tages', - dotd: 'Verteidiger des Tages', - sotd: 'Unterstützer des Tages', - gpotd: 'Großmacht des Tages', - devNote: "Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)." + title: 'Tägliche Erfolge - Wahrscheinliche Spieler', + warning: 'Hinweis! Das Script zeigt die Punke, nicht besiegte Einheiten.', + aotd: 'Angreifer des Tages', + dotd: 'Verteidiger des Tages', + sotd: 'Unterstützer des Tages', + gpotd: 'Großmacht des Tages', + devNote: `Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :).` } - }; - var $a777d6796a2564869cad39f35c35c293$export$default = () => $a777d6796a2564869cad39f35c35c293$var$translations[window.game_data.locale] || $a777d6796a2564869cad39f35c35c293$var$translations.en_DK; - const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) { - let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; +}; +var $bcb3eebcd6da1b00$export$2e2bcd8739ae039 = ()=>$bcb3eebcd6da1b00$var$translations[window.game_data.locale] || $bcb3eebcd6da1b00$var$translations.en_DK +; + + +const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = (key, d = { +})=>{ const json = localStorage.getItem(key); let obj = d; - if (json) { - obj = JSON.parse(json); - } + if (json) obj = JSON.parse(json); return obj; - }; - const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => { +}; +const $362bcac9fa8968ec$export$8a8216c44337cd5 = (key, payload)=>{ localStorage.setItem(key, JSON.stringify(payload)); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => { +}; + + +const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{ return window.location.origin + TribalWars.buildURL('', { - screen: 'info_ally', - id + screen: 'info_ally', + id: id }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => { +}; +const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{ return window.location.origin + TribalWars.buildURL('', { - screen: 'info_player', - id + screen: 'info_player', + id: id }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => { +}; +const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{ return window.location.origin + TribalWars.buildURL('', { - screen: 'info_village', - id + screen: 'info_village', + id: id }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() { - let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; - let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; +}; +const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{ const continent = 'K' + String(y)[0] + String(x)[0]; - return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => { + return `${n} (${x}|${y}) ${continent}`; +}; +const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{ return Math.round(distance * baseSpeed); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => { +}; +const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{ return image_base + img; - }; - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - var $1f14636dcc53402ba1b7661b758ca0aa$export$default = function () { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return server.substr(0, 2); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$inTZ = function inTZ() { - let d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); - let tz = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'UTC'; +}; + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +var $5b3edb3901c8177a$export$2e2bcd8739ae039 = (server = '')=>server.substr(0, 2) +; + + +const $ca7593443ca49f96$export$17201263355d526a = (d = new Date(), tz = 'UTC')=>{ return new Date(new Date(d).toLocaleString('en-US', { - timeZone: tz + timeZone: tz })); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate = (date, options) => { +}; +const $ca7593443ca49f96$export$6a20e8f386d90a85 = (d = new Date())=>{ + return $ca7593443ca49f96$export$17201263355d526a(d); +}; +const $ca7593443ca49f96$export$3ae94a2503e890a1 = (date, options)=>{ return new Date(date).toLocaleDateString(undefined, options ? options : { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' }); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL = 'tribalwarshelp.com'; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage = function buildURLToServerPage() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return ("https://").concat(version, ".").concat($d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL, "/server/").concat(server); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile = function buildURLToProfile() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; - return ("").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL = function buildPlayerURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'player'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL = function buildTribeURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'tribe'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL = function buildVillageURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'village'); - }; - function $4a3099be828cf86fbe8e45fe1e542e61$var$ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); +}; + + +const $f3b273bd698d94bc$export$ca6dda5263526f75 = 'tribalwarshelp.com'; +const $f3b273bd698d94bc$export$5d5850cc00079a21 = (version = '', server = '')=>{ + return `https://${version}.${$f3b273bd698d94bc$export$ca6dda5263526f75}/server/${server}`; +}; +const $f3b273bd698d94bc$export$a4588dcb88e3f9db = (version = '', server = '', id = 0, entity = '')=>{ + return `${$f3b273bd698d94bc$export$5d5850cc00079a21(version, server)}/${entity}/${id}`; +}; +const $f3b273bd698d94bc$export$3df7b9b48f38839e = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'player'); +}; +const $f3b273bd698d94bc$export$7345792e21cfc457 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'tribe'); +}; +const $f3b273bd698d94bc$export$e537a41a0fc85cc5 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'village'); +}; + + +// ==UserScript== +// @name Daily achievements +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js +// @version 0.4.6 +// @description Daily achievements +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=info_player&mode=awards* +// @grant none +// ==/UserScript== +const $2cea5861ee55e521$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $2cea5861ee55e521$var$LOCAL_STORAGE_KEY = 'kichiyaki_daily_achievements'; +const $2cea5861ee55e521$var$SERVER_QUERY = ` + query server($server: String!) { + server(key: $server) { + key + historyUpdatedAt + version { + timezone + } + } } - return keys; - } - function $4a3099be828cf86fbe8e45fe1e542e61$var$_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - $4a3099be828cf86fbe8e45fe1e542e61$var$ownKeys(Object(source), true).forEach(function (key) { - $4a3099be828cf86fbe8e45fe1e542e61$var$_defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - $4a3099be828cf86fbe8e45fe1e542e61$var$ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } +`; +const $2cea5861ee55e521$var$DAILY_STATS_QUERY = ` + query data($server: String!, $createDateGTE: Time!) { + dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStats(server: $server, sort: ["scoreAtt DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { + items { + scoreAtt + player { + id + name + } + } + } + dailyPlayerStatsOrderedByScoreDef: dailyPlayerStats(server: $server, sort: ["scoreDef DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { + items { + scoreDef + player { + id + name + } + } + } + dailyPlayerStatsOrderedByScoreSup: dailyPlayerStats(server: $server, sort: ["scoreSup DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { + items { + scoreSup + player { + id + name + } + } + } + dailyPlayerStatsOrderedByVillages: dailyPlayerStats(server: $server, sort: ["villages DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { + items { + villages + player { + id + name + } + } + } } - return target; - } - function $4a3099be828cf86fbe8e45fe1e542e61$var$_defineProperty(obj, key, value) { - if ((key in obj)) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; - } - // ==UserScript== - // @name Daily achievements - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js - // @version 0.4.6 - // @description Daily achievements - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=info_player&mode=awards* - // @grant none - // ==/UserScript== - const $4a3099be828cf86fbe8e45fe1e542e61$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $4a3099be828cf86fbe8e45fe1e542e61$var$LOCAL_STORAGE_KEY = 'kichiyaki_daily_achievements'; - const $4a3099be828cf86fbe8e45fe1e542e61$var$SERVER_QUERY = "\n query server($server: String!) {\n server(key: $server) {\n key\n historyUpdatedAt\n version {\n timezone\n }\n }\n }\n"; - const $4a3099be828cf86fbe8e45fe1e542e61$var$DAILY_STATS_QUERY = "\n query data($server: String!, $createDateGTE: Time!) {\n dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStats(server: $server, sort: [\"scoreAtt DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreAtt\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreDef: dailyPlayerStats(server: $server, sort: [\"scoreDef DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreDef\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreSup: dailyPlayerStats(server: $server, sort: [\"scoreSup DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreSup\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByVillages: dailyPlayerStats(server: $server, sort: [\"villages DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n villages\n player {\n id\n name\n }\n }\n }\n }\n"; - let $4a3099be828cf86fbe8e45fe1e542e61$var$container = undefined; - const $4a3099be828cf86fbe8e45fe1e542e61$var$translations = $a777d6796a2564869cad39f35c35c293$export$default(); - const $4a3099be828cf86fbe8e45fe1e542e61$var$loadDataFromCache = () => { - return $3d935538f644f492fe681e00121114a4$export$getItem($4a3099be828cf86fbe8e45fe1e542e61$var$LOCAL_STORAGE_KEY); - }; - const $4a3099be828cf86fbe8e45fe1e542e61$var$cacheData = function cacheData() { - let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - $3d935538f644f492fe681e00121114a4$export$setItem($4a3099be828cf86fbe8e45fe1e542e61$var$LOCAL_STORAGE_KEY, data); - }; - const $4a3099be828cf86fbe8e45fe1e542e61$var$loadData = async () => { - let data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $4a3099be828cf86fbe8e45fe1e542e61$var$SERVER_QUERY, - variables: { - server: $4a3099be828cf86fbe8e45fe1e542e61$var$SERVER - } +`; +let $2cea5861ee55e521$var$container = undefined; +const $2cea5861ee55e521$var$translations = $bcb3eebcd6da1b00$export$2e2bcd8739ae039(); +const $2cea5861ee55e521$var$loadDataFromCache = ()=>{ + return $362bcac9fa8968ec$export$f92dfeb71e9bb569($2cea5861ee55e521$var$LOCAL_STORAGE_KEY); +}; +const $2cea5861ee55e521$var$cacheData = (data = { +})=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($2cea5861ee55e521$var$LOCAL_STORAGE_KEY, data); +}; +const $2cea5861ee55e521$var$loadData = async ()=>{ + let data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $2cea5861ee55e521$var$SERVER_QUERY, + variables: { + server: $2cea5861ee55e521$var$SERVER + } }); if (data.server) { - const d = $87a1b3fb6327eb299adebba75fcb33c5$export$inTZ(data.server.historyUpdatedAt, data.server.version.timezone); - const dailyStatsData = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $4a3099be828cf86fbe8e45fe1e542e61$var$DAILY_STATS_QUERY, - variables: { - server: $4a3099be828cf86fbe8e45fe1e542e61$var$SERVER, - createDateGTE: $d395262bbac0963dee25c928b5ce5e8e$export$default(d, 'yyyy-MM-dd') + 'T' + $d395262bbac0963dee25c928b5ce5e8e$export$default(d, 'HH:mm:ss') + 'Z' - } - }); - data = $4a3099be828cf86fbe8e45fe1e542e61$var$_objectSpread($4a3099be828cf86fbe8e45fe1e542e61$var$_objectSpread({}, data), dailyStatsData); + const d = $ca7593443ca49f96$export$17201263355d526a(data.server.historyUpdatedAt, data.server.version.timezone); + const dailyStatsData = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $2cea5861ee55e521$var$DAILY_STATS_QUERY, + variables: { + server: $2cea5861ee55e521$var$SERVER, + createDateGTE: $94db3e879bd42ac5$export$2e2bcd8739ae039(d, 'yyyy-MM-dd') + 'T' + $94db3e879bd42ac5$export$2e2bcd8739ae039(d, 'HH:mm:ss') + 'Z' + } + }); + data = $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, data, dailyStatsData); } - $4a3099be828cf86fbe8e45fe1e542e61$var$cacheData(data); + $2cea5861ee55e521$var$cacheData(data); return data; - }; - const $4a3099be828cf86fbe8e45fe1e542e61$var$render = _ref => { - let {dailyPlayerStatsOrderedByScoreAtt, dailyPlayerStatsOrderedByScoreDef, dailyPlayerStatsOrderedByScoreSup, dailyPlayerStatsOrderedByVillages} = _ref; - const html = ("\n
").concat($4a3099be828cf86fbe8e45fe1e542e61$var$translations.title, "
\n
\n
\n

TWHelp

\n

").concat($4a3099be828cf86fbe8e45fe1e542e61$var$translations.devNote, "

\n

").concat($4a3099be828cf86fbe8e45fe1e542e61$var$translations.warning, "

\n

").concat($4a3099be828cf86fbe8e45fe1e542e61$var$translations.aotd, "

\n ").concat(dailyPlayerStatsOrderedByScoreAtt.items.map((item, index) => ("").concat(index + 1, ". ").concat(item.player.name, " - ").concat(item.scoreAtt.toLocaleString(), "")).join('
'), "\n
\n
\n
\n

").concat($4a3099be828cf86fbe8e45fe1e542e61$var$translations.dotd, "

\n ").concat(dailyPlayerStatsOrderedByScoreDef.items.map((item, index) => ("").concat(index + 1, ". ").concat(item.player.name, " - ").concat(item.scoreDef.toLocaleString(), "")).join('
'), "\n
\n
\n
\n

").concat($4a3099be828cf86fbe8e45fe1e542e61$var$translations.sotd, "

\n ").concat(dailyPlayerStatsOrderedByScoreSup.items.map((item, index) => ("").concat(index + 1, ". ").concat(item.player.name, " - ").concat(item.scoreSup.toLocaleString(), "")).join('
'), "\n
\n
\n
\n

").concat($4a3099be828cf86fbe8e45fe1e542e61$var$translations.gpotd, "

\n ").concat(dailyPlayerStatsOrderedByVillages.items.map((item, index) => ("").concat(index + 1, ". ").concat(item.player.name, " - ").concat(item.villages.toLocaleString(), "")).join('
'), "\n
\n
\n
\n "); - if (!$4a3099be828cf86fbe8e45fe1e542e61$var$container) { - $4a3099be828cf86fbe8e45fe1e542e61$var$container = document.createElement('div'); - $4a3099be828cf86fbe8e45fe1e542e61$var$container.classList.add('award-group'); - document.querySelector('#content_value > div:nth-child(4)').prepend($4a3099be828cf86fbe8e45fe1e542e61$var$container); +}; +const $2cea5861ee55e521$var$render = ({ dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStatsOrderedByScoreAtt , dailyPlayerStatsOrderedByScoreDef: dailyPlayerStatsOrderedByScoreDef , dailyPlayerStatsOrderedByScoreSup: dailyPlayerStatsOrderedByScoreSup , dailyPlayerStatsOrderedByVillages: dailyPlayerStatsOrderedByVillages , })=>{ + const html = ` +
${$2cea5861ee55e521$var$translations.title}
+
+
+

TWHelp

+

${$2cea5861ee55e521$var$translations.devNote}

+

${$2cea5861ee55e521$var$translations.warning}

+

${$2cea5861ee55e521$var$translations.aotd}

+ ${dailyPlayerStatsOrderedByScoreAtt.items.map((item, index)=>`${index + 1}. ${item.player.name} - ${item.scoreAtt.toLocaleString()}` + ).join('
')} +
+
+
+

${$2cea5861ee55e521$var$translations.dotd}

+ ${dailyPlayerStatsOrderedByScoreDef.items.map((item, index)=>`${index + 1}. ${item.player.name} - ${item.scoreDef.toLocaleString()}` + ).join('
')} +
+
+
+

${$2cea5861ee55e521$var$translations.sotd}

+ ${dailyPlayerStatsOrderedByScoreSup.items.map((item, index)=>`${index + 1}. ${item.player.name} - ${item.scoreSup.toLocaleString()}` + ).join('
')} +
+
+
+

${$2cea5861ee55e521$var$translations.gpotd}

+ ${dailyPlayerStatsOrderedByVillages.items.map((item, index)=>`${index + 1}. ${item.player.name} - ${item.villages.toLocaleString()}` + ).join('
')} +
+
+
+ `; + if (!$2cea5861ee55e521$var$container) { + $2cea5861ee55e521$var$container = document.createElement('div'); + $2cea5861ee55e521$var$container.classList.add('award-group'); + document.querySelector('#content_value > div:nth-child(4)').prepend($2cea5861ee55e521$var$container); } - $4a3099be828cf86fbe8e45fe1e542e61$var$container.innerHTML = html; - }; - (async function () { + $2cea5861ee55e521$var$container.innerHTML = html; +}; +(async function() { try { - const dataFromCache = $4a3099be828cf86fbe8e45fe1e542e61$var$loadDataFromCache(); - if (dataFromCache && dataFromCache.server) { - $4a3099be828cf86fbe8e45fe1e542e61$var$render(dataFromCache); - } - const data = await $4a3099be828cf86fbe8e45fe1e542e61$var$loadData(); - if (data.server) { - $4a3099be828cf86fbe8e45fe1e542e61$var$render(data); - } + const dataFromCache = $2cea5861ee55e521$var$loadDataFromCache(); + if (dataFromCache && dataFromCache.server) $2cea5861ee55e521$var$render(dataFromCache); + const data = await $2cea5861ee55e521$var$loadData(); + if (data.server) $2cea5861ee55e521$var$render(data); } catch (error) { - console.log('dailyAchievements', error); + console.log('dailyAchievements', error); } - })(); })(); +})(); diff --git a/dist/extendedMapPopup.js b/dist/extendedMapPopup.js index 43bd492..f6cdaf8 100644 --- a/dist/extendedMapPopup.js +++ b/dist/extendedMapPopup.js @@ -1,517 +1,535 @@ (function () { - function $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyNumber) { - if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { - return NaN; - } - var number = Number(dirtyNumber); - if (isNaN(number)) { - return number; - } - return number < 0 ? Math.ceil(number) : Math.floor(number); - } - function $5a91e85e34da2364b77064ee2dfe41c1$export$default(required, args) { - if (args.length < required) { - throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); - } - } - /** - * @name toDate - * @category Common Helpers - * @summary Convert the given argument to an instance of Date. - * - * @description - * Convert the given argument to an instance of Date. - * - * If the argument is an instance of Date, the function returns its clone. - * - * If the argument is a number, it is treated as a timestamp. - * - * If the argument is none of the above, the function returns Invalid Date. - * - * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. - * - * @param {Date|Number} argument - the value to convert - * @returns {Date} the parsed date in the local time zone - * @throws {TypeError} 1 argument required - * - * @example - * // Clone the date: - * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) - * //=> Tue Feb 11 2014 11:30:30 - * - * @example - * // Convert the timestamp to date: - * const result = toDate(1392098430000) - * //=> Tue Feb 11 2014 11:30:30 - */ - function $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(argument) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var argStr = Object.prototype.toString.call(argument); - // Clone the date - if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') { - // Prevent the date to lose the milliseconds when passed to new Date() in IE10 - return new Date(argument.getTime()); - } else if (typeof argument === 'number' || argStr === '[object Number]') { - return new Date(argument); - } else { - if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { - // eslint-disable-next-line no-console - console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); - // eslint-disable-next-line no-console - console.warn(new Error().stack); - } - return new Date(NaN); - } - } - /** - * @name addMilliseconds - * @category Millisecond Helpers - * @summary Add the specified number of milliseconds to the given date. - * - * @description - * Add the specified number of milliseconds to the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the milliseconds added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 750 milliseconds to 10 July 2014 12:45:30.000: - * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) - * //=> Thu Jul 10 2014 12:45:30.750 - */ - function $11f02e6f39aa1698d361463648fba3d0$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var timestamp = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate).getTime(); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); - return new Date(timestamp + amount); - } - var $85f39b52d00a89d06a6562a7df398249$var$MILLISECONDS_IN_MINUTE = 60000; - /** - * @name addMinutes - * @category Minute Helpers - * @summary Add the specified number of minutes to the given date. - * - * @description - * Add the specified number of minutes to the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the minutes added - * @throws {TypeError} 2 arguments required - * - * @example - * // Add 30 minutes to 10 July 2014 12:00:00: - * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30) - * //=> Thu Jul 10 2014 12:30:00 - */ - function $85f39b52d00a89d06a6562a7df398249$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); - return $11f02e6f39aa1698d361463648fba3d0$export$default(dirtyDate, amount * $85f39b52d00a89d06a6562a7df398249$var$MILLISECONDS_IN_MINUTE); - } - const $b77e52fe2469092ef0c13094c9dc19c1$var$translations = { - pl_PL: { - ennobledAt: 'Podbita o', - never: 'Nigdy', - possibleLoyalty: 'Prawdopodobne poparcie', - canSendNoble: 'Można wysłać szlachcica', - yes: 'Tak', - no: 'Nie' - }, - en_DK: { - ennobledAt: 'Ennobled at', - never: 'Never', - possibleLoyalty: 'Possible loyalty', - canSendNoble: 'Can send noble', - yes: 'Yes', - no: 'No' - }, - de_DE: { - ennobledAt: 'Adelung bei', - never: 'Nie', - possibleLoyalty: 'Mögliche Zustimmung', - canSendNoble: 'Kann Adelsgeschlecht senden', - yes: 'Ja', - no: 'Nein' - } - }; - var $b77e52fe2469092ef0c13094c9dc19c1$export$default = () => $b77e52fe2469092ef0c13094c9dc19c1$var$translations[window.game_data.locale] || $b77e52fe2469092ef0c13094c9dc19c1$var$translations.en_DK; - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); - }); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$inTZ = function inTZ() { - let d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); - let tz = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'UTC'; - return new Date(new Date(d).toLocaleString('en-US', { - timeZone: tz - })); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate = (date, options) => { - return new Date(date).toLocaleDateString(undefined, options ? options : { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - }); - }; - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - const $3d57ea338a09b23ca4b283dff4f79ebd$export$calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => { - const a = x1 - x2; - const b = y1 - y2; - return Math.sqrt(a * a + b * b); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_ally', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_player', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_village', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() { - let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; - let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; - const continent = 'K' + String(y)[0] + String(x)[0]; - return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => { - return Math.round(distance * baseSpeed); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => { - return image_base + img; - }; - var $a2d6afca3e99a4c1d795f97cc5f14c0b$export$default = unit => { - return $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL(("unit/unit_").concat(unit, ".png")); - }; - const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) { - let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const json = localStorage.getItem(key); - let obj = d; - if (json) { - obj = JSON.parse(json); - } - return obj; - }; - const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => { - localStorage.setItem(key, JSON.stringify(payload)); - }; - /** - * @name differenceInMilliseconds - * @category Millisecond Helpers - * @summary Get the number of milliseconds between the given dates. - * - * @description - * Get the number of milliseconds between the given dates. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of milliseconds - * @throws {TypeError} 2 arguments required - * - * @example - * // How many milliseconds are between - * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700? - * const result = differenceInMilliseconds( - * new Date(2014, 6, 2, 12, 30, 21, 700), - * new Date(2014, 6, 2, 12, 30, 20, 600) - * ) - * //=> 1100 - */ - function $987dc0dc027c0d4aafb08ca79b0ecd15$export$default(dirtyDateLeft, dirtyDateRight) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var dateLeft = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDateLeft); - var dateRight = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDateRight); - return dateLeft.getTime() - dateRight.getTime(); - } - var $8a55ab13e50cc25510a86f88055567af$var$MILLISECONDS_IN_MINUTE = 60000; - /** - * @name differenceInMinutes - * @category Minute Helpers - * @summary Get the number of minutes between the given dates. - * - * @description - * Get the signed number of full (rounded towards 0) minutes between the given dates. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of minutes - * @throws {TypeError} 2 arguments required - * - * @example - * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00? - * var result = differenceInMinutes( - * new Date(2014, 6, 2, 12, 20, 0), - * new Date(2014, 6, 2, 12, 7, 59) - * ) - * //=> 12 - * - * @example - * // How many minutes are from 10:01:59 to 10:00:00 - * var result = differenceInMinutes( - * new Date(2000, 0, 1, 10, 0, 0), - * new Date(2000, 0, 1, 10, 1, 59) - * ) - * //=> -1 - */ - function $8a55ab13e50cc25510a86f88055567af$export$default(dirtyDateLeft, dirtyDateRight) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var diff = $987dc0dc027c0d4aafb08ca79b0ecd15$export$default(dirtyDateLeft, dirtyDateRight) / $8a55ab13e50cc25510a86f88055567af$var$MILLISECONDS_IN_MINUTE; - return diff > 0 ? Math.floor(diff) : Math.ceil(diff); - } - const $497794f7ecdac1fd2ccb9495447c64f0$export$default = (ennobledAt, speed) => { - let loyalty = 25 + Math.abs($8a55ab13e50cc25510a86f88055567af$export$default(ennobledAt, new Date())) * (speed / 60); - if (loyalty > 100) { - loyalty = 100; - } - return Math.floor(loyalty); - }; - function $dd5d786daadd6a3858722303ff53be21$var$ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); - } - return keys; - } - function $dd5d786daadd6a3858722303ff53be21$var$_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - $dd5d786daadd6a3858722303ff53be21$var$ownKeys(Object(source), true).forEach(function (key) { - $dd5d786daadd6a3858722303ff53be21$var$_defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - $dd5d786daadd6a3858722303ff53be21$var$ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; - } - function $dd5d786daadd6a3858722303ff53be21$var$_defineProperty(obj, key, value) { - if ((key in obj)) { - Object.defineProperty(obj, key, { +function $6a49e4c969cec444$export$2e2bcd8739ae039(obj, key, value) { + if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true - }); - } else { - obj[key] = value; - } + }); + else obj[key] = value; return obj; - } - // ==UserScript== - // @name Extended map popup - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js - // @version 0.7.0 - // @description Extended map popup - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=map* - // @grant none - // ==/UserScript== - const $dd5d786daadd6a3858722303ff53be21$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $dd5d786daadd6a3858722303ff53be21$var$CURR_SERVER_CONFIG = "\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n unitSpeed\n snob {\n maxDist\n }\n }\n unitConfig {\n spear {\n speed\n }\n sword {\n speed\n }\n axe {\n speed\n }\n archer {\n speed\n }\n spy {\n speed\n }\n light {\n speed\n }\n marcher {\n speed\n }\n heavy {\n speed\n }\n ram {\n speed\n }\n catapult {\n speed\n }\n knight {\n speed\n }\n snob {\n speed\n }\n }\n }\n }\n"; - const $dd5d786daadd6a3858722303ff53be21$var$LAST_CONQUER_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!, $sort: [String!], $limit: Int) {\n ennoblements(server: $server, filter: $filter, sort: $sort, limit: $limit) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n"; - const $dd5d786daadd6a3858722303ff53be21$var$SERVER_CONFIG_LOCAL_STORAGE_KEY = 'kiszkowaty_extended_map_popup_server_cfg'; - const $dd5d786daadd6a3858722303ff53be21$var$translations = $b77e52fe2469092ef0c13094c9dc19c1$export$default(); - const $dd5d786daadd6a3858722303ff53be21$var$loadConfigFromLocalStorage = () => { - return $3d935538f644f492fe681e00121114a4$export$getItem($dd5d786daadd6a3858722303ff53be21$var$SERVER_CONFIG_LOCAL_STORAGE_KEY); - }; - const $dd5d786daadd6a3858722303ff53be21$var$cacheServerConfig = function cacheServerConfig() { - let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - $3d935538f644f492fe681e00121114a4$export$setItem($dd5d786daadd6a3858722303ff53be21$var$SERVER_CONFIG_LOCAL_STORAGE_KEY, data); - }; - const $dd5d786daadd6a3858722303ff53be21$var$isConfigExpired = date => { - return Math.abs(date.getTime() - new Date().getTime()) > 1000 * 60 * 60 * 24; - }; - const $dd5d786daadd6a3858722303ff53be21$var$loadConfig = async () => { - let data = $dd5d786daadd6a3858722303ff53be21$var$loadConfigFromLocalStorage(); - if (!data || !data.server || $dd5d786daadd6a3858722303ff53be21$var$isConfigExpired(new Date(data.loadedAt)) || !data.server.config || !data.server.config.speed || !data.server.config.snob || !data.server.config.snob.maxDist || !data.server.config.unitSpeed || !data.server.unitConfig) { - data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $dd5d786daadd6a3858722303ff53be21$var$CURR_SERVER_CONFIG, - variables: { - key: $dd5d786daadd6a3858722303ff53be21$var$SERVER +} + + +function $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { + }; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); + }); + } + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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]; } - }); - data.loadedAt = new Date(); - $dd5d786daadd6a3858722303ff53be21$var$cacheServerConfig(data); + } + return target; +} + + + +function $70df79293cae00de$export$2e2bcd8739ae039(dirtyNumber) { + if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) return NaN; + var number = Number(dirtyNumber); + if (isNaN(number)) return number; + return number < 0 ? Math.ceil(number) : Math.floor(number); +} + + + +function $14473fdd7558f621$export$2e2bcd8739ae039(required, args) { + if (args.length < required) throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); +} + + +function $cef0ab118a15bdd4$export$2e2bcd8739ae039(argument) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var argStr = Object.prototype.toString.call(argument); // Clone the date + if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()); + else if (typeof argument === 'number' || argStr === '[object Number]') return new Date(argument); + else { + if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { + // eslint-disable-next-line no-console + console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console + console.warn(new Error().stack); + } + return new Date(NaN); + } +} + + + +function $b214e0d241adf6d7$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var timestamp = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate).getTime(); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); + return new Date(timestamp + amount); +} + + + +var $76d93d3ec05eed83$var$MILLISECONDS_IN_MINUTE = 60000; +function $76d93d3ec05eed83$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); + return $b214e0d241adf6d7$export$2e2bcd8739ae039(dirtyDate, amount * $76d93d3ec05eed83$var$MILLISECONDS_IN_MINUTE); +} + + +const $f2fe9362d0defd49$var$translations = { + pl_PL: { + ennobledAt: 'Podbita o', + never: 'Nigdy', + possibleLoyalty: 'Prawdopodobne poparcie', + canSendNoble: 'Można wysłać szlachcica', + yes: 'Tak', + no: 'Nie' + }, + en_DK: { + ennobledAt: 'Ennobled at', + never: 'Never', + possibleLoyalty: 'Possible loyalty', + canSendNoble: 'Can send noble', + yes: 'Yes', + no: 'No' + }, + de_DE: { + ennobledAt: 'Adelung bei', + never: 'Nie', + possibleLoyalty: 'Mögliche Zustimmung', + canSendNoble: 'Kann Adelsgeschlecht senden', + yes: 'Ja', + no: 'Nein' + } +}; +var $f2fe9362d0defd49$export$2e2bcd8739ae039 = ()=>$f2fe9362d0defd49$var$translations[window.game_data.locale] || $f2fe9362d0defd49$var$translations.en_DK +; + + +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); + }); +}; + + +const $ca7593443ca49f96$export$17201263355d526a = (d = new Date(), tz = 'UTC')=>{ + return new Date(new Date(d).toLocaleString('en-US', { + timeZone: tz + })); +}; +const $ca7593443ca49f96$export$6a20e8f386d90a85 = (d = new Date())=>{ + return $ca7593443ca49f96$export$17201263355d526a(d); +}; +const $ca7593443ca49f96$export$3ae94a2503e890a1 = (date, options)=>{ + return new Date(date).toLocaleDateString(undefined, options ? options : { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); +}; + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +const $8f952366ce71d0fe$export$6e378131ceaf17af = (x1, y1, x2, y2)=>{ + const a = x1 - x2; + const b = y1 - y2; + return Math.sqrt(a * a + b * b); +}; + + +const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_ally', + id: id + }); +}; +const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_player', + id: id + }); +}; +const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_village', + id: id + }); +}; +const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{ + const continent = 'K' + String(y)[0] + String(x)[0]; + return `${n} (${x}|${y}) ${continent}`; +}; +const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{ + return Math.round(distance * baseSpeed); +}; +const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{ + return image_base + img; +}; + + +var $3cc0f054d48dddd4$export$2e2bcd8739ae039 = (unit)=>{ + return $db1dd60e5389e0c9$export$8b4b6650247854da(`unit/unit_${unit}.png`); +}; + + +const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = (key, d = { +})=>{ + const json = localStorage.getItem(key); + let obj = d; + if (json) obj = JSON.parse(json); + return obj; +}; +const $362bcac9fa8968ec$export$8a8216c44337cd5 = (key, payload)=>{ + localStorage.setItem(key, JSON.stringify(payload)); +}; + + + + + +function $0efd46ae48a1111f$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var dateLeft = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDateLeft); + var dateRight = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDateRight); + return dateLeft.getTime() - dateRight.getTime(); +} + + + +var $d8d089e636d25180$var$MILLISECONDS_IN_MINUTE = 60000; +function $d8d089e636d25180$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var diff = $0efd46ae48a1111f$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) / $d8d089e636d25180$var$MILLISECONDS_IN_MINUTE; + return diff > 0 ? Math.floor(diff) : Math.ceil(diff); +} + + +const $8e88e9cb6c51e781$var$calcLoyalty = (ennobledAt, speed)=>{ + let loyalty = 25 + Math.abs($d8d089e636d25180$export$2e2bcd8739ae039(ennobledAt, new Date())) * (speed / 60); + if (loyalty > 100) loyalty = 100; + return Math.floor(loyalty); +}; +var $8e88e9cb6c51e781$export$2e2bcd8739ae039 = $8e88e9cb6c51e781$var$calcLoyalty; + + +// ==UserScript== +// @name Extended map popup +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js +// @version 0.7.0 +// @description Extended map popup +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=map* +// @grant none +// ==/UserScript== +const $0037f5ff61114eb0$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $0037f5ff61114eb0$var$CURR_SERVER_CONFIG = ` + query server($key: String!) { + server(key: $key) { + config { + speed + unitSpeed + snob { + maxDist + } + } + unitConfig { + spear { + speed + } + sword { + speed + } + axe { + speed + } + archer { + speed + } + spy { + speed + } + light { + speed + } + marcher { + speed + } + heavy { + speed + } + ram { + speed + } + catapult { + speed + } + knight { + speed + } + snob { + speed + } + } + } + } +`; +const $0037f5ff61114eb0$var$LAST_CONQUER_QUERY = ` + query ennoblements($server: String!, $filter: EnnoblementFilter!, $sort: [String!], $limit: Int) { + ennoblements(server: $server, filter: $filter, sort: $sort, limit: $limit) { + items { + ennobledAt + village { + id + } + } + } + } +`; +const $0037f5ff61114eb0$var$SERVER_CONFIG_LOCAL_STORAGE_KEY = 'kiszkowaty_extended_map_popup_server_cfg'; +const $0037f5ff61114eb0$var$translations = $f2fe9362d0defd49$export$2e2bcd8739ae039(); +const $0037f5ff61114eb0$var$loadConfigFromLocalStorage = ()=>{ + return $362bcac9fa8968ec$export$f92dfeb71e9bb569($0037f5ff61114eb0$var$SERVER_CONFIG_LOCAL_STORAGE_KEY); +}; +const $0037f5ff61114eb0$var$cacheServerConfig = (data = { +})=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($0037f5ff61114eb0$var$SERVER_CONFIG_LOCAL_STORAGE_KEY, data); +}; +const $0037f5ff61114eb0$var$isConfigExpired = (date)=>{ + return Math.abs(date.getTime() - new Date().getTime()) > 86400000; +}; +const $0037f5ff61114eb0$var$loadConfig = async ()=>{ + let data = $0037f5ff61114eb0$var$loadConfigFromLocalStorage(); + if (!data || !data.server || $0037f5ff61114eb0$var$isConfigExpired(new Date(data.loadedAt)) || !data.server.config || !data.server.config.speed || !data.server.config.snob || !data.server.config.snob.maxDist || !data.server.config.unitSpeed || !data.server.unitConfig) { + data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $0037f5ff61114eb0$var$CURR_SERVER_CONFIG, + variables: { + key: $0037f5ff61114eb0$var$SERVER + } + }); + data.loadedAt = new Date(); + $0037f5ff61114eb0$var$cacheServerConfig(data); } return data && data.server && data.server.config ? { - config: data.server.config, - unitConfig: data.server.unitConfig - } : {}; - }; - const $dd5d786daadd6a3858722303ff53be21$var$loadVillageData = async function loadVillageData(id) { - let {cacheOnly = false} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (!id) { - return; - } - if (cacheOnly || TWMap.popup.extendedMapPopupCache[id]) { - return TWMap.popup.extendedMapPopupCache[id]; - } + config: data.server.config, + unitConfig: data.server.unitConfig + } : { + }; +}; +const $0037f5ff61114eb0$var$loadVillageData = async (id, { cacheOnly: cacheOnly = false } = { +})=>{ + if (!id) return; + if (cacheOnly || TWMap.popup.extendedMapPopupCache[id]) return TWMap.popup.extendedMapPopupCache[id]; try { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $dd5d786daadd6a3858722303ff53be21$var$LAST_CONQUER_QUERY, - variables: { - server: $dd5d786daadd6a3858722303ff53be21$var$SERVER, - sort: ['ennobledAt DESC'], - filter: { - villageID: [id] - }, - limit: 1 - } - }); - TWMap.popup.extendedMapPopupCache[id] = data; - return data; + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $0037f5ff61114eb0$var$LAST_CONQUER_QUERY, + variables: { + server: $0037f5ff61114eb0$var$SERVER, + sort: [ + 'ennobledAt DESC' + ], + filter: { + villageID: [ + id + ] + }, + limit: 1 + } + }); + TWMap.popup.extendedMapPopupCache[id] = data; + return data; } catch (error) { - console.log('loadVillageData', error); + console.log('loadVillageData', error); } - }; - const $dd5d786daadd6a3858722303ff53be21$var$getAvailableUnits = function getAvailableUnits() { - let unitCfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; +}; +const $0037f5ff61114eb0$var$getAvailableUnits = (unitCfg = { +})=>{ const units = []; - for (let unit in unitCfg) { - if (unitCfg[unit].speed !== 0) { - units.push($dd5d786daadd6a3858722303ff53be21$var$_objectSpread($dd5d786daadd6a3858722303ff53be21$var$_objectSpread({}, unitCfg[unit]), {}, { - name: unit, - img: $a2d6afca3e99a4c1d795f97cc5f14c0b$export$default(unit) - })); - } - } + for(let unit in unitCfg)if (unitCfg[unit].speed !== 0) units.push($f1e9793517c51c58$export$2e2bcd8739ae039({ + }, unitCfg[unit], { + name: unit, + img: $3cc0f054d48dddd4$export$2e2bcd8739ae039(unit) + })); return units; - }; - const $dd5d786daadd6a3858722303ff53be21$var$getUnitTdBgColor = index => index % 2 === 0 ? '#f8f4e8' : '#ded3b9;'; - const $dd5d786daadd6a3858722303ff53be21$var$buildUnitHeader = (unit, index) => { - return ("\n \n \n \n "); - }; - const $dd5d786daadd6a3858722303ff53be21$var$buildUnitArrivalInfo = (t, index) => { - return ("\n \n ").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate($85f39b52d00a89d06a6562a7df398249$export$default(Timing.getCurrentServerTime(), t)), "\n \n "); - }; - const $dd5d786daadd6a3858722303ff53be21$var$renderAdditionalInfo = (id, data, _ref) => { - let {config, unitConfig} = _ref; +}; +const $0037f5ff61114eb0$var$getUnitTdBgColor = (index)=>index % 2 === 0 ? '#f8f4e8' : '#ded3b9;' +; +const $0037f5ff61114eb0$var$buildUnitHeader = (unit, index)=>{ + return ` + + ${unit.name} + + `; +}; +const $0037f5ff61114eb0$var$buildUnitArrivalInfo = (t, index)=>{ + return ` + + ${$ca7593443ca49f96$export$3ae94a2503e890a1($76d93d3ec05eed83$export$2e2bcd8739ae039(Timing.getCurrentServerTime(), t))} + + `; +}; +const $0037f5ff61114eb0$var$renderAdditionalInfo = (id, data, { config: config , unitConfig: unitConfig })=>{ const coords = TWMap.CoordByXY(TWMap.villageKey[id]); - const distance = $3d57ea338a09b23ca4b283dff4f79ebd$export$calcDistanceBetweenTwoPoints(coords[0], coords[1], window.game_data.village.x, window.game_data.village.y); + const distance = $8f952366ce71d0fe$export$6e378131ceaf17af(coords[0], coords[1], window.game_data.village.x, window.game_data.village.y); const ennoblement = data && data.ennoblements && data.ennoblements.items && data.ennoblements.items.length > 0 ? data.ennoblements.items[0] : undefined; const parent = document.querySelector('#map_popup #info_content tbody'); let unitsEl = parent.querySelector('#units'); if (!unitsEl) { - unitsEl = document.createElement('tr'); - unitsEl.id = 'units'; - parent.appendChild(unitsEl); + unitsEl = document.createElement('tr'); + unitsEl.id = 'units'; + parent.appendChild(unitsEl); } - const units = $dd5d786daadd6a3858722303ff53be21$var$getAvailableUnits(unitConfig); - unitsEl.innerHTML = ("\n \n \n \n \n ").concat(units.map($dd5d786daadd6a3858722303ff53be21$var$buildUnitHeader).join(''), "\n \n \n ").concat(units.map((unit, index) => { - return $dd5d786daadd6a3858722303ff53be21$var$buildUnitArrivalInfo($6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration(distance, unit.speed), index); - }).join(''), "\n \n \n
\n \n "); + const units = $0037f5ff61114eb0$var$getAvailableUnits(unitConfig); + unitsEl.innerHTML = ` + + + + + ${units.map($0037f5ff61114eb0$var$buildUnitHeader).join('')} + + + ${units.map((unit, index)=>{ + return $0037f5ff61114eb0$var$buildUnitArrivalInfo($db1dd60e5389e0c9$export$893530ca1c0f63a2(distance, unit.speed), index); + }).join('')} + + +
+ + `; let lastEnnobledAt = parent.querySelector('#lastEnnobledAt'); if (!lastEnnobledAt) { - lastEnnobledAt = document.createElement('tr'); - lastEnnobledAt.id = 'lastEnnobledAt'; - parent.appendChild(lastEnnobledAt); + lastEnnobledAt = document.createElement('tr'); + lastEnnobledAt.id = 'lastEnnobledAt'; + parent.appendChild(lastEnnobledAt); } - lastEnnobledAt.innerHTML = ("\n \n ").concat($dd5d786daadd6a3858722303ff53be21$var$translations.ennobledAt, ":\n \n \n ").concat(ennoblement ? $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(ennoblement.ennobledAt) : $dd5d786daadd6a3858722303ff53be21$var$translations.never, "\n \n "); + lastEnnobledAt.innerHTML = ` + + ${$0037f5ff61114eb0$var$translations.ennobledAt}: + + + ${ennoblement ? $ca7593443ca49f96$export$3ae94a2503e890a1(ennoblement.ennobledAt) : $0037f5ff61114eb0$var$translations.never} + + `; let loyalty = parent.querySelector('#loyalty'); if (!loyalty) { - loyalty = document.createElement('tr'); - loyalty.id = 'loyalty'; - parent.appendChild(loyalty); + loyalty = document.createElement('tr'); + loyalty.id = 'loyalty'; + parent.appendChild(loyalty); } - loyalty.innerHTML = ("\n \n ").concat($dd5d786daadd6a3858722303ff53be21$var$translations.possibleLoyalty, ":\n \n \n ").concat(ennoblement ? $497794f7ecdac1fd2ccb9495447c64f0$export$default(new Date(ennoblement.ennobledAt), config.speed) : 100, "\n \n "); + loyalty.innerHTML = ` + + ${$0037f5ff61114eb0$var$translations.possibleLoyalty}: + + + ${ennoblement ? $8e88e9cb6c51e781$export$2e2bcd8739ae039(new Date(ennoblement.ennobledAt), config.speed) : 100} + + `; let canSendNoble = parent.querySelector('#canSendNoble'); if (!canSendNoble) { - canSendNoble = document.createElement('tr'); - canSendNoble.id = 'canSendNoble'; - parent.appendChild(canSendNoble); + canSendNoble = document.createElement('tr'); + canSendNoble.id = 'canSendNoble'; + parent.appendChild(canSendNoble); } - canSendNoble.innerHTML = ("\n \n ").concat($dd5d786daadd6a3858722303ff53be21$var$translations.canSendNoble, ":\n \n \n ").concat(distance < config.snob.maxDist ? $dd5d786daadd6a3858722303ff53be21$var$translations.yes : $dd5d786daadd6a3858722303ff53be21$var$translations.no, "\n \n "); - }; - const $dd5d786daadd6a3858722303ff53be21$var$createLoadVillageHandler = cfg => async e => { - TWMap.popup._loadVillage(e); - const data = await $dd5d786daadd6a3858722303ff53be21$var$loadVillageData(parseInt(e)); - if (data) { - $dd5d786daadd6a3858722303ff53be21$var$renderAdditionalInfo(parseInt(e), data, cfg); + canSendNoble.innerHTML = ` + + ${$0037f5ff61114eb0$var$translations.canSendNoble}: + + + ${distance < config.snob.maxDist ? $0037f5ff61114eb0$var$translations.yes : $0037f5ff61114eb0$var$translations.no} + + `; +}; +const $0037f5ff61114eb0$var$createLoadVillageHandler = (cfg)=>async (e)=>{ + TWMap.popup._loadVillage(e); + const data = await $0037f5ff61114eb0$var$loadVillageData(parseInt(e)); + if (data) $0037f5ff61114eb0$var$renderAdditionalInfo(parseInt(e), data, cfg); } - }; - const $dd5d786daadd6a3858722303ff53be21$var$createDisplayForVillageHandler = cfg => async (e, a, t) => { - TWMap.popup._displayForVillage(e, a, t); - const data = await $dd5d786daadd6a3858722303ff53be21$var$loadVillageData(parseInt(e.id), { - cacheOnly: window.game_data.features.Premium.active - }); - if (data) { - $dd5d786daadd6a3858722303ff53be21$var$renderAdditionalInfo(parseInt(e.id), data, cfg); +; +const $0037f5ff61114eb0$var$createDisplayForVillageHandler = (cfg)=>async (e, a, t)=>{ + TWMap.popup._displayForVillage(e, a, t); + const data = await $0037f5ff61114eb0$var$loadVillageData(parseInt(e.id), { + cacheOnly: window.game_data.features.Premium.active + }); + if (data) $0037f5ff61114eb0$var$renderAdditionalInfo(parseInt(e.id), data, cfg); } - }; - (async function () { +; +(async function() { try { - const configs = await $dd5d786daadd6a3858722303ff53be21$var$loadConfig(); - TWMap.popup.extendedMapPopupCache = {}; - TWMap.popup._loadVillage = TWMap.popup.loadVillage; - TWMap.popup.loadVillage = $dd5d786daadd6a3858722303ff53be21$var$createLoadVillageHandler(configs); - TWMap.popup._displayForVillage = TWMap.popup.displayForVillage; - TWMap.popup.displayForVillage = $dd5d786daadd6a3858722303ff53be21$var$createDisplayForVillageHandler(configs); + const configs = await $0037f5ff61114eb0$var$loadConfig(); + TWMap.popup.extendedMapPopupCache = { + }; + TWMap.popup._loadVillage = TWMap.popup.loadVillage; + TWMap.popup.loadVillage = $0037f5ff61114eb0$var$createLoadVillageHandler(configs); + TWMap.popup._displayForVillage = TWMap.popup.displayForVillage; + TWMap.popup.displayForVillage = $0037f5ff61114eb0$var$createDisplayForVillageHandler(configs); } catch (error) { - console.log('extended map popup', error); + console.log('extended map popup', error); } - })(); })(); +})(); diff --git a/dist/extendedPlayerProfile.js b/dist/extendedPlayerProfile.js index 1603e31..eccaba9 100644 --- a/dist/extendedPlayerProfile.js +++ b/dist/extendedPlayerProfile.js @@ -1,1030 +1,1436 @@ (function () { - var $39c4220bac5e8e55ae13cc7489410b3e$export$default = url => parseInt(new URLSearchParams(url).get('id')); - class $eb13db7801b83919c60cd8b3e0a8a6d8$export$default { - constructor() { - let html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - this.dom = new DOMParser().parseFromString(html, 'text/html'); - this.trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr'); - this.filters = filters; +function $6a49e4c969cec444$export$2e2bcd8739ae039(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 $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { + }; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); + }); } + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + + +var $c1259165cf39ac5b$export$2e2bcd8739ae039 = (url)=>parseInt(new URLSearchParams(url).get('id')) +; + + +class $417def0de2fa2238$export$2e2bcd8739ae039 { 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; + if (!row) return false; + if (this.filters.playerID && row.playerID !== this.filters.playerID) return false; + if (this.filters.tribes && Array.isArray(this.filters.tribes) && !this.filters.tribes.some((tribe)=>tribe === row.tribe + )) return false; + return true; } parseRow(row) { - if (!row || !row instanceof HTMLTableRowElement) { - return undefined; - } - let obj = {}; - obj.rank = parseInt(row.children[0].innerText.trim()); - obj.name = row.children[1].innerText.trim(); - obj.playerID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(row.children[1].querySelector('a').getAttribute('href')); - obj.tribe = row.children[2].innerText.trim(); - obj.tribeID = 0; - if (obj.tribe) { - obj.tribeID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(row.children[2].querySelector('a').getAttribute('href')); - } - obj.score = parseInt(row.children[3].innerText.trim().replace(/\./g, '')); - obj.date = row.children[4].innerText.trim(); - return obj; + 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 = $c1259165cf39ac5b$export$2e2bcd8739ae039(row.children[1].querySelector('a').getAttribute('href')); + obj.tribe = row.children[2].innerText.trim(); + obj.tribeID = 0; + if (obj.tribe) obj.tribeID = $c1259165cf39ac5b$export$2e2bcd8739ae039(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); + 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; + return result; } - } - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); + 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; + } +} + + +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); }); - }; - const $2fc800f8b49602de97b5533286d99e3b$var$translations = { +}; + + +const $f659e5b8e7f45afe$var$translations = { pl_PL: { - date: 'Data', - newTribe: 'Nowe plemię', - oldTribe: 'Poprzednie plemię', - joinedAt: 'Dołączył', - dailyGrowth: 'Dzienny przyrost', - bestRank: 'Najlepszy ranking', - mostPoints: 'Najwięcej punktów', - mostVillages: 'Najwięcej wiosek', - oldName: 'Poprzedni nick', - newName: 'Nowy nick', - playerServers: "Serwery gracza", - inADayBestScores: "Dzienne rankingi", - unitsDefeatedWhileAttacking: 'Jako atakujący', - unitsDefeatedWhileDefending: 'Jako obrońca', - unitsDefeatedWhileSupporting: 'Jako wspierający', - resourcesPlundered: 'Sfarmione surowce', - villagesPlundered: 'Splądrowane wioski', - resourcesGathered: 'Zebrane surowce', - villagesConquered: 'Podbite wioski', - exportedVillages: 'Wyeksportowane wioski', - tribeChanges: 'Zmiany plemion', - action: { - linkToTWHelp: 'Akta gracza (TWHelp)', - showTribeChanges: 'Pokaż zmiany plemion', - showEnnoblements: 'Pokaż przejęcia', - exportVillages: 'Wyeksportuj wioski', - showHistory: 'Pokaż historię' - } + date: 'Data', + newTribe: 'Nowe plemię', + oldTribe: 'Poprzednie plemię', + joinedAt: 'Dołączył', + dailyGrowth: 'Dzienny przyrost', + bestRank: 'Najlepszy ranking', + mostPoints: 'Najwięcej punktów', + mostVillages: 'Najwięcej wiosek', + oldName: 'Poprzedni nick', + newName: 'Nowy nick', + playerServers: `Serwery gracza`, + inADayBestScores: `Dzienne rankingi`, + unitsDefeatedWhileAttacking: 'Jako atakujący', + unitsDefeatedWhileDefending: 'Jako obrońca', + unitsDefeatedWhileSupporting: 'Jako wspierający', + resourcesPlundered: 'Sfarmione surowce', + villagesPlundered: 'Splądrowane wioski', + resourcesGathered: 'Zebrane surowce', + villagesConquered: 'Podbite wioski', + exportedVillages: 'Wyeksportowane wioski', + tribeChanges: 'Zmiany plemion', + action: { + linkToTWHelp: 'Akta gracza (TWHelp)', + showTribeChanges: 'Pokaż zmiany plemion', + showEnnoblements: 'Pokaż przejęcia', + exportVillages: 'Wyeksportuj wioski', + showHistory: 'Pokaż historię' + } }, en_DK: { - date: 'Date', - newTribe: 'New tribe', - oldTribe: 'Old tribe', - joinedAt: 'Joined at', - dailyGrowth: 'Daily growth', - bestRank: 'Best rank', - mostPoints: 'Most points', - mostVillages: 'Most villages', - oldName: 'Old name', - newName: 'New name', - playerServers: "Player's servers", - inADayBestScores: "'In a day' best scores", - unitsDefeatedWhileAttacking: 'Units defeated while attacking', - unitsDefeatedWhileDefending: 'Units defeated while defending', - unitsDefeatedWhileSupporting: 'Units defeated while supporting', - resourcesPlundered: 'Resources plundered', - villagesPlundered: 'Villages plundered', - resourcesGathered: 'Resources gathered', - villagesConquered: 'Villages conquered', - exportedVillages: 'Exported villages', - tribeChanges: 'Tribe changes', - action: { - linkToTWHelp: 'User file (TWHelp)', - showTribeChanges: 'Show tribe changes', - showEnnoblements: 'Show ennoblements', - exportVillages: 'Export villages', - showHistory: 'Show history' - } + date: 'Date', + newTribe: 'New tribe', + oldTribe: 'Old tribe', + joinedAt: 'Joined at', + dailyGrowth: 'Daily growth', + bestRank: 'Best rank', + mostPoints: 'Most points', + mostVillages: 'Most villages', + oldName: 'Old name', + newName: 'New name', + playerServers: `Player's servers`, + inADayBestScores: `'In a day' best scores`, + unitsDefeatedWhileAttacking: 'Units defeated while attacking', + unitsDefeatedWhileDefending: 'Units defeated while defending', + unitsDefeatedWhileSupporting: 'Units defeated while supporting', + resourcesPlundered: 'Resources plundered', + villagesPlundered: 'Villages plundered', + resourcesGathered: 'Resources gathered', + villagesConquered: 'Villages conquered', + exportedVillages: 'Exported villages', + tribeChanges: 'Tribe changes', + action: { + linkToTWHelp: 'User file (TWHelp)', + showTribeChanges: 'Show tribe changes', + showEnnoblements: 'Show ennoblements', + exportVillages: 'Export villages', + showHistory: 'Show history' + } }, de_DE: { - date: 'Datum', - newTribe: 'Neuer Stamm', - oldTribe: 'Alter Stamm', - joinedAt: 'Beigetreten am', - dailyGrowth: 'Tägl. Wachstum', - bestRank: 'Bester Rang', - mostPoints: 'Meiste Punkte', - mostVillages: 'Meiste Dörfer', - oldName: 'Alter Name', - newName: 'Neuer Name', - playerServers: "Spieler Server", - inADayBestScores: "'An einem Tag' Bestwerte", - unitsDefeatedWhileAttacking: 'Besiegte Gegner als Angreifer', - unitsDefeatedWhileDefending: 'Besiegte Gegner als Verteidiger', - unitsDefeatedWhileSupporting: 'Besiegte Gegner als Unterstützer', - resourcesPlundered: 'Geplünderte Rohstoffe', - villagesPlundered: 'Geplünderte Dörfer', - resourcesGathered: 'Gesammelte Rohstoffe', - villagesConquered: 'Eroberte Dörfer', - exportedVillages: 'Exportierte Dörfer', - tribeChanges: 'Stammeswechsel', - action: { - linkToTWHelp: 'Spielerakte (TWHelp)', - showTribeChanges: 'Zeige Stammeswechsel', - showEnnoblements: 'Zeige Adelungen', - exportVillages: 'Dörfer exportieren', - showHistory: 'Zeige Verlauf' - } + date: 'Datum', + newTribe: 'Neuer Stamm', + oldTribe: 'Alter Stamm', + joinedAt: 'Beigetreten am', + dailyGrowth: 'Tägl. Wachstum', + bestRank: 'Bester Rang', + mostPoints: 'Meiste Punkte', + mostVillages: 'Meiste Dörfer', + oldName: 'Alter Name', + newName: 'Neuer Name', + playerServers: "Spieler Server", + inADayBestScores: "'An einem Tag' Bestwerte", + unitsDefeatedWhileAttacking: 'Besiegte Gegner als Angreifer', + unitsDefeatedWhileDefending: 'Besiegte Gegner als Verteidiger', + unitsDefeatedWhileSupporting: 'Besiegte Gegner als Unterstützer', + resourcesPlundered: 'Geplünderte Rohstoffe', + villagesPlundered: 'Geplünderte Dörfer', + resourcesGathered: 'Gesammelte Rohstoffe', + villagesConquered: 'Eroberte Dörfer', + exportedVillages: 'Exportierte Dörfer', + tribeChanges: 'Stammeswechsel', + action: { + linkToTWHelp: 'Spielerakte (TWHelp)', + showTribeChanges: 'Zeige Stammeswechsel', + showEnnoblements: 'Zeige Adelungen', + exportVillages: 'Dörfer exportieren', + showHistory: 'Zeige Verlauf' + } } - }; - var $2fc800f8b49602de97b5533286d99e3b$export$default = () => $2fc800f8b49602de97b5533286d99e3b$var$translations[window.game_data.locale] || $2fc800f8b49602de97b5533286d99e3b$var$translations.en_DK; - const $bd7f54d77d8feb330faa21d8dcd3f49c$var$translations = { +}; +var $f659e5b8e7f45afe$export$2e2bcd8739ae039 = ()=>$f659e5b8e7f45afe$var$translations[window.game_data.locale] || $f659e5b8e7f45afe$var$translations.en_DK +; + + +const $2889ee192ffdc307$var$translations = { pl_PL: { - title: "Dzisiejsze zmiany w statystykach", - points: 'Punkty', - rank: 'Ranking', - villages: 'Liczba wiosek', - members: 'Liczba członków', - oda: 'Pokonani przeciwnicy jako agresor', - odaRank: 'RA', - odd: 'Pokonani przeciwnicy jako obrońca', - oddRank: 'RO', - ods: 'Pokonani przeciwnicy jako wspierający', - odsRank: 'RW', - od: 'Pokonani przeciwnicy', - odRank: 'Pokonani przeciwnicy razem ranking' + title: `Dzisiejsze zmiany w statystykach`, + points: 'Punkty', + rank: 'Ranking', + villages: 'Liczba wiosek', + members: 'Liczba członków', + oda: 'Pokonani przeciwnicy jako agresor', + odaRank: 'RA', + odd: 'Pokonani przeciwnicy jako obrońca', + oddRank: 'RO', + ods: 'Pokonani przeciwnicy jako wspierający', + odsRank: 'RW', + od: 'Pokonani przeciwnicy', + odRank: 'Pokonani przeciwnicy razem ranking' }, en_DK: { - title: "Today's stat changes", - points: 'Points', - rank: 'Rank', - villages: 'Villages', - members: 'Members', - oda: 'ODA', - odaRank: 'ODA Rank', - odd: 'ODD', - oddRank: 'ODD Rank', - ods: 'ODS', - odsRank: 'ODS Rank', - od: 'OD', - odRank: 'OD Rank' + title: `Today's stat changes`, + points: 'Points', + rank: 'Rank', + villages: 'Villages', + members: 'Members', + oda: 'ODA', + odaRank: 'ODA Rank', + odd: 'ODD', + oddRank: 'ODD Rank', + ods: 'ODS', + odsRank: 'ODS Rank', + od: 'OD', + odRank: 'OD Rank' }, de_DE: { - title: "Heutige Werte Änderungen", - points: 'Punkte', - rank: 'Rang', - villages: 'Dörfer', - members: 'Mitglieder', - oda: 'BGA', - odaRank: 'BGA Rang', - odd: 'BGD', - oddRank: 'BGD Rang', - ods: 'BGS', - odsRank: 'BGS Rang', - od: 'BP', - odRank: 'BP Rang' + title: `Heutige Werte Änderungen`, + points: 'Punkte', + rank: 'Rang', + villages: 'Dörfer', + members: 'Mitglieder', + oda: 'BGA', + odaRank: 'BGA Rang', + odd: 'BGD', + oddRank: 'BGD Rang', + ods: 'BGS', + odsRank: 'BGS Rang', + od: 'BP', + odRank: 'BP Rang' } - }; - var $bd7f54d77d8feb330faa21d8dcd3f49c$export$default = () => $bd7f54d77d8feb330faa21d8dcd3f49c$var$translations[window.game_data.locale] || $bd7f54d77d8feb330faa21d8dcd3f49c$var$translations.en_DK; - var $1002d61f190d89c6caf1c54a7873c0c5$export$default = v => v === undefined || v === null; - const $ba543a25c46eef82c43f0acea9c36e26$var$translations = $bd7f54d77d8feb330faa21d8dcd3f49c$export$default(); - const $ba543a25c46eef82c43f0acea9c36e26$var$getTodaysStatsTdStyle = value => { +}; +var $2889ee192ffdc307$export$2e2bcd8739ae039 = ()=>$2889ee192ffdc307$var$translations[window.game_data.locale] || $2889ee192ffdc307$var$translations.en_DK +; + + +var $3ff10df18b2a4d54$export$2e2bcd8739ae039 = (v)=>v === undefined || v === null +; + + +const $9f98bc5d5b389b94$var$translations = $2889ee192ffdc307$export$2e2bcd8739ae039(); +const $9f98bc5d5b389b94$var$getTodaysStatsTdStyle = (value)=>{ const statIncreaseStyle = 'color: #000; background-color: #0f0'; const statDecreaseStyle = 'color: #000; background-color: #f00'; const defaultStyle = 'color: #000; background-color: #808080'; return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle; - }; - var $ba543a25c46eef82c43f0acea9c36e26$export$default = (container, stats) => { +}; +var $9f98bc5d5b389b94$export$2e2bcd8739ae039 = (container, stats)=>{ let todaysStats = container.querySelector('#todaysStats'); if (!todaysStats) { - todaysStats = document.createElement('div'); - todaysStats.id = 'todaysStats'; - todaysStats.width = '100%'; - container.prepend(todaysStats); + todaysStats = document.createElement('div'); + todaysStats.id = 'todaysStats'; + todaysStats.width = '100%'; + container.prepend(todaysStats); } - const player = !$1002d61f190d89c6caf1c54a7873c0c5$export$default(stats.rankSup); - todaysStats.innerHTML = ("\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(!player ? ("\n \n \n ") : '', "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(player ? ("\n \n \n \n \n \n \n ") : '', "\n \n \n \n \n \n \n \n \n \n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.title, "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.points, ":\n \n ").concat(Math.abs(stats.points).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.rank, ":\n \n ").concat(Math.abs(stats.rank), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.villages, ":\n \n ").concat(Math.abs(stats.villages).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.members, ":\n \n ").concat(Math.abs(stats.members), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.oda, ":\n \n ").concat(Math.abs(stats.scoreAtt).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odaRank, ":\n \n ").concat(Math.abs(stats.rankAtt), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odd, ":\n \n ").concat(Math.abs(stats.scoreDef).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.oddRank, ":\n \n ").concat(Math.abs(stats.rankDef), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.ods, ":\n \n ").concat(Math.abs(stats.scoreSup).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odsRank, ":\n \n ").concat(Math.abs(stats.rankSup), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.od, ":\n \n ").concat(Math.abs(stats.scoreTotal).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odRank, ":\n \n ").concat(Math.abs(stats.rankTotal), "\n
\n "); - }; - const $6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR = '.popup_box'; - const $6412e4d8722bc72f55b3c382206290ed$export$default = function showPopup() { - let {html, id, title} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - Dialog.show(id, ("

").concat(title, "

") + html); - const popup = document.querySelector($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR); + const player = !$3ff10df18b2a4d54$export$2e2bcd8739ae039(stats.rankSup); + todaysStats.innerHTML = ` + + + + + + + + + + + + + + + + + + ${!player ? ` + + + ` : ''} + + + + + + + + + + + + + + + + + ${player ? ` + + + + + + + ` : ''} + + + + + + + + + +
+ ${$9f98bc5d5b389b94$var$translations.title} +
+ ${$9f98bc5d5b389b94$var$translations.points}: + + ${Math.abs(stats.points).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.rank}: + + ${Math.abs(stats.rank)} +
+ ${$9f98bc5d5b389b94$var$translations.villages}: + + ${Math.abs(stats.villages).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.members}: + + ${Math.abs(stats.members)} +
+ ${$9f98bc5d5b389b94$var$translations.oda}: + + ${Math.abs(stats.scoreAtt).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.odaRank}: + + ${Math.abs(stats.rankAtt)} +
+ ${$9f98bc5d5b389b94$var$translations.odd}: + + ${Math.abs(stats.scoreDef).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.oddRank}: + + ${Math.abs(stats.rankDef)} +
+ ${$9f98bc5d5b389b94$var$translations.ods}: + + ${Math.abs(stats.scoreSup).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.odsRank}: + + ${Math.abs(stats.rankSup)} +
+ ${$9f98bc5d5b389b94$var$translations.od}: + + ${Math.abs(stats.scoreTotal).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.odRank}: + + ${Math.abs(stats.rankTotal)} +
+ `; +}; + + +const $20636c16dad2c11a$export$21d4bed11ae27f0b = '.popup_box'; +const $20636c16dad2c11a$var$showPopup = ({ html: html , id: id , title: title } = { +})=>{ + Dialog.show(id, `

${title}

` + html); + const popup = document.querySelector($20636c16dad2c11a$export$21d4bed11ae27f0b); if (popup) { - popup.style.width = 'auto'; - popup.style.maxWidth = '1000px'; + popup.style.width = 'auto'; + popup.style.maxWidth = '1000px'; } - }; - const $3f288d82e5e972d85d580f8ed66de51e$var$translations = { +}; +var $20636c16dad2c11a$export$2e2bcd8739ae039 = $20636c16dad2c11a$var$showPopup; + + +const $37476051484be03e$var$translations = { pl_PL: { - date: 'Data', - newOwner: 'Nowy właściciel', - oldOwner: 'Poprzedni właściciel', - village: 'Wioska', - title: 'Przejęcia' + date: 'Data', + newOwner: 'Nowy właściciel', + oldOwner: 'Poprzedni właściciel', + village: 'Wioska', + title: 'Przejęcia' }, en_DK: { - date: 'Date', - newOwner: 'New owner', - oldOwner: 'Old owner', - village: 'Village', - title: 'Ennoblements' + date: 'Date', + newOwner: 'New owner', + oldOwner: 'Old owner', + village: 'Village', + title: 'Ennoblements' }, de_DE: { - date: 'Datum', - newOwner: 'Neuer Besitzer', - oldOwner: 'Alter Besitzer', - village: 'Dorf', - title: 'Adelungen' + date: 'Datum', + newOwner: 'Neuer Besitzer', + oldOwner: 'Alter Besitzer', + village: 'Dorf', + title: 'Adelungen' } - }; - var $3f288d82e5e972d85d580f8ed66de51e$export$default = () => $3f288d82e5e972d85d580f8ed66de51e$var$translations[window.game_data.locale] || $3f288d82e5e972d85d580f8ed66de51e$var$translations.en_DK; - const $13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE = 'data-page'; - const $13593d6974cda38c64f44fff96e2987d$export$getContainerStyles = () => { +}; +var $37476051484be03e$export$2e2bcd8739ae039 = ()=>$37476051484be03e$var$translations[window.game_data.locale] || $37476051484be03e$var$translations.en_DK +; + + +const $57fe06ddde7dcd5d$var$ATTRIBUTE = 'data-page'; +const $57fe06ddde7dcd5d$export$8947b11ec08f5f9d = ()=>{ return 'display: flex; flex-direction: row; flex-wrap: wrap;'; - }; - const $13593d6974cda38c64f44fff96e2987d$export$setPage = function setPage(el) { - let page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - if (!el instanceof HTMLElement) { - throw new Error('Expected HTMLElement as the first argument'); - } +}; +const $57fe06ddde7dcd5d$export$5e830c5f3cd8a610 = (el, page = 1)=>{ + if (!el instanceof HTMLElement) throw new Error('Expected HTMLElement as the first argument'); page = parseInt(page); - if (typeof page !== 'number' || isNaN(page)) { - throw new Error('Expected number or string as the second argument'); - } - el.setAttribute($13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE, page + ''); - }; - const $13593d6974cda38c64f44fff96e2987d$export$getPage = el => { - if (!el instanceof HTMLElement) { - return 0; - } - return parseInt(el.getAttribute($13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE)); - }; - const $13593d6974cda38c64f44fff96e2987d$export$calcNumberOfPages = (total, limit) => { - if (typeof total !== 'number') { - throw new Error('Expected number as the first argument'); - } - if (typeof limit !== 'number') { - throw new Error('Expected number as the second argument'); - } + if (typeof page !== 'number' || isNaN(page)) throw new Error('Expected number or string as the second argument'); + el.setAttribute($57fe06ddde7dcd5d$var$ATTRIBUTE, page + ''); +}; +const $57fe06ddde7dcd5d$export$c2a6433281518c91 = (el)=>{ + if (!el instanceof HTMLElement) return 0; + return parseInt(el.getAttribute($57fe06ddde7dcd5d$var$ATTRIBUTE)); +}; +const $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4 = (total, limit)=>{ + if (typeof total !== 'number') throw new Error('Expected number as the first argument'); + if (typeof limit !== 'number') throw new Error('Expected number as the second argument'); return total > 0 ? Math.ceil(total / limit) : 1; - }; - const $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems = function generatePaginationItems() { - let {total, limit, marginRight = 3, currentPage = 0} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - const numberOfPages = $13593d6974cda38c64f44fff96e2987d$export$calcNumberOfPages(total, limit); +}; +const $57fe06ddde7dcd5d$export$58a42a77c71a7de0 = ({ total: total , limit: limit , marginRight: marginRight = 3 , currentPage: currentPage = 0 , } = { +})=>{ + const numberOfPages = $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4(total, limit); const paginationItems = []; - for (let i = 1; i <= numberOfPages; i++) { - if (i === currentPage) { - paginationItems.push((">").concat(i, "<")); - } else { - paginationItems.push(("").concat(i, "")); - } - } + for(let i = 1; i <= numberOfPages; i++)if (i === currentPage) paginationItems.push(`>${i}<`); + else paginationItems.push(`${i}`); return paginationItems; - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$inTZ = function inTZ() { - let d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); - let tz = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'UTC'; +}; + + + +const $ca7593443ca49f96$export$17201263355d526a = (d = new Date(), tz = 'UTC')=>{ return new Date(new Date(d).toLocaleString('en-US', { - timeZone: tz + timeZone: tz })); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate = (date, options) => { +}; +const $ca7593443ca49f96$export$6a20e8f386d90a85 = (d = new Date())=>{ + return $ca7593443ca49f96$export$17201263355d526a(d); +}; +const $ca7593443ca49f96$export$3ae94a2503e890a1 = (date, options)=>{ return new Date(date).toLocaleDateString(undefined, options ? options : { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_ally', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_player', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_village', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() { - let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; - let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; - const continent = 'K' + String(y)[0] + String(x)[0]; - return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => { - return Math.round(distance * baseSpeed); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => { - return image_base + img; - }; - const $88f173be92b23fde3128f694442fe0ce$var$PAGINATION_CONTAINER_ID = 'ennoblementsPagination'; - const $88f173be92b23fde3128f694442fe0ce$var$translations = $3f288d82e5e972d85d580f8ed66de51e$export$default(); - const $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd = (player, tribe) => { - if (player) { - return ("").concat(player.name, " (").concat(tribe ? ("").concat(tribe.tag, "") : '-', ")"); - } - return '-'; - }; - var $88f173be92b23fde3128f694442fe0ce$export$default = function (e, ennoblements) { - let {limit = 0, currentPage = 1, onPageChange = () => {}} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const paginationItems = $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems({ - total: ennoblements.total, - limit, - currentPage - }); - const html = ("\n
\n ").concat(paginationItems.join(''), "\n
\n \n \n \n \n \n \n \n \n ").concat(ennoblements.items.map(ennoblement => { - let rowHTML = '' + (""); - if (ennoblement.village) { - rowHTML += (""); - } else { - rowHTML += ''; - } - rowHTML += $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd(ennoblement.newOwner, ennoblement.newOwnerTribe); - rowHTML += $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd(ennoblement.oldOwner, ennoblement.oldOwnerTribe); - return rowHTML + ''; - }).join(''), "\n \n
\n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.date, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.village, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.newOwner, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.oldOwner, "\n
").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(ennoblement.ennobledAt), "").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "-
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $88f173be92b23fde3128f694442fe0ce$var$translations.title, - id: 'ennoblements', - html - }); - document.querySelectorAll('#' + $88f173be92b23fde3128f694442fe0ce$var$PAGINATION_CONTAINER_ID + ' a').forEach(el => { - el.addEventListener('click', onPageChange); - }); - }; - function $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyNumber) { - if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { - return NaN; - } - var number = Number(dirtyNumber); - if (isNaN(number)) { - return number; - } - return number < 0 ? Math.ceil(number) : Math.floor(number); - } - function $5a91e85e34da2364b77064ee2dfe41c1$export$default(required, args) { - if (args.length < required) { - throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); - } - } - /** - * @name toDate - * @category Common Helpers - * @summary Convert the given argument to an instance of Date. - * - * @description - * Convert the given argument to an instance of Date. - * - * If the argument is an instance of Date, the function returns its clone. - * - * If the argument is a number, it is treated as a timestamp. - * - * If the argument is none of the above, the function returns Invalid Date. - * - * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. - * - * @param {Date|Number} argument - the value to convert - * @returns {Date} the parsed date in the local time zone - * @throws {TypeError} 1 argument required - * - * @example - * // Clone the date: - * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) - * //=> Tue Feb 11 2014 11:30:30 - * - * @example - * // Convert the timestamp to date: - * const result = toDate(1392098430000) - * //=> Tue Feb 11 2014 11:30:30 - */ - function $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(argument) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var argStr = Object.prototype.toString.call(argument); - // Clone the date - if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') { - // Prevent the date to lose the milliseconds when passed to new Date() in IE10 - return new Date(argument.getTime()); - } else if (typeof argument === 'number' || argStr === '[object Number]') { - return new Date(argument); - } else { - if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { - // eslint-disable-next-line no-console - console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); - // eslint-disable-next-line no-console - console.warn(new Error().stack); - } - return new Date(NaN); - } - } - /** - * @name addDays - * @category Day Helpers - * @summary Add the specified number of days to the given date. - * - * @description - * Add the specified number of days to the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} - the new date with the days added - * @throws {TypeError} - 2 arguments required - * - * @example - * // Add 10 days to 1 September 2014: - * const result = addDays(new Date(2014, 8, 1), 10) - * //=> Thu Sep 11 2014 00:00:00 - */ - function $486b1417f4d79b07b40554dadb813aab$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); - if (isNaN(amount)) { - return new Date(NaN); - } - if (!amount) { - // If 0 days, no-op to avoid changing times in the hour before end of DST - return date; - } - date.setDate(date.getDate() + amount); - return date; - } - /** - * @name subDays - * @category Day Helpers - * @summary Subtract the specified number of days from the given date. - * - * @description - * Subtract the specified number of days from the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the days subtracted - * @throws {TypeError} 2 arguments required - * - * @example - * // Subtract 10 days from 1 September 2014: - * const result = subDays(new Date(2014, 8, 1), 10) - * //=> Fri Aug 22 2014 00:00:00 - */ - function $8aaca82a2a35fba6a35717d6cb66c145$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); - return $486b1417f4d79b07b40554dadb813aab$export$default(dirtyDate, -amount); - } - const $efebb7057c86e617f557a3e13c581a7b$var$translations = { - 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' - }, - de_DE: { - title: "Verlauf", - date: 'Datum', - tribe: 'Stamm', - points: 'Punkte', - villages: 'Dörfer', - members: 'Mitglieder', - oda: 'BGA', - odd: 'BGV', - ods: 'BGS', - od: 'BP' - } - }; - var $efebb7057c86e617f557a3e13c581a7b$export$default = () => $efebb7057c86e617f557a3e13c581a7b$var$translations[window.game_data.locale] || $efebb7057c86e617f557a3e13c581a7b$var$translations.en_DK; - const $534d870a885ff77d9d644b38d467ea92$var$PAGINATION_CONTAINER_ID = 'historyPagination'; - const $534d870a885ff77d9d644b38d467ea92$var$translations = $efebb7057c86e617f557a3e13c581a7b$export$default(); - const $534d870a885ff77d9d644b38d467ea92$var$addMathSymbol = v => { - return v > 0 ? '+' + v : v; - }; - var $534d870a885ff77d9d644b38d467ea92$export$default = function (e, history, daily) { - let {currentPage = 1, limit = 0, onPageChange = () => {}, tribe = false} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - const paginationItems = $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems({ - total: history.total, - limit, - currentPage - }); - const html = ("\n
\n ").concat(paginationItems.join(''), "\n
\n \n \n \n \n ").concat(tribe ? '' : (""), "\n \n \n ").concat(tribe ? ("") : '', "\n \n \n \n ").concat(tribe ? '' : (""), "\n \n ").concat(history.items.map(history => { - const subtracted = $8aaca82a2a35fba6a35717d6cb66c145$export$default(new Date(history.createDate), 1).toISOString().split('.')[0] + 'Z'; - const stats = daily.items.find(stats => { - return stats.createDate === subtracted; - }); - let rowHTML = '' + (""); - if (!tribe && history.tribe) { - rowHTML += (""); - } else if (!tribe) { - rowHTML += ''; - } - rowHTML += ("\n \n \n ").concat(!tribe ? '' : ("\n \n "), "\n \n \n \n ").concat(tribe ? '' : ("\n \n "), "\n ") + ''; - return rowHTML; - }).join(''), "\n \n
\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.date, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.tribe, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.points, "\n \n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.villages, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.members, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.od, "\n \n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.oda, "\n \n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.odd, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.ods, "
").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(history.createDate, { year: 'numeric', month: '2-digit', - day: '2-digit' - }), "").concat(history.tribe.tag, "-\n ").concat(history.points.toLocaleString(), " (").concat(history.rank, ")\n \n ").concat(history.totalVillages.toLocaleString(), "\n \n ").concat(history.totalMembers, "\n \n ").concat(history.scoreTotal.toLocaleString(), " (").concat(history.rankTotal, ")\n \n ").concat(history.scoreAtt.toLocaleString(), " (").concat(history.rankAtt, ")\n \n ").concat(history.scoreDef.toLocaleString(), " (").concat(history.rankDef, ")\n \n ").concat(history.scoreSup.toLocaleString(), " (").concat(history.rankSup, ")\n
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $534d870a885ff77d9d644b38d467ea92$var$translations.title, - id: 'history', - html + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' }); - document.querySelectorAll('#' + $534d870a885ff77d9d644b38d467ea92$var$PAGINATION_CONTAINER_ID + ' a').forEach(el => { - el.addEventListener('click', onPageChange); +}; + + +const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_ally', + id: id }); - }; - var $2c214da878bfd00b78a9d6405e51d5be$export$default = str => { +}; +const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_player', + id: id + }); +}; +const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_village', + id: id + }); +}; +const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{ + const continent = 'K' + String(y)[0] + String(x)[0]; + return `${n} (${x}|${y}) ${continent}`; +}; +const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{ + return Math.round(distance * baseSpeed); +}; +const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{ + return image_base + img; +}; + + +const $5d71a092de4ef3d0$var$PAGINATION_CONTAINER_ID = 'ennoblementsPagination'; +const $5d71a092de4ef3d0$var$translations = $37476051484be03e$export$2e2bcd8739ae039(); +const $5d71a092de4ef3d0$var$getPlayerTd = (player, tribe)=>{ + if (player) return `${player.name} (${tribe ? `${tribe.tag}` : '-'})`; + return '-'; +}; +var $5d71a092de4ef3d0$export$2e2bcd8739ae039 = (e, ennoblements, { limit: limit = 0 , currentPage: currentPage = 1 , onPageChange: onPageChange = ()=>{ +} } = { +})=>{ + const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0({ + total: ennoblements.total, + limit: limit, + currentPage: currentPage + }); + const html = ` +
+ ${paginationItems.join('')} +
+ + + + + + + + + ${ennoblements.items.map((ennoblement)=>{ + let rowHTML = '' + ``; + if (ennoblement.village) rowHTML += ``; + else rowHTML += ''; + rowHTML += $5d71a092de4ef3d0$var$getPlayerTd(ennoblement.newOwner, ennoblement.newOwnerTribe); + rowHTML += $5d71a092de4ef3d0$var$getPlayerTd(ennoblement.oldOwner, ennoblement.oldOwnerTribe); + return rowHTML + ''; + }).join('')} + +
+ ${$5d71a092de4ef3d0$var$translations.date} + + ${$5d71a092de4ef3d0$var$translations.village} + + ${$5d71a092de4ef3d0$var$translations.newOwner} + + ${$5d71a092de4ef3d0$var$translations.oldOwner} +
${$ca7593443ca49f96$export$3ae94a2503e890a1(ennoblement.ennobledAt)}${$db1dd60e5389e0c9$export$c6f77ec2633c38b1(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y)}-
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $5d71a092de4ef3d0$var$translations.title, + id: 'ennoblements', + html: html + }); + document.querySelectorAll('#' + $5d71a092de4ef3d0$var$PAGINATION_CONTAINER_ID + ' a').forEach((el)=>{ + el.addEventListener('click', onPageChange); + }); +}; + + +function $70df79293cae00de$export$2e2bcd8739ae039(dirtyNumber) { + if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) return NaN; + var number = Number(dirtyNumber); + if (isNaN(number)) return number; + return number < 0 ? Math.ceil(number) : Math.floor(number); +} + + + +function $14473fdd7558f621$export$2e2bcd8739ae039(required, args) { + if (args.length < required) throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); +} + + +function $cef0ab118a15bdd4$export$2e2bcd8739ae039(argument) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var argStr = Object.prototype.toString.call(argument); // Clone the date + if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()); + else if (typeof argument === 'number' || argStr === '[object Number]') return new Date(argument); + else { + if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { + // eslint-disable-next-line no-console + console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console + console.warn(new Error().stack); + } + return new Date(NaN); + } +} + + + +function $a858d2abc30fc0ee$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); + if (isNaN(amount)) return new Date(NaN); + if (!amount) // If 0 days, no-op to avoid changing times in the hour before end of DST + return date; + date.setDate(date.getDate() + amount); + return date; +} + + + +function $a1ee77722e069569$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); + return $a858d2abc30fc0ee$export$2e2bcd8739ae039(dirtyDate, -amount); +} + + +const $4b6b30b3791bc0bb$var$translations = { + 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' + }, + de_DE: { + title: `Verlauf`, + date: 'Datum', + tribe: 'Stamm', + points: 'Punkte', + villages: 'Dörfer', + members: 'Mitglieder', + oda: 'BGA', + odd: 'BGV', + ods: 'BGS', + od: 'BP' + } +}; +var $4b6b30b3791bc0bb$export$2e2bcd8739ae039 = ()=>$4b6b30b3791bc0bb$var$translations[window.game_data.locale] || $4b6b30b3791bc0bb$var$translations.en_DK +; + + + + + + +const $8b71c6d7781a0268$var$PAGINATION_CONTAINER_ID = 'historyPagination'; +const $8b71c6d7781a0268$var$translations = $4b6b30b3791bc0bb$export$2e2bcd8739ae039(); +const $8b71c6d7781a0268$var$addMathSymbol = (v)=>{ + return v > 0 ? '+' + v : v; +}; +var $8b71c6d7781a0268$export$2e2bcd8739ae039 = (e, history, daily, { currentPage: currentPage = 1 , limit: limit = 0 , onPageChange: onPageChange = ()=>{ +} , tribe: tribe = false } = { +})=>{ + const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0({ + total: history.total, + limit: limit, + currentPage: currentPage + }); + const html = ` +
+ ${paginationItems.join('')} +
+ + + + + ${tribe ? '' : ``} + + + ${tribe ? `` : ''} + + + + ${tribe ? '' : ``} + + ${history.items.map((history)=>{ + const subtracted = $a1ee77722e069569$export$2e2bcd8739ae039(new Date(history.createDate), 1).toISOString().split('.')[0] + 'Z'; + const stats = daily.items.find((stats)=>{ + return stats.createDate === subtracted; + }); + let rowHTML = '' + ``; + if (!tribe && history.tribe) rowHTML += ``; + else if (!tribe) rowHTML += ''; + rowHTML += ` + + + ${!tribe ? '' : ` + + `} + + + + ${tribe ? '' : ` + + `} + ` + ''; + return rowHTML; + }).join('')} + +
+ ${$8b71c6d7781a0268$var$translations.date} + ${$8b71c6d7781a0268$var$translations.tribe} + ${$8b71c6d7781a0268$var$translations.points} + + ${$8b71c6d7781a0268$var$translations.villages} + ${$8b71c6d7781a0268$var$translations.members} + ${$8b71c6d7781a0268$var$translations.od} + + ${$8b71c6d7781a0268$var$translations.oda} + + ${$8b71c6d7781a0268$var$translations.odd} + ${$8b71c6d7781a0268$var$translations.ods}
${$ca7593443ca49f96$export$3ae94a2503e890a1(history.createDate, { + year: 'numeric', + month: '2-digit', + day: '2-digit' + })}${history.tribe.tag}- + ${history.points.toLocaleString()} (${history.rank}) + + ${history.totalVillages.toLocaleString()} + + ${history.totalMembers} + + ${history.scoreTotal.toLocaleString()} (${history.rankTotal}) + + ${history.scoreAtt.toLocaleString()} (${history.rankAtt}) + + ${history.scoreDef.toLocaleString()} (${history.rankDef}) + + ${history.scoreSup.toLocaleString()} (${history.rankSup}) +
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $8b71c6d7781a0268$var$translations.title, + id: 'history', + html: html + }); + document.querySelectorAll('#' + $8b71c6d7781a0268$var$PAGINATION_CONTAINER_ID + ' a').forEach((el)=>{ + el.addEventListener('click', onPageChange); + }); +}; + + +var $9fff48f01cc1b164$export$2e2bcd8739ae039 = (str)=>{ const arr = str.split(/[_-]/); let newStr = ''; - for (let i = 1; i < arr.length; i++) { - newStr += arr[i].charAt(0).toUpperCase() + arr[i].slice(1); - } + for(let i = 1; i < arr.length; i++)newStr += arr[i].charAt(0).toUpperCase() + arr[i].slice(1); return arr[0] + newStr; - }; - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - var $1f14636dcc53402ba1b7661b758ca0aa$export$default = function () { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return server.substr(0, 2); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL = 'tribalwarshelp.com'; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage = function buildURLToServerPage() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return ("https://").concat(version, ".").concat($d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL, "/server/").concat(server); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile = function buildURLToProfile() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; - return ("").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL = function buildPlayerURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'player'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL = function buildTribeURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'tribe'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL = function buildVillageURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'village'); - }; - const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) { - let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; +}; + + + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +var $5b3edb3901c8177a$export$2e2bcd8739ae039 = (server = '')=>server.substr(0, 2) +; + + + + +const $f3b273bd698d94bc$export$ca6dda5263526f75 = 'tribalwarshelp.com'; +const $f3b273bd698d94bc$export$5d5850cc00079a21 = (version = '', server = '')=>{ + return `https://${version}.${$f3b273bd698d94bc$export$ca6dda5263526f75}/server/${server}`; +}; +const $f3b273bd698d94bc$export$a4588dcb88e3f9db = (version = '', server = '', id = 0, entity = '')=>{ + return `${$f3b273bd698d94bc$export$5d5850cc00079a21(version, server)}/${entity}/${id}`; +}; +const $f3b273bd698d94bc$export$3df7b9b48f38839e = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'player'); +}; +const $f3b273bd698d94bc$export$7345792e21cfc457 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'tribe'); +}; +const $f3b273bd698d94bc$export$e537a41a0fc85cc5 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'village'); +}; + + +const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = (key, d = { +})=>{ const json = localStorage.getItem(key); let obj = d; - if (json) { - obj = JSON.parse(json); - } + if (json) obj = JSON.parse(json); return obj; - }; - const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => { +}; +const $362bcac9fa8968ec$export$8a8216c44337cd5 = (key, payload)=>{ localStorage.setItem(key, JSON.stringify(payload)); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$_excluded = ["name"]; - function $a7d299cc0551ebe181191433d12c53c5$var$_objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = $a7d299cc0551ebe181191433d12c53c5$var$_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]; - } +}; + + +// ==UserScript== +// @name Extended player profile +// @namespace https://github.com/tribalwarshelp/scripts +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js +// @version 1.2.2 +// @description Extended player profile +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=info_player* +// @grant none +// @run-at document-end +// ==/UserScript== +const $94e64df422a76a31$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $94e64df422a76a31$var$VERSION = $5b3edb3901c8177a$export$2e2bcd8739ae039($94e64df422a76a31$var$SERVER); +let $94e64df422a76a31$var$PLAYER_ID = $c1259165cf39ac5b$export$2e2bcd8739ae039(window.location.search); +const $94e64df422a76a31$var$CURRENT_PLAYER_ID = parseInt(game_data.player.id); +if (isNaN($94e64df422a76a31$var$PLAYER_ID) || !$94e64df422a76a31$var$PLAYER_ID) $94e64df422a76a31$var$PLAYER_ID = $94e64df422a76a31$var$CURRENT_PLAYER_ID; +const $94e64df422a76a31$var$LOCAL_STORAGE_KEY = 'kichiyaki_extended_player_profile' + $94e64df422a76a31$var$PLAYER_ID; +const $94e64df422a76a31$var$PLAYER_QUERY = ` + query player($server: String!, $id: Int!, $limit: Int, $sort: [String!], $filter: DailyPlayerStatsFilter) { + player(server: $server, id: $id) { + id + name + bestRank + bestRankAt + mostPoints + mostPointsAt + mostVillages + mostVillagesAt + servers + joinedAt + nameChanges { + oldName + newName + changeDate + } + dailyGrowth + } + dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) { + items { + rank + rankAtt + rankDef + rankSup + rankTotal + points + scoreAtt + scoreAtt + scoreDef + scoreSup + scoreTotal + villages + } + } } - return target; - } - function $a7d299cc0551ebe181191433d12c53c5$var$_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 - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js - // @version 1.2.2 - // @description Extended player profile - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=info_player* - // @grant none - // @run-at document-end - // ==/UserScript== - const $a7d299cc0551ebe181191433d12c53c5$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $a7d299cc0551ebe181191433d12c53c5$var$VERSION = $1f14636dcc53402ba1b7661b758ca0aa$export$default($a7d299cc0551ebe181191433d12c53c5$var$SERVER); - let $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(window.location.search); - const $a7d299cc0551ebe181191433d12c53c5$var$CURRENT_PLAYER_ID = parseInt(game_data.player.id); - if (isNaN($a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID) || !$a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID) { - $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID = $a7d299cc0551ebe181191433d12c53c5$var$CURRENT_PLAYER_ID; - } - const $a7d299cc0551ebe181191433d12c53c5$var$LOCAL_STORAGE_KEY = 'kichiyaki_extended_player_profile' + $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID; - const $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_QUERY = "\n query player($server: String!, $id: Int!, $limit: Int, $sort: [String!], $filter: DailyPlayerStatsFilter) {\n player(server: $server, id: $id) {\n id\n name\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n servers\n joinedAt\n nameChanges {\n oldName\n newName\n changeDate\n }\n dailyGrowth\n }\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n rank\n rankAtt\n rankDef\n rankSup\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n }\n }\n }\n"; - const $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_QUERY = "\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) {\n total\n items {\n oldTribe {\n id\n tag\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n"; - const $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID = 'tribeChangesPagination'; - const $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_PER_PAGE = 15; - const $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY = "\nquery playerHistoryAndPlayerDailyStats($server: String!,\n $playerHistoryFilter: PlayerHistoryFilter!,\n $dailyPlayerStatsFilter: DailyPlayerStatsFilter!,\n $limit: Int,\n $offset: Int,\n $sort: [String!]) {\n playerHistory(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $playerHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreSup\n rankSup\n scoreTotal\n rankTotal\n tribe {\n id\n tag\n }\n createDate\n }\n }\n dailyPlayerStats(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $dailyPlayerStatsFilter) {\n items {\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n"; - const $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_HISTORY_PER_PAGE = 15; - const $a7d299cc0551ebe181191433d12c53c5$var$ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, 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"; - const $a7d299cc0551ebe181191433d12c53c5$var$ENNOBLEMENTS_PER_PAGE = 15; - const $a7d299cc0551ebe181191433d12c53c5$var$profileInfoTBody = document.querySelector('#player_info > tbody'); - const $a7d299cc0551ebe181191433d12c53c5$var$actionContainer = $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID === $a7d299cc0551ebe181191433d12c53c5$var$CURRENT_PLAYER_ID ? $a7d299cc0551ebe181191433d12c53c5$var$profileInfoTBody : document.querySelector('#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody'); - const $a7d299cc0551ebe181191433d12c53c5$var$otherElementContainer = document.querySelector($a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID === $a7d299cc0551ebe181191433d12c53c5$var$CURRENT_PLAYER_ID ? '#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)' : '#content_value > table > tbody > tr > td:nth-child(2)'); - const $a7d299cc0551ebe181191433d12c53c5$var$translations = $2fc800f8b49602de97b5533286d99e3b$export$default(); - const $a7d299cc0551ebe181191433d12c53c5$var$loadDataFromCache = () => { - return $3d935538f644f492fe681e00121114a4$export$getItem($a7d299cc0551ebe181191433d12c53c5$var$LOCAL_STORAGE_KEY); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$cachePlayerData = function cachePlayerData() { - let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - $3d935538f644f492fe681e00121114a4$export$setItem($a7d299cc0551ebe181191433d12c53c5$var$LOCAL_STORAGE_KEY, data); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$loadInADayData = async function loadInADayData(type) { - let _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, {name} = _ref, rest = $a7d299cc0551ebe181191433d12c53c5$var$_objectWithoutProperties(_ref, $a7d299cc0551ebe181191433d12c53c5$var$_excluded); - 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 $eb13db7801b83919c60cd8b3e0a8a6d8$export$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 $a7d299cc0551ebe181191433d12c53c5$var$loadData = async () => { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_QUERY, - variables: { - server: $a7d299cc0551ebe181191433d12c53c5$var$SERVER, - id: $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID, - limit: 1, - sort: ['createDate DESC'], - filter: { - playerID: [$a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID] +`; +const $94e64df422a76a31$var$TRIBE_CHANGES_QUERY = ` + query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) { + tribeChanges(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) { + total + items { + oldTribe { + id + tag + } + newTribe { + id + tag + } + createdAt } } + } +`; +const $94e64df422a76a31$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID = 'tribeChangesPagination'; +const $94e64df422a76a31$var$TRIBE_CHANGES_PER_PAGE = 15; +const $94e64df422a76a31$var$PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY = ` +query playerHistoryAndPlayerDailyStats($server: String!, + $playerHistoryFilter: PlayerHistoryFilter!, + $dailyPlayerStatsFilter: DailyPlayerStatsFilter!, + $limit: Int, + $offset: Int, + $sort: [String!]) { + playerHistory(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $playerHistoryFilter) { + total + items { + totalVillages + points + rank + scoreAtt + rankAtt + scoreDef + rankDef + scoreSup + rankSup + scoreTotal + rankTotal + tribe { + id + tag + } + createDate + } + } + dailyPlayerStats(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $dailyPlayerStatsFilter) { + items { + points + scoreAtt + scoreAtt + scoreDef + scoreSup + scoreTotal + villages + createDate + } + } +} +`; +const $94e64df422a76a31$var$PLAYER_HISTORY_PER_PAGE = 15; +const $94e64df422a76a31$var$ENNOBLEMENTS_QUERY = ` + query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) { + ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) { + total + items { + village { + id + name + x + y + } + oldOwner { + id + name + } + oldOwnerTribe { + id + tag + } + newOwner { + id + name + } + newOwnerTribe { + id + tag + } + ennobledAt + } + } + } +`; +const $94e64df422a76a31$var$ENNOBLEMENTS_PER_PAGE = 15; +const $94e64df422a76a31$var$profileInfoTBody = document.querySelector('#player_info > tbody'); +const $94e64df422a76a31$var$actionContainer = $94e64df422a76a31$var$PLAYER_ID === $94e64df422a76a31$var$CURRENT_PLAYER_ID ? $94e64df422a76a31$var$profileInfoTBody : document.querySelector('#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody'); +const $94e64df422a76a31$var$otherElementContainer = document.querySelector($94e64df422a76a31$var$PLAYER_ID === $94e64df422a76a31$var$CURRENT_PLAYER_ID ? '#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)' : '#content_value > table > tbody > tr > td:nth-child(2)'); +const $94e64df422a76a31$var$translations = $f659e5b8e7f45afe$export$2e2bcd8739ae039(); +const $94e64df422a76a31$var$loadDataFromCache = ()=>{ + return $362bcac9fa8968ec$export$f92dfeb71e9bb569($94e64df422a76a31$var$LOCAL_STORAGE_KEY); +}; +const $94e64df422a76a31$var$cachePlayerData = (data = { +})=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($94e64df422a76a31$var$LOCAL_STORAGE_KEY, data); +}; +const $94e64df422a76a31$var$loadInADayData = async (type, _param = { +})=>{ + var { name: name } = _param, rest = $f26b272b176e5476$export$2e2bcd8739ae039(_param, ["name"]); + try { + const response = await fetch(TribalWars.buildURL('', { + screen: 'ranking', + mode: 'in_a_day', + type: type, + name: name ? name : '' + })); + const html = await response.text(); + if (!html) throw new Error(); + const res = new $417def0de2fa2238$export$2e2bcd8739ae039(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 $94e64df422a76a31$var$loadData = async ()=>{ + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $94e64df422a76a31$var$PLAYER_QUERY, + variables: { + server: $94e64df422a76a31$var$SERVER, + id: $94e64df422a76a31$var$PLAYER_ID, + limit: 1, + sort: [ + 'createDate DESC' + ], + filter: { + playerID: [ + $94e64df422a76a31$var$PLAYER_ID + ] + } + } }); if (data.player) { - const inADay = {}; - const filter = { - name: data.player.name, - playerID: data.player.id - }; - for (let type of ['kill_att', 'kill_def', 'kill_sup', 'loot_res', 'loot_vil', 'scavenge', 'conquer']) { - inADay[$2c214da878bfd00b78a9d6405e51d5be$export$default(type.replace('kill_', ''))] = await $a7d299cc0551ebe181191433d12c53c5$var$loadInADayData(type, filter); - } - data.player.inADay = inADay; + const inADay = { + }; + const filter = { + name: data.player.name, + playerID: data.player.id + }; + for (let type of [ + 'kill_att', + 'kill_def', + 'kill_sup', + 'loot_res', + 'loot_vil', + 'scavenge', + 'conquer', + ])inADay[$9fff48f01cc1b164$export$2e2bcd8739ae039(type.replace('kill_', ''))] = await $94e64df422a76a31$var$loadInADayData(type, filter); + data.player.inADay = inADay; } - $a7d299cc0551ebe181191433d12c53c5$var$cachePlayerData(data); + $94e64df422a76a31$var$cachePlayerData(data); return data; - }; - const $a7d299cc0551ebe181191433d12c53c5$var$renderTr = _ref2 => { - let {title, data, id} = _ref2; +}; +const $94e64df422a76a31$var$renderTr = ({ title: title , data: data , id: id })=>{ let tr = document.querySelector('#' + id); if (!tr) { - tr = document.createElement('tr'); - tr.id = id; - tr.appendChild(document.createElement('td')); - tr.appendChild(document.createElement('td')); - $a7d299cc0551ebe181191433d12c53c5$var$profileInfoTBody.append(tr); + tr = document.createElement('tr'); + tr.id = id; + tr.appendChild(document.createElement('td')); + tr.appendChild(document.createElement('td')); + $94e64df422a76a31$var$profileInfoTBody.append(tr); } tr.children[0].innerHTML = title; tr.children[1].innerHTML = data; - }; - const $a7d299cc0551ebe181191433d12c53c5$var$renderPlayerServers = player => { +}; +const $94e64df422a76a31$var$renderPlayerServers = (player)=>{ let playerServers = document.querySelector('#playerServers'); if (!playerServers) { - playerServers = document.createElement('table'); - playerServers.id = 'playerServers'; - playerServers.classList.add('vis'); - playerServers.width = '100%'; - playerServers.innerHTML = ("\n \n \n \n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.playerServers, "\n \n \n \n \n \n \n \n "); - $a7d299cc0551ebe181191433d12c53c5$var$otherElementContainer.prepend(playerServers); + playerServers = document.createElement('table'); + playerServers.id = 'playerServers'; + playerServers.classList.add('vis'); + playerServers.width = '100%'; + playerServers.innerHTML = ` + + + + ${$94e64df422a76a31$var$translations.playerServers} + + + + + + + + `; + $94e64df422a76a31$var$otherElementContainer.prepend(playerServers); } - playerServers.querySelector('td').innerHTML = player.servers.sort().map(server => ("").concat(server, "")).join(''); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$renderPlayerOtherNames = player => { + playerServers.querySelector('td').innerHTML = player.servers.sort().map((server)=>`${server}` + ).join(''); +}; +const $94e64df422a76a31$var$renderPlayerOtherNames = (player)=>{ let playerOtherNames = document.querySelector('#playerOtherNames'); if (!playerOtherNames) { - playerOtherNames = document.createElement('div'); - playerOtherNames.id = 'playerOtherNames'; - playerOtherNames.width = '100%'; - $a7d299cc0551ebe181191433d12c53c5$var$otherElementContainer.prepend(playerOtherNames); + playerOtherNames = document.createElement('div'); + playerOtherNames.id = 'playerOtherNames'; + playerOtherNames.width = '100%'; + $94e64df422a76a31$var$otherElementContainer.prepend(playerOtherNames); } - playerOtherNames.innerHTML = ("\n \n \n \n \n \n \n \n ").concat(player.nameChanges.map(nameChange => { - return ("\n \n \n \n \n \n "); - }).join(''), "\n \n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.oldName, "\n \n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.newName, "\n \n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.date, "\n
\n ").concat(nameChange.oldName, "\n \n ").concat(nameChange.newName, "\n \n ").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(nameChange.changeDate, { - year: 'numeric', - month: '2-digit', - day: '2-digit' - }), "\n
\n "); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$renderInADayRanks = player => { + playerOtherNames.innerHTML = ` + + + + + + + + ${player.nameChanges.map((nameChange)=>{ + return ` + + + + + + `; + }).join('')} + +
+ ${$94e64df422a76a31$var$translations.oldName} + + ${$94e64df422a76a31$var$translations.newName} + + ${$94e64df422a76a31$var$translations.date} +
+ ${nameChange.oldName} + + ${nameChange.newName} + + ${$ca7593443ca49f96$export$3ae94a2503e890a1(nameChange.changeDate, { + year: 'numeric', + month: '2-digit', + day: '2-digit' + })} +
+ `; +}; +const $94e64df422a76a31$var$renderInADayRanks = (player)=>{ let inADayRanks = document.querySelector('#inADayRanks'); if (!inADayRanks) { - inADayRanks = document.createElement('div'); - inADayRanks.id = 'inADayRanks'; - inADayRanks.width = '100%'; - $a7d299cc0551ebe181191433d12c53c5$var$otherElementContainer.prepend(inADayRanks); + inADayRanks = document.createElement('div'); + inADayRanks.id = 'inADayRanks'; + inADayRanks.width = '100%'; + $94e64df422a76a31$var$otherElementContainer.prepend(inADayRanks); } - inADayRanks.innerHTML = ("\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.inADayBestScores, "\n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.unitsDefeatedWhileAttacking, "\n \n ").concat(player.inADay.att.score.toLocaleString(), " (").concat(player.inADay.att.rank, ".)\n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.unitsDefeatedWhileDefending, "\n \n ").concat(player.inADay.def.score.toLocaleString(), " (").concat(player.inADay.def.rank, ".)\n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.unitsDefeatedWhileSupporting, "\n \n ").concat(player.inADay.sup.score.toLocaleString(), " (").concat(player.inADay.sup.rank, ".)\n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.resourcesPlundered, "\n \n ").concat(player.inADay.lootRes.score.toLocaleString(), " (").concat(player.inADay.lootRes.rank, ".)\n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.villagesPlundered, "\n \n ").concat(player.inADay.lootVil.score.toLocaleString(), " (").concat(player.inADay.lootVil.rank, ".)\n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.resourcesGathered, "\n \n ").concat(player.inADay.scavenge.score.toLocaleString(), " (").concat(player.inADay.scavenge.rank, ".)\n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.villagesConquered, "\n \n ").concat(player.inADay.conquer.score.toLocaleString(), " (").concat(player.inADay.conquer.rank, ".)\n
\n "); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$render = _ref3 => { - let {player, dailyPlayerStats} = _ref3; - [{ - title: $a7d299cc0551ebe181191433d12c53c5$var$translations.joinedAt + ':', - data: $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(player.joinedAt), - id: 'joined_at' - }, { - title: $a7d299cc0551ebe181191433d12c53c5$var$translations.dailyGrowth + ':', - data: player.dailyGrowth.toLocaleString(), - id: 'dg' - }, { - title: $a7d299cc0551ebe181191433d12c53c5$var$translations.bestRank + ':', - data: player.bestRank + ' ' + ("(").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(player.bestRankAt), ")"), - id: 'best_rank' - }, { - title: $a7d299cc0551ebe181191433d12c53c5$var$translations.mostPoints + ':', - data: player.mostPoints.toLocaleString() + ' ' + ("(").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(player.mostPointsAt), ")"), - id: 'most_points' - }, { - title: $a7d299cc0551ebe181191433d12c53c5$var$translations.mostVillages + ':', - data: player.mostVillages + ' ' + ("(").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(player.mostVillagesAt), ")"), - id: 'most_villages' - }].forEach(data => { - $a7d299cc0551ebe181191433d12c53c5$var$renderTr(data); + inADayRanks.innerHTML = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ${$94e64df422a76a31$var$translations.inADayBestScores} +
+ ${$94e64df422a76a31$var$translations.unitsDefeatedWhileAttacking} + + ${player.inADay.att.score.toLocaleString()} (${player.inADay.att.rank}.) +
+ ${$94e64df422a76a31$var$translations.unitsDefeatedWhileDefending} + + ${player.inADay.def.score.toLocaleString()} (${player.inADay.def.rank}.) +
+ ${$94e64df422a76a31$var$translations.unitsDefeatedWhileSupporting} + + ${player.inADay.sup.score.toLocaleString()} (${player.inADay.sup.rank}.) +
+ ${$94e64df422a76a31$var$translations.resourcesPlundered} + + ${player.inADay.lootRes.score.toLocaleString()} (${player.inADay.lootRes.rank}.) +
+ ${$94e64df422a76a31$var$translations.villagesPlundered} + + ${player.inADay.lootVil.score.toLocaleString()} (${player.inADay.lootVil.rank}.) +
+ ${$94e64df422a76a31$var$translations.resourcesGathered} + + ${player.inADay.scavenge.score.toLocaleString()} (${player.inADay.scavenge.rank}.) +
+ ${$94e64df422a76a31$var$translations.villagesConquered} + + ${player.inADay.conquer.score.toLocaleString()} (${player.inADay.conquer.rank}.) +
+ `; +}; +const $94e64df422a76a31$var$render = ({ player: player , dailyPlayerStats: dailyPlayerStats })=>{ + [ + { + title: $94e64df422a76a31$var$translations.joinedAt + ':', + data: $ca7593443ca49f96$export$3ae94a2503e890a1(player.joinedAt), + id: 'joined_at' + }, + { + title: $94e64df422a76a31$var$translations.dailyGrowth + ':', + data: player.dailyGrowth.toLocaleString(), + id: 'dg' + }, + { + title: $94e64df422a76a31$var$translations.bestRank + ':', + data: player.bestRank + ' ' + `(${$ca7593443ca49f96$export$3ae94a2503e890a1(player.bestRankAt)})`, + id: 'best_rank' + }, + { + title: $94e64df422a76a31$var$translations.mostPoints + ':', + data: player.mostPoints.toLocaleString() + ' ' + `(${$ca7593443ca49f96$export$3ae94a2503e890a1(player.mostPointsAt)})`, + id: 'most_points' + }, + { + title: $94e64df422a76a31$var$translations.mostVillages + ':', + data: player.mostVillages + ' ' + `(${$ca7593443ca49f96$export$3ae94a2503e890a1(player.mostVillagesAt)})`, + id: 'most_villages' + }, + ].forEach((data)=>{ + $94e64df422a76a31$var$renderTr(data); }); - $a7d299cc0551ebe181191433d12c53c5$var$renderInADayRanks(player); - if (dailyPlayerStats && dailyPlayerStats.items.length > 0) { - $ba543a25c46eef82c43f0acea9c36e26$export$default($a7d299cc0551ebe181191433d12c53c5$var$otherElementContainer, dailyPlayerStats.items[0]); - } - if (player.nameChanges.length > 0) { - $a7d299cc0551ebe181191433d12c53c5$var$renderPlayerOtherNames(player); - } - if (player.servers.length > 0) { - $a7d299cc0551ebe181191433d12c53c5$var$renderPlayerServers(player); - } - }; - const $a7d299cc0551ebe181191433d12c53c5$var$renderTribeChanges = (e, currentPage, tribeChanges) => { - const paginationItems = $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems({ - total: tribeChanges.total, - limit: $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_PER_PAGE, - currentPage + $94e64df422a76a31$var$renderInADayRanks(player); + if (dailyPlayerStats && dailyPlayerStats.items.length > 0) $9f98bc5d5b389b94$export$2e2bcd8739ae039($94e64df422a76a31$var$otherElementContainer, dailyPlayerStats.items[0]); + if (player.nameChanges.length > 0) $94e64df422a76a31$var$renderPlayerOtherNames(player); + if (player.servers.length > 0) $94e64df422a76a31$var$renderPlayerServers(player); +}; +const $94e64df422a76a31$var$renderTribeChanges = (e, currentPage, tribeChanges)=>{ + const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0({ + total: tribeChanges.total, + limit: $94e64df422a76a31$var$TRIBE_CHANGES_PER_PAGE, + currentPage: currentPage }); - const html = ("\n
\n ").concat(paginationItems.join(''), "\n
\n \n \n \n \n \n \n \n ").concat(tribeChanges.items.map(tribeChange => { - let rowHTML = '' + (""); - if (tribeChange.newTribe) { - rowHTML += (""); - } else { - rowHTML += ''; - } - if (tribeChange.oldTribe) { - rowHTML += (""); - } else { - rowHTML += ''; - } - return rowHTML + ''; - }).join(''), "\n \n
\n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.date, "\n \n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.newTribe, "\n \n ").concat($a7d299cc0551ebe181191433d12c53c5$var$translations.oldTribe, "\n
").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(tribeChange.createdAt), "").concat(tribeChange.newTribe.tag, "-").concat(tribeChange.oldTribe.tag, "-
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $a7d299cc0551ebe181191433d12c53c5$var$translations.tribeChanges, - id: 'tribeChanges', - html + const html = ` +
+ ${paginationItems.join('')} +
+ + + + + + + + ${tribeChanges.items.map((tribeChange)=>{ + let rowHTML = '' + ``; + if (tribeChange.newTribe) rowHTML += ``; + else rowHTML += ''; + if (tribeChange.oldTribe) rowHTML += ``; + else rowHTML += ''; + return rowHTML + ''; + }).join('')} + +
+ ${$94e64df422a76a31$var$translations.date} + + ${$94e64df422a76a31$var$translations.newTribe} + + ${$94e64df422a76a31$var$translations.oldTribe} +
${$ca7593443ca49f96$export$3ae94a2503e890a1(tribeChange.createdAt)}${tribeChange.newTribe.tag}-${tribeChange.oldTribe.tag}-
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $94e64df422a76a31$var$translations.tribeChanges, + id: 'tribeChanges', + html: html }); - document.querySelectorAll('#' + $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a').forEach(el => { - el.addEventListener('click', $a7d299cc0551ebe181191433d12c53c5$var$handleShowTribeChangesButtonClick); + document.querySelectorAll('#' + $94e64df422a76a31$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a').forEach((el)=>{ + el.addEventListener('click', $94e64df422a76a31$var$handleShowTribeChangesButtonClick); }); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$handleShowTribeChangesButtonClick = async e => { +}; +const $94e64df422a76a31$var$handleShowTribeChangesButtonClick = async (e)=>{ e.preventDefault(); - const page = $13593d6974cda38c64f44fff96e2987d$export$getPage(e.target); + const page = $57fe06ddde7dcd5d$export$c2a6433281518c91(e.target); if (!isNaN(page)) { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_QUERY, - variables: { - filter: { - playerID: [$a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID] - }, - sort: ['createdAt DESC'], - offset: $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_PER_PAGE * (page - 1), - limit: $a7d299cc0551ebe181191433d12c53c5$var$TRIBE_CHANGES_PER_PAGE, - server: $a7d299cc0551ebe181191433d12c53c5$var$SERVER - } - }); - $a7d299cc0551ebe181191433d12c53c5$var$renderTribeChanges(e, page, data.tribeChanges); - } - }; - const $a7d299cc0551ebe181191433d12c53c5$var$handleShowPlayerHistoryClick = async e => { - e.preventDefault(); - const page = $13593d6974cda38c64f44fff96e2987d$export$getPage(e.target); - if (!isNaN(page)) { - try { - const filter = { - playerID: [$a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID] - }; - const {playerHistory, dailyPlayerStats} = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY, - variables: { - server: $a7d299cc0551ebe181191433d12c53c5$var$SERVER, - playerHistoryFilter: filter, - offset: $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_HISTORY_PER_PAGE * (page - 1), - limit: $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_HISTORY_PER_PAGE, - sort: ['createDate DESC'], - dailyPlayerStatsFilter: filter - } - }); - $534d870a885ff77d9d644b38d467ea92$export$default(e, playerHistory, dailyPlayerStats, { - currentPage: page, - limit: $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_HISTORY_PER_PAGE, - onPageChange: $a7d299cc0551ebe181191433d12c53c5$var$handleShowPlayerHistoryClick, - tribe: false - }); - } catch (error) { - console.log('couldnt load player history', error); - } - } - }; - const $a7d299cc0551ebe181191433d12c53c5$var$handleShowPlayerEnnoblementsClick = async e => { - e.preventDefault(); - const page = $13593d6974cda38c64f44fff96e2987d$export$getPage(e.target); - if (!isNaN(page)) { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $a7d299cc0551ebe181191433d12c53c5$var$ENNOBLEMENTS_QUERY, - variables: { - filter: { - or: { - oldOwnerID: [$a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID], - newOwnerID: [$a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID] + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $94e64df422a76a31$var$TRIBE_CHANGES_QUERY, + variables: { + filter: { + playerID: [ + $94e64df422a76a31$var$PLAYER_ID + ] + }, + sort: [ + 'createdAt DESC' + ], + offset: $94e64df422a76a31$var$TRIBE_CHANGES_PER_PAGE * (page - 1), + limit: $94e64df422a76a31$var$TRIBE_CHANGES_PER_PAGE, + server: $94e64df422a76a31$var$SERVER } - }, - offset: $a7d299cc0551ebe181191433d12c53c5$var$ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: $a7d299cc0551ebe181191433d12c53c5$var$ENNOBLEMENTS_PER_PAGE, - sort: ['ennobledAt DESC'], - server: $a7d299cc0551ebe181191433d12c53c5$var$SERVER - } - }); - $88f173be92b23fde3128f694442fe0ce$export$default(e, data.ennoblements, { - currentPage: page, - limit: $a7d299cc0551ebe181191433d12c53c5$var$ENNOBLEMENTS_PER_PAGE, - onPageChange: $a7d299cc0551ebe181191433d12c53c5$var$handleShowPlayerEnnoblementsClick - }); + }); + $94e64df422a76a31$var$renderTribeChanges(e, page, data.tribeChanges); } - }; - const $a7d299cc0551ebe181191433d12c53c5$var$handleExportPlayerVillagesButtonClick = e => { +}; +const $94e64df422a76a31$var$handleShowPlayerHistoryClick = async (e)=>{ e.preventDefault(); - Dialog.show($a7d299cc0551ebe181191433d12c53c5$var$translations.exportedVillages, ("")); - }; - const $a7d299cc0551ebe181191433d12c53c5$var$wrapAction = action => { + const page = $57fe06ddde7dcd5d$export$c2a6433281518c91(e.target); + if (!isNaN(page)) try { + const filter = { + playerID: [ + $94e64df422a76a31$var$PLAYER_ID + ] + }; + const { playerHistory: playerHistory , dailyPlayerStats: dailyPlayerStats } = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $94e64df422a76a31$var$PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY, + variables: { + server: $94e64df422a76a31$var$SERVER, + playerHistoryFilter: filter, + offset: $94e64df422a76a31$var$PLAYER_HISTORY_PER_PAGE * (page - 1), + limit: $94e64df422a76a31$var$PLAYER_HISTORY_PER_PAGE, + sort: [ + 'createDate DESC' + ], + dailyPlayerStatsFilter: filter + } + }); + $8b71c6d7781a0268$export$2e2bcd8739ae039(e, playerHistory, dailyPlayerStats, { + currentPage: page, + limit: $94e64df422a76a31$var$PLAYER_HISTORY_PER_PAGE, + onPageChange: $94e64df422a76a31$var$handleShowPlayerHistoryClick, + tribe: false + }); + } catch (error) { + console.log('couldnt load player history', error); + } +}; +const $94e64df422a76a31$var$handleShowPlayerEnnoblementsClick = async (e)=>{ + e.preventDefault(); + const page = $57fe06ddde7dcd5d$export$c2a6433281518c91(e.target); + if (!isNaN(page)) { + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $94e64df422a76a31$var$ENNOBLEMENTS_QUERY, + variables: { + filter: { + or: { + oldOwnerID: [ + $94e64df422a76a31$var$PLAYER_ID + ], + newOwnerID: [ + $94e64df422a76a31$var$PLAYER_ID + ] + } + }, + offset: $94e64df422a76a31$var$ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: $94e64df422a76a31$var$ENNOBLEMENTS_PER_PAGE, + sort: [ + 'ennobledAt DESC' + ], + server: $94e64df422a76a31$var$SERVER + } + }); + $5d71a092de4ef3d0$export$2e2bcd8739ae039(e, data.ennoblements, { + currentPage: page, + limit: $94e64df422a76a31$var$ENNOBLEMENTS_PER_PAGE, + onPageChange: $94e64df422a76a31$var$handleShowPlayerEnnoblementsClick + }); + } +}; +const $94e64df422a76a31$var$handleExportPlayerVillagesButtonClick = (e)=>{ + e.preventDefault(); + Dialog.show($94e64df422a76a31$var$translations.exportedVillages, ``); +}; +const $94e64df422a76a31$var$wrapAction = (action)=>{ const actionWrapperTd = document.createElement('td'); actionWrapperTd.colSpan = '2'; actionWrapperTd.append(action); const actionWrapperTr = document.createElement('tr'); actionWrapperTr.appendChild(actionWrapperTd); return actionWrapperTr; - }; - const $a7d299cc0551ebe181191433d12c53c5$var$renderActions = () => { +}; +const $94e64df422a76a31$var$renderActions = ()=>{ const linkToTWHelp = document.createElement('a'); - linkToTWHelp.href = $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL($a7d299cc0551ebe181191433d12c53c5$var$VERSION, $a7d299cc0551ebe181191433d12c53c5$var$SERVER, $a7d299cc0551ebe181191433d12c53c5$var$PLAYER_ID); - linkToTWHelp.innerHTML = $a7d299cc0551ebe181191433d12c53c5$var$translations.action.linkToTWHelp; - $a7d299cc0551ebe181191433d12c53c5$var$actionContainer.appendChild($a7d299cc0551ebe181191433d12c53c5$var$wrapAction(linkToTWHelp)); + linkToTWHelp.href = $f3b273bd698d94bc$export$3df7b9b48f38839e($94e64df422a76a31$var$VERSION, $94e64df422a76a31$var$SERVER, $94e64df422a76a31$var$PLAYER_ID); + linkToTWHelp.innerHTML = $94e64df422a76a31$var$translations.action.linkToTWHelp; + $94e64df422a76a31$var$actionContainer.appendChild($94e64df422a76a31$var$wrapAction(linkToTWHelp)); const showTribeChanges = document.createElement('a'); showTribeChanges.href = '#'; - $13593d6974cda38c64f44fff96e2987d$export$setPage(showTribeChanges, '1'); - showTribeChanges.innerHTML = $a7d299cc0551ebe181191433d12c53c5$var$translations.action.showTribeChanges; - showTribeChanges.addEventListener('click', $a7d299cc0551ebe181191433d12c53c5$var$handleShowTribeChangesButtonClick); - $a7d299cc0551ebe181191433d12c53c5$var$actionContainer.appendChild($a7d299cc0551ebe181191433d12c53c5$var$wrapAction(showTribeChanges)); + $57fe06ddde7dcd5d$export$5e830c5f3cd8a610(showTribeChanges, '1'); + showTribeChanges.innerHTML = $94e64df422a76a31$var$translations.action.showTribeChanges; + showTribeChanges.addEventListener('click', $94e64df422a76a31$var$handleShowTribeChangesButtonClick); + $94e64df422a76a31$var$actionContainer.appendChild($94e64df422a76a31$var$wrapAction(showTribeChanges)); const showPlayerHistory = document.createElement('a'); showPlayerHistory.href = '#'; - $13593d6974cda38c64f44fff96e2987d$export$setPage(showPlayerHistory, '1'); - showPlayerHistory.innerHTML = $a7d299cc0551ebe181191433d12c53c5$var$translations.action.showHistory; - showPlayerHistory.addEventListener('click', $a7d299cc0551ebe181191433d12c53c5$var$handleShowPlayerHistoryClick); - $a7d299cc0551ebe181191433d12c53c5$var$actionContainer.appendChild($a7d299cc0551ebe181191433d12c53c5$var$wrapAction(showPlayerHistory)); + $57fe06ddde7dcd5d$export$5e830c5f3cd8a610(showPlayerHistory, '1'); + showPlayerHistory.innerHTML = $94e64df422a76a31$var$translations.action.showHistory; + showPlayerHistory.addEventListener('click', $94e64df422a76a31$var$handleShowPlayerHistoryClick); + $94e64df422a76a31$var$actionContainer.appendChild($94e64df422a76a31$var$wrapAction(showPlayerHistory)); const showEnnoblements = document.createElement('a'); showEnnoblements.href = '#'; - $13593d6974cda38c64f44fff96e2987d$export$setPage(showEnnoblements, '1'); - showEnnoblements.innerHTML = $a7d299cc0551ebe181191433d12c53c5$var$translations.action.showEnnoblements; - showEnnoblements.addEventListener('click', $a7d299cc0551ebe181191433d12c53c5$var$handleShowPlayerEnnoblementsClick); - $a7d299cc0551ebe181191433d12c53c5$var$actionContainer.appendChild($a7d299cc0551ebe181191433d12c53c5$var$wrapAction(showEnnoblements)); + $57fe06ddde7dcd5d$export$5e830c5f3cd8a610(showEnnoblements, '1'); + showEnnoblements.innerHTML = $94e64df422a76a31$var$translations.action.showEnnoblements; + showEnnoblements.addEventListener('click', $94e64df422a76a31$var$handleShowPlayerEnnoblementsClick); + $94e64df422a76a31$var$actionContainer.appendChild($94e64df422a76a31$var$wrapAction(showEnnoblements)); const exportPlayerVillages = document.createElement('a'); exportPlayerVillages.href = '#'; - exportPlayerVillages.innerHTML = $a7d299cc0551ebe181191433d12c53c5$var$translations.action.exportVillages; - exportPlayerVillages.addEventListener('click', $a7d299cc0551ebe181191433d12c53c5$var$handleExportPlayerVillagesButtonClick); - $a7d299cc0551ebe181191433d12c53c5$var$actionContainer.appendChild($a7d299cc0551ebe181191433d12c53c5$var$wrapAction(exportPlayerVillages)); - }; - (async function () { + exportPlayerVillages.innerHTML = $94e64df422a76a31$var$translations.action.exportVillages; + exportPlayerVillages.addEventListener('click', $94e64df422a76a31$var$handleExportPlayerVillagesButtonClick); + $94e64df422a76a31$var$actionContainer.appendChild($94e64df422a76a31$var$wrapAction(exportPlayerVillages)); +}; +(async function() { try { - $a7d299cc0551ebe181191433d12c53c5$var$renderActions(); - const dataFromCache = $a7d299cc0551ebe181191433d12c53c5$var$loadDataFromCache(); - if (dataFromCache && dataFromCache.player) { - $a7d299cc0551ebe181191433d12c53c5$var$render(dataFromCache); - } - const dataFromAPI = await $a7d299cc0551ebe181191433d12c53c5$var$loadData(); - if (dataFromAPI) { - $a7d299cc0551ebe181191433d12c53c5$var$render(dataFromAPI); - } + $94e64df422a76a31$var$renderActions(); + const dataFromCache = $94e64df422a76a31$var$loadDataFromCache(); + if (dataFromCache && dataFromCache.player) $94e64df422a76a31$var$render(dataFromCache); + const dataFromAPI = await $94e64df422a76a31$var$loadData(); + if (dataFromAPI) $94e64df422a76a31$var$render(dataFromAPI); } catch (error) { - console.log('extended player profile', error); + console.log('extended player profile', error); } - })(); })(); +})(); diff --git a/dist/extendedTribeProfile.js b/dist/extendedTribeProfile.js index 869b5ed..3e53a3e 100644 --- a/dist/extendedTribeProfile.js +++ b/dist/extendedTribeProfile.js @@ -1,1358 +1,1680 @@ (function () { - function $5a91e85e34da2364b77064ee2dfe41c1$export$default(required, args) { - if (args.length < required) { - throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); - } - } - /** - * @name toDate - * @category Common Helpers - * @summary Convert the given argument to an instance of Date. - * - * @description - * Convert the given argument to an instance of Date. - * - * If the argument is an instance of Date, the function returns its clone. - * - * If the argument is a number, it is treated as a timestamp. - * - * If the argument is none of the above, the function returns Invalid Date. - * - * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. - * - * @param {Date|Number} argument - the value to convert - * @returns {Date} the parsed date in the local time zone - * @throws {TypeError} 1 argument required - * - * @example - * // Clone the date: - * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) - * //=> Tue Feb 11 2014 11:30:30 - * - * @example - * // Convert the timestamp to date: - * const result = toDate(1392098430000) - * //=> Tue Feb 11 2014 11:30:30 - */ - function $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(argument) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var argStr = Object.prototype.toString.call(argument); - // Clone the date - if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') { - // Prevent the date to lose the milliseconds when passed to new Date() in IE10 - return new Date(argument.getTime()); - } else if (typeof argument === 'number' || argStr === '[object Number]') { - return new Date(argument); - } else { - if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { - // eslint-disable-next-line no-console - console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); - // eslint-disable-next-line no-console - console.warn(new Error().stack); - } - return new Date(NaN); - } - } - /** - * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. - * They usually appear for dates that denote time before the timezones were introduced - * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 - * and GMT+01:00:00 after that date) - * - * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, - * which would lead to incorrect calculations. - * - * This function returns the timezone offset in milliseconds that takes seconds in account. - */ - function $1e5dc0a4c535edd7892d441879eac816$export$default(date) { - var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); - utcDate.setUTCFullYear(date.getFullYear()); - return date.getTime() - utcDate.getTime(); - } - /** - * @name startOfDay - * @category Day Helpers - * @summary Return the start of a day for the given date. - * - * @description - * Return the start of a day for the given date. - * The result will be in the local timezone. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the original date - * @returns {Date} the start of a day - * @throws {TypeError} 1 argument required - * - * @example - * // The start of a day for 2 September 2014 11:55:00: - * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Tue Sep 02 2014 00:00:00 - */ - function $6f4c0ded0c1cab4632b54a519fb996bf$export$default(dirtyDate) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); - date.setHours(0, 0, 0, 0); - return date; - } - var $b3273b12dbf4d592ed4ac54eca4b836c$var$MILLISECONDS_IN_DAY = 86400000; - /** - * @name differenceInCalendarDays - * @category Day Helpers - * @summary Get the number of calendar days between the given dates. - * - * @description - * Get the number of calendar days between the given dates. This means that the times are removed - * from the dates and then the difference in days is calculated. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of calendar days - * @throws {TypeError} 2 arguments required - * - * @example - * // How many calendar days are between - * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? - * const result = differenceInCalendarDays( - * new Date(2012, 6, 2, 0, 0), - * new Date(2011, 6, 2, 23, 0) - * ) - * //=> 366 - * // How many calendar days are between - * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00? - * const result = differenceInCalendarDays( - * new Date(2011, 6, 3, 0, 1), - * new Date(2011, 6, 2, 23, 59) - * ) - * //=> 1 - */ - function $b3273b12dbf4d592ed4ac54eca4b836c$export$default(dirtyDateLeft, dirtyDateRight) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var startOfDayLeft = $6f4c0ded0c1cab4632b54a519fb996bf$export$default(dirtyDateLeft); - var startOfDayRight = $6f4c0ded0c1cab4632b54a519fb996bf$export$default(dirtyDateRight); - var timestampLeft = startOfDayLeft.getTime() - $1e5dc0a4c535edd7892d441879eac816$export$default(startOfDayLeft); - var timestampRight = startOfDayRight.getTime() - $1e5dc0a4c535edd7892d441879eac816$export$default(startOfDayRight); - // Round the number of days to the nearest integer - // because the number of milliseconds in a day is not constant - // (e.g. it's different in the day of the daylight saving time clock shift) - return Math.round((timestampLeft - timestampRight) / $b3273b12dbf4d592ed4ac54eca4b836c$var$MILLISECONDS_IN_DAY); - } - // Like `compareAsc` but uses local time not UTC, which is needed - // for accurate equality comparisons of UTC timestamps that end up - // having the same representation in local time, e.g. one hour before - // DST ends vs. the instant that DST ends. - function $c9f3457d5d95bb01e6c13491aea1fd03$var$compareLocalAsc(dateLeft, dateRight) { - var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds(); - if (diff < 0) { - return -1; - } else if (diff > 0) { - return 1; - } else { - return diff; - } - } - /** - * @name differenceInDays - * @category Day Helpers - * @summary Get the number of full days between the given dates. - * - * @description - * Get the number of full day periods between two dates. Fractional days are - * truncated towards zero. - * - * One "full day" is the distance between a local time in one day to the same - * local time on the next or previous day. A full day can sometimes be less than - * or more than 24 hours if a daylight savings change happens between two dates. - * - * To ignore DST and only measure exact 24-hour periods, use this instead: - * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`. - * - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of full days according to the local timezone - * @throws {TypeError} 2 arguments required - * - * @example - * // How many full days are between - * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? - * const result = differenceInDays( - * new Date(2012, 6, 2, 0, 0), - * new Date(2011, 6, 2, 23, 0) - * ) - * //=> 365 - * // How many full days are between - * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00? - * const result = differenceInDays( - * new Date(2011, 6, 3, 0, 1), - * new Date(2011, 6, 2, 23, 59) - * ) - * //=> 0 - * // How many full days are between - * // 1 March 2020 0:00 and 1 June 2020 0:00 ? - * // Note: because local time is used, the - * // result will always be 92 days, even in - * // time zones where DST starts and the - * // period has only 92*24-1 hours. - * const result = differenceInDays( - * new Date(2020, 5, 1), - * new Date(2020, 2, 1) - * ) - //=> 92 - */ - function $c9f3457d5d95bb01e6c13491aea1fd03$export$default(dirtyDateLeft, dirtyDateRight) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var dateLeft = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDateLeft); - var dateRight = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDateRight); - var sign = $c9f3457d5d95bb01e6c13491aea1fd03$var$compareLocalAsc(dateLeft, dateRight); - var difference = Math.abs($b3273b12dbf4d592ed4ac54eca4b836c$export$default(dateLeft, dateRight)); - dateLeft.setDate(dateLeft.getDate() - sign * difference); - // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full - // If so, result must be decreased by 1 in absolute value - var isLastDayNotFull = Number($c9f3457d5d95bb01e6c13491aea1fd03$var$compareLocalAsc(dateLeft, dateRight) === -sign); - var result = sign * (difference - isLastDayNotFull); - // Prevent negative zero - return result === 0 ? 0 : result; - } - const $df85c597a30dfe85efd21eb9457ef85e$var$translations = { - pl_PL: { - date: 'Data', - createdAt: 'Data założenia', - dominance: 'Dominacja', - bestRank: 'Najlepszy ranking', - mostPoints: 'Najwięcej punktów', - mostVillages: 'Najwięcej wiosek', - player: 'Gracz', - points: 'Punkty', - villages: 'Wioski', - opponentsDefeated: 'Pokonani przeciwnicy', - opponentsDefeatedAsAttacker: 'Pokonani przeciwnicy jako agresor', - opponentsDefeatedAsDefender: 'Pokonani przeciwnicy jako obrońca', - opponentsDefeatedAsSupporter: 'Pokonani przeciwnicy jako wspierający', - change: 'Zmień', - left: 'Opuścił', - joined: 'Dołączył', - tribeChanges: 'Zmiany plemion', - membersGrowth: 'Rozwój graczy', - act: 'Akcja', - total: 'Razem', - oda: 'RA', - odd: 'RO', - ods: 'RW', - od: 'Pokonani ogólnie', - dailyGrowth: 'Dzienny przyrost', - playerLinks: 'Linki', - action: { - linkToTWHelp: 'Akta plemienia (TWHelp)', - showTribeChanges: 'Pokaż zmiany plemion', - showEnnoblements: 'Pokaż przejęcia', - showMembersGrowth: 'Pokaż rozwój graczy', - showHistory: 'Pokaż historię', - generateMailingList: 'Wygeneruj listę mailingową', - exportVillages: 'Wyeksportuj wioski' - } - }, - en_DK: { - date: 'Date', - createdAt: 'Created at', - dominance: 'Dominance', - bestRank: 'Best rank', - mostPoints: 'Most points', - mostVillages: 'Most villages', - player: 'Player', - points: 'Points', - villages: 'Villages', - opponentsDefeated: 'Opponents defeated', - opponentsDefeatedAsAttacker: 'Opponents defeated as attacker', - opponentsDefeatedAsDefender: 'Opponents defeated as defender', - opponentsDefeatedAsSupporter: 'Opponents defeated as supporter', - change: 'Change', - membersGrowth: 'Members growth', - tribeChanges: 'Tribe changes', - left: 'Left', - joined: 'Joined', - act: 'Action', - total: 'Total', - oda: 'ODA', - odd: 'ODD', - ods: 'ODS', - od: 'OD', - dailyGrowth: 'Daily growth', - playerLinks: 'Player links', - action: { - linkToTWHelp: 'Tribal file (TWHelp)', - showTribeChanges: 'Show tribe changes', - showEnnoblements: 'Show ennoblements', - showMembersGrowth: 'Show members growth', - showHistory: 'Show history', - generateMailingList: 'Generate mailing list', - exportVillages: 'Export villages' - } - }, - de_DE: { - date: 'Datum', - createdAt: 'Erstellt am', - dominance: 'Dominanz', - bestRank: 'Bester Rang', - mostPoints: 'Meiste Punkte', - mostVillages: 'Meiste Dörfer', - player: 'Spieler', - points: 'Punkte', - villages: 'Dörfer', - opponentsDefeated: 'Besiegte Gegner', - opponentsDefeatedAsAttacker: 'Besiegte Gegner als Angreifer', - opponentsDefeatedAsDefender: 'Besiegte Gegner als Verteidiger', - opponentsDefeatedAsSupporter: 'Besiegte Gegner als Unterstützer', - change: 'Änderungen', - membersGrowth: 'Mitglieder Wachstum', - tribeChanges: 'Stammeswechsel', - left: 'Verlassen', - joined: 'Beigetreten', - act: 'Aktion', - total: 'Total', - oda: 'BGA', - odd: 'BGV', - ods: 'BGS', - od: 'BP', - dailyGrowth: 'Tägl. Wachstum', - playerLinks: 'Spieler Links', - action: { - linkToTWHelp: 'Stammesakte (TWHelp)', - showTribeChanges: 'Zeige Stammeswechsel', - showEnnoblements: 'Zeige Adelungen', - showMembersGrowth: 'Zeige Mitglieder-Wachstum', - showHistory: 'Zeige Verlauf', - generateMailingList: 'Maillisten-Generator', - exportVillages: 'Dörfer exportieren' - } - } - }; - var $df85c597a30dfe85efd21eb9457ef85e$export$default = () => $df85c597a30dfe85efd21eb9457ef85e$var$translations[window.game_data.locale] || $df85c597a30dfe85efd21eb9457ef85e$var$translations.en_DK; - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); - }); - }; - const $13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE = 'data-page'; - const $13593d6974cda38c64f44fff96e2987d$export$getContainerStyles = () => { - return 'display: flex; flex-direction: row; flex-wrap: wrap;'; - }; - const $13593d6974cda38c64f44fff96e2987d$export$setPage = function setPage(el) { - let page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - if (!el instanceof HTMLElement) { - throw new Error('Expected HTMLElement as the first argument'); - } - page = parseInt(page); - if (typeof page !== 'number' || isNaN(page)) { - throw new Error('Expected number or string as the second argument'); - } - el.setAttribute($13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE, page + ''); - }; - const $13593d6974cda38c64f44fff96e2987d$export$getPage = el => { - if (!el instanceof HTMLElement) { - return 0; - } - return parseInt(el.getAttribute($13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE)); - }; - const $13593d6974cda38c64f44fff96e2987d$export$calcNumberOfPages = (total, limit) => { - if (typeof total !== 'number') { - throw new Error('Expected number as the first argument'); - } - if (typeof limit !== 'number') { - throw new Error('Expected number as the second argument'); - } - return total > 0 ? Math.ceil(total / limit) : 1; - }; - const $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems = function generatePaginationItems() { - let {total, limit, marginRight = 3, currentPage = 0} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - const numberOfPages = $13593d6974cda38c64f44fff96e2987d$export$calcNumberOfPages(total, limit); - const paginationItems = []; - for (let i = 1; i <= numberOfPages; i++) { - if (i === currentPage) { - paginationItems.push((">").concat(i, "<")); - } else { - paginationItems.push(("").concat(i, "")); - } - } - return paginationItems; - }; - const $bd7f54d77d8feb330faa21d8dcd3f49c$var$translations = { - pl_PL: { - title: "Dzisiejsze zmiany w statystykach", - points: 'Punkty', - rank: 'Ranking', - villages: 'Liczba wiosek', - members: 'Liczba członków', - oda: 'Pokonani przeciwnicy jako agresor', - odaRank: 'RA', - odd: 'Pokonani przeciwnicy jako obrońca', - oddRank: 'RO', - ods: 'Pokonani przeciwnicy jako wspierający', - odsRank: 'RW', - od: 'Pokonani przeciwnicy', - odRank: 'Pokonani przeciwnicy razem ranking' - }, - en_DK: { - title: "Today's stat changes", - points: 'Points', - rank: 'Rank', - villages: 'Villages', - members: 'Members', - oda: 'ODA', - odaRank: 'ODA Rank', - odd: 'ODD', - oddRank: 'ODD Rank', - ods: 'ODS', - odsRank: 'ODS Rank', - od: 'OD', - odRank: 'OD Rank' - }, - de_DE: { - title: "Heutige Werte Änderungen", - points: 'Punkte', - rank: 'Rang', - villages: 'Dörfer', - members: 'Mitglieder', - oda: 'BGA', - odaRank: 'BGA Rang', - odd: 'BGD', - oddRank: 'BGD Rang', - ods: 'BGS', - odsRank: 'BGS Rang', - od: 'BP', - odRank: 'BP Rang' - } - }; - var $bd7f54d77d8feb330faa21d8dcd3f49c$export$default = () => $bd7f54d77d8feb330faa21d8dcd3f49c$var$translations[window.game_data.locale] || $bd7f54d77d8feb330faa21d8dcd3f49c$var$translations.en_DK; - var $1002d61f190d89c6caf1c54a7873c0c5$export$default = v => v === undefined || v === null; - const $ba543a25c46eef82c43f0acea9c36e26$var$translations = $bd7f54d77d8feb330faa21d8dcd3f49c$export$default(); - const $ba543a25c46eef82c43f0acea9c36e26$var$getTodaysStatsTdStyle = value => { - const statIncreaseStyle = 'color: #000; background-color: #0f0'; - const statDecreaseStyle = 'color: #000; background-color: #f00'; - const defaultStyle = 'color: #000; background-color: #808080'; - return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle; - }; - var $ba543a25c46eef82c43f0acea9c36e26$export$default = (container, stats) => { - let todaysStats = container.querySelector('#todaysStats'); - if (!todaysStats) { - todaysStats = document.createElement('div'); - todaysStats.id = 'todaysStats'; - todaysStats.width = '100%'; - container.prepend(todaysStats); - } - const player = !$1002d61f190d89c6caf1c54a7873c0c5$export$default(stats.rankSup); - todaysStats.innerHTML = ("\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(!player ? ("\n \n \n ") : '', "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(player ? ("\n \n \n \n \n \n \n ") : '', "\n \n \n \n \n \n \n \n \n \n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.title, "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.points, ":\n \n ").concat(Math.abs(stats.points).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.rank, ":\n \n ").concat(Math.abs(stats.rank), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.villages, ":\n \n ").concat(Math.abs(stats.villages).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.members, ":\n \n ").concat(Math.abs(stats.members), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.oda, ":\n \n ").concat(Math.abs(stats.scoreAtt).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odaRank, ":\n \n ").concat(Math.abs(stats.rankAtt), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odd, ":\n \n ").concat(Math.abs(stats.scoreDef).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.oddRank, ":\n \n ").concat(Math.abs(stats.rankDef), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.ods, ":\n \n ").concat(Math.abs(stats.scoreSup).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odsRank, ":\n \n ").concat(Math.abs(stats.rankSup), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.od, ":\n \n ").concat(Math.abs(stats.scoreTotal).toLocaleString(), "\n
\n ").concat($ba543a25c46eef82c43f0acea9c36e26$var$translations.odRank, ":\n \n ").concat(Math.abs(stats.rankTotal), "\n
\n "); - }; - const $3f288d82e5e972d85d580f8ed66de51e$var$translations = { - pl_PL: { - date: 'Data', - newOwner: 'Nowy właściciel', - oldOwner: 'Poprzedni właściciel', - village: 'Wioska', - title: 'Przejęcia' - }, - en_DK: { - date: 'Date', - newOwner: 'New owner', - oldOwner: 'Old owner', - village: 'Village', - title: 'Ennoblements' - }, - de_DE: { - date: 'Datum', - newOwner: 'Neuer Besitzer', - oldOwner: 'Alter Besitzer', - village: 'Dorf', - title: 'Adelungen' - } - }; - var $3f288d82e5e972d85d580f8ed66de51e$export$default = () => $3f288d82e5e972d85d580f8ed66de51e$var$translations[window.game_data.locale] || $3f288d82e5e972d85d580f8ed66de51e$var$translations.en_DK; - const $6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR = '.popup_box'; - const $6412e4d8722bc72f55b3c382206290ed$export$default = function showPopup() { - let {html, id, title} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - Dialog.show(id, ("

").concat(title, "

") + html); - const popup = document.querySelector($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR); - if (popup) { - popup.style.width = 'auto'; - popup.style.maxWidth = '1000px'; - } - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$inTZ = function inTZ() { - let d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); - let tz = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'UTC'; - return new Date(new Date(d).toLocaleString('en-US', { - timeZone: tz - })); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate = (date, options) => { - return new Date(date).toLocaleDateString(undefined, options ? options : { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_ally', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_player', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_village', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() { - let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; - let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; - const continent = 'K' + String(y)[0] + String(x)[0]; - return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => { - return Math.round(distance * baseSpeed); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => { - return image_base + img; - }; - const $88f173be92b23fde3128f694442fe0ce$var$PAGINATION_CONTAINER_ID = 'ennoblementsPagination'; - const $88f173be92b23fde3128f694442fe0ce$var$translations = $3f288d82e5e972d85d580f8ed66de51e$export$default(); - const $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd = (player, tribe) => { - if (player) { - return ("").concat(player.name, " (").concat(tribe ? ("").concat(tribe.tag, "") : '-', ")"); - } - return '-'; - }; - var $88f173be92b23fde3128f694442fe0ce$export$default = function (e, ennoblements) { - let {limit = 0, currentPage = 1, onPageChange = () => {}} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const paginationItems = $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems({ - total: ennoblements.total, - limit, - currentPage - }); - const html = ("\n
\n ").concat(paginationItems.join(''), "\n
\n \n \n \n \n \n \n \n \n ").concat(ennoblements.items.map(ennoblement => { - let rowHTML = '' + (""); - if (ennoblement.village) { - rowHTML += (""); - } else { - rowHTML += ''; - } - rowHTML += $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd(ennoblement.newOwner, ennoblement.newOwnerTribe); - rowHTML += $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd(ennoblement.oldOwner, ennoblement.oldOwnerTribe); - return rowHTML + ''; - }).join(''), "\n \n
\n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.date, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.village, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.newOwner, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.oldOwner, "\n
").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(ennoblement.ennobledAt), "").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "-
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $88f173be92b23fde3128f694442fe0ce$var$translations.title, - id: 'ennoblements', - html - }); - document.querySelectorAll('#' + $88f173be92b23fde3128f694442fe0ce$var$PAGINATION_CONTAINER_ID + ' a').forEach(el => { - el.addEventListener('click', onPageChange); - }); - }; - function $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyNumber) { - if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) { - return NaN; - } - var number = Number(dirtyNumber); - if (isNaN(number)) { - return number; - } - return number < 0 ? Math.ceil(number) : Math.floor(number); - } - /** - * @name addDays - * @category Day Helpers - * @summary Add the specified number of days to the given date. - * - * @description - * Add the specified number of days to the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} - the new date with the days added - * @throws {TypeError} - 2 arguments required - * - * @example - * // Add 10 days to 1 September 2014: - * const result = addDays(new Date(2014, 8, 1), 10) - * //=> Thu Sep 11 2014 00:00:00 - */ - function $486b1417f4d79b07b40554dadb813aab$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var date = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDate); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); - if (isNaN(amount)) { - return new Date(NaN); - } - if (!amount) { - // If 0 days, no-op to avoid changing times in the hour before end of DST - return date; - } - date.setDate(date.getDate() + amount); - return date; - } - /** - * @name subDays - * @category Day Helpers - * @summary Subtract the specified number of days from the given date. - * - * @description - * Subtract the specified number of days from the given date. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} date - the date to be changed - * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`. - * @returns {Date} the new date with the days subtracted - * @throws {TypeError} 2 arguments required - * - * @example - * // Subtract 10 days from 1 September 2014: - * const result = subDays(new Date(2014, 8, 1), 10) - * //=> Fri Aug 22 2014 00:00:00 - */ - function $8aaca82a2a35fba6a35717d6cb66c145$export$default(dirtyDate, dirtyAmount) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var amount = $76d20ec5245457ba4d0be92324e15d11$export$default(dirtyAmount); - return $486b1417f4d79b07b40554dadb813aab$export$default(dirtyDate, -amount); - } - const $efebb7057c86e617f557a3e13c581a7b$var$translations = { - 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' - }, - de_DE: { - title: "Verlauf", - date: 'Datum', - tribe: 'Stamm', - points: 'Punkte', - villages: 'Dörfer', - members: 'Mitglieder', - oda: 'BGA', - odd: 'BGV', - ods: 'BGS', - od: 'BP' - } - }; - var $efebb7057c86e617f557a3e13c581a7b$export$default = () => $efebb7057c86e617f557a3e13c581a7b$var$translations[window.game_data.locale] || $efebb7057c86e617f557a3e13c581a7b$var$translations.en_DK; - const $534d870a885ff77d9d644b38d467ea92$var$PAGINATION_CONTAINER_ID = 'historyPagination'; - const $534d870a885ff77d9d644b38d467ea92$var$translations = $efebb7057c86e617f557a3e13c581a7b$export$default(); - const $534d870a885ff77d9d644b38d467ea92$var$addMathSymbol = v => { - return v > 0 ? '+' + v : v; - }; - var $534d870a885ff77d9d644b38d467ea92$export$default = function (e, history, daily) { - let {currentPage = 1, limit = 0, onPageChange = () => {}, tribe = false} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - const paginationItems = $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems({ - total: history.total, - limit, - currentPage - }); - const html = ("\n
\n ").concat(paginationItems.join(''), "\n
\n \n \n \n \n ").concat(tribe ? '' : (""), "\n \n \n ").concat(tribe ? ("") : '', "\n \n \n \n ").concat(tribe ? '' : (""), "\n \n ").concat(history.items.map(history => { - const subtracted = $8aaca82a2a35fba6a35717d6cb66c145$export$default(new Date(history.createDate), 1).toISOString().split('.')[0] + 'Z'; - const stats = daily.items.find(stats => { - return stats.createDate === subtracted; - }); - let rowHTML = '' + (""); - if (!tribe && history.tribe) { - rowHTML += (""); - } else if (!tribe) { - rowHTML += ''; - } - rowHTML += ("\n \n \n ").concat(!tribe ? '' : ("\n \n "), "\n \n \n \n ").concat(tribe ? '' : ("\n \n "), "\n ") + ''; - return rowHTML; - }).join(''), "\n \n
\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.date, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.tribe, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.points, "\n \n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.villages, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.members, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.od, "\n \n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.oda, "\n \n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.odd, "\n ").concat($534d870a885ff77d9d644b38d467ea92$var$translations.ods, "
").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(history.createDate, { - year: 'numeric', - month: '2-digit', - day: '2-digit' - }), "").concat(history.tribe.tag, "-\n ").concat(history.points.toLocaleString(), " (").concat(history.rank, ")\n \n ").concat(history.totalVillages.toLocaleString(), "\n \n ").concat(history.totalMembers, "\n \n ").concat(history.scoreTotal.toLocaleString(), " (").concat(history.rankTotal, ")\n \n ").concat(history.scoreAtt.toLocaleString(), " (").concat(history.rankAtt, ")\n \n ").concat(history.scoreDef.toLocaleString(), " (").concat(history.rankDef, ")\n \n ").concat(history.scoreSup.toLocaleString(), " (").concat(history.rankSup, ")\n
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $534d870a885ff77d9d644b38d467ea92$var$translations.title, - id: 'history', - html - }); - document.querySelectorAll('#' + $534d870a885ff77d9d644b38d467ea92$var$PAGINATION_CONTAINER_ID + ' a').forEach(el => { - el.addEventListener('click', onPageChange); - }); - }; - var $39c4220bac5e8e55ae13cc7489410b3e$export$default = url => parseInt(new URLSearchParams(url).get('id')); - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) { - let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const json = localStorage.getItem(key); - let obj = d; - if (json) { - obj = JSON.parse(json); - } - return obj; - }; - const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => { - localStorage.setItem(key, JSON.stringify(payload)); - }; - var $1f14636dcc53402ba1b7661b758ca0aa$export$default = function () { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return server.substr(0, 2); - }; - const $cd636dca561ab125eed59a2e82498a89$export$buildPlayerURL = function buildPlayerURL() { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return ("http://www.twstats.com/in/").concat(server, "/player/").concat(id); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL = 'tribalwarshelp.com'; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage = function buildURLToServerPage() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return ("https://").concat(version, ".").concat($d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL, "/server/").concat(server); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile = function buildURLToProfile() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; - return ("").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL = function buildPlayerURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'player'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL = function buildTribeURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'tribe'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL = function buildVillageURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'village'); - }; - function $921f485217c0c6d00ec9dfbf07cee198$var$ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); - } - return keys; - } - function $921f485217c0c6d00ec9dfbf07cee198$var$_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - $921f485217c0c6d00ec9dfbf07cee198$var$ownKeys(Object(source), true).forEach(function (key) { - $921f485217c0c6d00ec9dfbf07cee198$var$_defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - $921f485217c0c6d00ec9dfbf07cee198$var$ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; - } - function $921f485217c0c6d00ec9dfbf07cee198$var$_defineProperty(obj, key, value) { - if ((key in obj)) { - Object.defineProperty(obj, key, { +function $6a49e4c969cec444$export$2e2bcd8739ae039(obj, key, value) { + if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true - }); - } else { - obj[key] = value; - } + }); + else obj[key] = value; return obj; - } - // ==UserScript== - // @name Extended tribe profile - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js - // @version 1.1.8 - // @description Extended tribe profile - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=info_ally* - // @grant none - // @run-at document-end - // ==/UserScript== - const $921f485217c0c6d00ec9dfbf07cee198$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $921f485217c0c6d00ec9dfbf07cee198$var$VERSION = $1f14636dcc53402ba1b7661b758ca0aa$export$default($921f485217c0c6d00ec9dfbf07cee198$var$SERVER); - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(window.location.search); - const $921f485217c0c6d00ec9dfbf07cee198$var$LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID; - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_QUERY = "\n query tribe(\n $server: String!\n $id: Int!\n $dailyTribeStatsSort: [String!]\n $dailyTribeStatsLimit: Int\n $playersLimit: Int\n $playersSort: [String!]\n $playerFilter: PlayerFilter!\n $dailyTribeStatsFilter: DailyTribeStatsFilter!\n ) {\n tribe(server: $server, id: $id) {\n id\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n createdAt\n dominance\n }\n dailyTribeStats(\n server: $server\n limit: $dailyTribeStatsLimit\n sort: $dailyTribeStatsSort\n filter: $dailyTribeStatsFilter\n ) {\n items {\n rank\n rankAtt\n rankDef\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreTotal\n villages\n members\n }\n }\n players(server: $server, sort: $playersSort, filter: $playerFilter, limit: $playersLimit) {\n items {\n id\n rankAtt\n rankDef\n rankSup\n rankTotal\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n dailyGrowth\n }\n }\n }\n"; - const $921f485217c0c6d00ec9dfbf07cee198$var$ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, 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"; - const $921f485217c0c6d00ec9dfbf07cee198$var$ENNOBLEMENTS_PER_PAGE = 15; - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY = "\nquery tribeHistoryAndTribeDailyStats($server: String!,\n $tribeHistoryFilter: TribeHistoryFilter!,\n $dailyTribeStatsFilter: DailyTribeStatsFilter!,\n $sort: [String!],\n $offset: Int,\n $limit: Int) {\n tribeHistory(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $tribeHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreTotal\n rankTotal\n createDate\n totalMembers\n }\n }\n dailyTribeStats(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $dailyTribeStatsFilter) {\n items {\n points\n scoreAtt\n scoreDef\n scoreTotal\n villages\n createDate\n members\n }\n }\n}\n"; - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_HISTORY_PER_PAGE = 15; - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_MEMBERS_DAILY_STATS_QUERY = "\nquery tribeMembersDailyStats($server: String!,\n $filter: DailyPlayerStatsFilter!,\n $limit: Int,\n $sort: [String!]) {\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n player {\n id\n name\n }\n points\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n"; - let $921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_MODE = 'points'; - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_QUERY = "\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) {\n total\n items {\n player {\n id\n name\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n"; - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID = 'tribeChangesPagination'; - const $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_PER_PAGE = 15; - const $921f485217c0c6d00ec9dfbf07cee198$var$contentValue = document.querySelector('#content_value'); - const $921f485217c0c6d00ec9dfbf07cee198$var$profileInfoTBody = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody'); - const $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer = $921f485217c0c6d00ec9dfbf07cee198$var$profileInfoTBody; - const $921f485217c0c6d00ec9dfbf07cee198$var$otherElementsContainer = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)'); - const $921f485217c0c6d00ec9dfbf07cee198$var$membersContainer = $921f485217c0c6d00ec9dfbf07cee198$var$contentValue.querySelector('h3').nextElementSibling.querySelector('tbody'); - const $921f485217c0c6d00ec9dfbf07cee198$var$translations = $df85c597a30dfe85efd21eb9457ef85e$export$default(); - const $921f485217c0c6d00ec9dfbf07cee198$var$loadDataFromCache = () => { - return $3d935538f644f492fe681e00121114a4$export$getItem($921f485217c0c6d00ec9dfbf07cee198$var$LOCAL_STORAGE_KEY); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$cacheTribeData = function cacheTribeData() { - let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - $3d935538f644f492fe681e00121114a4$export$setItem($921f485217c0c6d00ec9dfbf07cee198$var$LOCAL_STORAGE_KEY, data); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$getMemberIDs = () => { - const ids = []; - $921f485217c0c6d00ec9dfbf07cee198$var$membersContainer.querySelectorAll('a').forEach(a => { - const href = a.getAttribute('href'); - if (href.includes('info_player')) { - ids.push($39c4220bac5e8e55ae13cc7489410b3e$export$default(href)); - } - }); - return ids; - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$getMemberNames = () => { - const ids = []; - $921f485217c0c6d00ec9dfbf07cee198$var$membersContainer.querySelectorAll('a').forEach(a => { - if (a.getAttribute('href').includes('info_player')) { - ids.push(a.innerText.trim()); - } - }); - return ids; - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$loadData = async () => { - const memberIDs = $921f485217c0c6d00ec9dfbf07cee198$var$getMemberIDs(); - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_QUERY, - variables: { - server: $921f485217c0c6d00ec9dfbf07cee198$var$SERVER, - id: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID, - dailyTribeStatsSort: ['createDate DESC'], - dailyTribeStatsLimit: 1, - dailyTribeStatsFilter: { - tribeID: [$921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID] - }, - playersSort: ['rank ASC'], - playersLimit: memberIDs.length, - playerFilter: { - id: memberIDs - } - } - }); - $921f485217c0c6d00ec9dfbf07cee198$var$cacheTribeData(data); - return data; - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$renderTr = _ref => { - let {title, data, id} = _ref; - let tr = document.querySelector('#' + id); - if (!tr) { - tr = document.createElement('tr'); - tr.id = id; - tr.appendChild(document.createElement('td')); - tr.appendChild(document.createElement('td')); - $921f485217c0c6d00ec9dfbf07cee198$var$profileInfoTBody.append(tr); - } - tr.children[0].innerHTML = title; - tr.children[1].innerHTML = data; - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$extendMembersData = players => { - $921f485217c0c6d00ec9dfbf07cee198$var$membersContainer.parentElement.style.width = '100%'; - $921f485217c0c6d00ec9dfbf07cee198$var$contentValue.append($921f485217c0c6d00ec9dfbf07cee198$var$membersContainer.parentElement); - const heading = $921f485217c0c6d00ec9dfbf07cee198$var$membersContainer.querySelector('tr:first-child'); - if (heading.children.length !== 11) { - [$921f485217c0c6d00ec9dfbf07cee198$var$translations.oda, $921f485217c0c6d00ec9dfbf07cee198$var$translations.odd, $921f485217c0c6d00ec9dfbf07cee198$var$translations.ods, $921f485217c0c6d00ec9dfbf07cee198$var$translations.od, $921f485217c0c6d00ec9dfbf07cee198$var$translations.dailyGrowth, $921f485217c0c6d00ec9dfbf07cee198$var$translations.playerLinks].forEach(v => { - const th = document.createElement('th'); - th.innerHTML = v; - heading.appendChild(th); - }); - } - $921f485217c0c6d00ec9dfbf07cee198$var$membersContainer.querySelectorAll('tr').forEach(tr => { - const a = tr.querySelector('a'); - if (!a) { - return; - } - const playerID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(a.getAttribute('href')); - const player = players.items.find(p => p.id === playerID); - if (player) { - [[player.scoreAtt, player.rankAtt], [player.scoreDef, player.rankDef], [player.scoreSup, player.rankSup], [player.scoreTotal, player.rankTotal], player.dailyGrowth, [{ - link: $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL($921f485217c0c6d00ec9dfbf07cee198$var$VERSION, $921f485217c0c6d00ec9dfbf07cee198$var$SERVER, player.id), - label: 'TWHelp' - }, { - link: $cd636dca561ab125eed59a2e82498a89$export$buildPlayerURL($921f485217c0c6d00ec9dfbf07cee198$var$SERVER, player.id), - label: 'TWStats' - }]].forEach((data, index) => { - let td = tr.children[5 + index]; - if (!td) { - td = document.createElement('td'); - tr.appendChild(td); - } - if (Array.isArray(data)) { - if (typeof data[0] === 'number') { - td.innerHTML = ("").concat(data[0].toLocaleString(), " (").concat(data[1], ")"); - } else if (data[0].link) { - td.innerHTML = data.map(_ref2 => { - let {link, label} = _ref2; - return ("").concat(label, ""); - }).join('
'); - } - } else if (typeof data === 'number') { - td.innerHTML = data.toLocaleString(); - } - }); - } - }); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$render = _ref3 => { - let {tribe, dailyTribeStats, players} = _ref3; - [{ - title: $921f485217c0c6d00ec9dfbf07cee198$var$translations.createdAt + ':', - data: $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(tribe.createdAt), - id: 'created_at' - }, { - title: $921f485217c0c6d00ec9dfbf07cee198$var$translations.dominance + ':', - data: tribe.dominance.toFixed(2) + '%', - id: 'dominance' - }, { - title: $921f485217c0c6d00ec9dfbf07cee198$var$translations.bestRank + ':', - data: tribe.bestRank + ' ' + ("(").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(tribe.bestRankAt), ")"), - id: 'best_rank' - }, { - title: $921f485217c0c6d00ec9dfbf07cee198$var$translations.mostPoints + ':', - data: tribe.mostPoints.toLocaleString() + ' ' + ("(").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(tribe.mostPointsAt), ")"), - id: 'most_points' - }, { - title: $921f485217c0c6d00ec9dfbf07cee198$var$translations.mostVillages + ':', - data: tribe.mostVillages + ' ' + ("(").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(tribe.mostVillagesAt), ")"), - id: 'most_villages' - }].forEach(data => { - $921f485217c0c6d00ec9dfbf07cee198$var$renderTr(data); - }); - if (dailyTribeStats && dailyTribeStats.items.length > 0) { - $ba543a25c46eef82c43f0acea9c36e26$export$default($921f485217c0c6d00ec9dfbf07cee198$var$otherElementsContainer, dailyTribeStats.items[0]); - } - if (players && players.items.length > 0) { - $921f485217c0c6d00ec9dfbf07cee198$var$extendMembersData(players); - } - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeEnnoblementsClick = async e => { - e.preventDefault(); - const page = $13593d6974cda38c64f44fff96e2987d$export$getPage(e.target); - if (!isNaN(page)) { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $921f485217c0c6d00ec9dfbf07cee198$var$ENNOBLEMENTS_QUERY, - variables: { - filter: { - or: { - oldOwnerTribeID: [$921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID], - newOwnerTribeID: [$921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID] - } - }, - offset: $921f485217c0c6d00ec9dfbf07cee198$var$ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: $921f485217c0c6d00ec9dfbf07cee198$var$ENNOBLEMENTS_PER_PAGE, - sort: ['ennobledAt DESC'], - server: $921f485217c0c6d00ec9dfbf07cee198$var$SERVER - } - }); - $88f173be92b23fde3128f694442fe0ce$export$default(e, data.ennoblements, { - currentPage: page, - limit: $921f485217c0c6d00ec9dfbf07cee198$var$ENNOBLEMENTS_PER_PAGE, - onPageChange: $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeEnnoblementsClick - }); - } - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeHistoryClick = async e => { - e.preventDefault(); - const page = $13593d6974cda38c64f44fff96e2987d$export$getPage(e.target); - if (!isNaN(page)) { - try { - const filter = { - tribeID: [$921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID] +} + + +function $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { }; - const {tribeHistory, dailyTribeStats} = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY, - variables: { - server: $921f485217c0c6d00ec9dfbf07cee198$var$SERVER, - offset: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_HISTORY_PER_PAGE * (page - 1), - limit: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_HISTORY_PER_PAGE, - sort: ['createDate DESC'], - tribeHistoryFilter: filter, - dailyTribeStatsFilter: filter - } + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); }); - $534d870a885ff77d9d644b38d467ea92$export$default(e, tribeHistory, dailyTribeStats, { - currentPage: page, - limit: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_HISTORY_PER_PAGE, - tribe: true, - onPageChange: $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeHistoryClick - }); - } catch (error) { - console.log('couldnt load tribe history', error); - } } - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$getMembersGrowthTdStyle = value => { + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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 $14473fdd7558f621$export$2e2bcd8739ae039(required, args) { + if (args.length < required) throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); +} + + +function $cef0ab118a15bdd4$export$2e2bcd8739ae039(argument) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var argStr = Object.prototype.toString.call(argument); // Clone the date + if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()); + else if (typeof argument === 'number' || argStr === '[object Number]') return new Date(argument); + else { + if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { + // eslint-disable-next-line no-console + console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console + console.warn(new Error().stack); + } + return new Date(NaN); + } +} + + +function $5c7eb77435f5b299$export$2e2bcd8739ae039(date) { + var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds())); + utcDate.setUTCFullYear(date.getFullYear()); + return date.getTime() - utcDate.getTime(); +} + + + + +function $e0c28e86cf0881e5$export$2e2bcd8739ae039(dirtyDate) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); + date.setHours(0, 0, 0, 0); + return date; +} + + + +var $df209d46368bbe8e$var$MILLISECONDS_IN_DAY = 86400000; +function $df209d46368bbe8e$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var startOfDayLeft = $e0c28e86cf0881e5$export$2e2bcd8739ae039(dirtyDateLeft); + var startOfDayRight = $e0c28e86cf0881e5$export$2e2bcd8739ae039(dirtyDateRight); + var timestampLeft = startOfDayLeft.getTime() - $5c7eb77435f5b299$export$2e2bcd8739ae039(startOfDayLeft); + var timestampRight = startOfDayRight.getTime() - $5c7eb77435f5b299$export$2e2bcd8739ae039(startOfDayRight); // Round the number of days to the nearest integer + // because the number of milliseconds in a day is not constant + // (e.g. it's different in the day of the daylight saving time clock shift) + return Math.round((timestampLeft - timestampRight) / $df209d46368bbe8e$var$MILLISECONDS_IN_DAY); +} + + + +// for accurate equality comparisons of UTC timestamps that end up +// having the same representation in local time, e.g. one hour before +// DST ends vs. the instant that DST ends. +function $404c1b1679418875$var$compareLocalAsc(dateLeft, dateRight) { + var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds(); + if (diff < 0) return -1; + else if (diff > 0) return 1; // Return 0 if diff is 0; return NaN if diff is NaN + else return diff; +} +function $404c1b1679418875$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var dateLeft = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDateLeft); + var dateRight = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDateRight); + var sign = $404c1b1679418875$var$compareLocalAsc(dateLeft, dateRight); + var difference = Math.abs($df209d46368bbe8e$export$2e2bcd8739ae039(dateLeft, dateRight)); + dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full + // If so, result must be decreased by 1 in absolute value + var isLastDayNotFull = Number($404c1b1679418875$var$compareLocalAsc(dateLeft, dateRight) === -sign); + var result = sign * (difference - isLastDayNotFull); // Prevent negative zero + return result === 0 ? 0 : result; +} + + +const $b2c56a1bf7676610$var$translations = { + pl_PL: { + date: 'Data', + createdAt: 'Data założenia', + dominance: 'Dominacja', + bestRank: 'Najlepszy ranking', + mostPoints: 'Najwięcej punktów', + mostVillages: 'Najwięcej wiosek', + player: 'Gracz', + points: 'Punkty', + villages: 'Wioski', + opponentsDefeated: 'Pokonani przeciwnicy', + opponentsDefeatedAsAttacker: 'Pokonani przeciwnicy jako agresor', + opponentsDefeatedAsDefender: 'Pokonani przeciwnicy jako obrońca', + opponentsDefeatedAsSupporter: 'Pokonani przeciwnicy jako wspierający', + change: 'Zmień', + left: 'Opuścił', + joined: 'Dołączył', + tribeChanges: 'Zmiany plemion', + membersGrowth: 'Rozwój graczy', + act: 'Akcja', + total: 'Razem', + oda: 'RA', + odd: 'RO', + ods: 'RW', + od: 'Pokonani ogólnie', + dailyGrowth: 'Dzienny przyrost', + playerLinks: 'Linki', + action: { + linkToTWHelp: 'Akta plemienia (TWHelp)', + showTribeChanges: 'Pokaż zmiany plemion', + showEnnoblements: 'Pokaż przejęcia', + showMembersGrowth: 'Pokaż rozwój graczy', + showHistory: 'Pokaż historię', + generateMailingList: 'Wygeneruj listę mailingową', + exportVillages: 'Wyeksportuj wioski' + } + }, + en_DK: { + date: 'Date', + createdAt: 'Created at', + dominance: 'Dominance', + bestRank: 'Best rank', + mostPoints: 'Most points', + mostVillages: 'Most villages', + player: 'Player', + points: 'Points', + villages: 'Villages', + opponentsDefeated: 'Opponents defeated', + opponentsDefeatedAsAttacker: 'Opponents defeated as attacker', + opponentsDefeatedAsDefender: 'Opponents defeated as defender', + opponentsDefeatedAsSupporter: 'Opponents defeated as supporter', + change: 'Change', + membersGrowth: 'Members growth', + tribeChanges: 'Tribe changes', + left: 'Left', + joined: 'Joined', + act: 'Action', + total: 'Total', + oda: 'ODA', + odd: 'ODD', + ods: 'ODS', + od: 'OD', + dailyGrowth: 'Daily growth', + playerLinks: 'Player links', + action: { + linkToTWHelp: 'Tribal file (TWHelp)', + showTribeChanges: 'Show tribe changes', + showEnnoblements: 'Show ennoblements', + showMembersGrowth: 'Show members growth', + showHistory: 'Show history', + generateMailingList: 'Generate mailing list', + exportVillages: 'Export villages' + } + }, + de_DE: { + date: 'Datum', + createdAt: 'Erstellt am', + dominance: 'Dominanz', + bestRank: 'Bester Rang', + mostPoints: 'Meiste Punkte', + mostVillages: 'Meiste Dörfer', + player: 'Spieler', + points: 'Punkte', + villages: 'Dörfer', + opponentsDefeated: 'Besiegte Gegner', + opponentsDefeatedAsAttacker: 'Besiegte Gegner als Angreifer', + opponentsDefeatedAsDefender: 'Besiegte Gegner als Verteidiger', + opponentsDefeatedAsSupporter: 'Besiegte Gegner als Unterstützer', + change: 'Änderungen', + membersGrowth: 'Mitglieder Wachstum', + tribeChanges: 'Stammeswechsel', + left: 'Verlassen', + joined: 'Beigetreten', + act: 'Aktion', + total: 'Total', + oda: 'BGA', + odd: 'BGV', + ods: 'BGS', + od: 'BP', + dailyGrowth: 'Tägl. Wachstum', + playerLinks: 'Spieler Links', + action: { + linkToTWHelp: 'Stammesakte (TWHelp)', + showTribeChanges: 'Zeige Stammeswechsel', + showEnnoblements: 'Zeige Adelungen', + showMembersGrowth: 'Zeige Mitglieder-Wachstum', + showHistory: 'Zeige Verlauf', + generateMailingList: 'Maillisten-Generator', + exportVillages: 'Dörfer exportieren' + } + } +}; +var $b2c56a1bf7676610$export$2e2bcd8739ae039 = ()=>$b2c56a1bf7676610$var$translations[window.game_data.locale] || $b2c56a1bf7676610$var$translations.en_DK +; + + +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); + }); +}; + + +const $57fe06ddde7dcd5d$var$ATTRIBUTE = 'data-page'; +const $57fe06ddde7dcd5d$export$8947b11ec08f5f9d = ()=>{ + return 'display: flex; flex-direction: row; flex-wrap: wrap;'; +}; +const $57fe06ddde7dcd5d$export$5e830c5f3cd8a610 = (el, page = 1)=>{ + if (!el instanceof HTMLElement) throw new Error('Expected HTMLElement as the first argument'); + page = parseInt(page); + if (typeof page !== 'number' || isNaN(page)) throw new Error('Expected number or string as the second argument'); + el.setAttribute($57fe06ddde7dcd5d$var$ATTRIBUTE, page + ''); +}; +const $57fe06ddde7dcd5d$export$c2a6433281518c91 = (el)=>{ + if (!el instanceof HTMLElement) return 0; + return parseInt(el.getAttribute($57fe06ddde7dcd5d$var$ATTRIBUTE)); +}; +const $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4 = (total, limit)=>{ + if (typeof total !== 'number') throw new Error('Expected number as the first argument'); + if (typeof limit !== 'number') throw new Error('Expected number as the second argument'); + return total > 0 ? Math.ceil(total / limit) : 1; +}; +const $57fe06ddde7dcd5d$export$58a42a77c71a7de0 = ({ total: total , limit: limit , marginRight: marginRight = 3 , currentPage: currentPage = 0 , } = { +})=>{ + const numberOfPages = $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4(total, limit); + const paginationItems = []; + for(let i = 1; i <= numberOfPages; i++)if (i === currentPage) paginationItems.push(`>${i}<`); + else paginationItems.push(`${i}`); + return paginationItems; +}; + + +const $2889ee192ffdc307$var$translations = { + pl_PL: { + title: `Dzisiejsze zmiany w statystykach`, + points: 'Punkty', + rank: 'Ranking', + villages: 'Liczba wiosek', + members: 'Liczba członków', + oda: 'Pokonani przeciwnicy jako agresor', + odaRank: 'RA', + odd: 'Pokonani przeciwnicy jako obrońca', + oddRank: 'RO', + ods: 'Pokonani przeciwnicy jako wspierający', + odsRank: 'RW', + od: 'Pokonani przeciwnicy', + odRank: 'Pokonani przeciwnicy razem ranking' + }, + en_DK: { + title: `Today's stat changes`, + points: 'Points', + rank: 'Rank', + villages: 'Villages', + members: 'Members', + oda: 'ODA', + odaRank: 'ODA Rank', + odd: 'ODD', + oddRank: 'ODD Rank', + ods: 'ODS', + odsRank: 'ODS Rank', + od: 'OD', + odRank: 'OD Rank' + }, + de_DE: { + title: `Heutige Werte Änderungen`, + points: 'Punkte', + rank: 'Rang', + villages: 'Dörfer', + members: 'Mitglieder', + oda: 'BGA', + odaRank: 'BGA Rang', + odd: 'BGD', + oddRank: 'BGD Rang', + ods: 'BGS', + odsRank: 'BGS Rang', + od: 'BP', + odRank: 'BP Rang' + } +}; +var $2889ee192ffdc307$export$2e2bcd8739ae039 = ()=>$2889ee192ffdc307$var$translations[window.game_data.locale] || $2889ee192ffdc307$var$translations.en_DK +; + + +var $3ff10df18b2a4d54$export$2e2bcd8739ae039 = (v)=>v === undefined || v === null +; + + +const $9f98bc5d5b389b94$var$translations = $2889ee192ffdc307$export$2e2bcd8739ae039(); +const $9f98bc5d5b389b94$var$getTodaysStatsTdStyle = (value)=>{ const statIncreaseStyle = 'color: #000; background-color: #0f0'; const statDecreaseStyle = 'color: #000; background-color: #f00'; const defaultStyle = 'color: #000; background-color: #808080'; return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle; - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$mapMembersGrowthTdValue = i => { - switch ($921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_MODE) { - case 'points': - return i.points; - case 'villages': - return i.villages; - case 'od': - return i.scoreTotal; - case 'oda': - return i.scoreAtt; - case 'odd': - return i.scoreDef; - case 'ods': - return i.scoreSup; - default: - return 0; +}; +var $9f98bc5d5b389b94$export$2e2bcd8739ae039 = (container, stats)=>{ + let todaysStats = container.querySelector('#todaysStats'); + if (!todaysStats) { + todaysStats = document.createElement('div'); + todaysStats.id = 'todaysStats'; + todaysStats.width = '100%'; + container.prepend(todaysStats); } - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$buildMembersGrowthTBody = stats => { - const dates = [...new Set(stats.items.map(item => item.createDate))].reverse(); - return ("\n \n \n ").concat($921f485217c0c6d00ec9dfbf07cee198$var$translations.player, "\n ").concat(dates.map(date => { - return ("").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(date, { + const player = !$3ff10df18b2a4d54$export$2e2bcd8739ae039(stats.rankSup); + todaysStats.innerHTML = ` + + + + + + + + + + + + + + + + + + ${!player ? ` + + + ` : ''} + + + + + + + + + + + + + + + + + ${player ? ` + + + + + + + ` : ''} + + + + + + + + + +
+ ${$9f98bc5d5b389b94$var$translations.title} +
+ ${$9f98bc5d5b389b94$var$translations.points}: + + ${Math.abs(stats.points).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.rank}: + + ${Math.abs(stats.rank)} +
+ ${$9f98bc5d5b389b94$var$translations.villages}: + + ${Math.abs(stats.villages).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.members}: + + ${Math.abs(stats.members)} +
+ ${$9f98bc5d5b389b94$var$translations.oda}: + + ${Math.abs(stats.scoreAtt).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.odaRank}: + + ${Math.abs(stats.rankAtt)} +
+ ${$9f98bc5d5b389b94$var$translations.odd}: + + ${Math.abs(stats.scoreDef).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.oddRank}: + + ${Math.abs(stats.rankDef)} +
+ ${$9f98bc5d5b389b94$var$translations.ods}: + + ${Math.abs(stats.scoreSup).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.odsRank}: + + ${Math.abs(stats.rankSup)} +
+ ${$9f98bc5d5b389b94$var$translations.od}: + + ${Math.abs(stats.scoreTotal).toLocaleString()} +
+ ${$9f98bc5d5b389b94$var$translations.odRank}: + + ${Math.abs(stats.rankTotal)} +
+ `; +}; + + +const $37476051484be03e$var$translations = { + pl_PL: { + date: 'Data', + newOwner: 'Nowy właściciel', + oldOwner: 'Poprzedni właściciel', + village: 'Wioska', + title: 'Przejęcia' + }, + en_DK: { + date: 'Date', + newOwner: 'New owner', + oldOwner: 'Old owner', + village: 'Village', + title: 'Ennoblements' + }, + de_DE: { + date: 'Datum', + newOwner: 'Neuer Besitzer', + oldOwner: 'Alter Besitzer', + village: 'Dorf', + title: 'Adelungen' + } +}; +var $37476051484be03e$export$2e2bcd8739ae039 = ()=>$37476051484be03e$var$translations[window.game_data.locale] || $37476051484be03e$var$translations.en_DK +; + + + +const $20636c16dad2c11a$export$21d4bed11ae27f0b = '.popup_box'; +const $20636c16dad2c11a$var$showPopup = ({ html: html , id: id , title: title } = { +})=>{ + Dialog.show(id, `

${title}

` + html); + const popup = document.querySelector($20636c16dad2c11a$export$21d4bed11ae27f0b); + if (popup) { + popup.style.width = 'auto'; + popup.style.maxWidth = '1000px'; + } +}; +var $20636c16dad2c11a$export$2e2bcd8739ae039 = $20636c16dad2c11a$var$showPopup; + + +const $ca7593443ca49f96$export$17201263355d526a = (d = new Date(), tz = 'UTC')=>{ + return new Date(new Date(d).toLocaleString('en-US', { + timeZone: tz + })); +}; +const $ca7593443ca49f96$export$6a20e8f386d90a85 = (d = new Date())=>{ + return $ca7593443ca49f96$export$17201263355d526a(d); +}; +const $ca7593443ca49f96$export$3ae94a2503e890a1 = (date, options)=>{ + return new Date(date).toLocaleDateString(undefined, options ? options : { year: 'numeric', month: '2-digit', - day: '2-digit' - }), ""); - }).join(''), "\n ").concat($921f485217c0c6d00ec9dfbf07cee198$var$translations.total, "\n \n ").concat($921f485217c0c6d00ec9dfbf07cee198$var$getMemberIDs().map(id => { - const filtered = stats.items.filter(item => item.player && item.player.id === id).reverse(); - let player = undefined; - if (filtered.length > 0) { - player = filtered[0].player; + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); +}; + + +const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_ally', + id: id + }); +}; +const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_player', + id: id + }); +}; +const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_village', + id: id + }); +}; +const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{ + const continent = 'K' + String(y)[0] + String(x)[0]; + return `${n} (${x}|${y}) ${continent}`; +}; +const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{ + return Math.round(distance * baseSpeed); +}; +const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{ + return image_base + img; +}; + + +const $5d71a092de4ef3d0$var$PAGINATION_CONTAINER_ID = 'ennoblementsPagination'; +const $5d71a092de4ef3d0$var$translations = $37476051484be03e$export$2e2bcd8739ae039(); +const $5d71a092de4ef3d0$var$getPlayerTd = (player, tribe)=>{ + if (player) return `${player.name} (${tribe ? `${tribe.tag}` : '-'})`; + return '-'; +}; +var $5d71a092de4ef3d0$export$2e2bcd8739ae039 = (e, ennoblements, { limit: limit = 0 , currentPage: currentPage = 1 , onPageChange: onPageChange = ()=>{ +} } = { +})=>{ + const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0({ + total: ennoblements.total, + limit: limit, + currentPage: currentPage + }); + const html = ` +
+ ${paginationItems.join('')} +
+ + + + + + + + + ${ennoblements.items.map((ennoblement)=>{ + let rowHTML = '' + ``; + if (ennoblement.village) rowHTML += ``; + else rowHTML += ''; + rowHTML += $5d71a092de4ef3d0$var$getPlayerTd(ennoblement.newOwner, ennoblement.newOwnerTribe); + rowHTML += $5d71a092de4ef3d0$var$getPlayerTd(ennoblement.oldOwner, ennoblement.oldOwnerTribe); + return rowHTML + ''; + }).join('')} + +
+ ${$5d71a092de4ef3d0$var$translations.date} + + ${$5d71a092de4ef3d0$var$translations.village} + + ${$5d71a092de4ef3d0$var$translations.newOwner} + + ${$5d71a092de4ef3d0$var$translations.oldOwner} +
${$ca7593443ca49f96$export$3ae94a2503e890a1(ennoblement.ennobledAt)}${$db1dd60e5389e0c9$export$c6f77ec2633c38b1(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y)}-
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $5d71a092de4ef3d0$var$translations.title, + id: 'ennoblements', + html: html + }); + document.querySelectorAll('#' + $5d71a092de4ef3d0$var$PAGINATION_CONTAINER_ID + ' a').forEach((el)=>{ + el.addEventListener('click', onPageChange); + }); +}; + + +function $70df79293cae00de$export$2e2bcd8739ae039(dirtyNumber) { + if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) return NaN; + var number = Number(dirtyNumber); + if (isNaN(number)) return number; + return number < 0 ? Math.ceil(number) : Math.floor(number); +} + + + + + +function $a858d2abc30fc0ee$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDate); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); + if (isNaN(amount)) return new Date(NaN); + if (!amount) // If 0 days, no-op to avoid changing times in the hour before end of DST + return date; + date.setDate(date.getDate() + amount); + return date; +} + + + +function $a1ee77722e069569$export$2e2bcd8739ae039(dirtyDate, dirtyAmount) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var amount = $70df79293cae00de$export$2e2bcd8739ae039(dirtyAmount); + return $a858d2abc30fc0ee$export$2e2bcd8739ae039(dirtyDate, -amount); +} + + +const $4b6b30b3791bc0bb$var$translations = { + 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' + }, + de_DE: { + title: `Verlauf`, + date: 'Datum', + tribe: 'Stamm', + points: 'Punkte', + villages: 'Dörfer', + members: 'Mitglieder', + oda: 'BGA', + odd: 'BGV', + ods: 'BGS', + od: 'BP' + } +}; +var $4b6b30b3791bc0bb$export$2e2bcd8739ae039 = ()=>$4b6b30b3791bc0bb$var$translations[window.game_data.locale] || $4b6b30b3791bc0bb$var$translations.en_DK +; + + + + + + +const $8b71c6d7781a0268$var$PAGINATION_CONTAINER_ID = 'historyPagination'; +const $8b71c6d7781a0268$var$translations = $4b6b30b3791bc0bb$export$2e2bcd8739ae039(); +const $8b71c6d7781a0268$var$addMathSymbol = (v)=>{ + return v > 0 ? '+' + v : v; +}; +var $8b71c6d7781a0268$export$2e2bcd8739ae039 = (e, history, daily, { currentPage: currentPage = 1 , limit: limit = 0 , onPageChange: onPageChange = ()=>{ +} , tribe: tribe = false } = { +})=>{ + const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0({ + total: history.total, + limit: limit, + currentPage: currentPage + }); + const html = ` +
+ ${paginationItems.join('')} +
+ + + + + ${tribe ? '' : ``} + + + ${tribe ? `` : ''} + + + + ${tribe ? '' : ``} + + ${history.items.map((history)=>{ + const subtracted = $a1ee77722e069569$export$2e2bcd8739ae039(new Date(history.createDate), 1).toISOString().split('.')[0] + 'Z'; + const stats = daily.items.find((stats)=>{ + return stats.createDate === subtracted; + }); + let rowHTML = '' + ``; + if (!tribe && history.tribe) rowHTML += ``; + else if (!tribe) rowHTML += ''; + rowHTML += ` + + + ${!tribe ? '' : ` + + `} + + + + ${tribe ? '' : ` + + `} + ` + ''; + return rowHTML; + }).join('')} + +
+ ${$8b71c6d7781a0268$var$translations.date} + ${$8b71c6d7781a0268$var$translations.tribe} + ${$8b71c6d7781a0268$var$translations.points} + + ${$8b71c6d7781a0268$var$translations.villages} + ${$8b71c6d7781a0268$var$translations.members} + ${$8b71c6d7781a0268$var$translations.od} + + ${$8b71c6d7781a0268$var$translations.oda} + + ${$8b71c6d7781a0268$var$translations.odd} + ${$8b71c6d7781a0268$var$translations.ods}
${$ca7593443ca49f96$export$3ae94a2503e890a1(history.createDate, { + year: 'numeric', + month: '2-digit', + day: '2-digit' + })}${history.tribe.tag}- + ${history.points.toLocaleString()} (${history.rank}) + + ${history.totalVillages.toLocaleString()} + + ${history.totalMembers} + + ${history.scoreTotal.toLocaleString()} (${history.rankTotal}) + + ${history.scoreAtt.toLocaleString()} (${history.rankAtt}) + + ${history.scoreDef.toLocaleString()} (${history.rankDef}) + + ${history.scoreSup.toLocaleString()} (${history.rankSup}) +
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $8b71c6d7781a0268$var$translations.title, + id: 'history', + html: html + }); + document.querySelectorAll('#' + $8b71c6d7781a0268$var$PAGINATION_CONTAINER_ID + ' a').forEach((el)=>{ + el.addEventListener('click', onPageChange); + }); +}; + + + +var $c1259165cf39ac5b$export$2e2bcd8739ae039 = (url)=>parseInt(new URLSearchParams(url).get('id')) +; + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = (key, d = { +})=>{ + const json = localStorage.getItem(key); + let obj = d; + if (json) obj = JSON.parse(json); + return obj; +}; +const $362bcac9fa8968ec$export$8a8216c44337cd5 = (key, payload)=>{ + localStorage.setItem(key, JSON.stringify(payload)); +}; + + + +var $5b3edb3901c8177a$export$2e2bcd8739ae039 = (server = '')=>server.substr(0, 2) +; + + +const $c8a988f78c71dfa9$export$3df7b9b48f38839e = (server = '', id = 0)=>{ + return `http://www.twstats.com/in/${server}/player/${id}`; +}; + + +const $f3b273bd698d94bc$export$ca6dda5263526f75 = 'tribalwarshelp.com'; +const $f3b273bd698d94bc$export$5d5850cc00079a21 = (version = '', server = '')=>{ + return `https://${version}.${$f3b273bd698d94bc$export$ca6dda5263526f75}/server/${server}`; +}; +const $f3b273bd698d94bc$export$a4588dcb88e3f9db = (version = '', server = '', id = 0, entity = '')=>{ + return `${$f3b273bd698d94bc$export$5d5850cc00079a21(version, server)}/${entity}/${id}`; +}; +const $f3b273bd698d94bc$export$3df7b9b48f38839e = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'player'); +}; +const $f3b273bd698d94bc$export$7345792e21cfc457 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'tribe'); +}; +const $f3b273bd698d94bc$export$e537a41a0fc85cc5 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'village'); +}; + + + +// ==UserScript== +// @name Extended tribe profile +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js +// @version 1.1.8 +// @description Extended tribe profile +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=info_ally* +// @grant none +// @run-at document-end +// ==/UserScript== +const $9c5e2ca851587025$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $9c5e2ca851587025$var$VERSION = $5b3edb3901c8177a$export$2e2bcd8739ae039($9c5e2ca851587025$var$SERVER); +const $9c5e2ca851587025$var$TRIBE_ID = $c1259165cf39ac5b$export$2e2bcd8739ae039(window.location.search); +const $9c5e2ca851587025$var$LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + $9c5e2ca851587025$var$TRIBE_ID; +const $9c5e2ca851587025$var$TRIBE_QUERY = ` + query tribe( + $server: String! + $id: Int! + $dailyTribeStatsSort: [String!] + $dailyTribeStatsLimit: Int + $playersLimit: Int + $playersSort: [String!] + $playerFilter: PlayerFilter! + $dailyTribeStatsFilter: DailyTribeStatsFilter! + ) { + tribe(server: $server, id: $id) { + id + bestRank + bestRankAt + mostPoints + mostPointsAt + mostVillages + mostVillagesAt + createdAt + dominance + } + dailyTribeStats( + server: $server + limit: $dailyTribeStatsLimit + sort: $dailyTribeStatsSort + filter: $dailyTribeStatsFilter + ) { + items { + rank + rankAtt + rankDef + rankTotal + points + scoreAtt + scoreAtt + scoreDef + scoreTotal + villages + members } - const tds = []; - let total = 0; - for (let date of dates) { - const i = filtered.find(i => i.createDate === date); - let val = 0; - if (i) { - val = $921f485217c0c6d00ec9dfbf07cee198$var$mapMembersGrowthTdValue(i); + } + players(server: $server, sort: $playersSort, filter: $playerFilter, limit: $playersLimit) { + items { + id + rankAtt + rankDef + rankSup + rankTotal + scoreAtt + scoreAtt + scoreDef + scoreSup + scoreTotal + dailyGrowth + } + } + } +`; +const $9c5e2ca851587025$var$ENNOBLEMENTS_QUERY = ` + query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) { + ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) { + total + items { + village { + id + name + x + y + } + oldOwner { + id + name + } + oldOwnerTribe { + id + tag + } + newOwner { + id + name + } + newOwnerTribe { + id + tag + } + ennobledAt } - total += val; - tds.push(("").concat(val.toLocaleString(), "")); } - return ("\n \n ").concat(player ? ("").concat(player.name, "") : '-', "\n \n ").concat(tds.join(''), "\n ").concat(total.toLocaleString(), "\n "); - }).join(''), "\n \n "); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_TABLE_ID = 'membersGrowth'; - const $921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_FORM = $921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_TABLE_ID + 'Form'; - const $921f485217c0c6d00ec9dfbf07cee198$var$createChangeTypeHandler = stats => e => { + } +`; +const $9c5e2ca851587025$var$ENNOBLEMENTS_PER_PAGE = 15; +const $9c5e2ca851587025$var$TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY = ` +query tribeHistoryAndTribeDailyStats($server: String!, + $tribeHistoryFilter: TribeHistoryFilter!, + $dailyTribeStatsFilter: DailyTribeStatsFilter!, + $sort: [String!], + $offset: Int, + $limit: Int) { + tribeHistory(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $tribeHistoryFilter) { + total + items { + totalVillages + points + rank + scoreAtt + rankAtt + scoreDef + rankDef + scoreTotal + rankTotal + createDate + totalMembers + } + } + dailyTribeStats(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $dailyTribeStatsFilter) { + items { + points + scoreAtt + scoreDef + scoreTotal + villages + createDate + members + } + } +} +`; +const $9c5e2ca851587025$var$TRIBE_HISTORY_PER_PAGE = 15; +const $9c5e2ca851587025$var$TRIBE_MEMBERS_DAILY_STATS_QUERY = ` +query tribeMembersDailyStats($server: String!, + $filter: DailyPlayerStatsFilter!, + $limit: Int, + $sort: [String!]) { + dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) { + items { + player { + id + name + } + points + scoreAtt + scoreDef + scoreSup + scoreTotal + villages + createDate + } + } +} +`; +let $9c5e2ca851587025$var$MEMBERS_GROWTH_MODE = 'points'; +const $9c5e2ca851587025$var$TRIBE_CHANGES_QUERY = ` + query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) { + tribeChanges(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) { + total + items { + player { + id + name + } + newTribe { + id + tag + } + createdAt + } + } + } +`; +const $9c5e2ca851587025$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID = 'tribeChangesPagination'; +const $9c5e2ca851587025$var$TRIBE_CHANGES_PER_PAGE = 15; +const $9c5e2ca851587025$var$contentValue = document.querySelector('#content_value'); +const $9c5e2ca851587025$var$profileInfoTBody = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody'); +const $9c5e2ca851587025$var$actionContainer = $9c5e2ca851587025$var$profileInfoTBody; +const $9c5e2ca851587025$var$otherElementsContainer = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)'); +const $9c5e2ca851587025$var$membersContainer = $9c5e2ca851587025$var$contentValue.querySelector('h3').nextElementSibling.querySelector('tbody'); +const $9c5e2ca851587025$var$translations = $b2c56a1bf7676610$export$2e2bcd8739ae039(); +const $9c5e2ca851587025$var$loadDataFromCache = ()=>{ + return $362bcac9fa8968ec$export$f92dfeb71e9bb569($9c5e2ca851587025$var$LOCAL_STORAGE_KEY); +}; +const $9c5e2ca851587025$var$cacheTribeData = (data = { +})=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($9c5e2ca851587025$var$LOCAL_STORAGE_KEY, data); +}; +const $9c5e2ca851587025$var$getMemberIDs = ()=>{ + const ids = []; + $9c5e2ca851587025$var$membersContainer.querySelectorAll('a').forEach((a)=>{ + const href = a.getAttribute('href'); + if (href.includes('info_player')) ids.push($c1259165cf39ac5b$export$2e2bcd8739ae039(href)); + }); + return ids; +}; +const $9c5e2ca851587025$var$getMemberNames = ()=>{ + const ids = []; + $9c5e2ca851587025$var$membersContainer.querySelectorAll('a').forEach((a)=>{ + if (a.getAttribute('href').includes('info_player')) ids.push(a.innerText.trim()); + }); + return ids; +}; +const $9c5e2ca851587025$var$loadData = async ()=>{ + const memberIDs = $9c5e2ca851587025$var$getMemberIDs(); + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $9c5e2ca851587025$var$TRIBE_QUERY, + variables: { + server: $9c5e2ca851587025$var$SERVER, + id: $9c5e2ca851587025$var$TRIBE_ID, + dailyTribeStatsSort: [ + 'createDate DESC' + ], + dailyTribeStatsLimit: 1, + dailyTribeStatsFilter: { + tribeID: [ + $9c5e2ca851587025$var$TRIBE_ID + ] + }, + playersSort: [ + 'rank ASC' + ], + playersLimit: memberIDs.length, + playerFilter: { + id: memberIDs + } + } + }); + $9c5e2ca851587025$var$cacheTribeData(data); + return data; +}; +const $9c5e2ca851587025$var$renderTr = ({ title: title , data: data , id: id })=>{ + let tr = document.querySelector('#' + id); + if (!tr) { + tr = document.createElement('tr'); + tr.id = id; + tr.appendChild(document.createElement('td')); + tr.appendChild(document.createElement('td')); + $9c5e2ca851587025$var$profileInfoTBody.append(tr); + } + tr.children[0].innerHTML = title; + tr.children[1].innerHTML = data; +}; +const $9c5e2ca851587025$var$extendMembersData = (players)=>{ + $9c5e2ca851587025$var$membersContainer.parentElement.style.width = '100%'; + $9c5e2ca851587025$var$contentValue.append($9c5e2ca851587025$var$membersContainer.parentElement); + const heading = $9c5e2ca851587025$var$membersContainer.querySelector('tr:first-child'); + if (heading.children.length !== 11) [ + $9c5e2ca851587025$var$translations.oda, + $9c5e2ca851587025$var$translations.odd, + $9c5e2ca851587025$var$translations.ods, + $9c5e2ca851587025$var$translations.od, + $9c5e2ca851587025$var$translations.dailyGrowth, + $9c5e2ca851587025$var$translations.playerLinks, + ].forEach((v)=>{ + const th = document.createElement('th'); + th.innerHTML = v; + heading.appendChild(th); + }); + $9c5e2ca851587025$var$membersContainer.querySelectorAll('tr').forEach((tr)=>{ + const a = tr.querySelector('a'); + if (!a) return; + const playerID = $c1259165cf39ac5b$export$2e2bcd8739ae039(a.getAttribute('href')); + const player = players.items.find((p)=>p.id === playerID + ); + if (player) [ + [ + player.scoreAtt, + player.rankAtt + ], + [ + player.scoreDef, + player.rankDef + ], + [ + player.scoreSup, + player.rankSup + ], + [ + player.scoreTotal, + player.rankTotal + ], + player.dailyGrowth, + [ + { + link: $f3b273bd698d94bc$export$3df7b9b48f38839e($9c5e2ca851587025$var$VERSION, $9c5e2ca851587025$var$SERVER, player.id), + label: 'TWHelp' + }, + { + link: $c8a988f78c71dfa9$export$3df7b9b48f38839e($9c5e2ca851587025$var$SERVER, player.id), + label: 'TWStats' + }, + ], + ].forEach((data, index)=>{ + let td = tr.children[5 + index]; + if (!td) { + td = document.createElement('td'); + tr.appendChild(td); + } + if (Array.isArray(data)) { + if (typeof data[0] === 'number') td.innerHTML = `${data[0].toLocaleString()} (${data[1]})`; + else if (data[0].link) td.innerHTML = data.map(({ link: link , label: label })=>`${label}` + ).join('
'); + } else if (typeof data === 'number') td.innerHTML = data.toLocaleString(); + }); + }); +}; +const $9c5e2ca851587025$var$render = ({ tribe: tribe , dailyTribeStats: dailyTribeStats , players: players })=>{ + [ + { + title: $9c5e2ca851587025$var$translations.createdAt + ':', + data: $ca7593443ca49f96$export$3ae94a2503e890a1(tribe.createdAt), + id: 'created_at' + }, + { + title: $9c5e2ca851587025$var$translations.dominance + ':', + data: tribe.dominance.toFixed(2) + '%', + id: 'dominance' + }, + { + title: $9c5e2ca851587025$var$translations.bestRank + ':', + data: tribe.bestRank + ' ' + `(${$ca7593443ca49f96$export$3ae94a2503e890a1(tribe.bestRankAt)})`, + id: 'best_rank' + }, + { + title: $9c5e2ca851587025$var$translations.mostPoints + ':', + data: tribe.mostPoints.toLocaleString() + ' ' + `(${$ca7593443ca49f96$export$3ae94a2503e890a1(tribe.mostPointsAt)})`, + id: 'most_points' + }, + { + title: $9c5e2ca851587025$var$translations.mostVillages + ':', + data: tribe.mostVillages + ' ' + `(${$ca7593443ca49f96$export$3ae94a2503e890a1(tribe.mostVillagesAt)})`, + id: 'most_villages' + }, + ].forEach((data)=>{ + $9c5e2ca851587025$var$renderTr(data); + }); + if (dailyTribeStats && dailyTribeStats.items.length > 0) $9f98bc5d5b389b94$export$2e2bcd8739ae039($9c5e2ca851587025$var$otherElementsContainer, dailyTribeStats.items[0]); + if (players && players.items.length > 0) $9c5e2ca851587025$var$extendMembersData(players); +}; +const $9c5e2ca851587025$var$handleShowTribeEnnoblementsClick = async (e)=>{ e.preventDefault(); - $921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_MODE = e.target[0].value; - document.querySelector('#' + $921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_TABLE_ID).innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$buildMembersGrowthTBody(stats); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$renderMembersGrowthPopup = (e, stats) => { - const formOptions = [['points', $921f485217c0c6d00ec9dfbf07cee198$var$translations.points], ['villages', $921f485217c0c6d00ec9dfbf07cee198$var$translations.villages], ['od', $921f485217c0c6d00ec9dfbf07cee198$var$translations.opponentsDefeated], ['oda', $921f485217c0c6d00ec9dfbf07cee198$var$translations.opponentsDefeatedAsAttacker], ['odd', $921f485217c0c6d00ec9dfbf07cee198$var$translations.opponentsDefeatedAsDefender], ['ods', $921f485217c0c6d00ec9dfbf07cee198$var$translations.opponentsDefeatedAsSupporter]].map(v => ("")); - const html = ("\n
\n \n \n
\n \n ").concat($921f485217c0c6d00ec9dfbf07cee198$var$buildMembersGrowthTBody(stats), "\n
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $921f485217c0c6d00ec9dfbf07cee198$var$translations.membersGrowth, - id: 'mg', - html + const page = $57fe06ddde7dcd5d$export$c2a6433281518c91(e.target); + if (!isNaN(page)) { + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $9c5e2ca851587025$var$ENNOBLEMENTS_QUERY, + variables: { + filter: { + or: { + oldOwnerTribeID: [ + $9c5e2ca851587025$var$TRIBE_ID + ], + newOwnerTribeID: [ + $9c5e2ca851587025$var$TRIBE_ID + ] + } + }, + offset: $9c5e2ca851587025$var$ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: $9c5e2ca851587025$var$ENNOBLEMENTS_PER_PAGE, + sort: [ + 'ennobledAt DESC' + ], + server: $9c5e2ca851587025$var$SERVER + } + }); + $5d71a092de4ef3d0$export$2e2bcd8739ae039(e, data.ennoblements, { + currentPage: page, + limit: $9c5e2ca851587025$var$ENNOBLEMENTS_PER_PAGE, + onPageChange: $9c5e2ca851587025$var$handleShowTribeEnnoblementsClick + }); + } +}; +const $9c5e2ca851587025$var$handleShowTribeHistoryClick = async (e)=>{ + e.preventDefault(); + const page = $57fe06ddde7dcd5d$export$c2a6433281518c91(e.target); + if (!isNaN(page)) try { + const filter = { + tribeID: [ + $9c5e2ca851587025$var$TRIBE_ID + ] + }; + const { tribeHistory: tribeHistory , dailyTribeStats: dailyTribeStats } = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $9c5e2ca851587025$var$TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY, + variables: { + server: $9c5e2ca851587025$var$SERVER, + offset: $9c5e2ca851587025$var$TRIBE_HISTORY_PER_PAGE * (page - 1), + limit: $9c5e2ca851587025$var$TRIBE_HISTORY_PER_PAGE, + sort: [ + 'createDate DESC' + ], + tribeHistoryFilter: filter, + dailyTribeStatsFilter: filter + } + }); + $8b71c6d7781a0268$export$2e2bcd8739ae039(e, tribeHistory, dailyTribeStats, { + currentPage: page, + limit: $9c5e2ca851587025$var$TRIBE_HISTORY_PER_PAGE, + tribe: true, + onPageChange: $9c5e2ca851587025$var$handleShowTribeHistoryClick + }); + } catch (error) { + console.log('couldnt load tribe history', error); + } +}; +const $9c5e2ca851587025$var$getMembersGrowthTdStyle = (value)=>{ + const statIncreaseStyle = 'color: #000; background-color: #0f0'; + const statDecreaseStyle = 'color: #000; background-color: #f00'; + const defaultStyle = 'color: #000; background-color: #808080'; + return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle; +}; +const $9c5e2ca851587025$var$mapMembersGrowthTdValue = (i)=>{ + switch($9c5e2ca851587025$var$MEMBERS_GROWTH_MODE){ + case 'points': + return i.points; + case 'villages': + return i.villages; + case 'od': + return i.scoreTotal; + case 'oda': + return i.scoreAtt; + case 'odd': + return i.scoreDef; + case 'ods': + return i.scoreSup; + default: + return 0; + } +}; +const $9c5e2ca851587025$var$buildMembersGrowthTBody = (stats)=>{ + const dates = [ + ...new Set(stats.items.map((item)=>item.createDate + )), + ].reverse(); + return ` + + + ${$9c5e2ca851587025$var$translations.player} + ${dates.map((date)=>{ + return `${$ca7593443ca49f96$export$3ae94a2503e890a1(date, { + year: 'numeric', + month: '2-digit', + day: '2-digit' + })}`; + }).join('')} + ${$9c5e2ca851587025$var$translations.total} + + ${$9c5e2ca851587025$var$getMemberIDs().map((id)=>{ + const filtered = stats.items.filter((item)=>item.player && item.player.id === id + ).reverse(); + let player = undefined; + if (filtered.length > 0) player = filtered[0].player; + const tds = []; + let total = 0; + for (let date of dates){ + const i = filtered.find((i)=>i.createDate === date + ); + let val = 0; + if (i) val = $9c5e2ca851587025$var$mapMembersGrowthTdValue(i); + total += val; + tds.push(`${val.toLocaleString()}`); + } + return ` + + ${player ? `${player.name}` : '-'} + + ${tds.join('')} + ${total.toLocaleString()} + `; + }).join('')} + + `; +}; +const $9c5e2ca851587025$var$MEMBERS_GROWTH_TABLE_ID = 'membersGrowth'; +const $9c5e2ca851587025$var$MEMBERS_GROWTH_FORM = $9c5e2ca851587025$var$MEMBERS_GROWTH_TABLE_ID + 'Form'; +const $9c5e2ca851587025$var$createChangeTypeHandler = (stats)=>(e)=>{ + e.preventDefault(); + $9c5e2ca851587025$var$MEMBERS_GROWTH_MODE = e.target[0].value; + document.querySelector('#' + $9c5e2ca851587025$var$MEMBERS_GROWTH_TABLE_ID).innerHTML = $9c5e2ca851587025$var$buildMembersGrowthTBody(stats); + } +; +const $9c5e2ca851587025$var$renderMembersGrowthPopup = (e, stats)=>{ + const formOptions = [ + [ + 'points', + $9c5e2ca851587025$var$translations.points + ], + [ + 'villages', + $9c5e2ca851587025$var$translations.villages + ], + [ + 'od', + $9c5e2ca851587025$var$translations.opponentsDefeated + ], + [ + 'oda', + $9c5e2ca851587025$var$translations.opponentsDefeatedAsAttacker + ], + [ + 'odd', + $9c5e2ca851587025$var$translations.opponentsDefeatedAsDefender + ], + [ + 'ods', + $9c5e2ca851587025$var$translations.opponentsDefeatedAsSupporter + ], + ].map((v)=>`` + ); + const html = ` +
+ + +
+ + ${$9c5e2ca851587025$var$buildMembersGrowthTBody(stats)} +
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $9c5e2ca851587025$var$translations.membersGrowth, + id: 'mg', + html: html }); - document.querySelector('#' + $921f485217c0c6d00ec9dfbf07cee198$var$MEMBERS_GROWTH_FORM).addEventListener('submit', $921f485217c0c6d00ec9dfbf07cee198$var$createChangeTypeHandler(stats)); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$loadMembersGrowthData = async function loadMembersGrowthData() { - let {createDateLTE, createDateGT} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - const memberIDs = $921f485217c0c6d00ec9dfbf07cee198$var$getMemberIDs(); - const limit = memberIDs.length * $c9f3457d5d95bb01e6c13491aea1fd03$export$default(createDateLTE, createDateGT); + document.querySelector('#' + $9c5e2ca851587025$var$MEMBERS_GROWTH_FORM).addEventListener('submit', $9c5e2ca851587025$var$createChangeTypeHandler(stats)); +}; +const $9c5e2ca851587025$var$loadMembersGrowthData = async ({ createDateLTE: createDateLTE , createDateGT: createDateGT } = { +})=>{ + const memberIDs = $9c5e2ca851587025$var$getMemberIDs(); + const limit = memberIDs.length * $404c1b1679418875$export$2e2bcd8739ae039(createDateLTE, createDateGT); const filter = { - playerID: memberIDs, - createDateLTE, - createDateGT + playerID: memberIDs, + createDateLTE: createDateLTE, + createDateGT: createDateGT }; - return await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_MEMBERS_DAILY_STATS_QUERY, - variables: { - filter, - limit, - sort: ['createDate DESC'], - server: $921f485217c0c6d00ec9dfbf07cee198$var$SERVER - } + return await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $9c5e2ca851587025$var$TRIBE_MEMBERS_DAILY_STATS_QUERY, + variables: { + filter: filter, + limit: limit, + sort: [ + 'createDate DESC' + ], + server: $9c5e2ca851587025$var$SERVER + } }); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$handleShowMembersGrowthClick = async e => { +}; +const $9c5e2ca851587025$var$handleShowMembersGrowthClick = async (e)=>{ e.preventDefault(); const createDateGT = new Date(); createDateGT.setDate(createDateGT.getDate() - 7); - const data = await $921f485217c0c6d00ec9dfbf07cee198$var$loadMembersGrowthData({ - createDateLTE: new Date(), - createDateGT + const data = await $9c5e2ca851587025$var$loadMembersGrowthData({ + createDateLTE: new Date(), + createDateGT: createDateGT }); - $921f485217c0c6d00ec9dfbf07cee198$var$renderMembersGrowthPopup(e, data.dailyPlayerStats); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$renderTribeChanges = (e, currentPage, tribeChanges) => { - const paginationItems = $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems({ - total: tribeChanges.total, - limit: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_PER_PAGE, - currentPage + $9c5e2ca851587025$var$renderMembersGrowthPopup(e, data.dailyPlayerStats); +}; +const $9c5e2ca851587025$var$renderTribeChanges = (e, currentPage, tribeChanges)=>{ + const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0({ + total: tribeChanges.total, + limit: $9c5e2ca851587025$var$TRIBE_CHANGES_PER_PAGE, + currentPage: currentPage }); - const html = ("\n
\n ").concat(paginationItems.join(''), "\n
\n \n \n \n \n \n \n \n ").concat(tribeChanges.items.map(tribeChange => { - let rowHTML = '' + (""); - if (tribeChange.player) { - rowHTML += (""); - } else { - rowHTML += ''; - } - rowHTML += (""); - return rowHTML + ''; - }).join(''), "\n \n
\n ").concat($921f485217c0c6d00ec9dfbf07cee198$var$translations.date, "\n \n ").concat($921f485217c0c6d00ec9dfbf07cee198$var$translations.player, "\n \n ").concat($921f485217c0c6d00ec9dfbf07cee198$var$translations.act, "\n
").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(tribeChange.createdAt), "").concat(tribeChange.player.name, "-").concat(tribeChange.newTribe && tribeChange.newTribe.id === $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID ? $921f485217c0c6d00ec9dfbf07cee198$var$translations.joined : $921f485217c0c6d00ec9dfbf07cee198$var$translations.left, "
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $921f485217c0c6d00ec9dfbf07cee198$var$translations.tribeChanges, - id: 'tribeChanges', - html + const html = ` +
+ ${paginationItems.join('')} +
+ + + + + + + + ${tribeChanges.items.map((tribeChange)=>{ + let rowHTML = '' + ``; + if (tribeChange.player) rowHTML += ``; + else rowHTML += ''; + rowHTML += ``; + return rowHTML + ''; + }).join('')} + +
+ ${$9c5e2ca851587025$var$translations.date} + + ${$9c5e2ca851587025$var$translations.player} + + ${$9c5e2ca851587025$var$translations.act} +
${$ca7593443ca49f96$export$3ae94a2503e890a1(tribeChange.createdAt)}${tribeChange.player.name}-${tribeChange.newTribe && tribeChange.newTribe.id === $9c5e2ca851587025$var$TRIBE_ID ? $9c5e2ca851587025$var$translations.joined : $9c5e2ca851587025$var$translations.left}
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $9c5e2ca851587025$var$translations.tribeChanges, + id: 'tribeChanges', + html: html }); - document.querySelectorAll('#' + $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a').forEach(el => { - el.addEventListener('click', $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeChangesClick); + document.querySelectorAll('#' + $9c5e2ca851587025$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a').forEach((el)=>{ + el.addEventListener('click', $9c5e2ca851587025$var$handleShowTribeChangesClick); }); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeChangesClick = async e => { +}; +const $9c5e2ca851587025$var$handleShowTribeChangesClick = async (e)=>{ e.preventDefault(); - const page = $13593d6974cda38c64f44fff96e2987d$export$getPage(e.target); + const page = $57fe06ddde7dcd5d$export$c2a6433281518c91(e.target); if (!isNaN(page)) { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_QUERY, - variables: { - filter: { - or: { - oldTribeID: [$921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID], - newTribeID: [$921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID] + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $9c5e2ca851587025$var$TRIBE_CHANGES_QUERY, + variables: { + filter: { + or: { + oldTribeID: [ + $9c5e2ca851587025$var$TRIBE_ID + ], + newTribeID: [ + $9c5e2ca851587025$var$TRIBE_ID + ] + } + }, + offset: $9c5e2ca851587025$var$TRIBE_CHANGES_PER_PAGE * (page - 1), + limit: $9c5e2ca851587025$var$TRIBE_CHANGES_PER_PAGE, + sort: [ + 'createdAt DESC' + ], + server: $9c5e2ca851587025$var$SERVER } - }, - offset: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_PER_PAGE * (page - 1), - limit: $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_CHANGES_PER_PAGE, - sort: ['createdAt DESC'], - server: $921f485217c0c6d00ec9dfbf07cee198$var$SERVER - } - }); - $921f485217c0c6d00ec9dfbf07cee198$var$renderTribeChanges(e, page, data.tribeChanges); + }); + $9c5e2ca851587025$var$renderTribeChanges(e, page, data.tribeChanges); } - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$handleGenerateMailingListClick = e => { +}; +const $9c5e2ca851587025$var$handleGenerateMailingListClick = (e)=>{ e.preventDefault(); - const members = $921f485217c0c6d00ec9dfbf07cee198$var$getMemberNames(); + const members = $9c5e2ca851587025$var$getMemberNames(); const chunks = []; - for (let i = 0; i < members.length; i += 50) { - chunks.push(members.slice(i, i + 50)); - } + for(let i = 0; i < members.length; i += 50)chunks.push(members.slice(i, i + 50)); let html = ''; - chunks.forEach((names, index) => { - html += ("

").concat(index + 1, ".

\n "); + chunks.forEach((names, index)=>{ + html += `

${index + 1}.

+ `; }); Dialog.show('mailinglist', html); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$loadVillages = async function loadVillages(variables) { - let total = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; +}; +const $9c5e2ca851587025$var$loadVillages = async (variables, total = false)=>{ try { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - variables, - query: ("\n query villages($server: String!, $sort: [String!], $limit: Int, $offset: Int, $filter: VillageFilter!) {\n villages(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $filter) {\n ").concat(total ? 'total' : '', "\n items {\n id\n x\n y\n }\n }\n }\n ") - }); - if (data && data.villages && Array.isArray(data.villages.items)) { - return data.villages; - } + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + variables: variables, + query: ` + query villages($server: String!, $sort: [String!], $limit: Int, $offset: Int, $filter: VillageFilter!) { + villages(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $filter) { + ${total ? 'total' : ''} + items { + id + x + y + } + } + } + ` + }); + if (data && data.villages && Array.isArray(data.villages.items)) return data.villages; } catch (error) { - console.log('load villages', error); + console.log('load villages', error); } return { - total: 0, - items: [] + total: 0, + items: [] }; - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$showLoadingDialog = function showLoadingDialog() { - let current = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - let total = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (!current || !total) { - return Dialog.show('loading', 'Loading...'); - } - return Dialog.show('loading', ("Loaded: ").concat(current, "/").concat(total, "")); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$handleExportTribeVillagesFormSubmit = async e => { +}; +const $9c5e2ca851587025$var$showLoadingDialog = (current = 0, total = 0)=>{ + if (!current || !total) return Dialog.show('loading', 'Loading...'); + return Dialog.show('loading', `Loaded: ${current}/${total}`); +}; +const $9c5e2ca851587025$var$handleExportTribeVillagesFormSubmit = async (e)=>{ e.preventDefault(); let limit = parseInt(e.target[4].value); const variables = { - filter: { - xLTE: parseInt(e.target[0].value), - xGTE: parseInt(e.target[1].value), - yLTE: parseInt(e.target[2].value), - yGTE: parseInt(e.target[3].value), - playerID: $921f485217c0c6d00ec9dfbf07cee198$var$getMemberIDs() - }, - limit: isNaN(limit) || !limit ? 0 : limit, - sort: ['id ASC'], - server: $921f485217c0c6d00ec9dfbf07cee198$var$SERVER + filter: { + xLTE: parseInt(e.target[0].value), + xGTE: parseInt(e.target[1].value), + yLTE: parseInt(e.target[2].value), + yGTE: parseInt(e.target[3].value), + playerID: $9c5e2ca851587025$var$getMemberIDs() + }, + limit: isNaN(limit) || !limit ? 0 : limit, + sort: [ + 'id ASC' + ], + server: $9c5e2ca851587025$var$SERVER }; - $921f485217c0c6d00ec9dfbf07cee198$var$showLoadingDialog(); - let {total, items} = await $921f485217c0c6d00ec9dfbf07cee198$var$loadVillages(variables, true); + $9c5e2ca851587025$var$showLoadingDialog(); + let { total: total , items: items } = await $9c5e2ca851587025$var$loadVillages(variables, true); const length = items.length; - if (limit !== 0 && limit < total) { - total = limit; - } - if (isNaN(limit) || !limit || limit > length) { - for (let offset = length; offset < total; offset += length) { - $921f485217c0c6d00ec9dfbf07cee198$var$showLoadingDialog(offset, total); - const more = await $921f485217c0c6d00ec9dfbf07cee198$var$loadVillages($921f485217c0c6d00ec9dfbf07cee198$var$_objectSpread($921f485217c0c6d00ec9dfbf07cee198$var$_objectSpread({}, variables), {}, { - filter: $921f485217c0c6d00ec9dfbf07cee198$var$_objectSpread({}, variables.filter), - offset + if (limit !== 0 && limit < total) total = limit; + if (isNaN(limit) || !limit || limit > length) for(let offset = length; offset < total; offset += length){ + $9c5e2ca851587025$var$showLoadingDialog(offset, total); + const more = await $9c5e2ca851587025$var$loadVillages($f1e9793517c51c58$export$2e2bcd8739ae039({ + }, variables, { + filter: $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, variables.filter), + offset: offset })); - items = [...items, ...more.items]; - } + items = [ + ...items, + ...more.items + ]; } - Dialog.show('exportTribeVillages', ("\n \n ")); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$handleExportTribeVillagesClick = e => { + Dialog.show('exportTribeVillages', ` + + `); +}; +const $9c5e2ca851587025$var$handleExportTribeVillagesClick = (e)=>{ e.preventDefault(); const FORM_ID = 'etvForm'; - const html = ("\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n "); + const html = ` +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ `; Dialog.show('exportTribeVillages', html); - document.querySelector('#' + FORM_ID).addEventListener('submit', $921f485217c0c6d00ec9dfbf07cee198$var$handleExportTribeVillagesFormSubmit); - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$wrapAction = action => { + document.querySelector('#' + FORM_ID).addEventListener('submit', $9c5e2ca851587025$var$handleExportTribeVillagesFormSubmit); +}; +const $9c5e2ca851587025$var$wrapAction = (action)=>{ const actionWrapperTd = document.createElement('td'); actionWrapperTd.colSpan = '2'; actionWrapperTd.append(action); const actionWrapperTr = document.createElement('tr'); actionWrapperTr.appendChild(actionWrapperTd); return actionWrapperTr; - }; - const $921f485217c0c6d00ec9dfbf07cee198$var$renderActions = () => { +}; +const $9c5e2ca851587025$var$renderActions = ()=>{ const linkToTWHelp = document.createElement('a'); - linkToTWHelp.href = $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL($921f485217c0c6d00ec9dfbf07cee198$var$VERSION, $921f485217c0c6d00ec9dfbf07cee198$var$SERVER, $921f485217c0c6d00ec9dfbf07cee198$var$TRIBE_ID); - linkToTWHelp.innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$translations.action.linkToTWHelp; - $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer.appendChild($921f485217c0c6d00ec9dfbf07cee198$var$wrapAction(linkToTWHelp)); + linkToTWHelp.href = $f3b273bd698d94bc$export$7345792e21cfc457($9c5e2ca851587025$var$VERSION, $9c5e2ca851587025$var$SERVER, $9c5e2ca851587025$var$TRIBE_ID); + linkToTWHelp.innerHTML = $9c5e2ca851587025$var$translations.action.linkToTWHelp; + $9c5e2ca851587025$var$actionContainer.appendChild($9c5e2ca851587025$var$wrapAction(linkToTWHelp)); const showEnnoblements = document.createElement('a'); showEnnoblements.href = '#'; - $13593d6974cda38c64f44fff96e2987d$export$setPage(showEnnoblements, '1'); - showEnnoblements.innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$translations.action.showEnnoblements; - showEnnoblements.addEventListener('click', $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeEnnoblementsClick); - $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer.appendChild($921f485217c0c6d00ec9dfbf07cee198$var$wrapAction(showEnnoblements)); + $57fe06ddde7dcd5d$export$5e830c5f3cd8a610(showEnnoblements, '1'); + showEnnoblements.innerHTML = $9c5e2ca851587025$var$translations.action.showEnnoblements; + showEnnoblements.addEventListener('click', $9c5e2ca851587025$var$handleShowTribeEnnoblementsClick); + $9c5e2ca851587025$var$actionContainer.appendChild($9c5e2ca851587025$var$wrapAction(showEnnoblements)); const showHistory = document.createElement('a'); showHistory.href = '#'; - $13593d6974cda38c64f44fff96e2987d$export$setPage(showHistory, '1'); - showHistory.innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$translations.action.showHistory; - showHistory.addEventListener('click', $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeHistoryClick); - $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer.appendChild($921f485217c0c6d00ec9dfbf07cee198$var$wrapAction(showHistory)); + $57fe06ddde7dcd5d$export$5e830c5f3cd8a610(showHistory, '1'); + showHistory.innerHTML = $9c5e2ca851587025$var$translations.action.showHistory; + showHistory.addEventListener('click', $9c5e2ca851587025$var$handleShowTribeHistoryClick); + $9c5e2ca851587025$var$actionContainer.appendChild($9c5e2ca851587025$var$wrapAction(showHistory)); const showTribeChanges = document.createElement('a'); showTribeChanges.href = '#'; - $13593d6974cda38c64f44fff96e2987d$export$setPage(showTribeChanges, '1'); - showTribeChanges.innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$translations.action.showTribeChanges; - showTribeChanges.addEventListener('click', $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeChangesClick); - $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer.appendChild($921f485217c0c6d00ec9dfbf07cee198$var$wrapAction(showTribeChanges)); + $57fe06ddde7dcd5d$export$5e830c5f3cd8a610(showTribeChanges, '1'); + showTribeChanges.innerHTML = $9c5e2ca851587025$var$translations.action.showTribeChanges; + showTribeChanges.addEventListener('click', $9c5e2ca851587025$var$handleShowTribeChangesClick); + $9c5e2ca851587025$var$actionContainer.appendChild($9c5e2ca851587025$var$wrapAction(showTribeChanges)); const showMembersGrowth = document.createElement('a'); showMembersGrowth.href = '#'; - showMembersGrowth.innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$translations.action.showMembersGrowth; - showMembersGrowth.addEventListener('click', $921f485217c0c6d00ec9dfbf07cee198$var$handleShowMembersGrowthClick); - $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer.appendChild($921f485217c0c6d00ec9dfbf07cee198$var$wrapAction(showMembersGrowth)); + showMembersGrowth.innerHTML = $9c5e2ca851587025$var$translations.action.showMembersGrowth; + showMembersGrowth.addEventListener('click', $9c5e2ca851587025$var$handleShowMembersGrowthClick); + $9c5e2ca851587025$var$actionContainer.appendChild($9c5e2ca851587025$var$wrapAction(showMembersGrowth)); const generateMailingList = document.createElement('a'); generateMailingList.href = '#'; - generateMailingList.innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$translations.action.generateMailingList; - generateMailingList.addEventListener('click', $921f485217c0c6d00ec9dfbf07cee198$var$handleGenerateMailingListClick); - $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer.appendChild($921f485217c0c6d00ec9dfbf07cee198$var$wrapAction(generateMailingList)); + generateMailingList.innerHTML = $9c5e2ca851587025$var$translations.action.generateMailingList; + generateMailingList.addEventListener('click', $9c5e2ca851587025$var$handleGenerateMailingListClick); + $9c5e2ca851587025$var$actionContainer.appendChild($9c5e2ca851587025$var$wrapAction(generateMailingList)); const exportVillages = document.createElement('a'); exportVillages.href = '#'; - exportVillages.innerHTML = $921f485217c0c6d00ec9dfbf07cee198$var$translations.action.exportVillages; - exportVillages.addEventListener('click', $921f485217c0c6d00ec9dfbf07cee198$var$handleExportTribeVillagesClick); - $921f485217c0c6d00ec9dfbf07cee198$var$actionContainer.appendChild($921f485217c0c6d00ec9dfbf07cee198$var$wrapAction(exportVillages)); - }; - (async function () { + exportVillages.innerHTML = $9c5e2ca851587025$var$translations.action.exportVillages; + exportVillages.addEventListener('click', $9c5e2ca851587025$var$handleExportTribeVillagesClick); + $9c5e2ca851587025$var$actionContainer.appendChild($9c5e2ca851587025$var$wrapAction(exportVillages)); +}; +(async function() { try { - $921f485217c0c6d00ec9dfbf07cee198$var$renderActions(); - const dataFromCache = $921f485217c0c6d00ec9dfbf07cee198$var$loadDataFromCache(); - if (dataFromCache && dataFromCache.tribe) { - $921f485217c0c6d00ec9dfbf07cee198$var$render(dataFromCache); - } - const dataFromAPI = await $921f485217c0c6d00ec9dfbf07cee198$var$loadData(); - if (dataFromAPI) { - $921f485217c0c6d00ec9dfbf07cee198$var$render(dataFromAPI); - } + $9c5e2ca851587025$var$renderActions(); + const dataFromCache = $9c5e2ca851587025$var$loadDataFromCache(); + if (dataFromCache && dataFromCache.tribe) $9c5e2ca851587025$var$render(dataFromCache); + const dataFromAPI = await $9c5e2ca851587025$var$loadData(); + if (dataFromAPI) $9c5e2ca851587025$var$render(dataFromAPI); } catch (error) { - console.log('extended tribe profile', error); + console.log('extended tribe profile', error); } - })(); })(); +})(); diff --git a/dist/extendedVillageProfile.js b/dist/extendedVillageProfile.js index 2eec168..a3848d0 100644 --- a/dist/extendedVillageProfile.js +++ b/dist/extendedVillageProfile.js @@ -1,720 +1,794 @@ (function () { - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); - }); - }; - const $f8d29f6173b6f6da192c32aafce06dad$var$translations = { - pl_PL: { - loaded: 'Załadowano', - pop: 'Populacja', - mySupport: 'Moje wsparcie', - allySupport: 'Wsparcie plemienia', - total: 'Łącznie', - possibleLoyalty: 'Prawdopodobne poparcie', - ennobledAt: 'Podbita o', - never: 'Nigdy', - action: { - linkToTWHelp: 'Akta wioski (TWHelp)', - showEnnoblements: 'Pokaż przejęcia', - countIncomingSupport: 'Policz nadchodzące wsparcie' - } - }, - en_DK: { - loaded: 'Loaded', - pop: 'Pop', - mySupport: 'My support', - allySupport: 'Ally support', - total: 'Total', - possibleLoyalty: 'Possible loyalty', - never: 'Never', - ennobledAt: 'Ennobled at', - action: { - linkToTWHelp: 'Village file (TWHelp)', - showEnnoblements: 'Show ennoblements', - countIncomingSupport: 'Count incoming support' - } - }, - de_DE: { - loaded: 'Geladen', - pop: 'Pop', - mySupport: 'Meine Unterstützung', - allySupport: 'Verbündete Unterstützung', - total: 'Total', - possibleLoyalty: 'Mögliche Zustimmung', - never: 'Niemals', - ennobledAt: 'Geadelt am', - action: { - linkToTWHelp: 'Dorfakte (TWHelp)', - showEnnoblements: 'Zeige Adelungen', - countIncomingSupport: 'Zähle ankommende Unterstützung' - } - } - }; - var $f8d29f6173b6f6da192c32aafce06dad$export$default = () => $f8d29f6173b6f6da192c32aafce06dad$var$translations[window.game_data.locale] || $f8d29f6173b6f6da192c32aafce06dad$var$translations.en_DK; - const $13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE = 'data-page'; - const $13593d6974cda38c64f44fff96e2987d$export$getContainerStyles = () => { - return 'display: flex; flex-direction: row; flex-wrap: wrap;'; - }; - const $13593d6974cda38c64f44fff96e2987d$export$setPage = function setPage(el) { - let page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - if (!el instanceof HTMLElement) { - throw new Error('Expected HTMLElement as the first argument'); - } - page = parseInt(page); - if (typeof page !== 'number' || isNaN(page)) { - throw new Error('Expected number or string as the second argument'); - } - el.setAttribute($13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE, page + ''); - }; - const $13593d6974cda38c64f44fff96e2987d$export$getPage = el => { - if (!el instanceof HTMLElement) { - return 0; - } - return parseInt(el.getAttribute($13593d6974cda38c64f44fff96e2987d$var$ATTRIBUTE)); - }; - const $13593d6974cda38c64f44fff96e2987d$export$calcNumberOfPages = (total, limit) => { - if (typeof total !== 'number') { - throw new Error('Expected number as the first argument'); - } - if (typeof limit !== 'number') { - throw new Error('Expected number as the second argument'); - } - return total > 0 ? Math.ceil(total / limit) : 1; - }; - const $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems = function generatePaginationItems() { - let {total, limit, marginRight = 3, currentPage = 0} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - const numberOfPages = $13593d6974cda38c64f44fff96e2987d$export$calcNumberOfPages(total, limit); - const paginationItems = []; - for (let i = 1; i <= numberOfPages; i++) { - if (i === currentPage) { - paginationItems.push((">").concat(i, "<")); - } else { - paginationItems.push(("").concat(i, "")); - } - } - return paginationItems; - }; - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - var $39c4220bac5e8e55ae13cc7489410b3e$export$default = url => parseInt(new URLSearchParams(url).get('id')); - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_ally', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_player', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_village', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() { - let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; - let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; - const continent = 'K' + String(y)[0] + String(x)[0]; - return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => { - return Math.round(distance * baseSpeed); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => { - return image_base + img; - }; - var $a2d6afca3e99a4c1d795f97cc5f14c0b$export$default = unit => { - return $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL(("unit/unit_").concat(unit, ".png")); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$inTZ = function inTZ() { - let d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); - let tz = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'UTC'; - return new Date(new Date(d).toLocaleString('en-US', { - timeZone: tz - })); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate = (date, options) => { - return new Date(date).toLocaleDateString(undefined, options ? options : { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - }); - }; - var $393a22f746cd1f6e45eff96c71b28370$export$default = t => new Promise(resolve => setTimeout(resolve, t)); - const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) { - let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const json = localStorage.getItem(key); - let obj = d; - if (json) { - obj = JSON.parse(json); - } - return obj; - }; - const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => { - localStorage.setItem(key, JSON.stringify(payload)); - }; - function $5a91e85e34da2364b77064ee2dfe41c1$export$default(required, args) { - if (args.length < required) { - throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); - } - } - /** - * @name toDate - * @category Common Helpers - * @summary Convert the given argument to an instance of Date. - * - * @description - * Convert the given argument to an instance of Date. - * - * If the argument is an instance of Date, the function returns its clone. - * - * If the argument is a number, it is treated as a timestamp. - * - * If the argument is none of the above, the function returns Invalid Date. - * - * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`. - * - * @param {Date|Number} argument - the value to convert - * @returns {Date} the parsed date in the local time zone - * @throws {TypeError} 1 argument required - * - * @example - * // Clone the date: - * const result = toDate(new Date(2014, 1, 11, 11, 30, 30)) - * //=> Tue Feb 11 2014 11:30:30 - * - * @example - * // Convert the timestamp to date: - * const result = toDate(1392098430000) - * //=> Tue Feb 11 2014 11:30:30 - */ - function $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(argument) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(1, arguments); - var argStr = Object.prototype.toString.call(argument); - // Clone the date - if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') { - // Prevent the date to lose the milliseconds when passed to new Date() in IE10 - return new Date(argument.getTime()); - } else if (typeof argument === 'number' || argStr === '[object Number]') { - return new Date(argument); - } else { - if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { - // eslint-disable-next-line no-console - console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); - // eslint-disable-next-line no-console - console.warn(new Error().stack); - } - return new Date(NaN); - } - } - /** - * @name differenceInMilliseconds - * @category Millisecond Helpers - * @summary Get the number of milliseconds between the given dates. - * - * @description - * Get the number of milliseconds between the given dates. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of milliseconds - * @throws {TypeError} 2 arguments required - * - * @example - * // How many milliseconds are between - * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700? - * const result = differenceInMilliseconds( - * new Date(2014, 6, 2, 12, 30, 21, 700), - * new Date(2014, 6, 2, 12, 30, 20, 600) - * ) - * //=> 1100 - */ - function $987dc0dc027c0d4aafb08ca79b0ecd15$export$default(dirtyDateLeft, dirtyDateRight) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var dateLeft = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDateLeft); - var dateRight = $4b4a7c205fd87731c6d8e6277d9b5d99$export$default(dirtyDateRight); - return dateLeft.getTime() - dateRight.getTime(); - } - var $8a55ab13e50cc25510a86f88055567af$var$MILLISECONDS_IN_MINUTE = 60000; - /** - * @name differenceInMinutes - * @category Minute Helpers - * @summary Get the number of minutes between the given dates. - * - * @description - * Get the signed number of full (rounded towards 0) minutes between the given dates. - * - * ### v2.0.0 breaking changes: - * - * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes). - * - * @param {Date|Number} dateLeft - the later date - * @param {Date|Number} dateRight - the earlier date - * @returns {Number} the number of minutes - * @throws {TypeError} 2 arguments required - * - * @example - * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00? - * var result = differenceInMinutes( - * new Date(2014, 6, 2, 12, 20, 0), - * new Date(2014, 6, 2, 12, 7, 59) - * ) - * //=> 12 - * - * @example - * // How many minutes are from 10:01:59 to 10:00:00 - * var result = differenceInMinutes( - * new Date(2000, 0, 1, 10, 0, 0), - * new Date(2000, 0, 1, 10, 1, 59) - * ) - * //=> -1 - */ - function $8a55ab13e50cc25510a86f88055567af$export$default(dirtyDateLeft, dirtyDateRight) { - $5a91e85e34da2364b77064ee2dfe41c1$export$default(2, arguments); - var diff = $987dc0dc027c0d4aafb08ca79b0ecd15$export$default(dirtyDateLeft, dirtyDateRight) / $8a55ab13e50cc25510a86f88055567af$var$MILLISECONDS_IN_MINUTE; - return diff > 0 ? Math.floor(diff) : Math.ceil(diff); - } - const $497794f7ecdac1fd2ccb9495447c64f0$export$default = (ennobledAt, speed) => { - let loyalty = 25 + Math.abs($8a55ab13e50cc25510a86f88055567af$export$default(ennobledAt, new Date())) * (speed / 60); - if (loyalty > 100) { - loyalty = 100; - } - return Math.floor(loyalty); - }; - var $1f14636dcc53402ba1b7661b758ca0aa$export$default = function () { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return server.substr(0, 2); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL = 'tribalwarshelp.com'; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage = function buildURLToServerPage() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return ("https://").concat(version, ".").concat($d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL, "/server/").concat(server); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile = function buildURLToProfile() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; - return ("").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL = function buildPlayerURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'player'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL = function buildTribeURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'tribe'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL = function buildVillageURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'village'); - }; - const $3f288d82e5e972d85d580f8ed66de51e$var$translations = { - pl_PL: { - date: 'Data', - newOwner: 'Nowy właściciel', - oldOwner: 'Poprzedni właściciel', - village: 'Wioska', - title: 'Przejęcia' - }, - en_DK: { - date: 'Date', - newOwner: 'New owner', - oldOwner: 'Old owner', - village: 'Village', - title: 'Ennoblements' - }, - de_DE: { - date: 'Datum', - newOwner: 'Neuer Besitzer', - oldOwner: 'Alter Besitzer', - village: 'Dorf', - title: 'Adelungen' - } - }; - var $3f288d82e5e972d85d580f8ed66de51e$export$default = () => $3f288d82e5e972d85d580f8ed66de51e$var$translations[window.game_data.locale] || $3f288d82e5e972d85d580f8ed66de51e$var$translations.en_DK; - const $6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR = '.popup_box'; - const $6412e4d8722bc72f55b3c382206290ed$export$default = function showPopup() { - let {html, id, title} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - Dialog.show(id, ("

").concat(title, "

") + html); - const popup = document.querySelector($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR); - if (popup) { - popup.style.width = 'auto'; - popup.style.maxWidth = '1000px'; - } - }; - const $88f173be92b23fde3128f694442fe0ce$var$PAGINATION_CONTAINER_ID = 'ennoblementsPagination'; - const $88f173be92b23fde3128f694442fe0ce$var$translations = $3f288d82e5e972d85d580f8ed66de51e$export$default(); - const $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd = (player, tribe) => { - if (player) { - return ("").concat(player.name, " (").concat(tribe ? ("").concat(tribe.tag, "") : '-', ")"); - } - return '-'; - }; - var $88f173be92b23fde3128f694442fe0ce$export$default = function (e, ennoblements) { - let {limit = 0, currentPage = 1, onPageChange = () => {}} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const paginationItems = $13593d6974cda38c64f44fff96e2987d$export$generatePaginationItems({ - total: ennoblements.total, - limit, - currentPage - }); - const html = ("\n
\n ").concat(paginationItems.join(''), "\n
\n \n \n \n \n \n \n \n \n ").concat(ennoblements.items.map(ennoblement => { - let rowHTML = '' + (""); - if (ennoblement.village) { - rowHTML += (""); - } else { - rowHTML += ''; - } - rowHTML += $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd(ennoblement.newOwner, ennoblement.newOwnerTribe); - rowHTML += $88f173be92b23fde3128f694442fe0ce$var$getPlayerTd(ennoblement.oldOwner, ennoblement.oldOwnerTribe); - return rowHTML + ''; - }).join(''), "\n \n
\n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.date, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.village, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.newOwner, "\n \n ").concat($88f173be92b23fde3128f694442fe0ce$var$translations.oldOwner, "\n
").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(ennoblement.ennobledAt), "").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "-
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - e, - title: $88f173be92b23fde3128f694442fe0ce$var$translations.title, - id: 'ennoblements', - html - }); - document.querySelectorAll('#' + $88f173be92b23fde3128f694442fe0ce$var$PAGINATION_CONTAINER_ID + ' a').forEach(el => { - el.addEventListener('click', onPageChange); - }); - }; - function $a1e110fd96976c18038324dfd6e74ccb$var$ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); - } - return keys; - } - function $a1e110fd96976c18038324dfd6e74ccb$var$_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - $a1e110fd96976c18038324dfd6e74ccb$var$ownKeys(Object(source), true).forEach(function (key) { - $a1e110fd96976c18038324dfd6e74ccb$var$_defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - $a1e110fd96976c18038324dfd6e74ccb$var$ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; - } - function $a1e110fd96976c18038324dfd6e74ccb$var$_defineProperty(obj, key, value) { - if ((key in obj)) { - Object.defineProperty(obj, key, { +function $6a49e4c969cec444$export$2e2bcd8739ae039(obj, key, value) { + if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true - }); - } else { - obj[key] = value; - } + }); + else obj[key] = value; return obj; - } - // ==UserScript== - // @name Extended village profile - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js - // @version 0.7.8 - // @description Extended village profile - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=info_village* - // @grant none - // @run-at document-end - // ==/UserScript== - const $a1e110fd96976c18038324dfd6e74ccb$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $a1e110fd96976c18038324dfd6e74ccb$var$VILLAGE_ID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(window.location.search); - const $a1e110fd96976c18038324dfd6e74ccb$var$LAST_CONQUER_QUERY = "\n query ennoblements($server: String!, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n"; - const $a1e110fd96976c18038324dfd6e74ccb$var$ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $offset: Int, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, offset: $offset, limit: $limit, sort: $sort, 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"; - const $a1e110fd96976c18038324dfd6e74ccb$var$ENNOBLEMENTS_PER_PAGE = 15; - const $a1e110fd96976c18038324dfd6e74ccb$var$CURR_SERVER_CONFIG = "\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n }\n unitConfig {\n spear {\n pop\n }\n sword {\n pop\n }\n axe {\n pop\n }\n archer {\n pop\n }\n spy {\n pop\n }\n light {\n pop\n }\n marcher {\n pop\n }\n heavy {\n pop\n }\n ram {\n pop\n }\n catapult {\n pop\n }\n knight {\n pop\n }\n snob {\n pop\n }\n }\n }\n }\n"; - const $a1e110fd96976c18038324dfd6e74ccb$var$SERVER_CONFIG_LOCAL_STORAGE_KEY = 'kiszkowaty_extended_village_profile_server_cfg'; - const $a1e110fd96976c18038324dfd6e74ccb$var$actionContainer = document.querySelector('#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody'); - const $a1e110fd96976c18038324dfd6e74ccb$var$additionalInfoContainer = document.querySelector('#content_value table.vis tbody'); - let $a1e110fd96976c18038324dfd6e74ccb$var$serverConfig = {}; - const $a1e110fd96976c18038324dfd6e74ccb$var$translations = $f8d29f6173b6f6da192c32aafce06dad$export$default(); - const $a1e110fd96976c18038324dfd6e74ccb$var$loadConfigFromLocalStorage = () => { - return $3d935538f644f492fe681e00121114a4$export$getItem($a1e110fd96976c18038324dfd6e74ccb$var$SERVER_CONFIG_LOCAL_STORAGE_KEY); - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$cacheServerConfig = function cacheServerConfig() { - let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - $3d935538f644f492fe681e00121114a4$export$setItem($a1e110fd96976c18038324dfd6e74ccb$var$SERVER_CONFIG_LOCAL_STORAGE_KEY, data); - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$isConfigExpired = date => { - return Math.abs(date.getTime() - new Date().getTime()) > 1000 * 60 * 60 * 24; - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$loadConfig = async () => { - let data = $a1e110fd96976c18038324dfd6e74ccb$var$loadConfigFromLocalStorage(); - if (!data.server || $a1e110fd96976c18038324dfd6e74ccb$var$isConfigExpired(new Date(data.loadedAt)) || !data.server.unitConfig || !data.server.config) { - data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $a1e110fd96976c18038324dfd6e74ccb$var$CURR_SERVER_CONFIG, - variables: { - key: $a1e110fd96976c18038324dfd6e74ccb$var$SERVER +} + + +function $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { + }; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); + }); + } + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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]; } - }); - data.loadedAt = new Date(); - $a1e110fd96976c18038324dfd6e74ccb$var$cacheServerConfig(data); + } + return target; +} + + + +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); + }); +}; + + +const $880b3d6f803ef712$var$translations = { + pl_PL: { + loaded: 'Załadowano', + pop: 'Populacja', + mySupport: 'Moje wsparcie', + allySupport: 'Wsparcie plemienia', + total: 'Łącznie', + possibleLoyalty: 'Prawdopodobne poparcie', + ennobledAt: 'Podbita o', + never: 'Nigdy', + action: { + linkToTWHelp: 'Akta wioski (TWHelp)', + showEnnoblements: 'Pokaż przejęcia', + countIncomingSupport: 'Policz nadchodzące wsparcie' + } + }, + en_DK: { + loaded: 'Loaded', + pop: 'Pop', + mySupport: 'My support', + allySupport: 'Ally support', + total: 'Total', + possibleLoyalty: 'Possible loyalty', + never: 'Never', + ennobledAt: 'Ennobled at', + action: { + linkToTWHelp: 'Village file (TWHelp)', + showEnnoblements: 'Show ennoblements', + countIncomingSupport: 'Count incoming support' + } + }, + de_DE: { + loaded: 'Geladen', + pop: 'Pop', + mySupport: 'Meine Unterstützung', + allySupport: 'Verbündete Unterstützung', + total: 'Total', + possibleLoyalty: 'Mögliche Zustimmung', + never: 'Niemals', + ennobledAt: 'Geadelt am', + action: { + linkToTWHelp: 'Dorfakte (TWHelp)', + showEnnoblements: 'Zeige Adelungen', + countIncomingSupport: 'Zähle ankommende Unterstützung' + } + } +}; +var $880b3d6f803ef712$export$2e2bcd8739ae039 = ()=>$880b3d6f803ef712$var$translations[window.game_data.locale] || $880b3d6f803ef712$var$translations.en_DK +; + + +const $57fe06ddde7dcd5d$var$ATTRIBUTE = 'data-page'; +const $57fe06ddde7dcd5d$export$8947b11ec08f5f9d = ()=>{ + return 'display: flex; flex-direction: row; flex-wrap: wrap;'; +}; +const $57fe06ddde7dcd5d$export$5e830c5f3cd8a610 = (el, page = 1)=>{ + if (!el instanceof HTMLElement) throw new Error('Expected HTMLElement as the first argument'); + page = parseInt(page); + if (typeof page !== 'number' || isNaN(page)) throw new Error('Expected number or string as the second argument'); + el.setAttribute($57fe06ddde7dcd5d$var$ATTRIBUTE, page + ''); +}; +const $57fe06ddde7dcd5d$export$c2a6433281518c91 = (el)=>{ + if (!el instanceof HTMLElement) return 0; + return parseInt(el.getAttribute($57fe06ddde7dcd5d$var$ATTRIBUTE)); +}; +const $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4 = (total, limit)=>{ + if (typeof total !== 'number') throw new Error('Expected number as the first argument'); + if (typeof limit !== 'number') throw new Error('Expected number as the second argument'); + return total > 0 ? Math.ceil(total / limit) : 1; +}; +const $57fe06ddde7dcd5d$export$58a42a77c71a7de0 = ({ total: total , limit: limit , marginRight: marginRight = 3 , currentPage: currentPage = 0 , } = { +})=>{ + const numberOfPages = $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4(total, limit); + const paginationItems = []; + for(let i = 1; i <= numberOfPages; i++)if (i === currentPage) paginationItems.push(`>${i}<`); + else paginationItems.push(`${i}`); + return paginationItems; +}; + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +var $c1259165cf39ac5b$export$2e2bcd8739ae039 = (url)=>parseInt(new URLSearchParams(url).get('id')) +; + + +const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_ally', + id: id + }); +}; +const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_player', + id: id + }); +}; +const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_village', + id: id + }); +}; +const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{ + const continent = 'K' + String(y)[0] + String(x)[0]; + return `${n} (${x}|${y}) ${continent}`; +}; +const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{ + return Math.round(distance * baseSpeed); +}; +const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{ + return image_base + img; +}; + + +var $3cc0f054d48dddd4$export$2e2bcd8739ae039 = (unit)=>{ + return $db1dd60e5389e0c9$export$8b4b6650247854da(`unit/unit_${unit}.png`); +}; + + +const $ca7593443ca49f96$export$17201263355d526a = (d = new Date(), tz = 'UTC')=>{ + return new Date(new Date(d).toLocaleString('en-US', { + timeZone: tz + })); +}; +const $ca7593443ca49f96$export$6a20e8f386d90a85 = (d = new Date())=>{ + return $ca7593443ca49f96$export$17201263355d526a(d); +}; +const $ca7593443ca49f96$export$3ae94a2503e890a1 = (date, options)=>{ + return new Date(date).toLocaleDateString(undefined, options ? options : { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); +}; + + +var $fc029eaf0e980c2d$export$2e2bcd8739ae039 = (t)=>new Promise((resolve)=>setTimeout(resolve, t) + ) +; + + +const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = (key, d = { +})=>{ + const json = localStorage.getItem(key); + let obj = d; + if (json) obj = JSON.parse(json); + return obj; +}; +const $362bcac9fa8968ec$export$8a8216c44337cd5 = (key, payload)=>{ + localStorage.setItem(key, JSON.stringify(payload)); +}; + + +function $14473fdd7558f621$export$2e2bcd8739ae039(required, args) { + if (args.length < required) throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present'); +} + + +function $cef0ab118a15bdd4$export$2e2bcd8739ae039(argument) { + $14473fdd7558f621$export$2e2bcd8739ae039(1, arguments); + var argStr = Object.prototype.toString.call(argument); // Clone the date + if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()); + else if (typeof argument === 'number' || argStr === '[object Number]') return new Date(argument); + else { + if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') { + // eslint-disable-next-line no-console + console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"); // eslint-disable-next-line no-console + console.warn(new Error().stack); + } + return new Date(NaN); + } +} + + + +function $0efd46ae48a1111f$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var dateLeft = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDateLeft); + var dateRight = $cef0ab118a15bdd4$export$2e2bcd8739ae039(dirtyDateRight); + return dateLeft.getTime() - dateRight.getTime(); +} + + + +var $d8d089e636d25180$var$MILLISECONDS_IN_MINUTE = 60000; +function $d8d089e636d25180$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) { + $14473fdd7558f621$export$2e2bcd8739ae039(2, arguments); + var diff = $0efd46ae48a1111f$export$2e2bcd8739ae039(dirtyDateLeft, dirtyDateRight) / $d8d089e636d25180$var$MILLISECONDS_IN_MINUTE; + return diff > 0 ? Math.floor(diff) : Math.ceil(diff); +} + + +const $8e88e9cb6c51e781$var$calcLoyalty = (ennobledAt, speed)=>{ + let loyalty = 25 + Math.abs($d8d089e636d25180$export$2e2bcd8739ae039(ennobledAt, new Date())) * (speed / 60); + if (loyalty > 100) loyalty = 100; + return Math.floor(loyalty); +}; +var $8e88e9cb6c51e781$export$2e2bcd8739ae039 = $8e88e9cb6c51e781$var$calcLoyalty; + + +var $5b3edb3901c8177a$export$2e2bcd8739ae039 = (server = '')=>server.substr(0, 2) +; + + +const $f3b273bd698d94bc$export$ca6dda5263526f75 = 'tribalwarshelp.com'; +const $f3b273bd698d94bc$export$5d5850cc00079a21 = (version = '', server = '')=>{ + return `https://${version}.${$f3b273bd698d94bc$export$ca6dda5263526f75}/server/${server}`; +}; +const $f3b273bd698d94bc$export$a4588dcb88e3f9db = (version = '', server = '', id = 0, entity = '')=>{ + return `${$f3b273bd698d94bc$export$5d5850cc00079a21(version, server)}/${entity}/${id}`; +}; +const $f3b273bd698d94bc$export$3df7b9b48f38839e = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'player'); +}; +const $f3b273bd698d94bc$export$7345792e21cfc457 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'tribe'); +}; +const $f3b273bd698d94bc$export$e537a41a0fc85cc5 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'village'); +}; + + +const $37476051484be03e$var$translations = { + pl_PL: { + date: 'Data', + newOwner: 'Nowy właściciel', + oldOwner: 'Poprzedni właściciel', + village: 'Wioska', + title: 'Przejęcia' + }, + en_DK: { + date: 'Date', + newOwner: 'New owner', + oldOwner: 'Old owner', + village: 'Village', + title: 'Ennoblements' + }, + de_DE: { + date: 'Datum', + newOwner: 'Neuer Besitzer', + oldOwner: 'Alter Besitzer', + village: 'Dorf', + title: 'Adelungen' + } +}; +var $37476051484be03e$export$2e2bcd8739ae039 = ()=>$37476051484be03e$var$translations[window.game_data.locale] || $37476051484be03e$var$translations.en_DK +; + + + +const $20636c16dad2c11a$export$21d4bed11ae27f0b = '.popup_box'; +const $20636c16dad2c11a$var$showPopup = ({ html: html , id: id , title: title } = { +})=>{ + Dialog.show(id, `

${title}

` + html); + const popup = document.querySelector($20636c16dad2c11a$export$21d4bed11ae27f0b); + if (popup) { + popup.style.width = 'auto'; + popup.style.maxWidth = '1000px'; + } +}; +var $20636c16dad2c11a$export$2e2bcd8739ae039 = $20636c16dad2c11a$var$showPopup; + + + + +const $5d71a092de4ef3d0$var$PAGINATION_CONTAINER_ID = 'ennoblementsPagination'; +const $5d71a092de4ef3d0$var$translations = $37476051484be03e$export$2e2bcd8739ae039(); +const $5d71a092de4ef3d0$var$getPlayerTd = (player, tribe)=>{ + if (player) return `${player.name} (${tribe ? `${tribe.tag}` : '-'})`; + return '-'; +}; +var $5d71a092de4ef3d0$export$2e2bcd8739ae039 = (e, ennoblements, { limit: limit = 0 , currentPage: currentPage = 1 , onPageChange: onPageChange = ()=>{ +} } = { +})=>{ + const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0({ + total: ennoblements.total, + limit: limit, + currentPage: currentPage + }); + const html = ` +
+ ${paginationItems.join('')} +
+ + + + + + + + + ${ennoblements.items.map((ennoblement)=>{ + let rowHTML = '' + ``; + if (ennoblement.village) rowHTML += ``; + else rowHTML += ''; + rowHTML += $5d71a092de4ef3d0$var$getPlayerTd(ennoblement.newOwner, ennoblement.newOwnerTribe); + rowHTML += $5d71a092de4ef3d0$var$getPlayerTd(ennoblement.oldOwner, ennoblement.oldOwnerTribe); + return rowHTML + ''; + }).join('')} + +
+ ${$5d71a092de4ef3d0$var$translations.date} + + ${$5d71a092de4ef3d0$var$translations.village} + + ${$5d71a092de4ef3d0$var$translations.newOwner} + + ${$5d71a092de4ef3d0$var$translations.oldOwner} +
${$ca7593443ca49f96$export$3ae94a2503e890a1(ennoblement.ennobledAt)}${$db1dd60e5389e0c9$export$c6f77ec2633c38b1(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y)}-
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + e: e, + title: $5d71a092de4ef3d0$var$translations.title, + id: 'ennoblements', + html: html + }); + document.querySelectorAll('#' + $5d71a092de4ef3d0$var$PAGINATION_CONTAINER_ID + ' a').forEach((el)=>{ + el.addEventListener('click', onPageChange); + }); +}; + + +// ==UserScript== +// @name Extended village profile +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js +// @version 0.7.8 +// @description Extended village profile +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=info_village* +// @grant none +// @run-at document-end +// ==/UserScript== +const $5206cf4fa105cda6$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $5206cf4fa105cda6$var$VILLAGE_ID = $c1259165cf39ac5b$export$2e2bcd8739ae039(window.location.search); +const $5206cf4fa105cda6$var$LAST_CONQUER_QUERY = ` + query ennoblements($server: String!, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) { + ennoblements(server: $server, limit: $limit, sort: $sort, filter: $filter) { + items { + ennobledAt + village { + id + } + } + } + } +`; +const $5206cf4fa105cda6$var$ENNOBLEMENTS_QUERY = ` + query ennoblements($server: String!, $offset: Int, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) { + ennoblements(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) { + total + items { + village { + id + name + x + y + } + oldOwner { + id + name + } + oldOwnerTribe { + id + tag + } + newOwner { + id + name + } + newOwnerTribe { + id + tag + } + ennobledAt + } + } + } +`; +const $5206cf4fa105cda6$var$ENNOBLEMENTS_PER_PAGE = 15; +const $5206cf4fa105cda6$var$CURR_SERVER_CONFIG = ` + query server($key: String!) { + server(key: $key) { + config { + speed + } + unitConfig { + spear { + pop + } + sword { + pop + } + axe { + pop + } + archer { + pop + } + spy { + pop + } + light { + pop + } + marcher { + pop + } + heavy { + pop + } + ram { + pop + } + catapult { + pop + } + knight { + pop + } + snob { + pop + } + } + } + } +`; +const $5206cf4fa105cda6$var$SERVER_CONFIG_LOCAL_STORAGE_KEY = 'kiszkowaty_extended_village_profile_server_cfg'; +const $5206cf4fa105cda6$var$actionContainer = document.querySelector('#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody'); +const $5206cf4fa105cda6$var$additionalInfoContainer = document.querySelector('#content_value table.vis tbody'); +let $5206cf4fa105cda6$var$serverConfig = { +}; +const $5206cf4fa105cda6$var$translations = $880b3d6f803ef712$export$2e2bcd8739ae039(); +const $5206cf4fa105cda6$var$loadConfigFromLocalStorage = ()=>{ + return $362bcac9fa8968ec$export$f92dfeb71e9bb569($5206cf4fa105cda6$var$SERVER_CONFIG_LOCAL_STORAGE_KEY); +}; +const $5206cf4fa105cda6$var$cacheServerConfig = (data = { +})=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($5206cf4fa105cda6$var$SERVER_CONFIG_LOCAL_STORAGE_KEY, data); +}; +const $5206cf4fa105cda6$var$isConfigExpired = (date)=>{ + return Math.abs(date.getTime() - new Date().getTime()) > 86400000; +}; +const $5206cf4fa105cda6$var$loadConfig = async ()=>{ + let data = $5206cf4fa105cda6$var$loadConfigFromLocalStorage(); + if (!data.server || $5206cf4fa105cda6$var$isConfigExpired(new Date(data.loadedAt)) || !data.server.unitConfig || !data.server.config) { + data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $5206cf4fa105cda6$var$CURR_SERVER_CONFIG, + variables: { + key: $5206cf4fa105cda6$var$SERVER + } + }); + data.loadedAt = new Date(); + $5206cf4fa105cda6$var$cacheServerConfig(data); } return data.server; - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$loadPageData = async () => { - let data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $a1e110fd96976c18038324dfd6e74ccb$var$LAST_CONQUER_QUERY, - variables: { - server: $a1e110fd96976c18038324dfd6e74ccb$var$SERVER, - filter: { - villageID: [$a1e110fd96976c18038324dfd6e74ccb$var$VILLAGE_ID] - }, - sort: ['ennobledAt DESC'], - limit: 1 - } +}; +const $5206cf4fa105cda6$var$loadPageData = async ()=>{ + let data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $5206cf4fa105cda6$var$LAST_CONQUER_QUERY, + variables: { + server: $5206cf4fa105cda6$var$SERVER, + filter: { + villageID: [ + $5206cf4fa105cda6$var$VILLAGE_ID + ] + }, + sort: [ + 'ennobledAt DESC' + ], + limit: 1 + } }); return data; - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$handleShowTribeEnnoblementsClick = async e => { +}; +const $5206cf4fa105cda6$var$handleShowTribeEnnoblementsClick = async (e)=>{ e.preventDefault(); - const page = $13593d6974cda38c64f44fff96e2987d$export$getPage(e.target); + const page = $57fe06ddde7dcd5d$export$c2a6433281518c91(e.target); if (!isNaN(page)) { - const data = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $a1e110fd96976c18038324dfd6e74ccb$var$ENNOBLEMENTS_QUERY, - variables: { - filter: { - villageID: [$a1e110fd96976c18038324dfd6e74ccb$var$VILLAGE_ID] - }, - offset: $a1e110fd96976c18038324dfd6e74ccb$var$ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: $a1e110fd96976c18038324dfd6e74ccb$var$ENNOBLEMENTS_PER_PAGE, - sort: ['ennobledAt DESC'], - server: $a1e110fd96976c18038324dfd6e74ccb$var$SERVER - } - }); - $88f173be92b23fde3128f694442fe0ce$export$default(e, data.ennoblements, { - currentPage: page, - limit: $a1e110fd96976c18038324dfd6e74ccb$var$ENNOBLEMENTS_PER_PAGE, - onPageChange: $a1e110fd96976c18038324dfd6e74ccb$var$handleShowTribeEnnoblementsClick - }); + const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $5206cf4fa105cda6$var$ENNOBLEMENTS_QUERY, + variables: { + filter: { + villageID: [ + $5206cf4fa105cda6$var$VILLAGE_ID + ] + }, + offset: $5206cf4fa105cda6$var$ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: $5206cf4fa105cda6$var$ENNOBLEMENTS_PER_PAGE, + sort: [ + 'ennobledAt DESC' + ], + server: $5206cf4fa105cda6$var$SERVER + } + }); + $5d71a092de4ef3d0$export$2e2bcd8739ae039(e, data.ennoblements, { + currentPage: page, + limit: $5206cf4fa105cda6$var$ENNOBLEMENTS_PER_PAGE, + onPageChange: $5206cf4fa105cda6$var$handleShowTribeEnnoblementsClick + }); } - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$buildCellsForIncSupport = units => { +}; +const $5206cf4fa105cda6$var$buildCellsForIncSupport = (units)=>{ const cells = []; let pop = 0; - for (let unit in units) { - pop += units[unit] * $a1e110fd96976c18038324dfd6e74ccb$var$serverConfig.unitConfig[unit].pop; - cells.push(("").concat(units[unit].toLocaleString(), "")); + for(let unit in units){ + pop += units[unit] * $5206cf4fa105cda6$var$serverConfig.unitConfig[unit].pop; + cells.push(`${units[unit].toLocaleString()}`); } - cells.push(("").concat(pop.toLocaleString(), "")); + cells.push(`${pop.toLocaleString()}`); return cells; - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$handleCountIncomingSupportClick = async e => { +}; +const $5206cf4fa105cda6$var$handleCountIncomingSupportClick = async (e)=>{ e.preventDefault(); const ids = []; - const allyCommand = {}; - document.querySelectorAll('span.command_hover_details[data-command-type="support"]').forEach(el => { - const id = parseInt(el.getAttribute('data-command-id')); - if (el.classList.contains('commandicon-ally')) { - allyCommand[id] = true; - } else { - allyCommand[id] = false; - } - ids.push(id); + const allyCommand = { + }; + document.querySelectorAll('span.command_hover_details[data-command-type="support"]').forEach((el)=>{ + const id = parseInt(el.getAttribute('data-command-id')); + if (el.classList.contains('commandicon-ally')) allyCommand[id] = true; + else allyCommand[id] = false; + ids.push(id); }); const mySupport = { - spear: 0, - sword: 0, - axe: 0, - archer: 0, - spy: 0, - light: 0, - marcher: 0, - heavy: 0, - ram: 0, - catapult: 0, - knight: 0, - snob: 0 + spear: 0, + sword: 0, + axe: 0, + archer: 0, + spy: 0, + light: 0, + marcher: 0, + heavy: 0, + ram: 0, + catapult: 0, + knight: 0, + snob: 0 }; - const allySupport = $a1e110fd96976c18038324dfd6e74ccb$var$_objectSpread({}, mySupport); - const total = $a1e110fd96976c18038324dfd6e74ccb$var$_objectSpread({}, mySupport); - for (let i = 0; i < ids.length; i++) { - Dialog.show('incomingSupport', ("").concat($a1e110fd96976c18038324dfd6e74ccb$var$translations.loaded, ": ").concat(i, " / ").concat(ids.length, "")); - const id = ids[i]; - const url = TribalWars.buildURL('', { - screen: 'info_command', - ajax: 'details', - id - }); - try { - const resp = await fetch(url); - const {units} = await resp.json(); - if (units) { - for (let unit in mySupport) { - const count = parseInt(units[unit].count); - if (allyCommand[id]) { - allySupport[unit] += count; - } else { - mySupport[unit] += count; + const allySupport = $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, mySupport); + const total = $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, mySupport); + for(let i = 0; i < ids.length; i++){ + Dialog.show('incomingSupport', `${$5206cf4fa105cda6$var$translations.loaded}: ${i} / ${ids.length}`); + const id = ids[i]; + const url = TribalWars.buildURL('', { + screen: 'info_command', + ajax: 'details', + id: id + }); + try { + const resp = await fetch(url); + const { units: units } = await resp.json(); + if (units) for(let unit in mySupport){ + const count = parseInt(units[unit].count); + if (allyCommand[id]) allySupport[unit] += count; + else mySupport[unit] += count; + total[unit] += count; } - total[unit] += count; - } + await $fc029eaf0e980c2d$export$2e2bcd8739ae039(200); + } catch (error) { + console.log('count incoming support', error); } - await $393a22f746cd1f6e45eff96c71b28370$export$default(200); - } catch (error) { - console.log('count incoming support', error); - } } - const ths = ['']; - for (let unit in mySupport) { - ths.push(("")); - } - ths.push(("").concat($a1e110fd96976c18038324dfd6e74ccb$var$translations.pop, "")); - const mySupportCells = [("").concat($a1e110fd96976c18038324dfd6e74ccb$var$translations.mySupport, ""), ...$a1e110fd96976c18038324dfd6e74ccb$var$buildCellsForIncSupport(mySupport)]; - const allySupportCells = [("").concat($a1e110fd96976c18038324dfd6e74ccb$var$translations.allySupport, ""), ...$a1e110fd96976c18038324dfd6e74ccb$var$buildCellsForIncSupport(allySupport)]; - const totalCells = [("").concat($a1e110fd96976c18038324dfd6e74ccb$var$translations.total, ""), ...$a1e110fd96976c18038324dfd6e74ccb$var$buildCellsForIncSupport(total)]; - Dialog.show('incomingSupport', ("\n \n \n \n ").concat(ths.join(''), "\n \n \n ").concat(mySupportCells.join(''), "\n \n \n ").concat(allySupportCells.join(''), "\n \n \n ").concat(totalCells.join(''), "\n \n \n
\n ")); + const ths = [ + '' + ]; + for(let unit in mySupport)ths.push(``); + ths.push(`${$5206cf4fa105cda6$var$translations.pop}`); + const mySupportCells = [ + `${$5206cf4fa105cda6$var$translations.mySupport}`, + ...$5206cf4fa105cda6$var$buildCellsForIncSupport(mySupport), + ]; + const allySupportCells = [ + `${$5206cf4fa105cda6$var$translations.allySupport}`, + ...$5206cf4fa105cda6$var$buildCellsForIncSupport(allySupport), + ]; + const totalCells = [ + `${$5206cf4fa105cda6$var$translations.total}`, + ...$5206cf4fa105cda6$var$buildCellsForIncSupport(total), + ]; + Dialog.show('incomingSupport', ` + + + + ${ths.join('')} + + + ${mySupportCells.join('')} + + + ${allySupportCells.join('')} + + + ${totalCells.join('')} + + +
+ `); const popup = document.querySelector('.popup_box'); if (popup) { - popup.style.width = 'auto'; - popup.style.maxWidth = '900px'; + popup.style.width = 'auto'; + popup.style.maxWidth = '900px'; } - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$wrapAction = action => { +}; +const $5206cf4fa105cda6$var$wrapAction = (action)=>{ const actionWrapperTd = document.createElement('td'); actionWrapperTd.colSpan = '2'; actionWrapperTd.append(action); const actionWrapperTr = document.createElement('tr'); actionWrapperTr.appendChild(actionWrapperTd); return actionWrapperTr; - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$renderActions = () => { +}; +const $5206cf4fa105cda6$var$renderActions = ()=>{ const linkToTWHelp = document.createElement('a'); - linkToTWHelp.href = $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL($1f14636dcc53402ba1b7661b758ca0aa$export$default($a1e110fd96976c18038324dfd6e74ccb$var$SERVER), $a1e110fd96976c18038324dfd6e74ccb$var$SERVER, $a1e110fd96976c18038324dfd6e74ccb$var$VILLAGE_ID); - linkToTWHelp.innerHTML = $a1e110fd96976c18038324dfd6e74ccb$var$translations.action.linkToTWHelp; - $a1e110fd96976c18038324dfd6e74ccb$var$actionContainer.appendChild($a1e110fd96976c18038324dfd6e74ccb$var$wrapAction(linkToTWHelp)); + linkToTWHelp.href = $f3b273bd698d94bc$export$e537a41a0fc85cc5($5b3edb3901c8177a$export$2e2bcd8739ae039($5206cf4fa105cda6$var$SERVER), $5206cf4fa105cda6$var$SERVER, $5206cf4fa105cda6$var$VILLAGE_ID); + linkToTWHelp.innerHTML = $5206cf4fa105cda6$var$translations.action.linkToTWHelp; + $5206cf4fa105cda6$var$actionContainer.appendChild($5206cf4fa105cda6$var$wrapAction(linkToTWHelp)); const showEnnoblementsPopup = document.createElement('a'); showEnnoblementsPopup.href = '#'; - $13593d6974cda38c64f44fff96e2987d$export$setPage(showEnnoblementsPopup, '1'); - showEnnoblementsPopup.innerHTML = $a1e110fd96976c18038324dfd6e74ccb$var$translations.action.showEnnoblements; - showEnnoblementsPopup.addEventListener('click', $a1e110fd96976c18038324dfd6e74ccb$var$handleShowTribeEnnoblementsClick); - $a1e110fd96976c18038324dfd6e74ccb$var$actionContainer.appendChild($a1e110fd96976c18038324dfd6e74ccb$var$wrapAction(showEnnoblementsPopup)); + $57fe06ddde7dcd5d$export$5e830c5f3cd8a610(showEnnoblementsPopup, '1'); + showEnnoblementsPopup.innerHTML = $5206cf4fa105cda6$var$translations.action.showEnnoblements; + showEnnoblementsPopup.addEventListener('click', $5206cf4fa105cda6$var$handleShowTribeEnnoblementsClick); + $5206cf4fa105cda6$var$actionContainer.appendChild($5206cf4fa105cda6$var$wrapAction(showEnnoblementsPopup)); const countIncomingSupport = document.createElement('a'); countIncomingSupport.href = '#'; - countIncomingSupport.innerHTML = $a1e110fd96976c18038324dfd6e74ccb$var$translations.action.countIncomingSupport; - countIncomingSupport.addEventListener('click', $a1e110fd96976c18038324dfd6e74ccb$var$handleCountIncomingSupportClick); - $a1e110fd96976c18038324dfd6e74ccb$var$actionContainer.appendChild($a1e110fd96976c18038324dfd6e74ccb$var$wrapAction(countIncomingSupport)); - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$renderTr = _ref => { - let {title, data, id} = _ref; + countIncomingSupport.innerHTML = $5206cf4fa105cda6$var$translations.action.countIncomingSupport; + countIncomingSupport.addEventListener('click', $5206cf4fa105cda6$var$handleCountIncomingSupportClick); + $5206cf4fa105cda6$var$actionContainer.appendChild($5206cf4fa105cda6$var$wrapAction(countIncomingSupport)); +}; +const $5206cf4fa105cda6$var$renderTr = ({ title: title , data: data , id: id })=>{ let tr = document.querySelector('#' + id); if (!tr) { - tr = document.createElement('tr'); - tr.id = id; - tr.appendChild(document.createElement('td')); - tr.appendChild(document.createElement('td')); - $a1e110fd96976c18038324dfd6e74ccb$var$additionalInfoContainer.append(tr); + tr = document.createElement('tr'); + tr.id = id; + tr.appendChild(document.createElement('td')); + tr.appendChild(document.createElement('td')); + $5206cf4fa105cda6$var$additionalInfoContainer.append(tr); } tr.children[0].innerHTML = title; tr.children[1].innerHTML = data; - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$countUnitsInVillage = () => { +}; +const $5206cf4fa105cda6$var$countUnitsInVillage = ()=>{ const trs = document.querySelectorAll('#content_value > div tbody tr'); const units = []; if (trs.length === 0) throw new Error(); - trs[0].querySelectorAll('.unit_link').forEach(() => { - units.push(0); + trs[0].querySelectorAll('.unit_link').forEach(()=>{ + units.push(0); }); - for (let i = 1; i < trs.length; i++) { - const tr = trs[i]; - tr.querySelectorAll('.unit-item').forEach((td, index) => { - units[index] += parseInt(td.innerHTML); - }); + for(let i = 1; i < trs.length; i++){ + const tr = trs[i]; + tr.querySelectorAll('.unit-item').forEach((td, index)=>{ + units[index] += parseInt(td.innerHTML); + }); } return units; - }; - const $a1e110fd96976c18038324dfd6e74ccb$var$renderAdditionalInfo = function renderAdditionalInfo() { - let {config, ennoblements} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; +}; +const $5206cf4fa105cda6$var$renderAdditionalInfo = ({ config: config , ennoblements: ennoblements } = { +})=>{ const firstEnnoblement = ennoblements && Array.isArray(ennoblements.items) && ennoblements.items[0] ? ennoblements.items[0] : undefined; - $a1e110fd96976c18038324dfd6e74ccb$var$renderTr({ - id: 'loyalty', - title: ("").concat($a1e110fd96976c18038324dfd6e74ccb$var$translations.possibleLoyalty, ":"), - data: firstEnnoblement ? $497794f7ecdac1fd2ccb9495447c64f0$export$default(new Date(firstEnnoblement.ennobledAt), config.speed) : 100 + $5206cf4fa105cda6$var$renderTr({ + id: 'loyalty', + title: `${$5206cf4fa105cda6$var$translations.possibleLoyalty}:`, + data: firstEnnoblement ? $8e88e9cb6c51e781$export$2e2bcd8739ae039(new Date(firstEnnoblement.ennobledAt), config.speed) : 100 }); - $a1e110fd96976c18038324dfd6e74ccb$var$renderTr({ - id: 'ennobledAt', - title: ("").concat($a1e110fd96976c18038324dfd6e74ccb$var$translations.ennobledAt, ":"), - data: firstEnnoblement ? $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(firstEnnoblement.ennobledAt) : $a1e110fd96976c18038324dfd6e74ccb$var$translations.never + $5206cf4fa105cda6$var$renderTr({ + id: 'ennobledAt', + title: `${$5206cf4fa105cda6$var$translations.ennobledAt}:`, + data: firstEnnoblement ? $ca7593443ca49f96$export$3ae94a2503e890a1(firstEnnoblement.ennobledAt) : $5206cf4fa105cda6$var$translations.never }); try { - const units = $a1e110fd96976c18038324dfd6e74ccb$var$countUnitsInVillage(); - const tr = document.createElement('tr'); - tr.style.textAlign = 'center'; - tr.style.fontWeight = 'bold'; - tr.appendChild(document.createElement('td')); - units.forEach(count => { - const td = document.createElement('td'); - td.innerHTML = count; - tr.appendChild(td); - }); - document.querySelector('#content_value > div tbody').appendChild(tr); - } catch (error) {} - }; - (async function () { - try { - const pageData = await $a1e110fd96976c18038324dfd6e74ccb$var$loadPageData(); - $a1e110fd96976c18038324dfd6e74ccb$var$serverConfig = await $a1e110fd96976c18038324dfd6e74ccb$var$loadConfig(); - $a1e110fd96976c18038324dfd6e74ccb$var$renderAdditionalInfo({ - config: $a1e110fd96976c18038324dfd6e74ccb$var$serverConfig.config, - ennoblements: pageData.ennoblements - }); - $a1e110fd96976c18038324dfd6e74ccb$var$renderActions(); + const units = $5206cf4fa105cda6$var$countUnitsInVillage(); + const tr = document.createElement('tr'); + tr.style.textAlign = 'center'; + tr.style.fontWeight = 'bold'; + tr.appendChild(document.createElement('td')); + units.forEach((count)=>{ + const td = document.createElement('td'); + td.innerHTML = count; + tr.appendChild(td); + }); + document.querySelector('#content_value > div tbody').appendChild(tr); } catch (error) { - console.log('extended village profile', error); } - })(); +}; +(async function() { + try { + const pageData = await $5206cf4fa105cda6$var$loadPageData(); + $5206cf4fa105cda6$var$serverConfig = await $5206cf4fa105cda6$var$loadConfig(); + $5206cf4fa105cda6$var$renderAdditionalInfo({ + config: $5206cf4fa105cda6$var$serverConfig.config, + ennoblements: pageData.ennoblements + }); + $5206cf4fa105cda6$var$renderActions(); + } catch (error) { + console.log('extended village profile', error); + } })(); +})(); diff --git a/dist/inADayTribeRankingGenerator.js b/dist/inADayTribeRankingGenerator.js index 5d912f3..516785a 100644 --- a/dist/inADayTribeRankingGenerator.js +++ b/dist/inADayTribeRankingGenerator.js @@ -1,171 +1,191 @@ (function () { - var $39c4220bac5e8e55ae13cc7489410b3e$export$default = url => parseInt(new URLSearchParams(url).get('id')); - class $eb13db7801b83919c60cd8b3e0a8a6d8$export$default { - constructor() { - let html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - this.dom = new DOMParser().parseFromString(html, 'text/html'); - this.trs = this.dom.querySelectorAll('#in_a_day_ranking_table tbody tr'); - this.filters = filters; - } +var $c1259165cf39ac5b$export$2e2bcd8739ae039 = (url)=>parseInt(new URLSearchParams(url).get('id')) +; + + +class $417def0de2fa2238$export$2e2bcd8739ae039 { 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; + if (!row) return false; + if (this.filters.playerID && row.playerID !== this.filters.playerID) return false; + if (this.filters.tribes && Array.isArray(this.filters.tribes) && !this.filters.tribes.some((tribe)=>tribe === row.tribe + )) return false; + return true; } parseRow(row) { - if (!row || !row instanceof HTMLTableRowElement) { - return undefined; - } - let obj = {}; - obj.rank = parseInt(row.children[0].innerText.trim()); - obj.name = row.children[1].innerText.trim(); - obj.playerID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(row.children[1].querySelector('a').getAttribute('href')); - obj.tribe = row.children[2].innerText.trim(); - obj.tribeID = 0; - if (obj.tribe) { - obj.tribeID = $39c4220bac5e8e55ae13cc7489410b3e$export$default(row.children[2].querySelector('a').getAttribute('href')); - } - obj.score = parseInt(row.children[3].innerText.trim().replace(/\./g, '')); - obj.date = row.children[4].innerText.trim(); - return obj; + 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 = $c1259165cf39ac5b$export$2e2bcd8739ae039(row.children[1].querySelector('a').getAttribute('href')); + obj.tribe = row.children[2].innerText.trim(); + obj.tribeID = 0; + if (obj.tribe) obj.tribeID = $c1259165cf39ac5b$export$2e2bcd8739ae039(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); + 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; + return result; } - } - const $1ff13e3fe910eee13bb8940db87b1675$var$translations = { + 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; + } +} + + +const $90cf6cc573d95758$var$translations = { pl_PL: { - addTribe: 'Dodaj plemię', - generate: 'Wygeneruj', - delete: 'Usuń', - player: 'Gracz', - tribe: 'Plemię', - rank: 'Ranking', - score: 'Wynik', - date: 'Data', - loaded: 'Załadowano' + addTribe: 'Dodaj plemię', + generate: 'Wygeneruj', + delete: 'Usuń', + player: 'Gracz', + tribe: 'Plemię', + rank: 'Ranking', + score: 'Wynik', + date: 'Data', + loaded: 'Załadowano' }, en_DK: { - addTribe: 'Add tribe', - generate: 'Generate', - delete: 'Delete', - player: 'Player', - tribe: 'Tribe', - rank: 'Rank', - score: 'Score', - date: 'Date', - loaded: 'Loaded' + addTribe: 'Add tribe', + generate: 'Generate', + delete: 'Delete', + player: 'Player', + tribe: 'Tribe', + rank: 'Rank', + score: 'Score', + date: 'Date', + loaded: 'Loaded' }, de_DE: { - addTribe: 'Stamm hinzufügen', - generate: 'Generieren', - delete: 'Löschen', - player: 'Spieler', - tribe: 'Stamm', - rank: 'Rang', - score: 'Punkte', - date: 'Datum', - loaded: 'Geladen' + addTribe: 'Stamm hinzufügen', + generate: 'Generieren', + delete: 'Löschen', + player: 'Spieler', + tribe: 'Stamm', + rank: 'Rang', + score: 'Punkte', + date: 'Datum', + loaded: 'Geladen' } - }; - var $1ff13e3fe910eee13bb8940db87b1675$export$default = () => $1ff13e3fe910eee13bb8940db87b1675$var$translations[window.game_data.locale] || $1ff13e3fe910eee13bb8940db87b1675$var$translations.en_DK; - var $393a22f746cd1f6e45eff96c71b28370$export$default = t => new Promise(resolve => setTimeout(resolve, t)); - // ==UserScript== - // @name 'In A Day' tribe ranking generator - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js - // @version 0.2.4 - // @description 'In A Day' tribe ranking generator - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=ranking*mode=in_a_day* - // @grant none - // @run-at document-end - // ==/UserScript== - const $cfc814bc73bf1f67f8083cc3d02e6787$var$TRIBE_CONTAINER_ID = 'iad_tribes'; - const $cfc814bc73bf1f67f8083cc3d02e6787$var$LIMIT_INPUT_ID = 'iad_limit'; - const $cfc814bc73bf1f67f8083cc3d02e6787$var$translations = $1ff13e3fe910eee13bb8940db87b1675$export$default(); - const $cfc814bc73bf1f67f8083cc3d02e6787$var$addTribe = () => { - const container = document.querySelector('#' + $cfc814bc73bf1f67f8083cc3d02e6787$var$TRIBE_CONTAINER_ID); +}; +var $90cf6cc573d95758$export$2e2bcd8739ae039 = ()=>$90cf6cc573d95758$var$translations[window.game_data.locale] || $90cf6cc573d95758$var$translations.en_DK +; + + +var $fc029eaf0e980c2d$export$2e2bcd8739ae039 = (t)=>new Promise((resolve)=>setTimeout(resolve, t) + ) +; + + +// ==UserScript== +// @name 'In A Day' tribe ranking generator +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/inADayTribeRankingGenerator.js +// @version 0.2.4 +// @description 'In A Day' tribe ranking generator +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=ranking*mode=in_a_day* +// @grant none +// @run-at document-end +// ==/UserScript== +const $17703ec1bda5292c$var$TRIBE_CONTAINER_ID = 'iad_tribes'; +const $17703ec1bda5292c$var$LIMIT_INPUT_ID = 'iad_limit'; +const $17703ec1bda5292c$var$translations = $90cf6cc573d95758$export$2e2bcd8739ae039(); +const $17703ec1bda5292c$var$addTribe = ()=>{ + const container = document.querySelector('#' + $17703ec1bda5292c$var$TRIBE_CONTAINER_ID); const div = document.createElement('div'); - div.innerHTML = ("\n \n \n \n "); - div.querySelector('button').addEventListener('click', () => { - if (container.children.length > 1) { - div.remove(); - } + div.innerHTML = ` + + + + `; + div.querySelector('button').addEventListener('click', ()=>{ + if (container.children.length > 1) div.remove(); }); container.appendChild(div); - }; - const $cfc814bc73bf1f67f8083cc3d02e6787$var$handleFormSubmit = async e => { +}; +const $17703ec1bda5292c$var$handleFormSubmit = async (e)=>{ e.preventDefault(); - const limit = parseInt(document.querySelector('#' + $cfc814bc73bf1f67f8083cc3d02e6787$var$LIMIT_INPUT_ID).value); + const limit = parseInt(document.querySelector('#' + $17703ec1bda5292c$var$LIMIT_INPUT_ID).value); const tribes = []; const type = new URLSearchParams(window.location.search).get('type') || 'kill_att'; - document.querySelectorAll('#' + $cfc814bc73bf1f67f8083cc3d02e6787$var$TRIBE_CONTAINER_ID + ' input').forEach(el => { - if (el.value) tribes.push(el.value.trim()); + document.querySelectorAll('#' + $17703ec1bda5292c$var$TRIBE_CONTAINER_ID + ' input').forEach((el)=>{ + if (el.value) tribes.push(el.value.trim()); }); let players = []; let page = 0; - while (players.length < limit) { - Dialog.show('iad_loading', ("").concat($cfc814bc73bf1f67f8083cc3d02e6787$var$translations.loaded, ": ").concat(players.length, "/").concat(limit, "")); - try { - const response = await fetch(TribalWars.buildURL('', { - screen: 'ranking', - mode: 'in_a_day', - type, - offset: page * 25 - })); - const html = await response.text(); - const parser = new $eb13db7801b83919c60cd8b3e0a8a6d8$export$default(html, { - tribes - }); - if (parser.trs.length !== 26) break; - players = [...players, ...parser.parse()]; - page++; - await $393a22f746cd1f6e45eff96c71b28370$export$default(200); - } catch (error) { - break; - } + while(players.length < limit){ + Dialog.show('iad_loading', `${$17703ec1bda5292c$var$translations.loaded}: ${players.length}/${limit}`); + try { + const response = await fetch(TribalWars.buildURL('', { + screen: 'ranking', + mode: 'in_a_day', + type: type, + offset: page * 25 + })); + const html = await response.text(); + const parser = new $417def0de2fa2238$export$2e2bcd8739ae039(html, { + tribes: tribes + }); + if (parser.trs.length !== 26) break; + players = [ + ...players, + ...parser.parse() + ]; + page++; + await $fc029eaf0e980c2d$export$2e2bcd8739ae039(200); + } catch (error) { + break; + } } - if (players.length > limit) { - players = players.slice(0, limit); - } - Dialog.show('iad_result', ("\n \n ")); - }; - const $cfc814bc73bf1f67f8083cc3d02e6787$var$renderUI = () => { + if (players.length > limit) players = players.slice(0, limit); + Dialog.show('iad_result', ` + + `); +}; +const $17703ec1bda5292c$var$renderUI = ()=>{ const addButtonID = 'iad_add'; const div = document.createElement('div'); - const html = ("\n
\n
\n
\n
\n \n \n
\n \n \n
\n "); + const html = ` +
+
+
+
+ + +
+ + +
+ `; div.innerHTML = html; document.querySelector('#content_value > table > tbody > tr > td:nth-child(2)').prepend(div); - div.querySelector('form').addEventListener('submit', $cfc814bc73bf1f67f8083cc3d02e6787$var$handleFormSubmit); - div.querySelector('#' + addButtonID).addEventListener('click', $cfc814bc73bf1f67f8083cc3d02e6787$var$addTribe); - $cfc814bc73bf1f67f8083cc3d02e6787$var$addTribe(); - }; - (function () { + div.querySelector('form').addEventListener('submit', $17703ec1bda5292c$var$handleFormSubmit); + div.querySelector('#' + addButtonID).addEventListener('click', $17703ec1bda5292c$var$addTribe); + $17703ec1bda5292c$var$addTribe(); +}; +(function() { try { - $cfc814bc73bf1f67f8083cc3d02e6787$var$renderUI(); + $17703ec1bda5292c$var$renderUI(); } catch (error) { - console.log("'In A Day' Tribe Ranking Generator", error); + console.log(`'In A Day' Tribe Ranking Generator`, error); } - })(); })(); +})(); diff --git a/dist/latestEnnoblements.js b/dist/latestEnnoblements.js index 15a2e42..7db831c 100644 --- a/dist/latestEnnoblements.js +++ b/dist/latestEnnoblements.js @@ -1,364 +1,437 @@ (function () { - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); - }); - }; - const $6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR = '.popup_box'; - const $6412e4d8722bc72f55b3c382206290ed$export$default = function showPopup() { - let {html, id, title} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - Dialog.show(id, ("

").concat(title, "

") + html); - const popup = document.querySelector($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR); - if (popup) { - popup.style.width = 'auto'; - popup.style.maxWidth = '1000px'; - } - }; - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - const $87a1b3fb6327eb299adebba75fcb33c5$export$inTZ = function inTZ() { - let d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); - let tz = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'UTC'; - return new Date(new Date(d).toLocaleString('en-US', { - timeZone: tz - })); - }; - const $87a1b3fb6327eb299adebba75fcb33c5$export$formatDate = (date, options) => { - return new Date(date).toLocaleDateString(undefined, options ? options : { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildTribeURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_ally', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildPlayerURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_player', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL = id => { - return window.location.origin + TribalWars.buildURL('', { - screen: 'info_village', - id - }); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName = function buildVillageName() { - let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500; - let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500; - const continent = 'K' + String(y)[0] + String(x)[0]; - return ("").concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$calcAttackDuration = (distance, baseSpeed) => { - return Math.round(distance * baseSpeed); - }; - const $6a639e352c067a7850a9fa8cdc59ffca$export$buildImgURL = img => { - return image_base + img; - }; - const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) { - let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const json = localStorage.getItem(key); - let obj = d; - if (json) { - obj = JSON.parse(json); - } - return obj; - }; - const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => { - localStorage.setItem(key, JSON.stringify(payload)); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL = 'tribalwarshelp.com'; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage = function buildURLToServerPage() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return ("https://").concat(version, ".").concat($d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL, "/server/").concat(server); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile = function buildURLToProfile() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; - return ("").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL = function buildPlayerURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'player'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL = function buildTribeURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'tribe'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL = function buildVillageURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'village'); - }; - var $1f14636dcc53402ba1b7661b758ca0aa$export$default = function () { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return server.substr(0, 2); - }; - const $99c8891cf568d26204a670851b79ae0c$var$translations = { - pl_PL: { - showLatestEnnoblements: 'Pokaż najnowsze przejęcia', - village: 'Wioska', - newOwner: 'Nowy właściciel', - newOwnerTribe: 'Plemię nowego właściciela', - oldOwner: 'Poprzedni właściciel', - oldOwnerTribe: 'Plemię poprzedniego właściciela', - date: 'Data', - filters: 'Filtry', - apply: 'Zastosuj', - ennoblements: 'Przejęcia', - devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' - }, - en_DK: { - showLatestEnnoblements: 'Show the 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', - devNote: "Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)." - }, - de_DE: { - showLatestEnnoblements: 'Zeige letzten Adelungen', - village: 'Dorf', - newOwner: 'Neuer Besitzer', - newOwnerTribe: 'Neuer Stamm', - oldOwner: 'Alter Besitzer', - oldOwnerTribe: 'Alter Stamm', - filters: 'Filter', - date: 'Datum', - apply: 'Anwenden', - ennoblements: 'Adelungen', - devNote: "Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)." - } - }; - var $99c8891cf568d26204a670851b79ae0c$export$default = () => $99c8891cf568d26204a670851b79ae0c$var$translations[window.game_data.locale] || $99c8891cf568d26204a670851b79ae0c$var$translations.en_DK; - function $4b608a4f8bc414684a9ca9d86149295e$var$ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); - } - return keys; - } - function $4b608a4f8bc414684a9ca9d86149295e$var$_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - $4b608a4f8bc414684a9ca9d86149295e$var$ownKeys(Object(source), true).forEach(function (key) { - $4b608a4f8bc414684a9ca9d86149295e$var$_defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - $4b608a4f8bc414684a9ca9d86149295e$var$ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; - } - function $4b608a4f8bc414684a9ca9d86149295e$var$_defineProperty(obj, key, value) { - if ((key in obj)) { - Object.defineProperty(obj, key, { +function $6a49e4c969cec444$export$2e2bcd8739ae039(obj, key, value) { + if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true - }); - } else { - obj[key] = value; - } + }); + else obj[key] = value; return obj; - } - // ==UserScript== - // @name The latest ennoblements - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js - // @version 1.1.2 - // @description Shows the latest ennoblements - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php* - // @grant none - // @run-at document-end - // ==/UserScript== - const $4b608a4f8bc414684a9ca9d86149295e$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $4b608a4f8bc414684a9ca9d86149295e$var$FILTER_FORM_ID = 'le_form'; - const $4b608a4f8bc414684a9ca9d86149295e$var$TABLE_ID = 'le_table'; - const $4b608a4f8bc414684a9ca9d86149295e$var$CACHE_LOCAL_STORAGE_KEY = 'kiszkowaty_show_latest_ennoblements_cache'; - const $4b608a4f8bc414684a9ca9d86149295e$var$FILTERS_LOCAL_STORAGE_KEY = 'kiszkowaty_show_latest_ennoblements_filter'; - const $4b608a4f8bc414684a9ca9d86149295e$var$ICON_URL = 'https://i.imgur.com/4WP4098.png'; - const $4b608a4f8bc414684a9ca9d86149295e$var$query = "\n query ennoblements($server: String!, $sort: [String!], $limit: Int) {\n ennoblements(server: $server, sort: $sort, limit: $limit) {\n items {\n newOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n oldOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n ennobledAt\n village {\n id\n name\n x\n y\n }\n }\n }\n }\n "; - const $4b608a4f8bc414684a9ca9d86149295e$var$DEFAULT_FILTER = { +} + + +function $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { + }; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); + }); + } + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + + +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); + }); +}; + + +const $20636c16dad2c11a$export$21d4bed11ae27f0b = '.popup_box'; +const $20636c16dad2c11a$var$showPopup = ({ html: html , id: id , title: title } = { +})=>{ + Dialog.show(id, `

${title}

` + html); + const popup = document.querySelector($20636c16dad2c11a$export$21d4bed11ae27f0b); + if (popup) { + popup.style.width = 'auto'; + popup.style.maxWidth = '1000px'; + } +}; +var $20636c16dad2c11a$export$2e2bcd8739ae039 = $20636c16dad2c11a$var$showPopup; + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +const $ca7593443ca49f96$export$17201263355d526a = (d = new Date(), tz = 'UTC')=>{ + return new Date(new Date(d).toLocaleString('en-US', { + timeZone: tz + })); +}; +const $ca7593443ca49f96$export$6a20e8f386d90a85 = (d = new Date())=>{ + return $ca7593443ca49f96$export$17201263355d526a(d); +}; +const $ca7593443ca49f96$export$3ae94a2503e890a1 = (date, options)=>{ + return new Date(date).toLocaleDateString(undefined, options ? options : { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); +}; + + +const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_ally', + id: id + }); +}; +const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_player', + id: id + }); +}; +const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{ + return window.location.origin + TribalWars.buildURL('', { + screen: 'info_village', + id: id + }); +}; +const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{ + const continent = 'K' + String(y)[0] + String(x)[0]; + return `${n} (${x}|${y}) ${continent}`; +}; +const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{ + return Math.round(distance * baseSpeed); +}; +const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{ + return image_base + img; +}; + + +const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = (key, d = { +})=>{ + const json = localStorage.getItem(key); + let obj = d; + if (json) obj = JSON.parse(json); + return obj; +}; +const $362bcac9fa8968ec$export$8a8216c44337cd5 = (key, payload)=>{ + localStorage.setItem(key, JSON.stringify(payload)); +}; + + +const $f3b273bd698d94bc$export$ca6dda5263526f75 = 'tribalwarshelp.com'; +const $f3b273bd698d94bc$export$5d5850cc00079a21 = (version = '', server = '')=>{ + return `https://${version}.${$f3b273bd698d94bc$export$ca6dda5263526f75}/server/${server}`; +}; +const $f3b273bd698d94bc$export$a4588dcb88e3f9db = (version = '', server = '', id = 0, entity = '')=>{ + return `${$f3b273bd698d94bc$export$5d5850cc00079a21(version, server)}/${entity}/${id}`; +}; +const $f3b273bd698d94bc$export$3df7b9b48f38839e = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'player'); +}; +const $f3b273bd698d94bc$export$7345792e21cfc457 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'tribe'); +}; +const $f3b273bd698d94bc$export$e537a41a0fc85cc5 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'village'); +}; + + +var $5b3edb3901c8177a$export$2e2bcd8739ae039 = (server = '')=>server.substr(0, 2) +; + + +const $aa32efa5012345c3$var$translations = { + pl_PL: { + showLatestEnnoblements: 'Pokaż najnowsze przejęcia', + village: 'Wioska', + newOwner: 'Nowy właściciel', + newOwnerTribe: 'Plemię nowego właściciela', + oldOwner: 'Poprzedni właściciel', + oldOwnerTribe: 'Plemię poprzedniego właściciela', + date: 'Data', + filters: 'Filtry', + apply: 'Zastosuj', + ennoblements: 'Przejęcia', + devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' + }, + en_DK: { + showLatestEnnoblements: 'Show the 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', + devNote: `Information from the author - I've just launched a new stat tracking website, don't forget to check it out :).` + }, + de_DE: { + showLatestEnnoblements: 'Zeige letzten Adelungen', + village: 'Dorf', + newOwner: 'Neuer Besitzer', + newOwnerTribe: 'Neuer Stamm', + oldOwner: 'Alter Besitzer', + oldOwnerTribe: 'Alter Stamm', + filters: 'Filter', + date: 'Datum', + apply: 'Anwenden', + ennoblements: 'Adelungen', + devNote: `Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :).` + } +}; +var $aa32efa5012345c3$export$2e2bcd8739ae039 = ()=>$aa32efa5012345c3$var$translations[window.game_data.locale] || $aa32efa5012345c3$var$translations.en_DK +; + + +// ==UserScript== +// @name The latest ennoblements +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js +// @version 1.1.2 +// @description Shows the latest ennoblements +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php* +// @grant none +// @run-at document-end +// ==/UserScript== +const $bb01b23dae8f6ba6$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $bb01b23dae8f6ba6$var$FILTER_FORM_ID = 'le_form'; +const $bb01b23dae8f6ba6$var$TABLE_ID = 'le_table'; +const $bb01b23dae8f6ba6$var$CACHE_LOCAL_STORAGE_KEY = 'kiszkowaty_show_latest_ennoblements_cache'; +const $bb01b23dae8f6ba6$var$FILTERS_LOCAL_STORAGE_KEY = 'kiszkowaty_show_latest_ennoblements_filter'; +const $bb01b23dae8f6ba6$var$ICON_URL = 'https://i.imgur.com/4WP4098.png'; +const $bb01b23dae8f6ba6$var$query = ` + query ennoblements($server: String!, $sort: [String!], $limit: Int) { + ennoblements(server: $server, sort: $sort, limit: $limit) { + items { + newOwner { + id + name + tribe { + id + name + tag + } + } + oldOwner { + id + name + tribe { + id + name + tag + } + } + ennobledAt + village { + id + name + x + y + } + } + } + } + `; +const $bb01b23dae8f6ba6$var$DEFAULT_FILTER = { newOwner: '', newOwnerTribe: '', oldOwner: '', oldOwnerTribe: '' - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$translations = $99c8891cf568d26204a670851b79ae0c$export$default(); - const $4b608a4f8bc414684a9ca9d86149295e$var$loadLatestEnnoblementsFromCache = () => { - return $3d935538f644f492fe681e00121114a4$export$getItem($4b608a4f8bc414684a9ca9d86149295e$var$CACHE_LOCAL_STORAGE_KEY); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$loadFilters = () => { - return $3d935538f644f492fe681e00121114a4$export$getItem($4b608a4f8bc414684a9ca9d86149295e$var$FILTERS_LOCAL_STORAGE_KEY); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$cacheEnnoblements = function cacheEnnoblements() { - let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - $3d935538f644f492fe681e00121114a4$export$setItem($4b608a4f8bc414684a9ca9d86149295e$var$CACHE_LOCAL_STORAGE_KEY, data); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$cacheFilters = function cacheFilters() { - let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - $3d935538f644f492fe681e00121114a4$export$setItem($4b608a4f8bc414684a9ca9d86149295e$var$FILTERS_LOCAL_STORAGE_KEY, data); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$loadLatestEnnoblements = () => { - return $3af05e958b2a20a26445518aba292c50$export$default({ - query: $4b608a4f8bc414684a9ca9d86149295e$var$query, - variables: { - server: $4b608a4f8bc414684a9ca9d86149295e$var$SERVER, - limit: 50, - sort: ['ennobledAt DESC'] - } - }).then(data => { - $4b608a4f8bc414684a9ca9d86149295e$var$cacheEnnoblements(data); - return new Promise(resolve => resolve(data)); +}; +const $bb01b23dae8f6ba6$var$translations = $aa32efa5012345c3$export$2e2bcd8739ae039(); +const $bb01b23dae8f6ba6$var$loadLatestEnnoblementsFromCache = ()=>{ + return $362bcac9fa8968ec$export$f92dfeb71e9bb569($bb01b23dae8f6ba6$var$CACHE_LOCAL_STORAGE_KEY); +}; +const $bb01b23dae8f6ba6$var$loadFilters = ()=>{ + return $362bcac9fa8968ec$export$f92dfeb71e9bb569($bb01b23dae8f6ba6$var$FILTERS_LOCAL_STORAGE_KEY); +}; +const $bb01b23dae8f6ba6$var$cacheEnnoblements = (data = { +})=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($bb01b23dae8f6ba6$var$CACHE_LOCAL_STORAGE_KEY, data); +}; +const $bb01b23dae8f6ba6$var$cacheFilters = (data = { +})=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($bb01b23dae8f6ba6$var$FILTERS_LOCAL_STORAGE_KEY, data); +}; +const $bb01b23dae8f6ba6$var$loadLatestEnnoblements = ()=>{ + return $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $bb01b23dae8f6ba6$var$query, + variables: { + server: $bb01b23dae8f6ba6$var$SERVER, + limit: 50, + sort: [ + 'ennobledAt DESC' + ] + } + }).then((data)=>{ + $bb01b23dae8f6ba6$var$cacheEnnoblements(data); + return new Promise((resolve)=>resolve(data) + ); }); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$isValidPlayer = (obj, searchValue) => { +}; +const $bb01b23dae8f6ba6$var$isValidPlayer = (obj, searchValue)=>{ return obj && obj.name.toLowerCase().includes(searchValue.toLowerCase()); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$isValidPlayerTribe = (obj, searchValue) => { +}; +const $bb01b23dae8f6ba6$var$isValidPlayerTribe = (obj, searchValue)=>{ return obj && obj.tribe && (obj.tribe.name.toLowerCase().includes(searchValue.toLowerCase()) || obj.tribe.tag.toLowerCase().includes(searchValue.toLowerCase())); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$filterEnnoblements = function filterEnnoblements() { - let ennoblements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - let {newOwner, newOwnerTribe, oldOwner, oldOwnerTribe} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return ennoblements.filter(ennoblement => { - if (newOwner && !$4b608a4f8bc414684a9ca9d86149295e$var$isValidPlayer(ennoblement.newOwner, newOwner)) { - return false; - } - if (newOwnerTribe && !$4b608a4f8bc414684a9ca9d86149295e$var$isValidPlayerTribe(ennoblement.newOwner, newOwnerTribe)) { - return false; - } - if (oldOwner && !$4b608a4f8bc414684a9ca9d86149295e$var$isValidPlayer(ennoblement.oldOwner, oldOwner)) { - return false; - } - if (oldOwnerTribe && !$4b608a4f8bc414684a9ca9d86149295e$var$isValidPlayerTribe(ennoblement.oldOwner, oldOwnerTribe)) { - return false; - } - return true; +}; +const $bb01b23dae8f6ba6$var$filterEnnoblements = (ennoblements = [], { newOwner: newOwner , newOwnerTribe: newOwnerTribe , oldOwner: oldOwner , oldOwnerTribe: oldOwnerTribe } = { +})=>{ + return ennoblements.filter((ennoblement)=>{ + if (newOwner && !$bb01b23dae8f6ba6$var$isValidPlayer(ennoblement.newOwner, newOwner)) return false; + if (newOwnerTribe && !$bb01b23dae8f6ba6$var$isValidPlayerTribe(ennoblement.newOwner, newOwnerTribe)) return false; + if (oldOwner && !$bb01b23dae8f6ba6$var$isValidPlayer(ennoblement.oldOwner, oldOwner)) return false; + if (oldOwnerTribe && !$bb01b23dae8f6ba6$var$isValidPlayerTribe(ennoblement.oldOwner, oldOwnerTribe)) return false; + return true; }); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$applyFilters = (e, ennoblements) => { +}; +const $bb01b23dae8f6ba6$var$applyFilters = (e, ennoblements)=>{ e.preventDefault(); - const filters = $4b608a4f8bc414684a9ca9d86149295e$var$_objectSpread($4b608a4f8bc414684a9ca9d86149295e$var$_objectSpread({}, $4b608a4f8bc414684a9ca9d86149295e$var$DEFAULT_FILTER), {}, { - newOwner: e.target[0].value, - newOwnerTribe: e.target[1].value, - oldOwner: e.target[2].value, - oldOwnerTribe: e.target[3].value + const filters = $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, $bb01b23dae8f6ba6$var$DEFAULT_FILTER, { + newOwner: e.target[0].value, + newOwnerTribe: e.target[1].value, + oldOwner: e.target[2].value, + oldOwnerTribe: e.target[3].value }); - document.querySelector(("#").concat($4b608a4f8bc414684a9ca9d86149295e$var$TABLE_ID, " tbody")).innerHTML = $4b608a4f8bc414684a9ca9d86149295e$var$buildEnnoblementsRows($4b608a4f8bc414684a9ca9d86149295e$var$filterEnnoblements(ennoblements, filters)).join(''); - $4b608a4f8bc414684a9ca9d86149295e$var$cacheFilters(filters); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$addEventListeners = function addEventListeners() { - let ennoblements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - document.querySelector('#' + $4b608a4f8bc414684a9ca9d86149295e$var$FILTER_FORM_ID).addEventListener('submit', e => { - $4b608a4f8bc414684a9ca9d86149295e$var$applyFilters(e, ennoblements); + document.querySelector(`#${$bb01b23dae8f6ba6$var$TABLE_ID} tbody`).innerHTML = $bb01b23dae8f6ba6$var$buildEnnoblementsRows($bb01b23dae8f6ba6$var$filterEnnoblements(ennoblements, filters)).join(''); + $bb01b23dae8f6ba6$var$cacheFilters(filters); +}; +const $bb01b23dae8f6ba6$var$addEventListeners = (ennoblements = [])=>{ + document.querySelector('#' + $bb01b23dae8f6ba6$var$FILTER_FORM_ID).addEventListener('submit', (e)=>{ + $bb01b23dae8f6ba6$var$applyFilters(e, ennoblements); }); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$getPlayerHTML = player => { - return player && player.name ? ("").concat(player.name, " (").concat(player.tribe && player.tribe.tag ? ("").concat(player.tribe.tag, "") : '-', ")") : '-'; - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$getVillageHTML = village => { - return ("").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(village.name, village.x, village.y), ""); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$buildEnnoblementsRows = ennoblements => { - return ennoblements.map(ennoblement => { - return ("\n ").concat($4b608a4f8bc414684a9ca9d86149295e$var$getVillageHTML(ennoblement.village), "\n ").concat($4b608a4f8bc414684a9ca9d86149295e$var$getPlayerHTML(ennoblement.newOwner), "\n ").concat($4b608a4f8bc414684a9ca9d86149295e$var$getPlayerHTML(ennoblement.oldOwner), "\n ").concat($87a1b3fb6327eb299adebba75fcb33c5$export$formatDate(ennoblement.ennobledAt), "\n "); +}; +const $bb01b23dae8f6ba6$var$getPlayerHTML = (player)=>{ + return player && player.name ? `${player.name} (${player.tribe && player.tribe.tag ? `${player.tribe.tag}` : '-'})` : '-'; +}; +const $bb01b23dae8f6ba6$var$getVillageHTML = (village)=>{ + return `${$db1dd60e5389e0c9$export$c6f77ec2633c38b1(village.name, village.x, village.y)}`; +}; +const $bb01b23dae8f6ba6$var$buildEnnoblementsRows = (ennoblements)=>{ + return ennoblements.map((ennoblement)=>{ + return ` + ${$bb01b23dae8f6ba6$var$getVillageHTML(ennoblement.village)} + ${$bb01b23dae8f6ba6$var$getPlayerHTML(ennoblement.newOwner)} + ${$bb01b23dae8f6ba6$var$getPlayerHTML(ennoblement.oldOwner)} + ${$ca7593443ca49f96$export$3ae94a2503e890a1(ennoblement.ennobledAt)} + `; }); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$renderLatestEnnoblements = function renderLatestEnnoblements() { - let ennoblements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const prepared = $4b608a4f8bc414684a9ca9d86149295e$var$_objectSpread($4b608a4f8bc414684a9ca9d86149295e$var$_objectSpread({}, $4b608a4f8bc414684a9ca9d86149295e$var$DEFAULT_FILTER), filters); - const html = ("\n
\n

TWHelp

\n

").concat($4b608a4f8bc414684a9ca9d86149295e$var$translations.devNote, "

\n

").concat($4b608a4f8bc414684a9ca9d86149295e$var$translations.filters, "

\n \n \n \n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n ").concat($4b608a4f8bc414684a9ca9d86149295e$var$buildEnnoblementsRows($4b608a4f8bc414684a9ca9d86149295e$var$filterEnnoblements(ennoblements, prepared)).join(''), "\n \n
").concat($4b608a4f8bc414684a9ca9d86149295e$var$translations.village, "").concat($4b608a4f8bc414684a9ca9d86149295e$var$translations.newOwner, "").concat($4b608a4f8bc414684a9ca9d86149295e$var$translations.oldOwner, "").concat($4b608a4f8bc414684a9ca9d86149295e$var$translations.date, "
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - title: $4b608a4f8bc414684a9ca9d86149295e$var$translations.ennoblements, - id: 'ennoblements', - html +}; +const $bb01b23dae8f6ba6$var$renderLatestEnnoblements = (ennoblements = [], filters = { +})=>{ + const prepared = $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, $bb01b23dae8f6ba6$var$DEFAULT_FILTER, filters); + const html = ` +
+

TWHelp

+

${$bb01b23dae8f6ba6$var$translations.devNote}

+

${$bb01b23dae8f6ba6$var$translations.filters}

+ + + + +
+ +
+
+ + + + + + + + + + + ${$bb01b23dae8f6ba6$var$buildEnnoblementsRows($bb01b23dae8f6ba6$var$filterEnnoblements(ennoblements, prepared)).join('')} + +
${$bb01b23dae8f6ba6$var$translations.village}${$bb01b23dae8f6ba6$var$translations.newOwner}${$bb01b23dae8f6ba6$var$translations.oldOwner}${$bb01b23dae8f6ba6$var$translations.date}
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + title: $bb01b23dae8f6ba6$var$translations.ennoblements, + id: 'ennoblements', + html: html }); - $4b608a4f8bc414684a9ca9d86149295e$var$addEventListeners(ennoblements); - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$handleButtonClick = async () => { + $bb01b23dae8f6ba6$var$addEventListeners(ennoblements); +}; +const $bb01b23dae8f6ba6$var$handleButtonClick = async ()=>{ try { - const cache = $4b608a4f8bc414684a9ca9d86149295e$var$loadLatestEnnoblementsFromCache(); - const filters = $4b608a4f8bc414684a9ca9d86149295e$var$loadFilters(); - if (cache.ennoblements && Array.isArray(cache.ennoblements.items) && cache.ennoblements.items.length > 0) { - $4b608a4f8bc414684a9ca9d86149295e$var$renderLatestEnnoblements(cache.ennoblements.items, filters); - } - const {ennoblements} = await $4b608a4f8bc414684a9ca9d86149295e$var$loadLatestEnnoblements(); - $4b608a4f8bc414684a9ca9d86149295e$var$renderLatestEnnoblements(ennoblements.items, filters); + const cache = $bb01b23dae8f6ba6$var$loadLatestEnnoblementsFromCache(); + const filters = $bb01b23dae8f6ba6$var$loadFilters(); + if (cache.ennoblements && Array.isArray(cache.ennoblements.items) && cache.ennoblements.items.length > 0) $bb01b23dae8f6ba6$var$renderLatestEnnoblements(cache.ennoblements.items, filters); + const { ennoblements: ennoblements } = await $bb01b23dae8f6ba6$var$loadLatestEnnoblements(); + $bb01b23dae8f6ba6$var$renderLatestEnnoblements(ennoblements.items, filters); } catch (error) { - console.log('latestEnnoblements', error); + console.log('latestEnnoblements', error); } - }; - const $4b608a4f8bc414684a9ca9d86149295e$var$renderButton = () => { +}; +const $bb01b23dae8f6ba6$var$renderButton = ()=>{ const container = document.createElement('div'); container.style.position = 'fixed'; container.style.top = '5px'; container.style.left = '4px'; container.style.zIndex = '50000'; const button = document.createElement('a'); - button.innerHTML = (""); - button.title = $4b608a4f8bc414684a9ca9d86149295e$var$translations.showLatestEnnoblements; + button.innerHTML = ``; + button.title = $bb01b23dae8f6ba6$var$translations.showLatestEnnoblements; button.style.cursor = 'pointer'; - button.addEventListener('click', $4b608a4f8bc414684a9ca9d86149295e$var$handleButtonClick); + button.addEventListener('click', $bb01b23dae8f6ba6$var$handleButtonClick); container.append(button); document.body.appendChild(container); - }; - (function () { - $4b608a4f8bc414684a9ca9d86149295e$var$renderButton(); - })(); +}; +(function() { + $bb01b23dae8f6ba6$var$renderButton(); })(); +})(); diff --git a/dist/mapCoordsPicker.js b/dist/mapCoordsPicker.js index 9b1684e..73c5ba6 100644 --- a/dist/mapCoordsPicker.js +++ b/dist/mapCoordsPicker.js @@ -1,308 +1,318 @@ (function () { - const $c0d320b9a99b0a41aa9ca0954410051e$var$translations = { - pl_PL: { - startCoordsPicker: 'Uruchom zbieracza koordynat', - stopCoordsPicker: 'Zatrzymaj zbieracza koordynat', - exportedVillages: 'Wyeksportowane wioski', - cannotDeleteSelectedGroup: 'Nie można usunąć wybranej grupy!', - select: 'Wybierz', - delete: 'Usuń', - add: 'Dodaj', - save: 'Zapisz', - groupName: 'Nazwa grupy', - export: 'Eksport' - }, - en_DK: { - startCoordsPicker: 'Start coords picker', - stopCoordsPicker: 'Stop coords picker', - exportedVillages: 'Exported villages', - cannotDeleteSelectedGroup: 'Cannot delete selected group!', - select: 'Select', - delete: 'Delete', - add: 'Add', - save: 'Save', - groupName: 'Group name', - export: 'Export' - }, - de_DE: { - startCoordsPicker: 'Starte Koordinaten-Selektor', - stopCoordsPicker: 'Stoppe Koordinaten-Selektor', - exportedVillages: 'Exportierte Dörfer', - cannotDeleteSelectedGroup: 'Gruppe kann nicht gelöscht werden!', - select: 'Selektieren', - delete: 'Löschen', - add: 'Hinzufügen', - save: 'Speichern', - groupName: 'Gruppen-Name', - export: 'Exportieren' - } - }; - var $c0d320b9a99b0a41aa9ca0954410051e$export$default = () => $c0d320b9a99b0a41aa9ca0954410051e$var$translations[window.game_data.locale] || $c0d320b9a99b0a41aa9ca0954410051e$var$translations.en_DK; - const $3d935538f644f492fe681e00121114a4$export$getItem = function getItem(key) { - let d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const json = localStorage.getItem(key); - let obj = d; - if (json) { - obj = JSON.parse(json); - } - return obj; - }; - const $3d935538f644f492fe681e00121114a4$export$setItem = (key, payload) => { - localStorage.setItem(key, JSON.stringify(payload)); - }; - function $bfe8b11df18d9acc480580699499dd1a$var$ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } - keys.push.apply(keys, symbols); - } - return keys; - } - function $bfe8b11df18d9acc480580699499dd1a$var$_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - if (i % 2) { - $bfe8b11df18d9acc480580699499dd1a$var$ownKeys(Object(source), true).forEach(function (key) { - $bfe8b11df18d9acc480580699499dd1a$var$_defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - $bfe8b11df18d9acc480580699499dd1a$var$ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - return target; - } - function $bfe8b11df18d9acc480580699499dd1a$var$_defineProperty(obj, key, value) { - if ((key in obj)) { - Object.defineProperty(obj, key, { +function $6a49e4c969cec444$export$2e2bcd8739ae039(obj, key, value) { + if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true - }); - } else { - obj[key] = value; - } + }); + else obj[key] = value; return obj; - } - // ==UserScript== - // @name Map coords picker - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js - // @version 0.7.8 - // @description Map coords picker - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=map* - // @grant none - // ==/UserScript== - const $bfe8b11df18d9acc480580699499dd1a$var$LOCAL_STORAGE_KEY = 'kichiyaki_map_coords_picker'; - const $bfe8b11df18d9acc480580699499dd1a$var$container = document.querySelector('#content_value > h2'); - let $bfe8b11df18d9acc480580699499dd1a$var$button; - let $bfe8b11df18d9acc480580699499dd1a$var$formsContainer; - let $bfe8b11df18d9acc480580699499dd1a$var$actionsContainer; - let $bfe8b11df18d9acc480580699499dd1a$var$config = $3d935538f644f492fe681e00121114a4$export$getItem($bfe8b11df18d9acc480580699499dd1a$var$LOCAL_STORAGE_KEY, { +} + + +function $f1e9793517c51c58$export$2e2bcd8739ae039(target) { + for(var i = 1; i < arguments.length; i++){ + var source = arguments[i] != null ? arguments[i] : { + }; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + ownKeys.forEach(function(key) { + $6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]); + }); + } + return target; +} + +function $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + +function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) { + if (source == null) return { + }; + var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(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; +} + + + +const $79a03938b25da972$var$translations = { + pl_PL: { + startCoordsPicker: 'Uruchom zbieracza koordynat', + stopCoordsPicker: 'Zatrzymaj zbieracza koordynat', + exportedVillages: 'Wyeksportowane wioski', + cannotDeleteSelectedGroup: 'Nie można usunąć wybranej grupy!', + select: 'Wybierz', + delete: 'Usuń', + add: 'Dodaj', + save: 'Zapisz', + groupName: 'Nazwa grupy', + export: 'Eksport' + }, + en_DK: { + startCoordsPicker: 'Start coords picker', + stopCoordsPicker: 'Stop coords picker', + exportedVillages: 'Exported villages', + cannotDeleteSelectedGroup: 'Cannot delete selected group!', + select: 'Select', + delete: 'Delete', + add: 'Add', + save: 'Save', + groupName: 'Group name', + export: 'Export' + }, + de_DE: { + startCoordsPicker: 'Starte Koordinaten-Selektor', + stopCoordsPicker: 'Stoppe Koordinaten-Selektor', + exportedVillages: 'Exportierte Dörfer', + cannotDeleteSelectedGroup: 'Gruppe kann nicht gelöscht werden!', + select: 'Selektieren', + delete: 'Löschen', + add: 'Hinzufügen', + save: 'Speichern', + groupName: 'Gruppen-Name', + export: 'Exportieren' + } +}; +var $79a03938b25da972$export$2e2bcd8739ae039 = ()=>$79a03938b25da972$var$translations[window.game_data.locale] || $79a03938b25da972$var$translations.en_DK +; + + +const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = (key, d = { +})=>{ + const json = localStorage.getItem(key); + let obj = d; + if (json) obj = JSON.parse(json); + return obj; +}; +const $362bcac9fa8968ec$export$8a8216c44337cd5 = (key, payload)=>{ + localStorage.setItem(key, JSON.stringify(payload)); +}; + + +// ==UserScript== +// @name Map coords picker +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js +// @version 0.7.8 +// @description Map coords picker +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=map* +// @grant none +// ==/UserScript== +const $5889b22941d0d214$var$LOCAL_STORAGE_KEY = 'kichiyaki_map_coords_picker'; +const $5889b22941d0d214$var$container = document.querySelector('#content_value > h2'); +let $5889b22941d0d214$var$button; +let $5889b22941d0d214$var$formsContainer; +let $5889b22941d0d214$var$actionsContainer; +let $5889b22941d0d214$var$config = $362bcac9fa8968ec$export$f92dfeb71e9bb569($5889b22941d0d214$var$LOCAL_STORAGE_KEY, { started: false, groups: { - All: { - villages: [], - color: '#ffffff' - } + All: { + villages: [], + color: '#ffffff' + } }, selectedGroup: 'All' - }); - let $bfe8b11df18d9acc480580699499dd1a$var$intervalID; - const $bfe8b11df18d9acc480580699499dd1a$var$translations = $c0d320b9a99b0a41aa9ca0954410051e$export$default(); - const $bfe8b11df18d9acc480580699499dd1a$var$saveConfig = () => { - $3d935538f644f492fe681e00121114a4$export$setItem($bfe8b11df18d9acc480580699499dd1a$var$LOCAL_STORAGE_KEY, $bfe8b11df18d9acc480580699499dd1a$var$config); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$getVillageIDByCoords = (x, y) => { - const xy = parseInt(("").concat(x).concat(y), 10); +}); +let $5889b22941d0d214$var$intervalID; +const $5889b22941d0d214$var$translations = $79a03938b25da972$export$2e2bcd8739ae039(); +const $5889b22941d0d214$var$saveConfig = ()=>{ + $362bcac9fa8968ec$export$8a8216c44337cd5($5889b22941d0d214$var$LOCAL_STORAGE_KEY, $5889b22941d0d214$var$config); +}; +const $5889b22941d0d214$var$getVillageIDByCoords = (x, y)=>{ + const xy = parseInt(`${x}${y}`, 10); const village = TWMap.villages[xy]; - if (!village) { - return NaN; - } + if (!village) return NaN; return village.id; - }; - const $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillage = function addBorderToVillage(x, y) { - let color = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'transparent'; - const village = document.querySelector('#map_village_' + $bfe8b11df18d9acc480580699499dd1a$var$getVillageIDByCoords(x, y)); +}; +const $5889b22941d0d214$var$addBorderToVillage = (x, y, color = 'transparent')=>{ + const village = document.querySelector('#map_village_' + $5889b22941d0d214$var$getVillageIDByCoords(x, y)); if (village) { - village.style.boxSizing = 'border-box'; - village.style.border = color !== 'transparent' ? ("5px solid ").concat(color) : 'none'; + village.style.boxSizing = 'border-box'; + village.style.border = color !== 'transparent' ? `5px solid ${color}` : 'none'; } - }; - const $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillagesInGroup = function addBorderToVillagesInGroup(name) { - let color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages.forEach(village => { - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillage(village.x, village.y, color ? color : $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].color); +}; +const $5889b22941d0d214$var$addBorderToVillagesInGroup = (name, color = '')=>{ + $5889b22941d0d214$var$config.groups[name].villages.forEach((village)=>{ + $5889b22941d0d214$var$addBorderToVillage(village.x, village.y, color ? color : $5889b22941d0d214$var$config.groups[name].color); }); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$addBorderToSelectedVillages = function addBorderToSelectedVillages() { - let color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) { - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillagesInGroup(name, color); +}; +const $5889b22941d0d214$var$addBorderToSelectedVillages = (color = '')=>{ + for(let name in $5889b22941d0d214$var$config.groups)$5889b22941d0d214$var$addBorderToVillagesInGroup(name, color); +}; +const $5889b22941d0d214$var$deleteVillageFromOtherGroups = (key)=>{ + for(let name in $5889b22941d0d214$var$config.groups){ + if (name === $5889b22941d0d214$var$config.selectedGroup) return; + $5889b22941d0d214$var$config.groups[name].villages = $5889b22941d0d214$var$config.groups[name].villages.filter((village)=>village.key !== key + ); } - }; - const $bfe8b11df18d9acc480580699499dd1a$var$deleteVillageFromOtherGroups = key => { - for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) { - if (name === $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup) return; - $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages = $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages.filter(village => village.key !== key); - } - }; - const $bfe8b11df18d9acc480580699499dd1a$var$handleMapClick = (x, y, e) => { +}; +const $5889b22941d0d214$var$handleMapClick = (x, y, e)=>{ e.preventDefault(); - if (isNaN($bfe8b11df18d9acc480580699499dd1a$var$getVillageIDByCoords(x, y))) { - return; + if (isNaN($5889b22941d0d214$var$getVillageIDByCoords(x, y))) return; + const key = `${x}|${y}`; + if ($5889b22941d0d214$var$config.groups[$5889b22941d0d214$var$config.selectedGroup].villages.some((village)=>village.key === key + )) { + $5889b22941d0d214$var$config.groups[$5889b22941d0d214$var$config.selectedGroup].villages = $5889b22941d0d214$var$config.groups[$5889b22941d0d214$var$config.selectedGroup].villages.filter((village)=>village.key !== key + ); + $5889b22941d0d214$var$addBorderToVillage(x, y, 'transparent'); + return; } - const key = ("").concat(x, "|").concat(y); - if ($bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages.some(village => village.key === key)) { - $bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages = $bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages.filter(village => village.key !== key); - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillage(x, y, 'transparent'); - return; - } - $bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages = [...$bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].villages, { - x, - y, - key - }]; - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillage(x, y, $bfe8b11df18d9acc480580699499dd1a$var$config.groups[$bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup].color); - $bfe8b11df18d9acc480580699499dd1a$var$deleteVillageFromOtherGroups(key); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$renderForm = (container, group) => { - const selected = group && group.name !== $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup; - const html = ("\n \n \n \n ").concat(group ? ("") : '', "\n ").concat(selected ? ("") : '', "\n "); + $5889b22941d0d214$var$config.groups[$5889b22941d0d214$var$config.selectedGroup].villages = [ + ...$5889b22941d0d214$var$config.groups[$5889b22941d0d214$var$config.selectedGroup].villages, + { + x: x, + y: y, + key: key + }, + ]; + $5889b22941d0d214$var$addBorderToVillage(x, y, $5889b22941d0d214$var$config.groups[$5889b22941d0d214$var$config.selectedGroup].color); + $5889b22941d0d214$var$deleteVillageFromOtherGroups(key); +}; +const $5889b22941d0d214$var$renderForm = (container, group)=>{ + const selected = group && group.name !== $5889b22941d0d214$var$config.selectedGroup; + const html = ` + + + + ${group ? `` : ''} + ${selected ? `` : ''} + `; const form = document.createElement('form'); form.innerHTML = html; - form.addEventListener('submit', e => { - e.preventDefault(); - if (group) { - if (group.name === $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup) $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup = e.target[1].value; - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillagesInGroup(group.name, e.target[0].value); - $bfe8b11df18d9acc480580699499dd1a$var$config.groups[e.target[1].value] = $bfe8b11df18d9acc480580699499dd1a$var$_objectSpread($bfe8b11df18d9acc480580699499dd1a$var$_objectSpread({}, $bfe8b11df18d9acc480580699499dd1a$var$config.groups[group.name]), {}, { - color: e.target[0].value - }); - if (group.name !== e.target[1].value) delete $bfe8b11df18d9acc480580699499dd1a$var$config.groups[group.name]; - } else { - $bfe8b11df18d9acc480580699499dd1a$var$config.groups[e.target[1].value] = { - color: e.target[0].value, - villages: [] + form.addEventListener('submit', (e)=>{ + e.preventDefault(); + if (group) { + if (group.name === $5889b22941d0d214$var$config.selectedGroup) $5889b22941d0d214$var$config.selectedGroup = e.target[1].value; + $5889b22941d0d214$var$addBorderToVillagesInGroup(group.name, e.target[0].value); + $5889b22941d0d214$var$config.groups[e.target[1].value] = $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, $5889b22941d0d214$var$config.groups[group.name], { + color: e.target[0].value + }); + if (group.name !== e.target[1].value) delete $5889b22941d0d214$var$config.groups[group.name]; + } else $5889b22941d0d214$var$config.groups[e.target[1].value] = { + color: e.target[0].value, + villages: [] }; - } - $bfe8b11df18d9acc480580699499dd1a$var$renderGroups(); + $5889b22941d0d214$var$renderGroups(); }); if (group) { - form.querySelector('button[type="button"]').addEventListener('click', () => { - if ($bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup === group.name) { - return UI.ErrorMessage($bfe8b11df18d9acc480580699499dd1a$var$translations.cannotDeleteSelectedGroup); - } - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToVillagesInGroup(group.name, 'transparent'); - delete $bfe8b11df18d9acc480580699499dd1a$var$config.groups[group.name]; - form.remove(); - }); - const selectButton = form.querySelector('.selectButton'); - if (selectButton) { - selectButton.addEventListener('click', e => { - $bfe8b11df18d9acc480580699499dd1a$var$config.selectedGroup = group.name; - $bfe8b11df18d9acc480580699499dd1a$var$renderGroups(); + form.querySelector('button[type="button"]').addEventListener('click', ()=>{ + if ($5889b22941d0d214$var$config.selectedGroup === group.name) return UI.ErrorMessage($5889b22941d0d214$var$translations.cannotDeleteSelectedGroup); + $5889b22941d0d214$var$addBorderToVillagesInGroup(group.name, 'transparent'); + delete $5889b22941d0d214$var$config.groups[group.name]; + form.remove(); + }); + const selectButton = form.querySelector('.selectButton'); + if (selectButton) selectButton.addEventListener('click', (e)=>{ + $5889b22941d0d214$var$config.selectedGroup = group.name; + $5889b22941d0d214$var$renderGroups(); }); - } } container.appendChild(form); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$renderGroups = () => { - $bfe8b11df18d9acc480580699499dd1a$var$formsContainer.innerHTML = ''; - for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) { - $bfe8b11df18d9acc480580699499dd1a$var$renderForm($bfe8b11df18d9acc480580699499dd1a$var$formsContainer, $bfe8b11df18d9acc480580699499dd1a$var$_objectSpread($bfe8b11df18d9acc480580699499dd1a$var$_objectSpread({}, $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name]), {}, { - name - })); - } - $bfe8b11df18d9acc480580699499dd1a$var$renderForm($bfe8b11df18d9acc480580699499dd1a$var$formsContainer); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$handleExportVillages = () => { +}; +const $5889b22941d0d214$var$renderGroups = ()=>{ + $5889b22941d0d214$var$formsContainer.innerHTML = ''; + for(let name in $5889b22941d0d214$var$config.groups)$5889b22941d0d214$var$renderForm($5889b22941d0d214$var$formsContainer, $f1e9793517c51c58$export$2e2bcd8739ae039({ + }, $5889b22941d0d214$var$config.groups[name], { + name: name + })); + $5889b22941d0d214$var$renderForm($5889b22941d0d214$var$formsContainer); +}; +const $5889b22941d0d214$var$handleExportVillages = ()=>{ const groups = []; - for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) { - groups.push(("
\n

").concat(name, "

\n \n
")); - } - const html = ("\n ").concat(groups.join(''), "\n "); - Dialog.show($bfe8b11df18d9acc480580699499dd1a$var$translations.exportedVillages, html); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$renderActions = () => { + for(let name in $5889b22941d0d214$var$config.groups)groups.push(`
+

${name}

+ +
`); + const html = ` + ${groups.join('')} + `; + Dialog.show($5889b22941d0d214$var$translations.exportedVillages, html); +}; +const $5889b22941d0d214$var$renderActions = ()=>{ const exportVillages = document.createElement('button'); - exportVillages.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$translations.export; - exportVillages.addEventListener('click', $bfe8b11df18d9acc480580699499dd1a$var$handleExportVillages); - $bfe8b11df18d9acc480580699499dd1a$var$actionsContainer.appendChild(exportVillages); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$handleSpawnSector = (data, sector) => { + exportVillages.innerHTML = $5889b22941d0d214$var$translations.export; + exportVillages.addEventListener('click', $5889b22941d0d214$var$handleExportVillages); + $5889b22941d0d214$var$actionsContainer.appendChild(exportVillages); +}; +const $5889b22941d0d214$var$handleSpawnSector = (data, sector)=>{ TWMap.mapHandler.__spawnSector(data, sector); - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToSelectedVillages(); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$handleStart = () => { + $5889b22941d0d214$var$addBorderToSelectedVillages(); +}; +const $5889b22941d0d214$var$handleStart = ()=>{ TWMap.map.handler.__onClick = TWMap.map.handler.onClick; - TWMap.map.handler.onClick = $bfe8b11df18d9acc480580699499dd1a$var$handleMapClick; + TWMap.map.handler.onClick = $5889b22941d0d214$var$handleMapClick; TWMap.mapHandler.__spawnSector = TWMap.map.handler.spawnSector; - TWMap.mapHandler.spawnSector = $bfe8b11df18d9acc480580699499dd1a$var$handleSpawnSector; - $bfe8b11df18d9acc480580699499dd1a$var$button.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$translations.stopCoordsPicker; - $bfe8b11df18d9acc480580699499dd1a$var$renderActions(); - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToSelectedVillages(); - $bfe8b11df18d9acc480580699499dd1a$var$renderGroups(); - $bfe8b11df18d9acc480580699499dd1a$var$intervalID = setInterval($bfe8b11df18d9acc480580699499dd1a$var$saveConfig, 500); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$handleStop = () => { - if (typeof TWMap.map.handler.__onClick === 'function') { - TWMap.map.handler.onClick = TWMap.map.handler.__onClick; - } - if (typeof TWMap.map.handler.__spawnSector === 'function') { - TWMap.mapHandler.spawnSector = TWMap.map.handler.__spawnSector; - } - $bfe8b11df18d9acc480580699499dd1a$var$button.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$translations.startCoordsPicker; - $bfe8b11df18d9acc480580699499dd1a$var$formsContainer.innerHTML = ''; - $bfe8b11df18d9acc480580699499dd1a$var$actionsContainer.innerHTML = ''; - $bfe8b11df18d9acc480580699499dd1a$var$addBorderToSelectedVillages('transparent'); - if ($bfe8b11df18d9acc480580699499dd1a$var$intervalID) { - clearInterval($bfe8b11df18d9acc480580699499dd1a$var$intervalID); - } - for (let name in $bfe8b11df18d9acc480580699499dd1a$var$config.groups) { - $bfe8b11df18d9acc480580699499dd1a$var$config.groups[name].villages = []; - } - }; - const $bfe8b11df18d9acc480580699499dd1a$var$handleButtonClick = () => { - if ($bfe8b11df18d9acc480580699499dd1a$var$config.started) { - $bfe8b11df18d9acc480580699499dd1a$var$handleStop(); - } else { - $bfe8b11df18d9acc480580699499dd1a$var$handleStart(); - } - $bfe8b11df18d9acc480580699499dd1a$var$config.started = !$bfe8b11df18d9acc480580699499dd1a$var$config.started; - $bfe8b11df18d9acc480580699499dd1a$var$saveConfig(); - }; - const $bfe8b11df18d9acc480580699499dd1a$var$renderUI = () => { - $bfe8b11df18d9acc480580699499dd1a$var$button = document.createElement('button'); - $bfe8b11df18d9acc480580699499dd1a$var$button.style.marginLeft = '5px'; - $bfe8b11df18d9acc480580699499dd1a$var$button.innerHTML = $bfe8b11df18d9acc480580699499dd1a$var$config.started ? $bfe8b11df18d9acc480580699499dd1a$var$translations.stopCoordsPicker : $bfe8b11df18d9acc480580699499dd1a$var$translations.startCoordsPicker; - $bfe8b11df18d9acc480580699499dd1a$var$button.addEventListener('click', $bfe8b11df18d9acc480580699499dd1a$var$handleButtonClick); - $bfe8b11df18d9acc480580699499dd1a$var$container.appendChild($bfe8b11df18d9acc480580699499dd1a$var$button); - $bfe8b11df18d9acc480580699499dd1a$var$formsContainer = document.createElement('div'); - $bfe8b11df18d9acc480580699499dd1a$var$container.parentElement.insertBefore($bfe8b11df18d9acc480580699499dd1a$var$formsContainer, $bfe8b11df18d9acc480580699499dd1a$var$container.nextSibling); - $bfe8b11df18d9acc480580699499dd1a$var$actionsContainer = document.createElement('div'); - $bfe8b11df18d9acc480580699499dd1a$var$container.parentElement.insertBefore($bfe8b11df18d9acc480580699499dd1a$var$actionsContainer, $bfe8b11df18d9acc480580699499dd1a$var$container.nextSibling); - if ($bfe8b11df18d9acc480580699499dd1a$var$config.started) { - $bfe8b11df18d9acc480580699499dd1a$var$handleStart(); - } - }; - (function () { + TWMap.mapHandler.spawnSector = $5889b22941d0d214$var$handleSpawnSector; + $5889b22941d0d214$var$button.innerHTML = $5889b22941d0d214$var$translations.stopCoordsPicker; + $5889b22941d0d214$var$renderActions(); + $5889b22941d0d214$var$addBorderToSelectedVillages(); + $5889b22941d0d214$var$renderGroups(); + $5889b22941d0d214$var$intervalID = setInterval($5889b22941d0d214$var$saveConfig, 500); +}; +const $5889b22941d0d214$var$handleStop = ()=>{ + if (typeof TWMap.map.handler.__onClick === 'function') TWMap.map.handler.onClick = TWMap.map.handler.__onClick; + if (typeof TWMap.map.handler.__spawnSector === 'function') TWMap.mapHandler.spawnSector = TWMap.map.handler.__spawnSector; + $5889b22941d0d214$var$button.innerHTML = $5889b22941d0d214$var$translations.startCoordsPicker; + $5889b22941d0d214$var$formsContainer.innerHTML = ''; + $5889b22941d0d214$var$actionsContainer.innerHTML = ''; + $5889b22941d0d214$var$addBorderToSelectedVillages('transparent'); + if ($5889b22941d0d214$var$intervalID) clearInterval($5889b22941d0d214$var$intervalID); + for(let name in $5889b22941d0d214$var$config.groups)$5889b22941d0d214$var$config.groups[name].villages = []; +}; +const $5889b22941d0d214$var$handleButtonClick = ()=>{ + if ($5889b22941d0d214$var$config.started) $5889b22941d0d214$var$handleStop(); + else $5889b22941d0d214$var$handleStart(); + $5889b22941d0d214$var$config.started = !$5889b22941d0d214$var$config.started; + $5889b22941d0d214$var$saveConfig(); +}; +const $5889b22941d0d214$var$renderUI = ()=>{ + $5889b22941d0d214$var$button = document.createElement('button'); + $5889b22941d0d214$var$button.style.marginLeft = '5px'; + $5889b22941d0d214$var$button.innerHTML = $5889b22941d0d214$var$config.started ? $5889b22941d0d214$var$translations.stopCoordsPicker : $5889b22941d0d214$var$translations.startCoordsPicker; + $5889b22941d0d214$var$button.addEventListener('click', $5889b22941d0d214$var$handleButtonClick); + $5889b22941d0d214$var$container.appendChild($5889b22941d0d214$var$button); + $5889b22941d0d214$var$formsContainer = document.createElement('div'); + $5889b22941d0d214$var$container.parentElement.insertBefore($5889b22941d0d214$var$formsContainer, $5889b22941d0d214$var$container.nextSibling); + $5889b22941d0d214$var$actionsContainer = document.createElement('div'); + $5889b22941d0d214$var$container.parentElement.insertBefore($5889b22941d0d214$var$actionsContainer, $5889b22941d0d214$var$container.nextSibling); + if ($5889b22941d0d214$var$config.started) $5889b22941d0d214$var$handleStart(); +}; +(function() { try { - $bfe8b11df18d9acc480580699499dd1a$var$renderUI(); + $5889b22941d0d214$var$renderUI(); } catch (error) { - console.log('Map Coords Picker', error); + console.log('Map Coords Picker', error); } - })(); })(); +})(); diff --git a/dist/quickbar/bonusBarbarianVillageFinder.js b/dist/quickbar/bonusBarbarianVillageFinder.js index 8f17c52..f2d9ea4 100644 --- a/dist/quickbar/bonusBarbarianVillageFinder.js +++ b/dist/quickbar/bonusBarbarianVillageFinder.js @@ -1 +1 @@ -!function(){const t="https://api.tribalwarshelp.com/graphql";var e=function(){let{query:e,variables:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(t,{method:"POST",body:JSON.stringify({query:e,variables:n}),headers:{"Content-Type":"application/json"}}).then((t=>t.json())).then((t=>{let{data:e,errors:n}=t;if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((t=>t(e)))}))};const n={pl_PL:{actualCoords:"Aktualne koordynaty",searchBonusBarbarianVillages:"Wyszukaj koczownicze",village:"Wioska",distance:"Dystans",action:"Akcja",center:"Wycentruj"},en_DK:{actualCoords:"Actual coords",searchBonusBarbarianVillages:"Search bonus barbarian villages",village:"Village",distance:"Distance",action:"Action",center:"Center"},de_DE:{actualCoords:"Aktuelle Koordinaten",searchBonusBarbarianVillages:"Suche Bonus-Barbarendörfer",village:"Dorf",distance:"Distanz",action:"Aktion",center:"Center"}};const r=(t,e,n,r)=>{const a=t-n,o=e-r;return Math.sqrt(a*a+o*o)};function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e({query:"\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",variables:{server:i,sort:["id DESC"],filter:{bonus:t,playerID:[0]},offset:e}}),p=async t=>{t.preventDefault();const n=await(async t=>{const{villages:n}=await e(b(t,0));for(let r=n.length;ro(o({},t),{},{distance:r(a[0],a[1],t.x,t.y)}))).sort(((t,e)=>t.distance-e.distance)),document.querySelector("#bonusBarbarianVillageFinderTable").innerHTML=f(n.items)},f=t=>"\n \n \n \n ".concat(u.village,"\n \n \n ").concat(u.distance,"\n \n \n ").concat(u.action,"\n \n \n ").concat(Array.isArray(t)?t.map((t=>{return'\n \n \n ').concat(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const r="K"+String(n)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(n,") ").concat(r)}(t.name,t.x,t.y),"\n \n \n \n ").concat(t.distance.toFixed(1),'\n \n \n ').concat(u.center,"\n \n ");var e})).join(""):"","\n \n "),g=()=>{document.querySelector("#actualCoords").innerHTML="".concat(u.actualCoords,": ").concat(TWMap.pos.join("|"),"")};(()=>{const t='\n

\n
\n \n \n
\n \n ').concat(f(),"\n
\n ");d||(d=document.createElement("div"),d.classList.add("containerBorder"),d.style.clear="both",document.querySelector("#map_big").appendChild(d)),d.innerHTML=t,d.querySelector("form").addEventListener("submit",p),g(),setInterval(g,1e3)})()}(); \ No newline at end of file +!function(){function e(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var n=({query:e,variables:n={}}={})=>fetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:n})=>{if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((n=>n(e)))}));const t={pl_PL:{actualCoords:"Aktualne koordynaty",searchBonusBarbarianVillages:"Wyszukaj koczownicze",village:"Wioska",distance:"Dystans",action:"Akcja",center:"Wycentruj"},en_DK:{actualCoords:"Actual coords",searchBonusBarbarianVillages:"Search bonus barbarian villages",village:"Village",distance:"Distance",action:"Action",center:"Center"},de_DE:{actualCoords:"Aktuelle Koordinaten",searchBonusBarbarianVillages:"Suche Bonus-Barbarendörfer",village:"Dorf",distance:"Distanz",action:"Aktion",center:"Center"}};const r=(e,n,t,r)=>{const a=e-t,o=n-r;return Math.sqrt(a*a+o*o)},a=window.location.host.split(".")[0],o="bonusBarbarianVillageFinderTable",i=t[window.game_data.locale]||t.en_DK;let s;const l=(e,n)=>({query:"\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",variables:{server:a,sort:["id DESC"],filter:{bonus:e,playerID:[0]},offset:n}}),c=async t=>{t.preventDefault();const a=await(async e=>{const{villages:t}=await n(l(e,0));for(let r=t.length;rfunction(n){for(var t=1;te.distance-n.distance)),document.querySelector("#"+o).innerHTML=u(a.items)},u=e=>`\n \n \n \n ${i.village}\n \n \n ${i.distance}\n \n \n ${i.action}\n \n \n ${Array.isArray(e)?e.map((e=>{return`\n \n \n ${((e="",n=500,t=500)=>`${e} (${n}|${t}) ${"K"+String(t)[0]+String(n)[0]}`)(e.name,e.x,e.y)}\n \n \n \n ${e.distance.toFixed(1)}\n \n \n ${i.center}\n \n `;var n})).join(""):""}\n \n `,d=()=>{document.querySelector("#actualCoords").innerHTML=`${i.actualCoords}: ${TWMap.pos.join("|")}`};(()=>{const e=`\n

\n
\n \n \n
\n \n ${u()}\n
\n `;s||(s=document.createElement("div"),s.classList.add("containerBorder"),s.style.clear="both",document.querySelector("#map_big").appendChild(s)),s.innerHTML=e,s.querySelector("form").addEventListener("submit",c),d(),setInterval(d,1e3)})()}(); \ No newline at end of file diff --git a/dist/quickbar/commandRenamer.js b/dist/quickbar/commandRenamer.js index b2fa21a..74347a8 100644 --- a/dist/quickbar/commandRenamer.js +++ b/dist/quickbar/commandRenamer.js @@ -1 +1 @@ -!function(){const e={pl_PL:{rename:"Zmień",name:"Nazwa"},en_DK:{rename:"Rename",name:"Name"},de_DE:{rename:"Umbenennen",name:"Name"}};var t=e=>new Promise((t=>setTimeout(t,e)));const n=e[window.game_data.locale]||e.en_DK,a=async e=>{e.preventDefault();const n=e.target[0].value;if(!n)return;const a=document.querySelectorAll("#incomings_table input:checked");e.target[1].disabled=!0;for(let e=0;e{const e='\n \n \n "),t=document.createElement("form");t.innerHTML=e,t.addEventListener("submit",a),document.querySelector("#paged_view_content").insertBefore(t,document.querySelector("#incomings_form"))})()}catch(e){console.log("command renamer",e)}}()}(); \ No newline at end of file +!function(){const e={pl_PL:{rename:"Zmień",name:"Nazwa"},en_DK:{rename:"Rename",name:"Name"},de_DE:{rename:"Umbenennen",name:"Name"}};var t=e=>new Promise((t=>setTimeout(t,e)));const n=e[window.game_data.locale]||e.en_DK,a=async e=>{e.preventDefault();const n=e.target[0].value;if(!n)return;const a=document.querySelectorAll("#incomings_table input:checked");e.target[1].disabled=!0;for(let e=0;e{const e=`\n \n \n `,t=document.createElement("form");t.innerHTML=e,t.addEventListener("submit",a),document.querySelector("#paged_view_content").insertBefore(t,document.querySelector("#incomings_form"))})()}catch(e){console.log("command renamer",e)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/dailyAchievements.js b/dist/quickbar/dailyAchievements.js index 03aa3cd..8d16e54 100644 --- a/dist/quickbar/dailyAchievements.js +++ b/dist/quickbar/dailyAchievements.js @@ -1 +1 @@ -!function(){function e(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function t(t){e(1,arguments);var n=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===n?new Date(t.getTime()):"number"==typeof t||"[object Number]"===n?new Date(t):("string"!=typeof t&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function n(n){e(1,arguments);var r=t(n);return!isNaN(r)}var r={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function a(e){return function(t){var n=t||{},r=n.width?String(n.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var i={date:a({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:a({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:a({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},o={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function s(e){return function(t,n){var r,a=n||{};if("formatting"===(a.context?String(a.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=a.width?String(a.width):i;r=e.formattingValues[o]||e.formattingValues[i]}else{var s=e.defaultWidth,u=a.width?String(a.width):e.defaultWidth;r=e.values[u]||e.values[s]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function u(e){return function(t,n){var r=String(t),a=n||{},i=a.width,o=i&&e.matchPatterns[i]||e.matchPatterns[e.defaultMatchWidth],s=r.match(o);if(!s)return null;var u,c=s[0],d=i&&e.parsePatterns[i]||e.parsePatterns[e.defaultParseWidth];return u="[object Array]"===Object.prototype.toString.call(d)?function(e,t){for(var n=0;n0?"in "+a:a+" ago":a},formatLong:i,formatRelative:function(e,t,n,r){return o[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:s({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:s({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:s({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:s({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:s({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(c={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e,t){var n=String(e),r=t||{},a=n.match(c.matchPattern);if(!a)return null;var i=a[0],o=n.match(c.parsePattern);if(!o)return null;var s=c.valueCallback?c.valueCallback(o[0]):o[0];return{value:s=r.valueCallback?r.valueCallback(s):s,rest:n.slice(i.length)}}),era:u({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:u({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:u({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:u({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:u({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function l(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function h(n,r){e(2,arguments);var a=t(n).getTime(),i=l(r);return new Date(a+i)}function f(t,n){e(2,arguments);var r=l(n);return h(t,-r)}function g(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length0?n:1-n;return g("yy"===t?r%100:r,t.length)},w=function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):g(n+1,2)},y=function(e,t){return g(e.getUTCDate(),t.length)},v=function(e,t){return g(e.getUTCHours()%12||12,t.length)},p=function(e,t){return g(e.getUTCHours(),t.length)},b=function(e,t){return g(e.getUTCMinutes(),t.length)},T=function(e,t){return g(e.getUTCSeconds(),t.length)},D=function(e,t){var n=t.length,r=e.getUTCMilliseconds();return g(Math.floor(r*Math.pow(10,n-3)),t.length)},S=864e5;function C(n){e(1,arguments);var r=1,a=t(n),i=a.getUTCDay(),o=(i=o.getTime()?a+1:r.getTime()>=u.getTime()?a:a-1}function M(t){e(1,arguments);var n=P(t),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var a=C(r);return a}var x=6048e5;function k(n,r){e(1,arguments);var a=r||{},i=a.locale,o=i&&i.options&&i.options.weekStartsOn,s=null==o?0:l(o),u=null==a.weekStartsOn?s:l(a.weekStartsOn);if(!(u>=0&&u<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=t(n),d=c.getUTCDay(),h=(d=1&&d<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var h=new Date(0);h.setUTCFullYear(i+1,0,d),h.setUTCHours(0,0,0,0);var f=k(h,r),g=new Date(0);g.setUTCFullYear(i,0,d),g.setUTCHours(0,0,0,0);var m=k(g,r);return a.getTime()>=f.getTime()?i+1:a.getTime()>=m.getTime()?i:i-1}function U(t,n){e(1,arguments);var r=n||{},a=r.locale,i=a&&a.options&&a.options.firstWeekContainsDate,o=null==i?1:l(i),s=null==r.firstWeekContainsDate?o:l(r.firstWeekContainsDate),u=O(t,n),c=new Date(0);c.setUTCFullYear(u,0,s),c.setUTCHours(0,0,0,0);var d=k(c,n);return d}var E=6048e5;var W="midnight",j="noon",Y="morning",q="afternoon",N="evening",z="night",L={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return m(e,t)},Y:function(e,t,n,r){var a=O(e,r),i=a>0?a:1-a;return"YY"===t?g(i%100,2):"Yo"===t?n.ordinalNumber(i,{unit:"year"}):g(i,t.length)},R:function(e,t){return g(P(e),t.length)},u:function(e,t){return g(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return g(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return g(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return w(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return g(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(n,r,a,i){var o=function(n,r){e(1,arguments);var a=t(n),i=k(a,r).getTime()-U(a,r).getTime();return Math.round(i/E)+1}(n,i);return"wo"===r?a.ordinalNumber(o,{unit:"week"}):g(o,r.length)},I:function(n,r,a){var i=function(n){e(1,arguments);var r=t(n),a=C(r).getTime()-M(r).getTime();return Math.round(a/x)+1}(n);return"Io"===r?a.ordinalNumber(i,{unit:"week"}):g(i,r.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):y(e,t)},D:function(n,r,a){var i=function(n){e(1,arguments);var r=t(n),a=r.getTime();r.setUTCMonth(0,1),r.setUTCHours(0,0,0,0);var i=r.getTime(),o=a-i;return Math.floor(o/S)+1}(n);return"Do"===r?a.ordinalNumber(i,{unit:"dayOfYear"}):g(i,r.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var a=e.getUTCDay(),i=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return g(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var a=e.getUTCDay(),i=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return g(i,t.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),a=0===r?7:r;switch(t){case"i":return String(a);case"ii":return g(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,a=e.getUTCHours();switch(r=12===a?j:0===a?W:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,a=e.getUTCHours();switch(r=a>=17?N:a>=12?q:a>=4?Y:z,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return v(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):p(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):g(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):g(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):b(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):T(e,t)},S:function(e,t){return D(e,t)},X:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return A(a);case"XXXX":case"XX":return H(a);case"XXXXX":case"XXX":default:return H(a,":")}},x:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return A(a);case"xxxx":case"xx":return H(a);case"xxxxx":case"xxx":default:return H(a,":")}},O:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+G(a,":");case"OOOO":default:return"GMT"+H(a,":")}},z:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+G(a,":");case"zzzz":default:return"GMT"+H(a,":")}},t:function(e,t,n,r){var a=r._originalDate||e;return g(Math.floor(a.getTime()/1e3),t.length)},T:function(e,t,n,r){return g((r._originalDate||e).getTime(),t.length)}};function G(e,t){var n=e>0?"-":"+",r=Math.abs(e),a=Math.floor(r/60),i=r%60;if(0===i)return n+String(a);var o=t||"";return n+String(a)+o+g(i,2)}function A(e,t){return e%60==0?(e>0?"-":"+")+g(Math.abs(e)/60,2):H(e,t)}function H(e,t){var n=t||"",r=e>0?"-":"+",a=Math.abs(e);return r+g(Math.floor(a/60),2)+n+g(a%60,2)}function B(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}}function F(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}}var X={p:F,P:function(e,t){var n,r=e.match(/(P+)(p+)?/),a=r[1],i=r[2];if(!i)return B(e,t);switch(a){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;case"PPPP":default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",B(a,t)).replace("{{time}}",F(i,t))}};function Q(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}var I=["D","DD"],R=["YY","YYYY"];function _(e){return-1!==I.indexOf(e)}function $(e){return-1!==R.indexOf(e)}function J(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"))}var V=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,K=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Z=/^'([^]*?)'?$/,ee=/''/g,te=/[a-zA-Z]/;function ne(r,a,i){e(2,arguments);var o=String(a),s=i||{},u=s.locale||d,c=u.options&&u.options.firstWeekContainsDate,h=null==c?1:l(c),g=null==s.firstWeekContainsDate?h:l(s.firstWeekContainsDate);if(!(g>=1&&g<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var m=u.options&&u.options.weekStartsOn,w=null==m?0:l(m),y=null==s.weekStartsOn?w:l(s.weekStartsOn);if(!(y>=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!u.localize)throw new RangeError("locale must contain localize property");if(!u.formatLong)throw new RangeError("locale must contain formatLong property");var v=t(r);if(!n(v))throw new RangeError("Invalid time value");var p=Q(v),b=f(v,p),T={firstWeekContainsDate:g,weekStartsOn:y,locale:u,_originalDate:v},D=o.match(K).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,X[t])(e,u.formatLong,T):e})).join("").match(V).map((function(e){if("''"===e)return"'";var t=e[0];if("'"===t)return re(e);var n=L[t];if(n)return!s.useAdditionalWeekYearTokens&&$(e)&&J(e,a,r),!s.useAdditionalDayOfYearTokens&&_(e)&&J(e,a,r),n(b,e,u.localize,T);if(t.match(te))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return e})).join("");return D}function re(e){return e.match(Z)[1].replace(ee,"'")}const ae="https://api.tribalwarshelp.com/graphql";var ie=function(){let{query:e,variables:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(ae,{method:"POST",body:JSON.stringify({query:e,variables:t}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((e=>{let{data:t,errors:n}=e;if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((e=>e(t)))}))};const oe={pl_PL:{title:"Dzienne osiągnięcia - prawdopodobni gracze",warning:"Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.",aotd:"Agresor dnia",dotd:"Obrońca dnia",sotd:"Pomocnik dnia",gpotd:"Mocarstwo dnia",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{title:"Daily achievements - probable players",warning:"Remember! This script shows scores, not defeated units.",aotd:"Attacker of the day",dotd:"Defender of the day",sotd:"Supporter of the day",gpotd:"Great power of the day",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{title:"Tägliche Erfolge - Wahrscheinliche Spieler",warning:"Hinweis! Das Script zeigt die Punke, nicht besiegte Einheiten.",aotd:"Angreifer des Tages",dotd:"Verteidiger des Tages",sotd:"Unterstützer des Tages",gpotd:"Großmacht des Tages",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};const se=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))},ue=e=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:e});const ce="tribalwarshelp.com",de=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(e,".").concat(ce,"/server/").concat(t)};function le(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 he(e){for(var t=1;tfunction(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=localStorage.getItem(e);let r=t;return n&&(r=JSON.parse(n)),r}(me),pe=async()=>{let e=await ie({query:"\n query server($server: String!) {\n server(key: $server) {\n key\n historyUpdatedAt\n version {\n timezone\n }\n }\n }\n",variables:{server:ge}});if(e.server){const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"UTC";return new Date(new Date(e).toLocaleString("en-US",{timeZone:t}))}(e.server.historyUpdatedAt,e.server.version.timezone),n=await ie({query:'\n query data($server: String!, $createDateGTE: Time!) {\n dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStats(server: $server, sort: ["scoreAtt DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreAtt\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreDef: dailyPlayerStats(server: $server, sort: ["scoreDef DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreDef\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreSup: dailyPlayerStats(server: $server, sort: ["scoreSup DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreSup\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByVillages: dailyPlayerStats(server: $server, sort: ["villages DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n villages\n player {\n id\n name\n }\n }\n }\n }\n',variables:{server:ge,createDateGTE:ne(t,"yyyy-MM-dd")+"T"+ne(t,"HH:mm:ss")+"Z"}});e=he(he({},e),n)}return function(){se(me,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}(e),e},be=e=>{let{dailyPlayerStatsOrderedByScoreAtt:t,dailyPlayerStatsOrderedByScoreDef:n,dailyPlayerStatsOrderedByScoreSup:r,dailyPlayerStatsOrderedByVillages:a}=e;const i='\n
'.concat(ye.title,'
\n
\n
\n

TWHelp

\n

').concat(ye.devNote,'

\n

').concat(ye.warning,"

\n

").concat(ye.aotd,"

\n ").concat(t.items.map(((e,t)=>"".concat(t+1,'. ').concat(e.player.name," - ").concat(e.scoreAtt.toLocaleString(),""))).join("
"),'\n
\n
\n
\n

').concat(ye.dotd,"

\n ").concat(n.items.map(((e,t)=>"".concat(t+1,'. ').concat(e.player.name," - ").concat(e.scoreDef.toLocaleString(),""))).join("
"),'\n
\n
\n
\n

').concat(ye.sotd,"

\n ").concat(r.items.map(((e,t)=>"".concat(t+1,'. ').concat(e.player.name," - ").concat(e.scoreSup.toLocaleString(),""))).join("
"),'\n
\n
\n
\n

').concat(ye.gpotd,"

\n ").concat(a.items.map(((e,t)=>"".concat(t+1,'. ').concat(e.player.name," - ").concat(e.villages.toLocaleString(),""))).join("
"),'\n
\n
\n
\n ');we||(we=document.createElement("div"),we.classList.add("award-group"),document.querySelector("#content_value > div:nth-child(4)").prepend(we)),we.innerHTML=i};!async function(){try{const e=ve();e&&e.server&&be(e);const t=await pe();t.server&&be(t)}catch(e){console.log("dailyAchievements",e)}}()}(); \ No newline at end of file +!function(){function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function n(e){t(1,arguments);var n=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===n?new Date(e.getTime()):"number"==typeof e||"[object Number]"===n?new Date(e):("string"!=typeof e&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function r(e){t(1,arguments);var r=n(e);return!isNaN(r)}var a={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function i(e){return function(t){var n=t||{},r=n.width?String(n.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var o={date:i({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:i({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:i({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},s={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function u(e){return function(t,n){var r,a=n||{};if("formatting"===(a.context?String(a.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,o=a.width?String(a.width):i;r=e.formattingValues[o]||e.formattingValues[i]}else{var s=e.defaultWidth,u=a.width?String(a.width):e.defaultWidth;r=e.values[u]||e.values[s]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function c(e){return function(t,n){var r=String(t),a=n||{},i=a.width,o=i&&e.matchPatterns[i]||e.matchPatterns[e.defaultMatchWidth],s=r.match(o);if(!s)return null;var u,c=s[0],d=i&&e.parsePatterns[i]||e.parsePatterns[e.defaultParseWidth];return u="[object Array]"===Object.prototype.toString.call(d)?function(e,t){for(var n=0;n0?"in "+r:r+" ago":r},formatLong:o,formatRelative:function(e,t,n,r){return s[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:u({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:u({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:u({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:u({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:u({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(d={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e,t){var n=String(e),r=t||{},a=n.match(d.matchPattern);if(!a)return null;var i=a[0],o=n.match(d.parsePattern);if(!o)return null;var s=d.valueCallback?d.valueCallback(o[0]):o[0];return{value:s=r.valueCallback?r.valueCallback(s):s,rest:n.slice(i.length)}}),era:c({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:c({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:c({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:c({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:c({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function h(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function f(e,r){t(2,arguments);var a=n(e).getTime(),i=h(r);return new Date(a+i)}function m(e,n){t(2,arguments);var r=h(n);return f(e,-r)}function g(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length0?n:1-n;return g("yy"===t?r%100:r,t.length)},M:function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):g(n+1,2)},d:function(e,t){return g(e.getUTCDate(),t.length)},a:function(e,t){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return"am"===n?"a.m.":"p.m."}},h:function(e,t){return g(e.getUTCHours()%12||12,t.length)},H:function(e,t){return g(e.getUTCHours(),t.length)},m:function(e,t){return g(e.getUTCMinutes(),t.length)},s:function(e,t){return g(e.getUTCSeconds(),t.length)},S:function(e,t){var n=t.length,r=e.getUTCMilliseconds();return g(Math.floor(r*Math.pow(10,n-3)),t.length)}},y=864e5;function v(e){t(1,arguments);var r=1,a=n(e),i=a.getUTCDay(),o=(i=o.getTime()?a+1:r.getTime()>=u.getTime()?a:a-1}function b(e){t(1,arguments);var n=p(e),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var a=v(r);return a}var T=6048e5;function S(e,r){t(1,arguments);var a=r||{},i=a.locale,o=i&&i.options&&i.options.weekStartsOn,s=null==o?0:h(o),u=null==a.weekStartsOn?s:h(a.weekStartsOn);if(!(u>=0&&u<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var c=n(e),d=c.getUTCDay(),l=(d=1&&d<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=new Date(0);l.setUTCFullYear(i+1,0,d),l.setUTCHours(0,0,0,0);var f=S(l,r),m=new Date(0);m.setUTCFullYear(i,0,d),m.setUTCHours(0,0,0,0);var g=S(m,r);return a.getTime()>=f.getTime()?i+1:a.getTime()>=g.getTime()?i:i-1}function C(e,n){t(1,arguments);var r=n||{},a=r.locale,i=a&&a.options&&a.options.firstWeekContainsDate,o=null==i?1:h(i),s=null==r.firstWeekContainsDate?o:h(r.firstWeekContainsDate),u=D(e,n),c=new Date(0);c.setUTCFullYear(u,0,s),c.setUTCHours(0,0,0,0);var d=S(c,n);return d}var M=6048e5;var P="midnight",x="noon",k="morning",U="afternoon",E="evening",O="night";function W(e,t){var n=e>0?"-":"+",r=Math.abs(e),a=Math.floor(r/60),i=r%60;if(0===i)return n+String(a);var o=t||"";return n+String(a)+o+g(i,2)}function Y(e,t){return e%60==0?(e>0?"-":"+")+g(Math.abs(e)/60,2):$(e,t)}function $(e,t){var n=t||"",r=e>0?"-":"+",a=Math.abs(e);return r+g(Math.floor(a/60),2)+n+g(a%60,2)}var q={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return w.y(e,t)},Y:function(e,t,n,r){var a=D(e,r),i=a>0?a:1-a;return"YY"===t?g(i%100,2):"Yo"===t?n.ordinalNumber(i,{unit:"year"}):g(i,t.length)},R:function(e,t){return g(p(e),t.length)},u:function(e,t){return g(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return g(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return g(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return w.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return g(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,r,a,i){var o=function(e,r){t(1,arguments);var a=n(e),i=S(a,r).getTime()-C(a,r).getTime();return Math.round(i/M)+1}(e,i);return"wo"===r?a.ordinalNumber(o,{unit:"week"}):g(o,r.length)},I:function(e,r,a){var i=function(e){t(1,arguments);var r=n(e),a=v(r).getTime()-b(r).getTime();return Math.round(a/T)+1}(e);return"Io"===r?a.ordinalNumber(i,{unit:"week"}):g(i,r.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):w.d(e,t)},D:function(e,r,a){var i=function(e){t(1,arguments);var r=n(e),a=r.getTime();r.setUTCMonth(0,1),r.setUTCHours(0,0,0,0);var i=r.getTime(),o=a-i;return Math.floor(o/y)+1}(e);return"Do"===r?a.ordinalNumber(i,{unit:"dayOfYear"}):g(i,r.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var a=e.getUTCDay(),i=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return g(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var a=e.getUTCDay(),i=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return g(i,t.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),a=0===r?7:r;switch(t){case"i":return String(a);case"ii":return g(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,a=e.getUTCHours();switch(r=12===a?x:0===a?P:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,a=e.getUTCHours();switch(r=a>=17?E:a>=12?U:a>=4?k:O,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return w.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):w.H(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):g(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):g(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):w.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):w.s(e,t)},S:function(e,t){return w.S(e,t)},X:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return Y(a);case"XXXX":case"XX":return $(a);case"XXXXX":case"XXX":default:return $(a,":")}},x:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return Y(a);case"xxxx":case"xx":return $(a);case"xxxxx":case"xxx":default:return $(a,":")}},O:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+W(a,":");case"OOOO":default:return"GMT"+$(a,":")}},z:function(e,t,n,r){var a=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+W(a,":");case"zzzz":default:return"GMT"+$(a,":")}},t:function(e,t,n,r){var a=r._originalDate||e;return g(Math.floor(a.getTime()/1e3),t.length)},T:function(e,t,n,r){return g((r._originalDate||e).getTime(),t.length)}};function N(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}}function j(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}}var z={p:j,P:function(e,t){var n,r=e.match(/(P+)(p+)?/),a=r[1],i=r[2];if(!i)return N(e,t);switch(a){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;case"PPPP":default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",N(a,t)).replace("{{time}}",j(i,t))}};function L(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}var G=["D","DD"],H=["YY","YYYY"];function A(e){return-1!==G.indexOf(e)}function B(e){return-1!==H.indexOf(e)}function F(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"))}var X=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Q=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,I=/^'([^]*?)'?$/,R=/''/g,_=/[a-zA-Z]/;function J(e,a,i){t(2,arguments);var o=String(a),s=i||{},u=s.locale||l,c=u.options&&u.options.firstWeekContainsDate,d=null==c?1:h(c),f=null==s.firstWeekContainsDate?d:h(s.firstWeekContainsDate);if(!(f>=1&&f<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var g=u.options&&u.options.weekStartsOn,w=null==g?0:h(g),y=null==s.weekStartsOn?w:h(s.weekStartsOn);if(!(y>=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!u.localize)throw new RangeError("locale must contain localize property");if(!u.formatLong)throw new RangeError("locale must contain formatLong property");var v=n(e);if(!r(v))throw new RangeError("Invalid time value");var p=L(v),b=m(v,p),T={firstWeekContainsDate:f,weekStartsOn:y,locale:u,_originalDate:v},S=o.match(Q).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,z[t])(e,u.formatLong,T):e})).join("").match(X).map((function(t){if("''"===t)return"'";var n=t[0];if("'"===n)return V(t);var r=q[n];if(r)return!s.useAdditionalWeekYearTokens&&B(t)&&F(t,a,e),!s.useAdditionalDayOfYearTokens&&A(t)&&F(t,a,e),r(b,t,u.localize,T);if(n.match(_))throw new RangeError("Format string contains an unescaped latin alphabet character `"+n+"`");return t})).join("");return S}function V(e){return e.match(I)[1].replace(R,"'")}var K=({query:e,variables:t={}}={})=>fetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:t}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:t})=>{if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise((t=>t(e)))}));const Z={pl_PL:{title:"Dzienne osiągnięcia - prawdopodobni gracze",warning:"Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.",aotd:"Agresor dnia",dotd:"Obrońca dnia",sotd:"Pomocnik dnia",gpotd:"Mocarstwo dnia",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{title:"Daily achievements - probable players",warning:"Remember! This script shows scores, not defeated units.",aotd:"Attacker of the day",dotd:"Defender of the day",sotd:"Supporter of the day",gpotd:"Great power of the day",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{title:"Tägliche Erfolge - Wahrscheinliche Spieler",warning:"Hinweis! Das Script zeigt die Punke, nicht besiegte Einheiten.",aotd:"Angreifer des Tages",dotd:"Verteidiger des Tages",sotd:"Unterstützer des Tages",gpotd:"Großmacht des Tages",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};const ee=e=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:e});const te=(e=new Date,t="UTC")=>new Date(new Date(e).toLocaleString("en-US",{timeZone:t})),ne=(e="",t="")=>`https://${e}.tribalwarshelp.com/server/${t}`,re=window.location.host.split(".")[0],ae="kichiyaki_daily_achievements";let ie;const oe=Z[window.game_data.locale]||Z.en_DK,se=()=>((e,t={})=>{const n=localStorage.getItem(e);let r=t;return n&&(r=JSON.parse(n)),r})(ae),ue=(e={})=>{var t,n;t=ae,n=e,localStorage.setItem(t,JSON.stringify(n))},ce=async()=>{let t=await K({query:"\n query server($server: String!) {\n server(key: $server) {\n key\n historyUpdatedAt\n version {\n timezone\n }\n }\n }\n",variables:{server:re}});if(t.server){const n=te(t.server.historyUpdatedAt,t.server.version.timezone);t=function(t){for(var n=1;n{const a=`\n
${oe.title}
\n
\n
\n

e.substr(0,2))(re),re)}">TWHelp

\n

${oe.devNote}

\n

${oe.warning}

\n

${oe.aotd}

\n ${e.items.map(((e,t)=>`${t+1}. ${e.player.name} - ${e.scoreAtt.toLocaleString()}`)).join("
")}\n
\n
\n
\n

${oe.dotd}

\n ${t.items.map(((e,t)=>`${t+1}. ${e.player.name} - ${e.scoreDef.toLocaleString()}`)).join("
")}\n
\n
\n
\n

${oe.sotd}

\n ${n.items.map(((e,t)=>`${t+1}. ${e.player.name} - ${e.scoreSup.toLocaleString()}`)).join("
")}\n
\n
\n
\n

${oe.gpotd}

\n ${r.items.map(((e,t)=>`${t+1}. ${e.player.name} - ${e.villages.toLocaleString()}`)).join("
")}\n
\n
\n
\n `;ie||(ie=document.createElement("div"),ie.classList.add("award-group"),document.querySelector("#content_value > div:nth-child(4)").prepend(ie)),ie.innerHTML=a};!async function(){try{const e=se();e&&e.server&&de(e);const t=await ce();t.server&&de(t)}catch(e){console.log("dailyAchievements",e)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/extendedMapPopup.js b/dist/quickbar/extendedMapPopup.js index d5a4907..47379d7 100644 --- a/dist/quickbar/extendedMapPopup.js +++ b/dist/quickbar/extendedMapPopup.js @@ -1 +1 @@ -!function(){function e(e){if(null===e||!0===e||!1===e)return NaN;var n=Number(e);return isNaN(n)?n:n<0?Math.ceil(n):Math.floor(n)}function n(e,n){if(n.length1?"s":"")+" required, but only "+n.length+" present")}function t(e){n(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function o(o,r){n(2,arguments);var a=t(o).getTime(),i=e(r);return new Date(a+i)}const r={pl_PL:{ennobledAt:"Podbita o",never:"Nigdy",possibleLoyalty:"Prawdopodobne poparcie",canSendNoble:"Można wysłać szlachcica",yes:"Tak",no:"Nie"},en_DK:{ennobledAt:"Ennobled at",never:"Never",possibleLoyalty:"Possible loyalty",canSendNoble:"Can send noble",yes:"Yes",no:"No"},de_DE:{ennobledAt:"Adelung bei",never:"Nie",possibleLoyalty:"Mögliche Zustimmung",canSendNoble:"Kann Adelsgeschlecht senden",yes:"Ja",no:"Nein"}};const a="https://api.tribalwarshelp.com/graphql";var i=function(){let{query:e,variables:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(a,{method:"POST",body:JSON.stringify({query:e,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((e=>{let{data:n,errors:t}=e;if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise((e=>e(n)))}))};const l=(e,n)=>new Date(e).toLocaleDateString(void 0,n||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"});var s=e=>{return n="unit/unit_".concat(e,".png"),image_base+n;var n};const c=(e,n)=>{localStorage.setItem(e,JSON.stringify(n))};function p(e,o){n(2,arguments);var r=t(e),a=t(o);return r.getTime()-a.getTime()}const d=(e,t)=>{let o=25+Math.abs(function(e,t){n(2,arguments);var o=p(e,t)/6e4;return o>0?Math.floor(o):Math.ceil(o)}(e,new Date))*(t/60);return o>100&&(o=100),Math.floor(o)};function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function g(e){for(var n=1;nfunction(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=localStorage.getItem(e);let o=n;return t&&(o=JSON.parse(t)),o}(f),w=async()=>{let e=v();var n;return e&&e.server&&(n=new Date(e.loadedAt),!(Math.abs(n.getTime()-(new Date).getTime())>864e5))&&e.server.config&&e.server.config.speed&&e.server.config.snob&&e.server.config.snob.maxDist&&e.server.config.unitSpeed&&e.server.unitConfig||(e=await i({query:"\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n unitSpeed\n snob {\n maxDist\n }\n }\n unitConfig {\n spear {\n speed\n }\n sword {\n speed\n }\n axe {\n speed\n }\n archer {\n speed\n }\n spy {\n speed\n }\n light {\n speed\n }\n marcher {\n speed\n }\n heavy {\n speed\n }\n ram {\n speed\n }\n catapult {\n speed\n }\n knight {\n speed\n }\n snob {\n speed\n }\n }\n }\n }\n",variables:{key:b}}),e.loadedAt=new Date,function(){c(f,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}(e)),e&&e.server&&e.server.config?{config:e.server.config,unitConfig:e.server.unitConfig}:{}},M=async function(e){let{cacheOnly:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e){if(n||TWMap.popup.extendedMapPopupCache[e])return TWMap.popup.extendedMapPopupCache[e];try{const n=await i({query:m,variables:{server:b,sort:["ennobledAt DESC"],filter:{villageID:[e]},limit:1}});return TWMap.popup.extendedMapPopupCache[e]=n,n}catch(e){console.log("loadVillageData",e)}}},S=e=>e%2==0?"#f8f4e8":"#ded3b9;",T=(e,n)=>'\n \n \n \n '),D=(t,r)=>'\n \n ').concat(l(function(t,r){n(2,arguments);var a=e(r);return o(t,6e4*a)}(Timing.getCurrentServerTime(),t)),"\n \n "),O=(e,n,t)=>{let{config:o,unitConfig:r}=t;const a=TWMap.CoordByXY(TWMap.villageKey[e]),i=((e,n,t,o)=>{const r=e-t,a=n-o;return Math.sqrt(r*r+a*a)})(a[0],a[1],window.game_data.village.x,window.game_data.village.y),c=n&&n.ennoblements&&n.ennoblements.items&&n.ennoblements.items.length>0?n.ennoblements.items[0]:void 0,p=document.querySelector("#map_popup #info_content tbody");let u=p.querySelector("#units");u||(u=document.createElement("tr"),u.id="units",p.appendChild(u));const y=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=[];for(let t in e)0!==e[t].speed&&n.push(g(g({},e[t]),{},{name:t,img:s(t)}));return n}(r);u.innerHTML='\n \n \n \n \n '.concat(y.map(T).join(""),'\n \n \n ').concat(y.map(((e,n)=>D(((e,n)=>Math.round(e*n))(i,e.speed),n))).join(""),"\n \n \n
\n \n ");let b=p.querySelector("#lastEnnobledAt");b||(b=document.createElement("tr"),b.id="lastEnnobledAt",p.appendChild(b)),b.innerHTML="\n \n ".concat(h.ennobledAt,":\n \n \n ").concat(c?l(c.ennobledAt):h.never,"\n \n ");let m=p.querySelector("#loyalty");m||(m=document.createElement("tr"),m.id="loyalty",p.appendChild(m)),m.innerHTML="\n \n ".concat(h.possibleLoyalty,":\n \n \n ").concat(c?d(new Date(c.ennobledAt),o.speed):100,"\n \n ");let f=p.querySelector("#canSendNoble");f||(f=document.createElement("tr"),f.id="canSendNoble",p.appendChild(f)),f.innerHTML="\n \n ".concat(h.canSendNoble,":\n \n \n ").concat(i\n ")};!async function(){try{const n=await w();TWMap.popup.extendedMapPopupCache={},TWMap.popup._loadVillage=TWMap.popup.loadVillage,TWMap.popup.loadVillage=(e=n,async n=>{TWMap.popup._loadVillage(n);const t=await M(parseInt(n));t&&O(parseInt(n),t,e)}),TWMap.popup._displayForVillage=TWMap.popup.displayForVillage,TWMap.popup.displayForVillage=(e=>async(n,t,o)=>{TWMap.popup._displayForVillage(n,t,o);const r=await M(parseInt(n.id),{cacheOnly:window.game_data.features.Premium.active});r&&O(parseInt(n.id),r,e)})(n)}catch(e){console.log("extended map popup",e)}var e}()}(); \ No newline at end of file +!function(){function e(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function n(n){for(var t=1;t1?"s":"")+" required, but only "+n.length+" present")}function r(e){a(1,arguments);var n=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===n?new Date(e.getTime()):"number"==typeof e||"[object Number]"===n?new Date(e):("string"!=typeof e&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function o(e,n){a(2,arguments);var o=r(e).getTime(),i=t(n);return new Date(o+i)}const i={pl_PL:{ennobledAt:"Podbita o",never:"Nigdy",possibleLoyalty:"Prawdopodobne poparcie",canSendNoble:"Można wysłać szlachcica",yes:"Tak",no:"Nie"},en_DK:{ennobledAt:"Ennobled at",never:"Never",possibleLoyalty:"Possible loyalty",canSendNoble:"Can send noble",yes:"Yes",no:"No"},de_DE:{ennobledAt:"Adelung bei",never:"Nie",possibleLoyalty:"Mögliche Zustimmung",canSendNoble:"Kann Adelsgeschlecht senden",yes:"Ja",no:"Nein"}};var l=({query:e,variables:n={}}={})=>fetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:n})=>{if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((n=>n(e)))}));const s=(e,n)=>new Date(e).toLocaleDateString(void 0,n||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"});var p=e=>image_base+`unit/unit_${e}.png`;function d(e,n){a(2,arguments);var t=r(e),o=r(n);return t.getTime()-o.getTime()}var c=(e,n)=>{let t=25+Math.abs(function(e,n){a(2,arguments);var t=d(e,n)/6e4;return t>0?Math.floor(t):Math.ceil(t)}(e,new Date))*(n/60);return t>100&&(t=100),Math.floor(t)};const u=window.location.host.split(".")[0],g="kiszkowaty_extended_map_popup_server_cfg",y=i[window.game_data.locale]||i.en_DK,b=()=>((e,n={})=>{const t=localStorage.getItem(e);let a=n;return t&&(a=JSON.parse(t)),a})(g),m=(e={})=>{var n,t;n=g,t=e,localStorage.setItem(n,JSON.stringify(t))},f=async()=>{let e=b();var n;return e&&e.server&&(n=new Date(e.loadedAt),!(Math.abs(n.getTime()-(new Date).getTime())>864e5))&&e.server.config&&e.server.config.speed&&e.server.config.snob&&e.server.config.snob.maxDist&&e.server.config.unitSpeed&&e.server.unitConfig||(e=await l({query:"\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n unitSpeed\n snob {\n maxDist\n }\n }\n unitConfig {\n spear {\n speed\n }\n sword {\n speed\n }\n axe {\n speed\n }\n archer {\n speed\n }\n spy {\n speed\n }\n light {\n speed\n }\n marcher {\n speed\n }\n heavy {\n speed\n }\n ram {\n speed\n }\n catapult {\n speed\n }\n knight {\n speed\n }\n snob {\n speed\n }\n }\n }\n }\n",variables:{key:u}}),e.loadedAt=new Date,m(e)),e&&e.server&&e.server.config?{config:e.server.config,unitConfig:e.server.unitConfig}:{}},h=async(e,{cacheOnly:n=!1}={})=>{if(e){if(n||TWMap.popup.extendedMapPopupCache[e])return TWMap.popup.extendedMapPopupCache[e];try{const n=await l({query:"\n query ennoblements($server: String!, $filter: EnnoblementFilter!, $sort: [String!], $limit: Int) {\n ennoblements(server: $server, filter: $filter, sort: $sort, limit: $limit) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n",variables:{server:u,sort:["ennobledAt DESC"],filter:{villageID:[e]},limit:1}});return TWMap.popup.extendedMapPopupCache[e]=n,n}catch(e){console.log("loadVillageData",e)}}},v=e=>e%2==0?"#f8f4e8":"#ded3b9;",w=(e,n)=>`\n \n \n \n `,M=(e,n)=>`\n \n ${s(function(e,n){a(2,arguments);var r=t(n);return o(e,6e4*r)}(Timing.getCurrentServerTime(),e))}\n \n `,S=(e,t,{config:a,unitConfig:r})=>{const o=TWMap.CoordByXY(TWMap.villageKey[e]),i=((e,n,t,a)=>{const r=e-t,o=n-a;return Math.sqrt(r*r+o*o)})(o[0],o[1],window.game_data.village.x,window.game_data.village.y),l=t&&t.ennoblements&&t.ennoblements.items&&t.ennoblements.items.length>0?t.ennoblements.items[0]:void 0,d=document.querySelector("#map_popup #info_content tbody");let u=d.querySelector("#units");u||(u=document.createElement("tr"),u.id="units",d.appendChild(u));const g=((e={})=>{const t=[];for(let a in e)0!==e[a].speed&&t.push(n({},e[a],{name:a,img:p(a)}));return t})(r);u.innerHTML=`\n \n \n \n \n ${g.map(w).join("")}\n \n \n ${g.map(((e,n)=>M(((e,n)=>Math.round(e*n))(i,e.speed),n))).join("")}\n \n \n
\n \n `;let b=d.querySelector("#lastEnnobledAt");b||(b=document.createElement("tr"),b.id="lastEnnobledAt",d.appendChild(b)),b.innerHTML=`\n \n ${y.ennobledAt}:\n \n \n ${l?s(l.ennobledAt):y.never}\n \n `;let m=d.querySelector("#loyalty");m||(m=document.createElement("tr"),m.id="loyalty",d.appendChild(m)),m.innerHTML=`\n \n ${y.possibleLoyalty}:\n \n \n ${l?c(new Date(l.ennobledAt),a.speed):100}\n \n `;let f=d.querySelector("#canSendNoble");f||(f=document.createElement("tr"),f.id="canSendNoble",d.appendChild(f)),f.innerHTML=`\n \n ${y.canSendNoble}:\n \n \n ${i\n `};!async function(){try{const n=await f();TWMap.popup.extendedMapPopupCache={},TWMap.popup._loadVillage=TWMap.popup.loadVillage,TWMap.popup.loadVillage=(e=n,async n=>{TWMap.popup._loadVillage(n);const t=await h(parseInt(n));t&&S(parseInt(n),t,e)}),TWMap.popup._displayForVillage=TWMap.popup.displayForVillage,TWMap.popup.displayForVillage=(e=>async(n,t,a)=>{TWMap.popup._displayForVillage(n,t,a);const r=await h(parseInt(n.id),{cacheOnly:window.game_data.features.Premium.active});r&&S(parseInt(n.id),r,e)})(n)}catch(e){console.log("extended map popup",e)}var e}()}(); \ No newline at end of file diff --git a/dist/quickbar/extendedPlayerProfile.js b/dist/quickbar/extendedPlayerProfile.js index 9b07baa..3b3237e 100644 --- a/dist/quickbar/extendedPlayerProfile.js +++ b/dist/quickbar/extendedPlayerProfile.js @@ -1 +1 @@ -!function(){var t=t=>parseInt(new URLSearchParams(t).get("id"));class e{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(t,"text/html"),this.trs=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),this.filters=e}isValidRow(t){return!!t&&((!this.filters.playerID||t.playerID===this.filters.playerID)&&!(this.filters.tribes&&Array.isArray(this.filters.tribes)&&!this.filters.tribes.some((e=>e===t.tribe))))}parseRow(e){if(!e||!e instanceof HTMLTableRowElement)return;let n={};return n.rank=parseInt(e.children[0].innerText.trim()),n.name=e.children[1].innerText.trim(),n.playerID=t(e.children[1].querySelector("a").getAttribute("href")),n.tribe=e.children[2].innerText.trim(),n.tribeID=0,n.tribe&&(n.tribeID=t(e.children[2].querySelector("a").getAttribute("href"))),n.score=parseInt(e.children[3].innerText.trim().replace(/\./g,"")),n.date=e.children[4].innerText.trim(),n}parse(){const t=[];for(let e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return fetch(n,{method:"POST",body:JSON.stringify({query:t,variables:e}),headers:{"Content-Type":"application/json"}}).then((t=>t.json())).then((t=>{let{data:e,errors:n}=t;if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((t=>t(e)))}))};const r={pl_PL:{date:"Data",newTribe:"Nowe plemię",oldTribe:"Poprzednie plemię",joinedAt:"Dołączył",dailyGrowth:"Dzienny przyrost",bestRank:"Najlepszy ranking",mostPoints:"Najwięcej punktów",mostVillages:"Najwięcej wiosek",oldName:"Poprzedni nick",newName:"Nowy nick",playerServers:"Serwery gracza",inADayBestScores:"Dzienne rankingi",unitsDefeatedWhileAttacking:"Jako atakujący",unitsDefeatedWhileDefending:"Jako obrońca",unitsDefeatedWhileSupporting:"Jako wspierający",resourcesPlundered:"Sfarmione surowce",villagesPlundered:"Splądrowane wioski",resourcesGathered:"Zebrane surowce",villagesConquered:"Podbite wioski",exportedVillages:"Wyeksportowane wioski",tribeChanges:"Zmiany plemion",action:{linkToTWHelp:"Akta gracza (TWHelp)",showTribeChanges:"Pokaż zmiany plemion",showEnnoblements:"Pokaż przejęcia",exportVillages:"Wyeksportuj wioski",showHistory:"Pokaż historię"}},en_DK:{date:"Date",newTribe:"New tribe",oldTribe:"Old tribe",joinedAt:"Joined at",dailyGrowth:"Daily growth",bestRank:"Best rank",mostPoints:"Most points",mostVillages:"Most villages",oldName:"Old name",newName:"New name",playerServers:"Player's servers",inADayBestScores:"'In a day' best scores",unitsDefeatedWhileAttacking:"Units defeated while attacking",unitsDefeatedWhileDefending:"Units defeated while defending",unitsDefeatedWhileSupporting:"Units defeated while supporting",resourcesPlundered:"Resources plundered",villagesPlundered:"Villages plundered",resourcesGathered:"Resources gathered",villagesConquered:"Villages conquered",exportedVillages:"Exported villages",tribeChanges:"Tribe changes",action:{linkToTWHelp:"User file (TWHelp)",showTribeChanges:"Show tribe changes",showEnnoblements:"Show ennoblements",exportVillages:"Export villages",showHistory:"Show history"}},de_DE:{date:"Datum",newTribe:"Neuer Stamm",oldTribe:"Alter Stamm",joinedAt:"Beigetreten am",dailyGrowth:"Tägl. Wachstum",bestRank:"Bester Rang",mostPoints:"Meiste Punkte",mostVillages:"Meiste Dörfer",oldName:"Alter Name",newName:"Neuer Name",playerServers:"Spieler Server",inADayBestScores:"'An einem Tag' Bestwerte",unitsDefeatedWhileAttacking:"Besiegte Gegner als Angreifer",unitsDefeatedWhileDefending:"Besiegte Gegner als Verteidiger",unitsDefeatedWhileSupporting:"Besiegte Gegner als Unterstützer",resourcesPlundered:"Geplünderte Rohstoffe",villagesPlundered:"Geplünderte Dörfer",resourcesGathered:"Gesammelte Rohstoffe",villagesConquered:"Eroberte Dörfer",exportedVillages:"Exportierte Dörfer",tribeChanges:"Stammeswechsel",action:{linkToTWHelp:"Spielerakte (TWHelp)",showTribeChanges:"Zeige Stammeswechsel",showEnnoblements:"Zeige Adelungen",exportVillages:"Dörfer exportieren",showHistory:"Zeige Verlauf"}}};const o={pl_PL:{title:"Dzisiejsze zmiany w statystykach",points:"Punkty",rank:"Ranking",villages:"Liczba wiosek",members:"Liczba członków",oda:"Pokonani przeciwnicy jako agresor",odaRank:"RA",odd:"Pokonani przeciwnicy jako obrońca",oddRank:"RO",ods:"Pokonani przeciwnicy jako wspierający",odsRank:"RW",od:"Pokonani przeciwnicy",odRank:"Pokonani przeciwnicy razem ranking"},en_DK:{title:"Today's stat changes",points:"Points",rank:"Rank",villages:"Villages",members:"Members",oda:"ODA",odaRank:"ODA Rank",odd:"ODD",oddRank:"ODD Rank",ods:"ODS",odsRank:"ODS Rank",od:"OD",odRank:"OD Rank"},de_DE:{title:"Heutige Werte Änderungen",points:"Punkte",rank:"Rang",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odaRank:"BGA Rang",odd:"BGD",oddRank:"BGD Rang",ods:"BGS",odsRank:"BGS Rang",od:"BP",odRank:"BP Rang"}};const i=o[window.game_data.locale]||o.en_DK,l=t=>t>0?"color: #000; background-color: #0f0":t<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080";const c=".popup_box",s=function(){let{html:t,id:e,title:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Dialog.show(e,"

".concat(n,"

")+t);const a=document.querySelector(c);a&&(a.style.width="auto",a.style.maxWidth="1000px")},d={pl_PL:{date:"Data",newOwner:"Nowy właściciel",oldOwner:"Poprzedni właściciel",village:"Wioska",title:"Przejęcia"},en_DK:{date:"Date",newOwner:"New owner",oldOwner:"Old owner",village:"Village",title:"Ennoblements"},de_DE:{date:"Datum",newOwner:"Neuer Besitzer",oldOwner:"Alter Besitzer",village:"Dorf",title:"Adelungen"}};const g="data-page",h=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!t instanceof HTMLElement)throw new Error("Expected HTMLElement as the first argument");if(e=parseInt(e),"number"!=typeof e||isNaN(e))throw new Error("Expected number or string as the second argument");t.setAttribute(g,e+"")},p=t=>!t instanceof HTMLElement?0:parseInt(t.getAttribute(g)),m=(t,e)=>{if("number"!=typeof t)throw new Error("Expected number as the first argument");if("number"!=typeof e)throw new Error("Expected number as the second argument");return t>0?Math.ceil(t/e):1},y=function(){let{total:t,limit:e,marginRight:n=3,currentPage:a=0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=m(t,e),o=[];for(let t=1;t<=r;t++)t===a?o.push('>').concat(t,"<")):o.push('').concat(t,""));return o},u=(t,e)=>new Date(t).toLocaleDateString(void 0,e||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),b=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:t}),f=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:t}),w=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const a="K"+String(n)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(n,") ").concat(a)},k="ennoblementsPagination",D=d[window.game_data.locale]||d.en_DK,v=(t,e)=>{return t?'').concat(t.name," (").concat(e?'').concat(e.tag,""):"-",")"):"-";var n};function S(t){if(null===t||!0===t||!1===t)return NaN;var e=Number(t);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function A(t,e){if(e.length1?"s":"")+" required, but only "+e.length+" present")}function P(t){A(1,arguments);var e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new Date(t.getTime()):"number"==typeof t||"[object Number]"===e?new Date(t):("string"!=typeof t&&"[object String]"!==e||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function T(t,e){A(2,arguments);var n=P(t),a=S(e);return isNaN(a)?new Date(NaN):a?(n.setDate(n.getDate()+a),n):n}function E(t,e){A(2,arguments);var n=S(e);return T(t,-n)}const L={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"},de_DE:{title:"Verlauf",date:"Datum",tribe:"Stamm",points:"Punkte",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odd:"BGV",ods:"BGS",od:"BP"}};const R="historyPagination",N=L[window.game_data.locale]||L.en_DK,O=t=>t>0?"+"+t:t;var _=t=>{const e=t.split(/[_-]/);let n="";for(let t=1;t0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(t,".").concat(x,"/server/").concat(e)},$=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return"".concat(j(t,e),"/").concat(a,"/").concat(n)},M=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return $(t,e,n,"player")},C=(t,e)=>{localStorage.setItem(t,JSON.stringify(e))},H=["name"];function q(t,e){if(null==t)return{};var n,a,r=function(t,e){if(null==t)return{};var n,a,r={},o=Object.keys(t);for(a=0;a=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}const z=window.location.host.split(".")[0],I=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.substr(0,2)}(z);let V=t(window.location.search);const W=parseInt(game_data.player.id);!isNaN(V)&&V||(V=W);const B="kichiyaki_extended_player_profile"+V,G="tribeChangesPagination",F=document.querySelector("#player_info > tbody"),U=V===W?F:document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),K=document.querySelector(V===W?"#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)":"#content_value > table > tbody > tr > td:nth-child(2)"),J=r[window.game_data.locale]||r.en_DK,Z=()=>function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=localStorage.getItem(t);let a=e;return n&&(a=JSON.parse(n)),a}(B),Q=async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:a}=n,r=q(n,H);try{const n=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:t,name:a||""})),o=await n.text();if(!o)throw new Error;const i=new e(o,r).parse();if(0===i.length)throw new Error;return i[0]}catch(t){return{rank:0,playerID:0,score:0,tribeID:0,tribe:"",date:new Date}}},X=async()=>{const t=await a({query:"\n query player($server: String!, $id: Int!, $limit: Int, $sort: [String!], $filter: DailyPlayerStatsFilter) {\n player(server: $server, id: $id) {\n id\n name\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n servers\n joinedAt\n nameChanges {\n oldName\n newName\n changeDate\n }\n dailyGrowth\n }\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n rank\n rankAtt\n rankDef\n rankSup\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n }\n }\n }\n",variables:{server:z,id:V,limit:1,sort:["createDate DESC"],filter:{playerID:[V]}}});if(t.player){const e={},n={name:t.player.name,playerID:t.player.id};for(let t of["kill_att","kill_def","kill_sup","loot_res","loot_vil","scavenge","conquer"])e[_(t.replace("kill_",""))]=await Q(t,n);t.player.inADay=e}return function(){C(B,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}(t),t},Y=t=>{let{player:e,dailyPlayerStats:n}=t;[{title:J.joinedAt+":",data:u(e.joinedAt),id:"joined_at"},{title:J.dailyGrowth+":",data:e.dailyGrowth.toLocaleString(),id:"dg"},{title:J.bestRank+":",data:e.bestRank+" "+"(".concat(u(e.bestRankAt),")"),id:"best_rank"},{title:J.mostPoints+":",data:e.mostPoints.toLocaleString()+" "+"(".concat(u(e.mostPointsAt),")"),id:"most_points"},{title:J.mostVillages+":",data:e.mostVillages+" "+"(".concat(u(e.mostVillagesAt),")"),id:"most_villages"}].forEach((t=>{(t=>{let{title:e,data:n,id:a}=t,r=document.querySelector("#"+a);r||(r=document.createElement("tr"),r.id=a,r.appendChild(document.createElement("td")),r.appendChild(document.createElement("td")),F.append(r)),r.children[0].innerHTML=e,r.children[1].innerHTML=n})(t)})),(t=>{let e=document.querySelector("#inADayRanks");e||(e=document.createElement("div"),e.id="inADayRanks",e.width="100%",K.prepend(e)),e.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n '.concat(J.inADayBestScores,"\n
\n ").concat(J.unitsDefeatedWhileAttacking,"\n \n ").concat(t.inADay.att.score.toLocaleString()," (").concat(t.inADay.att.rank,".)\n
\n ").concat(J.unitsDefeatedWhileDefending,"\n \n ").concat(t.inADay.def.score.toLocaleString()," (").concat(t.inADay.def.rank,".)\n
\n ").concat(J.unitsDefeatedWhileSupporting,"\n \n ").concat(t.inADay.sup.score.toLocaleString()," (").concat(t.inADay.sup.rank,".)\n
\n ").concat(J.resourcesPlundered,"\n \n ").concat(t.inADay.lootRes.score.toLocaleString()," (").concat(t.inADay.lootRes.rank,".)\n
\n ").concat(J.villagesPlundered,"\n \n ").concat(t.inADay.lootVil.score.toLocaleString()," (").concat(t.inADay.lootVil.rank,".)\n
\n ").concat(J.resourcesGathered,"\n \n ").concat(t.inADay.scavenge.score.toLocaleString()," (").concat(t.inADay.scavenge.rank,".)\n
\n ").concat(J.villagesConquered,"\n \n ").concat(t.inADay.conquer.score.toLocaleString()," (").concat(t.inADay.conquer.rank,".)\n
\n ")})(e),n&&n.items.length>0&&((t,e)=>{let n=t.querySelector("#todaysStats");n||(n=document.createElement("div"),n.id="todaysStats",n.width="100%",t.prepend(n));const a=!(null==e.rankSup);n.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(a?"":"\n \n \n "),"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(a?"\n \n \n \n \n \n \n "):"","\n \n \n \n \n \n \n \n \n \n
\n '.concat(i.title,"\n
\n ").concat(i.points,':\n \n ').concat(Math.abs(e.points).toLocaleString(),"\n
\n ").concat(i.rank,':\n \n ').concat(Math.abs(e.rank),"\n
\n ").concat(i.villages,':\n \n ').concat(Math.abs(e.villages).toLocaleString(),"\n
\n ".concat(i.members,':\n \n ').concat(Math.abs(e.members),"\n
\n ").concat(i.oda,':\n \n ').concat(Math.abs(e.scoreAtt).toLocaleString(),"\n
\n ").concat(i.odaRank,':\n \n ').concat(Math.abs(e.rankAtt),"\n
\n ").concat(i.odd,':\n \n ').concat(Math.abs(e.scoreDef).toLocaleString(),"\n
\n ").concat(i.oddRank,':\n \n ').concat(Math.abs(e.rankDef),"\n
\n ".concat(i.ods,':\n \n ').concat(Math.abs(e.scoreSup).toLocaleString(),"\n
\n ").concat(i.odsRank,':\n \n ').concat(Math.abs(e.rankSup),"\n
\n ").concat(i.od,':\n \n ').concat(Math.abs(e.scoreTotal).toLocaleString(),"\n
\n ").concat(i.odRank,':\n \n ').concat(Math.abs(e.rankTotal),"\n
\n ")})(K,n.items[0]),e.nameChanges.length>0&&(t=>{let e=document.querySelector("#playerOtherNames");e||(e=document.createElement("div"),e.id="playerOtherNames",e.width="100%",K.prepend(e)),e.innerHTML='\n \n \n \n \n \n \n \n ").concat(t.nameChanges.map((t=>"\n \n \n \n \n \n "))).join(""),"\n \n
\n '.concat(J.oldName,"\n \n ").concat(J.newName,"\n \n ").concat(J.date,"\n
\n ".concat(t.oldName,"\n \n ").concat(t.newName,"\n \n ").concat(u(t.changeDate,{year:"numeric",month:"2-digit",day:"2-digit"}),"\n
\n ")})(e),e.servers.length>0&&(t=>{let e=document.querySelector("#playerServers");e||(e=document.createElement("table"),e.id="playerServers",e.classList.add("vis"),e.width="100%",e.innerHTML="\n \n \n \n ".concat(J.playerServers,"\n \n \n \n \n \n \n \n "),K.prepend(e)),e.querySelector("td").innerHTML=t.servers.sort().map((e=>'').concat(e,""))).join("")})(e)},tt=async t=>{t.preventDefault();const e=p(t.target);if(!isNaN(e)){((t,e,n)=>{const a=y({total:n.total,limit:15,currentPage:e}),r='\n
\n ').concat(a.join(""),'\n
\n \n \n \n \n \n \n \n ").concat(n.items.map((t=>{let e=""+"");return t.newTribe?e+='"):e+="",t.oldTribe?e+='"):e+="",e+""})).join(""),"\n \n
\n ').concat(J.date,"\n \n ").concat(J.newTribe,"\n \n ").concat(J.oldTribe,"\n
".concat(u(t.createdAt),"').concat(t.newTribe.tag,"-').concat(t.oldTribe.tag,"-
\n ");s({e:t,title:J.tribeChanges,id:"tribeChanges",html:r}),document.querySelectorAll("#tribeChangesPagination a").forEach((t=>{t.addEventListener("click",tt)}))})(t,e,(await a({query:"\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) {\n total\n items {\n oldTribe {\n id\n tag\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n",variables:{filter:{playerID:[V]},sort:["createdAt DESC"],offset:15*(e-1),limit:15,server:z}})).tribeChanges)}},et=async t=>{t.preventDefault();const e=p(t.target);if(!isNaN(e))try{const n={playerID:[V]},{playerHistory:r,dailyPlayerStats:o}=await a({query:"\nquery playerHistoryAndPlayerDailyStats($server: String!,\n $playerHistoryFilter: PlayerHistoryFilter!,\n $dailyPlayerStatsFilter: DailyPlayerStatsFilter!,\n $limit: Int,\n $offset: Int,\n $sort: [String!]) {\n playerHistory(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $playerHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreSup\n rankSup\n scoreTotal\n rankTotal\n tribe {\n id\n tag\n }\n createDate\n }\n }\n dailyPlayerStats(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $dailyPlayerStatsFilter) {\n items {\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n",variables:{server:z,playerHistoryFilter:n,offset:15*(e-1),limit:15,sort:["createDate DESC"],dailyPlayerStatsFilter:n}});!function(t,e,n){let{currentPage:a=1,limit:r=0,onPageChange:o=(()=>{}),tribe:i=!1}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const l=y({total:e.total,limit:r,currentPage:a}),c='\n
\n ').concat(l.join(""),'\n
\n \n \n \n \n ").concat(i?"":""),"\n \n \n ").concat(i?""):"","\n \n \n \n ").concat(i?"":""),"\n \n ").concat(e.items.map((t=>{const e=E(new Date(t.createDate),1).toISOString().split(".")[0]+"Z",a=n.items.find((t=>t.createDate===e));let r=""+"");return!i&&t.tribe?r+='"):i||(r+=""),r+='\n \n \n ").concat(i?'\n \n "):"",'\n \n \n \n ").concat(i?"":'\n \n "),"\n ")+"",r})).join(""),"\n \n
\n ').concat(N.date,"\n ".concat(N.tribe,"\n ").concat(N.points,"\n \n ").concat(N.villages,"\n ".concat(N.members,"\n ").concat(N.od,"\n \n ").concat(N.oda,"\n \n ").concat(N.odd,"\n ".concat(N.ods,"
".concat(u(t.createDate,{year:"numeric",month:"2-digit",day:"2-digit"}),"').concat(t.tribe.tag,"-\n ').concat(t.points.toLocaleString()," (").concat(t.rank,')\n \n ').concat(t.totalVillages.toLocaleString(),"\n \n ').concat(t.totalMembers,"\n \n ').concat(t.scoreTotal.toLocaleString()," (").concat(t.rankTotal,')\n \n ').concat(t.scoreAtt.toLocaleString()," (").concat(t.rankAtt,')\n \n ').concat(t.scoreDef.toLocaleString()," (").concat(t.rankDef,")\n \n ').concat(t.scoreSup.toLocaleString()," (").concat(t.rankSup,")\n
\n ");s({e:t,title:N.title,id:"history",html:c}),document.querySelectorAll("#historyPagination a").forEach((t=>{t.addEventListener("click",o)}))}(t,r,o,{currentPage:e,limit:15,onPageChange:et,tribe:!1})}catch(t){console.log("couldnt load player history",t)}},nt=async t=>{t.preventDefault();const e=p(t.target);if(!isNaN(e)){!function(t,e){let{limit:n=0,currentPage:a=1,onPageChange:r=(()=>{})}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=y({total:e.total,limit:n,currentPage:a}),i='\n
\n ').concat(o.join(""),'\n
\n \n \n \n \n \n \n \n \n ").concat(e.items.map((t=>{let e=""+"");return t.village?e+='"):e+="",e+=v(t.newOwner,t.newOwnerTribe),e+=v(t.oldOwner,t.oldOwnerTribe),e+""})).join(""),"\n \n
\n ').concat(D.date,"\n \n ").concat(D.village,"\n \n ").concat(D.newOwner,"\n \n ").concat(D.oldOwner,"\n
".concat(u(t.ennobledAt),"').concat(w(t.village.name,t.village.x,t.village.y),"-
\n ");s({e:t,title:D.title,id:"ennoblements",html:i}),document.querySelectorAll("#ennoblementsPagination a").forEach((t=>{t.addEventListener("click",r)}))}(t,(await a({query:"\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, 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",variables:{filter:{or:{oldOwnerID:[V],newOwnerID:[V]}},offset:15*(e-1),limit:15,sort:["ennobledAt DESC"],server:z}})).ennoblements,{currentPage:e,limit:15,onPageChange:nt})}},at=t=>{t.preventDefault(),Dialog.show(J.exportedVillages,""))},rt=t=>{const e=document.createElement("td");e.colSpan="2",e.append(t);const n=document.createElement("tr");return n.appendChild(e),n};!async function(){try{(()=>{const t=document.createElement("a");t.href=M(I,z,V),t.innerHTML=J.action.linkToTWHelp,U.appendChild(rt(t));const e=document.createElement("a");e.href="#",h(e,"1"),e.innerHTML=J.action.showTribeChanges,e.addEventListener("click",tt),U.appendChild(rt(e));const n=document.createElement("a");n.href="#",h(n,"1"),n.innerHTML=J.action.showHistory,n.addEventListener("click",et),U.appendChild(rt(n));const a=document.createElement("a");a.href="#",h(a,"1"),a.innerHTML=J.action.showEnnoblements,a.addEventListener("click",nt),U.appendChild(rt(a));const r=document.createElement("a");r.href="#",r.innerHTML=J.action.exportVillages,r.addEventListener("click",at),U.appendChild(rt(r))})();const t=Z();t&&t.player&&Y(t);const e=await X();e&&Y(e)}catch(t){console.log("extended player profile",t)}}()}(); \ No newline at end of file +!function(){function e(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var t=e=>parseInt(new URLSearchParams(e).get("id"));class n{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(e){if(!e||!e instanceof HTMLTableRowElement)return;let n={};return n.rank=parseInt(e.children[0].innerText.trim()),n.name=e.children[1].innerText.trim(),n.playerID=t(e.children[1].querySelector("a").getAttribute("href")),n.tribe=e.children[2].innerText.trim(),n.tribeID=0,n.tribe&&(n.tribeID=t(e.children[2].querySelector("a").getAttribute("href"))),n.score=parseInt(e.children[3].innerText.trim().replace(/\./g,"")),n.date=e.children[4].innerText.trim(),n}parse(){const e=[];for(let t=1;tfetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:t}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:t})=>{if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise((t=>t(e)))}));const a={pl_PL:{date:"Data",newTribe:"Nowe plemię",oldTribe:"Poprzednie plemię",joinedAt:"Dołączył",dailyGrowth:"Dzienny przyrost",bestRank:"Najlepszy ranking",mostPoints:"Najwięcej punktów",mostVillages:"Najwięcej wiosek",oldName:"Poprzedni nick",newName:"Nowy nick",playerServers:"Serwery gracza",inADayBestScores:"Dzienne rankingi",unitsDefeatedWhileAttacking:"Jako atakujący",unitsDefeatedWhileDefending:"Jako obrońca",unitsDefeatedWhileSupporting:"Jako wspierający",resourcesPlundered:"Sfarmione surowce",villagesPlundered:"Splądrowane wioski",resourcesGathered:"Zebrane surowce",villagesConquered:"Podbite wioski",exportedVillages:"Wyeksportowane wioski",tribeChanges:"Zmiany plemion",action:{linkToTWHelp:"Akta gracza (TWHelp)",showTribeChanges:"Pokaż zmiany plemion",showEnnoblements:"Pokaż przejęcia",exportVillages:"Wyeksportuj wioski",showHistory:"Pokaż historię"}},en_DK:{date:"Date",newTribe:"New tribe",oldTribe:"Old tribe",joinedAt:"Joined at",dailyGrowth:"Daily growth",bestRank:"Best rank",mostPoints:"Most points",mostVillages:"Most villages",oldName:"Old name",newName:"New name",playerServers:"Player's servers",inADayBestScores:"'In a day' best scores",unitsDefeatedWhileAttacking:"Units defeated while attacking",unitsDefeatedWhileDefending:"Units defeated while defending",unitsDefeatedWhileSupporting:"Units defeated while supporting",resourcesPlundered:"Resources plundered",villagesPlundered:"Villages plundered",resourcesGathered:"Resources gathered",villagesConquered:"Villages conquered",exportedVillages:"Exported villages",tribeChanges:"Tribe changes",action:{linkToTWHelp:"User file (TWHelp)",showTribeChanges:"Show tribe changes",showEnnoblements:"Show ennoblements",exportVillages:"Export villages",showHistory:"Show history"}},de_DE:{date:"Datum",newTribe:"Neuer Stamm",oldTribe:"Alter Stamm",joinedAt:"Beigetreten am",dailyGrowth:"Tägl. Wachstum",bestRank:"Bester Rang",mostPoints:"Meiste Punkte",mostVillages:"Meiste Dörfer",oldName:"Alter Name",newName:"Neuer Name",playerServers:"Spieler Server",inADayBestScores:"'An einem Tag' Bestwerte",unitsDefeatedWhileAttacking:"Besiegte Gegner als Angreifer",unitsDefeatedWhileDefending:"Besiegte Gegner als Verteidiger",unitsDefeatedWhileSupporting:"Besiegte Gegner als Unterstützer",resourcesPlundered:"Geplünderte Rohstoffe",villagesPlundered:"Geplünderte Dörfer",resourcesGathered:"Gesammelte Rohstoffe",villagesConquered:"Eroberte Dörfer",exportedVillages:"Exportierte Dörfer",tribeChanges:"Stammeswechsel",action:{linkToTWHelp:"Spielerakte (TWHelp)",showTribeChanges:"Zeige Stammeswechsel",showEnnoblements:"Zeige Adelungen",exportVillages:"Dörfer exportieren",showHistory:"Zeige Verlauf"}}};const i={pl_PL:{title:"Dzisiejsze zmiany w statystykach",points:"Punkty",rank:"Ranking",villages:"Liczba wiosek",members:"Liczba członków",oda:"Pokonani przeciwnicy jako agresor",odaRank:"RA",odd:"Pokonani przeciwnicy jako obrońca",oddRank:"RO",ods:"Pokonani przeciwnicy jako wspierający",odsRank:"RW",od:"Pokonani przeciwnicy",odRank:"Pokonani przeciwnicy razem ranking"},en_DK:{title:"Today's stat changes",points:"Points",rank:"Rank",villages:"Villages",members:"Members",oda:"ODA",odaRank:"ODA Rank",odd:"ODD",oddRank:"ODD Rank",ods:"ODS",odsRank:"ODS Rank",od:"OD",odRank:"OD Rank"},de_DE:{title:"Heutige Werte Änderungen",points:"Punkte",rank:"Rang",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odaRank:"BGA Rang",odd:"BGD",oddRank:"BGD Rang",ods:"BGS",odsRank:"BGS Rang",od:"BP",odRank:"BP Rang"}};const o=i[window.game_data.locale]||i.en_DK,l=e=>e>0?"color: #000; background-color: #0f0":e<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080";var s=({html:e,id:t,title:n}={})=>{Dialog.show(t,`

${n}

`+e);const r=document.querySelector(".popup_box");r&&(r.style.width="auto",r.style.maxWidth="1000px")};const d={pl_PL:{date:"Data",newOwner:"Nowy właściciel",oldOwner:"Poprzedni właściciel",village:"Wioska",title:"Przejęcia"},en_DK:{date:"Date",newOwner:"New owner",oldOwner:"Old owner",village:"Village",title:"Ennoblements"},de_DE:{date:"Datum",newOwner:"Neuer Besitzer",oldOwner:"Alter Besitzer",village:"Dorf",title:"Adelungen"}};const c="data-page",g=(e,t=1)=>{if(!e instanceof HTMLElement)throw new Error("Expected HTMLElement as the first argument");if("number"!=typeof(t=parseInt(t))||isNaN(t))throw new Error("Expected number or string as the second argument");e.setAttribute(c,t+"")},h=e=>!e instanceof HTMLElement?0:parseInt(e.getAttribute(c)),p=({total:e,limit:t,marginRight:n=3,currentPage:r=0}={})=>{const a=((e,t)=>{if("number"!=typeof e)throw new Error("Expected number as the first argument");if("number"!=typeof t)throw new Error("Expected number as the second argument");return e>0?Math.ceil(e/t):1})(e,t),i=[];for(let e=1;e<=a;e++)e===r?i.push(`>${e}<`):i.push(`${e}`);return i},m=(e,t)=>new Date(e).toLocaleDateString(void 0,t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),y=e=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:e}),u=d[window.game_data.locale]||d.en_DK,b=(e,t)=>{return e?`${e.name} (${t?`${t.tag}`:"-"})`:"-";var n};var $=(e,t,{limit:n=0,currentPage:r=1,onPageChange:a=(()=>{})}={})=>{const i=`\n
\n ${p({total:t.total,limit:n,currentPage:r}).join("")}\n
\n \n \n \n \n \n \n \n \n ${t.items.map((e=>{let t=``;var n;return e.village?t+=``:t+="",t+=b(e.newOwner,e.newOwnerTribe),t+=b(e.oldOwner,e.oldOwnerTribe),t+""})).join("")}\n \n
\n ${u.date}\n \n ${u.village}\n \n ${u.newOwner}\n \n ${u.oldOwner}\n
${m(e.ennobledAt)}${((e="",t=500,n=500)=>`${e} (${t}|${n}) ${"K"+String(n)[0]+String(t)[0]}`)(e.village.name,e.village.x,e.village.y)}-
\n `;s({e:e,title:u.title,id:"ennoblements",html:i}),document.querySelectorAll("#ennoblementsPagination a").forEach((e=>{e.addEventListener("click",a)}))};function w(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function f(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function k(e){f(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function D(e,t){f(2,arguments);var n=k(e),r=w(t);return isNaN(r)?new Date(NaN):r?(n.setDate(n.getDate()+r),n):n}const S={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"},de_DE:{title:"Verlauf",date:"Datum",tribe:"Stamm",points:"Punkte",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odd:"BGV",ods:"BGS",od:"BP"}};const v=S[window.game_data.locale]||S.en_DK,A=e=>e>0?"+"+e:e;var P=(e,t,n,{currentPage:r=1,limit:a=0,onPageChange:i=(()=>{}),tribe:o=!1}={})=>{const l=`\n
\n ${p({total:t.total,limit:a,currentPage:r}).join("")}\n
\n \n \n \n \n ${o?"":``}\n \n \n ${o?``:""}\n \n \n \n ${o?"":``}\n \n ${t.items.map((e=>{const t=function(e,t){f(2,arguments);var n=w(t);return D(e,-n)}(new Date(e.createDate),1).toISOString().split(".")[0]+"Z",r=n.items.find((e=>e.createDate===t));let a=``;return!o&&e.tribe?a+=``:o||(a+=""),a+=`\n \n \n ${o?`\n \n `:""}\n \n \n \n ${o?"":`\n \n `}\n `,a})).join("")}\n \n
\n ${v.date}\n ${v.tribe}\n ${v.points}\n \n ${v.villages}\n ${v.members}\n ${v.od}\n \n ${v.oda}\n \n ${v.odd}\n ${v.ods}
${m(e.createDate,{year:"numeric",month:"2-digit",day:"2-digit"})}${e.tribe.tag}-\n ${e.points.toLocaleString()} (${e.rank})\n \n ${e.totalVillages.toLocaleString()}\n \n ${e.totalMembers}\n \n ${e.scoreTotal.toLocaleString()} (${e.rankTotal})\n \n ${e.scoreAtt.toLocaleString()} (${e.rankAtt})\n \n ${e.scoreDef.toLocaleString()} (${e.rankDef})\n \n ${e.scoreSup.toLocaleString()} (${e.rankSup})\n
\n `;s({e:e,title:v.title,id:"history",html:l}),document.querySelectorAll("#historyPagination a").forEach((e=>{e.addEventListener("click",i)}))},T=e=>{const t=e.split(/[_-]/);let n="";for(let e=1;e`${((e="",t="")=>`https://${e}.tribalwarshelp.com/server/${t}`)(e,t)}/${r}/${n}`,L=(e="",t="",n=0)=>E(e,t,n,"player"),R=window.location.host.split(".")[0],N=((e="")=>e.substr(0,2))(R);let O=t(window.location.search);const _=parseInt(game_data.player.id);!isNaN(O)&&O||(O=_);const x="kichiyaki_extended_player_profile"+O,j=document.querySelector("#player_info > tbody"),M=O===_?j:document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),C=document.querySelector(O===_?"#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)":"#content_value > table > tbody > tr > td:nth-child(2)"),H=a[window.game_data.locale]||a.en_DK,q=()=>((e,t={})=>{const n=localStorage.getItem(e);let r=t;return n&&(r=JSON.parse(n)),r})(x),z=(e={})=>{var t,n;t=x,n=e,localStorage.setItem(t,JSON.stringify(n))},I=async(t,r={})=>{var{name:a}=r,i=e(r,["name"]);try{const e=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:t,name:a||""})),r=await e.text();if(!r)throw new Error;const o=new n(r,i).parse();if(0===o.length)throw new Error;return o[0]}catch(e){return{rank:0,playerID:0,score:0,tribeID:0,tribe:"",date:new Date}}},V=({player:e,dailyPlayerStats:t})=>{[{title:H.joinedAt+":",data:m(e.joinedAt),id:"joined_at"},{title:H.dailyGrowth+":",data:e.dailyGrowth.toLocaleString(),id:"dg"},{title:H.bestRank+":",data:e.bestRank+" "+`(${m(e.bestRankAt)})`,id:"best_rank"},{title:H.mostPoints+":",data:e.mostPoints.toLocaleString()+" "+`(${m(e.mostPointsAt)})`,id:"most_points"},{title:H.mostVillages+":",data:e.mostVillages+" "+`(${m(e.mostVillagesAt)})`,id:"most_villages"}].forEach((e=>{(({title:e,data:t,id:n})=>{let r=document.querySelector("#"+n);r||(r=document.createElement("tr"),r.id=n,r.appendChild(document.createElement("td")),r.appendChild(document.createElement("td")),j.append(r)),r.children[0].innerHTML=e,r.children[1].innerHTML=t})(e)})),(e=>{let t=document.querySelector("#inADayRanks");t||(t=document.createElement("div"),t.id="inADayRanks",t.width="100%",C.prepend(t)),t.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n ${H.inADayBestScores}\n
\n ${H.unitsDefeatedWhileAttacking}\n \n ${e.inADay.att.score.toLocaleString()} (${e.inADay.att.rank}.)\n
\n ${H.unitsDefeatedWhileDefending}\n \n ${e.inADay.def.score.toLocaleString()} (${e.inADay.def.rank}.)\n
\n ${H.unitsDefeatedWhileSupporting}\n \n ${e.inADay.sup.score.toLocaleString()} (${e.inADay.sup.rank}.)\n
\n ${H.resourcesPlundered}\n \n ${e.inADay.lootRes.score.toLocaleString()} (${e.inADay.lootRes.rank}.)\n
\n ${H.villagesPlundered}\n \n ${e.inADay.lootVil.score.toLocaleString()} (${e.inADay.lootVil.rank}.)\n
\n ${H.resourcesGathered}\n \n ${e.inADay.scavenge.score.toLocaleString()} (${e.inADay.scavenge.rank}.)\n
\n ${H.villagesConquered}\n \n ${e.inADay.conquer.score.toLocaleString()} (${e.inADay.conquer.rank}.)\n
\n `})(e),t&&t.items.length>0&&((e,t)=>{let n=e.querySelector("#todaysStats");n||(n=document.createElement("div"),n.id="todaysStats",n.width="100%",e.prepend(n));const r=!(null==t.rankSup);n.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${r?"":`\n \n \n `}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${r?`\n \n \n \n \n \n \n `:""}\n \n \n \n \n \n \n \n \n \n
\n ${o.title}\n
\n ${o.points}:\n \n ${Math.abs(t.points).toLocaleString()}\n
\n ${o.rank}:\n \n ${Math.abs(t.rank)}\n
\n ${o.villages}:\n \n ${Math.abs(t.villages).toLocaleString()}\n
\n ${o.members}:\n \n ${Math.abs(t.members)}\n
\n ${o.oda}:\n \n ${Math.abs(t.scoreAtt).toLocaleString()}\n
\n ${o.odaRank}:\n \n ${Math.abs(t.rankAtt)}\n
\n ${o.odd}:\n \n ${Math.abs(t.scoreDef).toLocaleString()}\n
\n ${o.oddRank}:\n \n ${Math.abs(t.rankDef)}\n
\n ${o.ods}:\n \n ${Math.abs(t.scoreSup).toLocaleString()}\n
\n ${o.odsRank}:\n \n ${Math.abs(t.rankSup)}\n
\n ${o.od}:\n \n ${Math.abs(t.scoreTotal).toLocaleString()}\n
\n ${o.odRank}:\n \n ${Math.abs(t.rankTotal)}\n
\n `})(C,t.items[0]),e.nameChanges.length>0&&(e=>{let t=document.querySelector("#playerOtherNames");t||(t=document.createElement("div"),t.id="playerOtherNames",t.width="100%",C.prepend(t)),t.innerHTML=`\n \n \n \n \n \n \n \n ${e.nameChanges.map((e=>`\n \n \n \n \n \n `)).join("")}\n \n
\n ${H.oldName}\n \n ${H.newName}\n \n ${H.date}\n
\n ${e.oldName}\n \n ${e.newName}\n \n ${m(e.changeDate,{year:"numeric",month:"2-digit",day:"2-digit"})}\n
\n `})(e),e.servers.length>0&&(e=>{let t=document.querySelector("#playerServers");t||(t=document.createElement("table"),t.id="playerServers",t.classList.add("vis"),t.width="100%",t.innerHTML=`\n \n \n \n ${H.playerServers}\n \n \n \n \n \n \n \n `,C.prepend(t)),t.querySelector("td").innerHTML=e.servers.sort().map((t=>`${t}`)).join("")})(e)},W=async e=>{e.preventDefault();const t=h(e.target);if(!isNaN(t)){((e,t,n)=>{const r=`\n
\n ${p({total:n.total,limit:15,currentPage:t}).join("")}\n
\n \n \n \n \n \n \n \n ${n.items.map((e=>{let t=``;return e.newTribe?t+=``:t+="",e.oldTribe?t+=``:t+="",t+""})).join("")}\n \n
\n ${H.date}\n \n ${H.newTribe}\n \n ${H.oldTribe}\n
${m(e.createdAt)}${e.newTribe.tag}-${e.oldTribe.tag}-
\n `;s({e:e,title:H.tribeChanges,id:"tribeChanges",html:r}),document.querySelectorAll("#tribeChangesPagination a").forEach((e=>{e.addEventListener("click",W)}))})(e,t,(await r({query:"\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) {\n total\n items {\n oldTribe {\n id\n tag\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n",variables:{filter:{playerID:[O]},sort:["createdAt DESC"],offset:15*(t-1),limit:15,server:R}})).tribeChanges)}},B=async e=>{e.preventDefault();const t=h(e.target);if(!isNaN(t))try{const n={playerID:[O]},{playerHistory:a,dailyPlayerStats:i}=await r({query:"\nquery playerHistoryAndPlayerDailyStats($server: String!,\n $playerHistoryFilter: PlayerHistoryFilter!,\n $dailyPlayerStatsFilter: DailyPlayerStatsFilter!,\n $limit: Int,\n $offset: Int,\n $sort: [String!]) {\n playerHistory(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $playerHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreSup\n rankSup\n scoreTotal\n rankTotal\n tribe {\n id\n tag\n }\n createDate\n }\n }\n dailyPlayerStats(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $dailyPlayerStatsFilter) {\n items {\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n",variables:{server:R,playerHistoryFilter:n,offset:15*(t-1),limit:15,sort:["createDate DESC"],dailyPlayerStatsFilter:n}});P(e,a,i,{currentPage:t,limit:15,onPageChange:B,tribe:!1})}catch(e){console.log("couldnt load player history",e)}},G=async e=>{e.preventDefault();const t=h(e.target);if(!isNaN(t)){const n=await r({query:"\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, 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",variables:{filter:{or:{oldOwnerID:[O],newOwnerID:[O]}},offset:15*(t-1),limit:15,sort:["ennobledAt DESC"],server:R}});$(e,n.ennoblements,{currentPage:t,limit:15,onPageChange:G})}},F=e=>{e.preventDefault(),Dialog.show(H.exportedVillages,``)},U=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n};!async function(){try{(()=>{const e=document.createElement("a");e.href=L(N,R,O),e.innerHTML=H.action.linkToTWHelp,M.appendChild(U(e));const t=document.createElement("a");t.href="#",g(t,"1"),t.innerHTML=H.action.showTribeChanges,t.addEventListener("click",W),M.appendChild(U(t));const n=document.createElement("a");n.href="#",g(n,"1"),n.innerHTML=H.action.showHistory,n.addEventListener("click",B),M.appendChild(U(n));const r=document.createElement("a");r.href="#",g(r,"1"),r.innerHTML=H.action.showEnnoblements,r.addEventListener("click",G),M.appendChild(U(r));const a=document.createElement("a");a.href="#",a.innerHTML=H.action.exportVillages,a.addEventListener("click",F),M.appendChild(U(a))})();const e=q();e&&e.player&&V(e);const t=await(async()=>{const e=await r({query:"\n query player($server: String!, $id: Int!, $limit: Int, $sort: [String!], $filter: DailyPlayerStatsFilter) {\n player(server: $server, id: $id) {\n id\n name\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n servers\n joinedAt\n nameChanges {\n oldName\n newName\n changeDate\n }\n dailyGrowth\n }\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n rank\n rankAtt\n rankDef\n rankSup\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n }\n }\n }\n",variables:{server:R,id:O,limit:1,sort:["createDate DESC"],filter:{playerID:[O]}}});if(e.player){const t={},n={name:e.player.name,playerID:e.player.id};for(let e of["kill_att","kill_def","kill_sup","loot_res","loot_vil","scavenge","conquer"])t[T(e.replace("kill_",""))]=await I(e,n);e.player.inADay=t}return z(e),e})();t&&V(t)}catch(e){console.log("extended player profile",e)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/extendedTribeProfile.js b/dist/quickbar/extendedTribeProfile.js index c8386ce..fcddc68 100644 --- a/dist/quickbar/extendedTribeProfile.js +++ b/dist/quickbar/extendedTribeProfile.js @@ -1 +1 @@ -!function(){function t(t,e){if(e.length1?"s":"")+" required, but only "+e.length+" present")}function e(e){t(1,arguments);var n=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===n?new Date(e.getTime()):"number"==typeof e||"[object Number]"===n?new Date(e):("string"!=typeof e&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function n(t){var e=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return e.setUTCFullYear(t.getFullYear()),t.getTime()-e.getTime()}function a(n){t(1,arguments);var a=e(n);return a.setHours(0,0,0,0),a}var r=864e5;function o(e,o){t(2,arguments);var i=a(e),l=a(o),c=i.getTime()-n(i),s=l.getTime()-n(l);return Math.round((c-s)/r)}function i(t,e){var n=t.getFullYear()-e.getFullYear()||t.getMonth()-e.getMonth()||t.getDate()-e.getDate()||t.getHours()-e.getHours()||t.getMinutes()-e.getMinutes()||t.getSeconds()-e.getSeconds()||t.getMilliseconds()-e.getMilliseconds();return n<0?-1:n>0?1:n}function l(n,a){t(2,arguments);var r=e(n),l=e(a),c=i(r,l),s=Math.abs(o(r,l));r.setDate(r.getDate()-c*s);var d=Number(i(r,l)===-c),g=c*(s-d);return 0===g?0:g}const c={pl_PL:{date:"Data",createdAt:"Data założenia",dominance:"Dominacja",bestRank:"Najlepszy ranking",mostPoints:"Najwięcej punktów",mostVillages:"Najwięcej wiosek",player:"Gracz",points:"Punkty",villages:"Wioski",opponentsDefeated:"Pokonani przeciwnicy",opponentsDefeatedAsAttacker:"Pokonani przeciwnicy jako agresor",opponentsDefeatedAsDefender:"Pokonani przeciwnicy jako obrońca",opponentsDefeatedAsSupporter:"Pokonani przeciwnicy jako wspierający",change:"Zmień",left:"Opuścił",joined:"Dołączył",tribeChanges:"Zmiany plemion",membersGrowth:"Rozwój graczy",act:"Akcja",total:"Razem",oda:"RA",odd:"RO",ods:"RW",od:"Pokonani ogólnie",dailyGrowth:"Dzienny przyrost",playerLinks:"Linki",action:{linkToTWHelp:"Akta plemienia (TWHelp)",showTribeChanges:"Pokaż zmiany plemion",showEnnoblements:"Pokaż przejęcia",showMembersGrowth:"Pokaż rozwój graczy",showHistory:"Pokaż historię",generateMailingList:"Wygeneruj listę mailingową",exportVillages:"Wyeksportuj wioski"}},en_DK:{date:"Date",createdAt:"Created at",dominance:"Dominance",bestRank:"Best rank",mostPoints:"Most points",mostVillages:"Most villages",player:"Player",points:"Points",villages:"Villages",opponentsDefeated:"Opponents defeated",opponentsDefeatedAsAttacker:"Opponents defeated as attacker",opponentsDefeatedAsDefender:"Opponents defeated as defender",opponentsDefeatedAsSupporter:"Opponents defeated as supporter",change:"Change",membersGrowth:"Members growth",tribeChanges:"Tribe changes",left:"Left",joined:"Joined",act:"Action",total:"Total",oda:"ODA",odd:"ODD",ods:"ODS",od:"OD",dailyGrowth:"Daily growth",playerLinks:"Player links",action:{linkToTWHelp:"Tribal file (TWHelp)",showTribeChanges:"Show tribe changes",showEnnoblements:"Show ennoblements",showMembersGrowth:"Show members growth",showHistory:"Show history",generateMailingList:"Generate mailing list",exportVillages:"Export villages"}},de_DE:{date:"Datum",createdAt:"Erstellt am",dominance:"Dominanz",bestRank:"Bester Rang",mostPoints:"Meiste Punkte",mostVillages:"Meiste Dörfer",player:"Spieler",points:"Punkte",villages:"Dörfer",opponentsDefeated:"Besiegte Gegner",opponentsDefeatedAsAttacker:"Besiegte Gegner als Angreifer",opponentsDefeatedAsDefender:"Besiegte Gegner als Verteidiger",opponentsDefeatedAsSupporter:"Besiegte Gegner als Unterstützer",change:"Änderungen",membersGrowth:"Mitglieder Wachstum",tribeChanges:"Stammeswechsel",left:"Verlassen",joined:"Beigetreten",act:"Aktion",total:"Total",oda:"BGA",odd:"BGV",ods:"BGS",od:"BP",dailyGrowth:"Tägl. Wachstum",playerLinks:"Spieler Links",action:{linkToTWHelp:"Stammesakte (TWHelp)",showTribeChanges:"Zeige Stammeswechsel",showEnnoblements:"Zeige Adelungen",showMembersGrowth:"Zeige Mitglieder-Wachstum",showHistory:"Zeige Verlauf",generateMailingList:"Maillisten-Generator",exportVillages:"Dörfer exportieren"}}};const s="https://api.tribalwarshelp.com/graphql";var d=function(){let{query:t,variables:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(s,{method:"POST",body:JSON.stringify({query:t,variables:e}),headers:{"Content-Type":"application/json"}}).then((t=>t.json())).then((t=>{let{data:e,errors:n}=t;if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((t=>t(e)))}))};const g="data-page",p=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!t instanceof HTMLElement)throw new Error("Expected HTMLElement as the first argument");if(e=parseInt(e),"number"!=typeof e||isNaN(e))throw new Error("Expected number or string as the second argument");t.setAttribute(g,e+"")},m=t=>!t instanceof HTMLElement?0:parseInt(t.getAttribute(g)),u=(t,e)=>{if("number"!=typeof t)throw new Error("Expected number as the first argument");if("number"!=typeof e)throw new Error("Expected number as the second argument");return t>0?Math.ceil(t/e):1},h=function(){let{total:t,limit:e,marginRight:n=3,currentPage:a=0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=u(t,e),o=[];for(let t=1;t<=r;t++)t===a?o.push('>').concat(t,"<")):o.push('').concat(t,""));return o},b={pl_PL:{title:"Dzisiejsze zmiany w statystykach",points:"Punkty",rank:"Ranking",villages:"Liczba wiosek",members:"Liczba członków",oda:"Pokonani przeciwnicy jako agresor",odaRank:"RA",odd:"Pokonani przeciwnicy jako obrońca",oddRank:"RO",ods:"Pokonani przeciwnicy jako wspierający",odsRank:"RW",od:"Pokonani przeciwnicy",odRank:"Pokonani przeciwnicy razem ranking"},en_DK:{title:"Today's stat changes",points:"Points",rank:"Rank",villages:"Villages",members:"Members",oda:"ODA",odaRank:"ODA Rank",odd:"ODD",oddRank:"ODD Rank",ods:"ODS",odsRank:"ODS Rank",od:"OD",odRank:"OD Rank"},de_DE:{title:"Heutige Werte Änderungen",points:"Punkte",rank:"Rang",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odaRank:"BGA Rang",odd:"BGD",oddRank:"BGD Rang",ods:"BGS",odsRank:"BGS Rang",od:"BP",odRank:"BP Rang"}};const y=b[window.game_data.locale]||b.en_DK,f=t=>t>0?"color: #000; background-color: #0f0":t<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080";const w={pl_PL:{date:"Data",newOwner:"Nowy właściciel",oldOwner:"Poprzedni właściciel",village:"Wioska",title:"Przejęcia"},en_DK:{date:"Date",newOwner:"New owner",oldOwner:"Old owner",village:"Village",title:"Ennoblements"},de_DE:{date:"Datum",newOwner:"Neuer Besitzer",oldOwner:"Alter Besitzer",village:"Dorf",title:"Adelungen"}};const v=".popup_box",D=function(){let{html:t,id:e,title:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Dialog.show(e,"

".concat(n,"

")+t);const a=document.querySelector(v);a&&(a.style.width="auto",a.style.maxWidth="1000px")},k=(t,e)=>new Date(t).toLocaleDateString(void 0,e||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),S=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:t}),T=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:t}),A=t=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:t}),L=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const a="K"+String(n)[0]+String(e)[0];return"".concat(t," (").concat(e,"|").concat(n,") ").concat(a)},P="ennoblementsPagination",E=w[window.game_data.locale]||w.en_DK,$=(t,e)=>t?'').concat(t.name," (").concat(e?'').concat(e.tag,""):"-",")"):"-";function M(t){if(null===t||!0===t||!1===t)return NaN;var e=Number(t);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function O(n,a){t(2,arguments);var r=e(n),o=M(a);return isNaN(o)?new Date(NaN):o?(r.setDate(r.getDate()+o),r):r}function j(e,n){t(2,arguments);var a=M(n);return O(e,-a)}const R={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"},de_DE:{title:"Verlauf",date:"Datum",tribe:"Stamm",points:"Punkte",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odd:"BGV",ods:"BGS",od:"BP"}};const x="historyPagination",H=R[window.game_data.locale]||R.en_DK,C=t=>t>0?"+"+t:t;var z=t=>parseInt(new URLSearchParams(t).get("id"));const G=(t,e)=>{localStorage.setItem(t,JSON.stringify(e))};const q=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"http://www.twstats.com/in/".concat(t,"/player/").concat(e)},_="tribalwarshelp.com",N=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(t,".").concat(_,"/server/").concat(e)},I=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return"".concat(N(t,e),"/").concat(a,"/").concat(n)},F=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return I(t,e,n,"player")};function V(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function B(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:"";return t.substr(0,2)}(K),Y=z(window.location.search),Z="kichiyaki_extended_tribe_profile"+Y,J="\nquery tribeMembersDailyStats($server: String!,\n $filter: DailyPlayerStatsFilter!,\n $limit: Int,\n $sort: [String!]) {\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n player {\n id\n name\n }\n points\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n";let X="points";const Q="tribeChangesPagination",tt=document.querySelector("#content_value"),et=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody"),nt=et,at=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)"),rt=tt.querySelector("h3").nextElementSibling.querySelector("tbody"),ot=c[window.game_data.locale]||c.en_DK,it=()=>function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=localStorage.getItem(t);let a=e;return n&&(a=JSON.parse(n)),a}(Z),lt=()=>{const t=[];return rt.querySelectorAll("a").forEach((e=>{const n=e.getAttribute("href");n.includes("info_player")&&t.push(z(n))})),t},ct=async()=>{const t=lt(),e=await d({query:"\n query tribe(\n $server: String!\n $id: Int!\n $dailyTribeStatsSort: [String!]\n $dailyTribeStatsLimit: Int\n $playersLimit: Int\n $playersSort: [String!]\n $playerFilter: PlayerFilter!\n $dailyTribeStatsFilter: DailyTribeStatsFilter!\n ) {\n tribe(server: $server, id: $id) {\n id\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n createdAt\n dominance\n }\n dailyTribeStats(\n server: $server\n limit: $dailyTribeStatsLimit\n sort: $dailyTribeStatsSort\n filter: $dailyTribeStatsFilter\n ) {\n items {\n rank\n rankAtt\n rankDef\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreTotal\n villages\n members\n }\n }\n players(server: $server, sort: $playersSort, filter: $playerFilter, limit: $playersLimit) {\n items {\n id\n rankAtt\n rankDef\n rankSup\n rankTotal\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n dailyGrowth\n }\n }\n }\n",variables:{server:K,id:Y,dailyTribeStatsSort:["createDate DESC"],dailyTribeStatsLimit:1,dailyTribeStatsFilter:{tribeID:[Y]},playersSort:["rank ASC"],playersLimit:t.length,playerFilter:{id:t}}});return function(){G(Z,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}(e),e},st=t=>{let{tribe:e,dailyTribeStats:n,players:a}=t;[{title:ot.createdAt+":",data:k(e.createdAt),id:"created_at"},{title:ot.dominance+":",data:e.dominance.toFixed(2)+"%",id:"dominance"},{title:ot.bestRank+":",data:e.bestRank+" "+"(".concat(k(e.bestRankAt),")"),id:"best_rank"},{title:ot.mostPoints+":",data:e.mostPoints.toLocaleString()+" "+"(".concat(k(e.mostPointsAt),")"),id:"most_points"},{title:ot.mostVillages+":",data:e.mostVillages+" "+"(".concat(k(e.mostVillagesAt),")"),id:"most_villages"}].forEach((t=>{(t=>{let{title:e,data:n,id:a}=t,r=document.querySelector("#"+a);r||(r=document.createElement("tr"),r.id=a,r.appendChild(document.createElement("td")),r.appendChild(document.createElement("td")),et.append(r)),r.children[0].innerHTML=e,r.children[1].innerHTML=n})(t)})),n&&n.items.length>0&&((t,e)=>{let n=t.querySelector("#todaysStats");n||(n=document.createElement("div"),n.id="todaysStats",n.width="100%",t.prepend(n));const a=!(null==e.rankSup);n.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(a?"":"\n \n \n "),"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ").concat(a?"\n \n \n \n \n \n \n "):"","\n \n \n \n \n \n \n \n \n \n
\n '.concat(y.title,"\n
\n ").concat(y.points,':\n \n ').concat(Math.abs(e.points).toLocaleString(),"\n
\n ").concat(y.rank,':\n \n ').concat(Math.abs(e.rank),"\n
\n ").concat(y.villages,':\n \n ').concat(Math.abs(e.villages).toLocaleString(),"\n
\n ".concat(y.members,':\n \n ').concat(Math.abs(e.members),"\n
\n ").concat(y.oda,':\n \n ').concat(Math.abs(e.scoreAtt).toLocaleString(),"\n
\n ").concat(y.odaRank,':\n \n ').concat(Math.abs(e.rankAtt),"\n
\n ").concat(y.odd,':\n \n ').concat(Math.abs(e.scoreDef).toLocaleString(),"\n
\n ").concat(y.oddRank,':\n \n ').concat(Math.abs(e.rankDef),"\n
\n ".concat(y.ods,':\n \n ').concat(Math.abs(e.scoreSup).toLocaleString(),"\n
\n ").concat(y.odsRank,':\n \n ').concat(Math.abs(e.rankSup),"\n
\n ").concat(y.od,':\n \n ').concat(Math.abs(e.scoreTotal).toLocaleString(),"\n
\n ").concat(y.odRank,':\n \n ').concat(Math.abs(e.rankTotal),"\n
\n ")})(at,n.items[0]),a&&a.items.length>0&&(t=>{rt.parentElement.style.width="100%",tt.append(rt.parentElement);const e=rt.querySelector("tr:first-child");11!==e.children.length&&[ot.oda,ot.odd,ot.ods,ot.od,ot.dailyGrowth,ot.playerLinks].forEach((t=>{const n=document.createElement("th");n.innerHTML=t,e.appendChild(n)})),rt.querySelectorAll("tr").forEach((e=>{const n=e.querySelector("a");if(!n)return;const a=z(n.getAttribute("href")),r=t.items.find((t=>t.id===a));r&&[[r.scoreAtt,r.rankAtt],[r.scoreDef,r.rankDef],[r.scoreSup,r.rankSup],[r.scoreTotal,r.rankTotal],r.dailyGrowth,[{link:F(U,K,r.id),label:"TWHelp"},{link:q(K,r.id),label:"TWStats"}]].forEach(((t,n)=>{let a=e.children[5+n];a||(a=document.createElement("td"),e.appendChild(a)),Array.isArray(t)?"number"==typeof t[0]?a.innerHTML="".concat(t[0].toLocaleString()," (").concat(t[1],")"):t[0].link&&(a.innerHTML=t.map((t=>{let{link:e,label:n}=t;return'').concat(n,"")})).join("
")):"number"==typeof t&&(a.innerHTML=t.toLocaleString())}))}))})(a)},dt=async t=>{t.preventDefault();const e=m(t.target);if(!isNaN(e)){!function(t,e){let{limit:n=0,currentPage:a=1,onPageChange:r=(()=>{})}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o=h({total:e.total,limit:n,currentPage:a}),i='\n
\n ').concat(o.join(""),'\n
\n \n \n \n \n \n \n \n \n ").concat(e.items.map((t=>{let e=""+"");return t.village?e+='"):e+="",e+=$(t.newOwner,t.newOwnerTribe),e+=$(t.oldOwner,t.oldOwnerTribe),e+""})).join(""),"\n \n
\n ').concat(E.date,"\n \n ").concat(E.village,"\n \n ").concat(E.newOwner,"\n \n ").concat(E.oldOwner,"\n
".concat(k(t.ennobledAt),"').concat(L(t.village.name,t.village.x,t.village.y),"-
\n ");D({e:t,title:E.title,id:"ennoblements",html:i}),document.querySelectorAll("#ennoblementsPagination a").forEach((t=>{t.addEventListener("click",r)}))}(t,(await d({query:"\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, 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",variables:{filter:{or:{oldOwnerTribeID:[Y],newOwnerTribeID:[Y]}},offset:15*(e-1),limit:15,sort:["ennobledAt DESC"],server:K}})).ennoblements,{currentPage:e,limit:15,onPageChange:dt})}},gt=async t=>{t.preventDefault();const e=m(t.target);if(!isNaN(e))try{const n={tribeID:[Y]},{tribeHistory:a,dailyTribeStats:r}=await d({query:"\nquery tribeHistoryAndTribeDailyStats($server: String!,\n $tribeHistoryFilter: TribeHistoryFilter!,\n $dailyTribeStatsFilter: DailyTribeStatsFilter!,\n $sort: [String!],\n $offset: Int,\n $limit: Int) {\n tribeHistory(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $tribeHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreTotal\n rankTotal\n createDate\n totalMembers\n }\n }\n dailyTribeStats(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $dailyTribeStatsFilter) {\n items {\n points\n scoreAtt\n scoreDef\n scoreTotal\n villages\n createDate\n members\n }\n }\n}\n",variables:{server:K,offset:15*(e-1),limit:15,sort:["createDate DESC"],tribeHistoryFilter:n,dailyTribeStatsFilter:n}});!function(t,e,n){let{currentPage:a=1,limit:r=0,onPageChange:o=(()=>{}),tribe:i=!1}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const l=h({total:e.total,limit:r,currentPage:a}),c='\n
\n ').concat(l.join(""),'\n
\n \n \n \n \n ").concat(i?"":""),"\n \n \n ").concat(i?""):"","\n \n \n \n ").concat(i?"":""),"\n \n ").concat(e.items.map((t=>{const e=j(new Date(t.createDate),1).toISOString().split(".")[0]+"Z",a=n.items.find((t=>t.createDate===e));let r=""+"");return!i&&t.tribe?r+='"):i||(r+=""),r+='\n \n \n ").concat(i?'\n \n "):"",'\n \n \n \n ").concat(i?"":'\n \n "),"\n ")+"",r})).join(""),"\n \n
\n ').concat(H.date,"\n ".concat(H.tribe,"\n ").concat(H.points,"\n \n ").concat(H.villages,"\n ".concat(H.members,"\n ").concat(H.od,"\n \n ").concat(H.oda,"\n \n ").concat(H.odd,"\n ".concat(H.ods,"
".concat(k(t.createDate,{year:"numeric",month:"2-digit",day:"2-digit"}),"').concat(t.tribe.tag,"-\n ').concat(t.points.toLocaleString()," (").concat(t.rank,')\n \n ').concat(t.totalVillages.toLocaleString(),"\n \n ').concat(t.totalMembers,"\n \n ').concat(t.scoreTotal.toLocaleString()," (").concat(t.rankTotal,')\n \n ').concat(t.scoreAtt.toLocaleString()," (").concat(t.rankAtt,')\n \n ').concat(t.scoreDef.toLocaleString()," (").concat(t.rankDef,")\n \n ').concat(t.scoreSup.toLocaleString()," (").concat(t.rankSup,")\n
\n ");D({e:t,title:H.title,id:"history",html:c}),document.querySelectorAll("#historyPagination a").forEach((t=>{t.addEventListener("click",o)}))}(t,a,r,{currentPage:e,limit:15,tribe:!0,onPageChange:gt})}catch(t){console.log("couldnt load tribe history",t)}},pt=t=>t>0?"color: #000; background-color: #0f0":t<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080",mt=t=>{switch(X){case"points":return t.points;case"villages":return t.villages;case"od":return t.scoreTotal;case"oda":return t.scoreAtt;case"odd":return t.scoreDef;case"ods":return t.scoreSup;default:return 0}},ut=t=>{const e=[...new Set(t.items.map((t=>t.createDate)))].reverse();return"\n \n \n ".concat(ot.player,"\n ").concat(e.map((t=>"".concat(k(t,{year:"numeric",month:"2-digit",day:"2-digit"}),""))).join(""),"\n ").concat(ot.total,"\n \n ").concat(lt().map((n=>{const a=t.items.filter((t=>t.player&&t.player.id===n)).reverse();let r;a.length>0&&(r=a[0].player);const o=[];let i=0;for(let t of e){const e=a.find((e=>e.createDate===t));let n=0;e&&(n=mt(e)),i+=n,o.push('').concat(n.toLocaleString(),""))}return"\n \n ".concat(r?'').concat(r.name,""):"-","\n \n ").concat(o.join(""),'\n ').concat(i.toLocaleString(),"\n ")})).join(""),"\n \n ")},ht="membersGrowth",bt="membersGrowthForm",yt=(t,e)=>{const n=[["points",ot.points],["villages",ot.villages],["od",ot.opponentsDefeated],["oda",ot.opponentsDefeatedAsAttacker],["odd",ot.opponentsDefeatedAsDefender],["ods",ot.opponentsDefeatedAsSupporter]].map((t=>""))),a='\n
\n \n \n
\n \n ').concat(ut(e),"\n
\n ");D({e:t,title:ot.membersGrowth,id:"mg",html:a}),document.querySelector("#membersGrowthForm").addEventListener("submit",(t=>e=>{e.preventDefault(),X=e.target[0].value,document.querySelector("#membersGrowth").innerHTML=ut(t)})(e))},ft=async t=>{t.preventDefault();const e=new Date;e.setDate(e.getDate()-7);const n=await async function(){let{createDateLTE:t,createDateGT:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=lt(),a=n.length*l(t,e),r={playerID:n,createDateLTE:t,createDateGT:e};return await d({query:J,variables:{filter:r,limit:a,sort:["createDate DESC"],server:K}})}({createDateLTE:new Date,createDateGT:e});yt(t,n.dailyPlayerStats)},wt=async t=>{t.preventDefault();const e=m(t.target);if(!isNaN(e)){((t,e,n)=>{const a=h({total:n.total,limit:15,currentPage:e}),r='\n
\n ').concat(a.join(""),'\n
\n \n \n \n \n \n \n \n ").concat(n.items.map((t=>{let e=""+"");return t.player?e+='"):e+="",e+=""),e+""})).join(""),"\n \n
\n ').concat(ot.date,"\n \n ").concat(ot.player,"\n \n ").concat(ot.act,"\n
".concat(k(t.createdAt),"').concat(t.player.name,"-".concat(t.newTribe&&t.newTribe.id===Y?ot.joined:ot.left,"
\n ");D({e:t,title:ot.tribeChanges,id:"tribeChanges",html:r}),document.querySelectorAll("#tribeChangesPagination a").forEach((t=>{t.addEventListener("click",wt)}))})(t,e,(await d({query:"\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) {\n total\n items {\n player {\n id\n name\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n",variables:{filter:{or:{oldTribeID:[Y],newTribeID:[Y]}},offset:15*(e-1),limit:15,sort:["createdAt DESC"],server:K}})).tribeChanges)}},vt=t=>{t.preventDefault();const e=(()=>{const t=[];return rt.querySelectorAll("a").forEach((e=>{e.getAttribute("href").includes("info_player")&&t.push(e.innerText.trim())})),t})(),n=[];for(let t=0;t{a+='

'.concat(e+1,'.

\n ")})),Dialog.show("mailinglist",a)},Dt=async function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{const n=await d({variables:t,query:"\n query villages($server: String!, $sort: [String!], $limit: Int, $offset: Int, $filter: VillageFilter!) {\n villages(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $filter) {\n ".concat(e?"total":"","\n items {\n id\n x\n y\n }\n }\n }\n ")});if(n&&n.villages&&Array.isArray(n.villages.items))return n.villages}catch(t){console.log("load villages",t)}return{total:0,items:[]}},kt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t&&e?Dialog.show("loading","Loaded: ".concat(t,"/").concat(e,"")):Dialog.show("loading","Loading...")},St=async t=>{t.preventDefault();let e=parseInt(t.target[4].value);const n={filter:{xLTE:parseInt(t.target[0].value),xGTE:parseInt(t.target[1].value),yLTE:parseInt(t.target[2].value),yGTE:parseInt(t.target[3].value),playerID:lt()},limit:isNaN(e)||!e?0:e,sort:["id ASC"],server:K};kt();let{total:a,items:r}=await Dt(n,!0);const o=r.length;if(0!==e&&eo)for(let t=o;t".concat(r.map((t=>"".concat(t.x,"|").concat(t.y))).join(" "),"\n "))},Tt=t=>{t.preventDefault();const e="etvForm",n='\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n ');Dialog.show("exportTribeVillages",n),document.querySelector("#etvForm").addEventListener("submit",St)},At=t=>{const e=document.createElement("td");e.colSpan="2",e.append(t);const n=document.createElement("tr");return n.appendChild(e),n},Lt=()=>{const t=document.createElement("a");t.href=function(){return I(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,"tribe")}(U,K,Y),t.innerHTML=ot.action.linkToTWHelp,nt.appendChild(At(t));const e=document.createElement("a");e.href="#",p(e,"1"),e.innerHTML=ot.action.showEnnoblements,e.addEventListener("click",dt),nt.appendChild(At(e));const n=document.createElement("a");n.href="#",p(n,"1"),n.innerHTML=ot.action.showHistory,n.addEventListener("click",gt),nt.appendChild(At(n));const a=document.createElement("a");a.href="#",p(a,"1"),a.innerHTML=ot.action.showTribeChanges,a.addEventListener("click",wt),nt.appendChild(At(a));const r=document.createElement("a");r.href="#",r.innerHTML=ot.action.showMembersGrowth,r.addEventListener("click",ft),nt.appendChild(At(r));const o=document.createElement("a");o.href="#",o.innerHTML=ot.action.generateMailingList,o.addEventListener("click",vt),nt.appendChild(At(o));const i=document.createElement("a");i.href="#",i.innerHTML=ot.action.exportVillages,i.addEventListener("click",Tt),nt.appendChild(At(i))};!async function(){try{Lt();const t=it();t&&t.tribe&&st(t);const e=await ct();e&&st(e)}catch(t){console.log("extended tribe profile",t)}}()}(); \ No newline at end of file +!function(){function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(t){for(var n=1;n1?"s":"")+" required, but only "+t.length+" present")}function r(e){n(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function a(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function i(e){n(1,arguments);var t=r(e);return t.setHours(0,0,0,0),t}var o=864e5;function s(e,t){n(2,arguments);var r=i(e),s=i(t),l=r.getTime()-a(r),d=s.getTime()-a(s);return Math.round((l-d)/o)}function l(e,t){var n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}const d={pl_PL:{date:"Data",createdAt:"Data założenia",dominance:"Dominacja",bestRank:"Najlepszy ranking",mostPoints:"Najwięcej punktów",mostVillages:"Najwięcej wiosek",player:"Gracz",points:"Punkty",villages:"Wioski",opponentsDefeated:"Pokonani przeciwnicy",opponentsDefeatedAsAttacker:"Pokonani przeciwnicy jako agresor",opponentsDefeatedAsDefender:"Pokonani przeciwnicy jako obrońca",opponentsDefeatedAsSupporter:"Pokonani przeciwnicy jako wspierający",change:"Zmień",left:"Opuścił",joined:"Dołączył",tribeChanges:"Zmiany plemion",membersGrowth:"Rozwój graczy",act:"Akcja",total:"Razem",oda:"RA",odd:"RO",ods:"RW",od:"Pokonani ogólnie",dailyGrowth:"Dzienny przyrost",playerLinks:"Linki",action:{linkToTWHelp:"Akta plemienia (TWHelp)",showTribeChanges:"Pokaż zmiany plemion",showEnnoblements:"Pokaż przejęcia",showMembersGrowth:"Pokaż rozwój graczy",showHistory:"Pokaż historię",generateMailingList:"Wygeneruj listę mailingową",exportVillages:"Wyeksportuj wioski"}},en_DK:{date:"Date",createdAt:"Created at",dominance:"Dominance",bestRank:"Best rank",mostPoints:"Most points",mostVillages:"Most villages",player:"Player",points:"Points",villages:"Villages",opponentsDefeated:"Opponents defeated",opponentsDefeatedAsAttacker:"Opponents defeated as attacker",opponentsDefeatedAsDefender:"Opponents defeated as defender",opponentsDefeatedAsSupporter:"Opponents defeated as supporter",change:"Change",membersGrowth:"Members growth",tribeChanges:"Tribe changes",left:"Left",joined:"Joined",act:"Action",total:"Total",oda:"ODA",odd:"ODD",ods:"ODS",od:"OD",dailyGrowth:"Daily growth",playerLinks:"Player links",action:{linkToTWHelp:"Tribal file (TWHelp)",showTribeChanges:"Show tribe changes",showEnnoblements:"Show ennoblements",showMembersGrowth:"Show members growth",showHistory:"Show history",generateMailingList:"Generate mailing list",exportVillages:"Export villages"}},de_DE:{date:"Datum",createdAt:"Erstellt am",dominance:"Dominanz",bestRank:"Bester Rang",mostPoints:"Meiste Punkte",mostVillages:"Meiste Dörfer",player:"Spieler",points:"Punkte",villages:"Dörfer",opponentsDefeated:"Besiegte Gegner",opponentsDefeatedAsAttacker:"Besiegte Gegner als Angreifer",opponentsDefeatedAsDefender:"Besiegte Gegner als Verteidiger",opponentsDefeatedAsSupporter:"Besiegte Gegner als Unterstützer",change:"Änderungen",membersGrowth:"Mitglieder Wachstum",tribeChanges:"Stammeswechsel",left:"Verlassen",joined:"Beigetreten",act:"Aktion",total:"Total",oda:"BGA",odd:"BGV",ods:"BGS",od:"BP",dailyGrowth:"Tägl. Wachstum",playerLinks:"Spieler Links",action:{linkToTWHelp:"Stammesakte (TWHelp)",showTribeChanges:"Zeige Stammeswechsel",showEnnoblements:"Zeige Adelungen",showMembersGrowth:"Zeige Mitglieder-Wachstum",showHistory:"Zeige Verlauf",generateMailingList:"Maillisten-Generator",exportVillages:"Dörfer exportieren"}}};var c=({query:e,variables:t={}}={})=>fetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:t}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:t})=>{if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise((t=>t(e)))}));const g="data-page",m=(e,t=1)=>{if(!e instanceof HTMLElement)throw new Error("Expected HTMLElement as the first argument");if("number"!=typeof(t=parseInt(t))||isNaN(t))throw new Error("Expected number or string as the second argument");e.setAttribute(g,t+"")},p=e=>!e instanceof HTMLElement?0:parseInt(e.getAttribute(g)),u=({total:e,limit:t,marginRight:n=3,currentPage:r=0}={})=>{const a=((e,t)=>{if("number"!=typeof e)throw new Error("Expected number as the first argument");if("number"!=typeof t)throw new Error("Expected number as the second argument");return e>0?Math.ceil(e/t):1})(e,t),i=[];for(let e=1;e<=a;e++)e===r?i.push(`>${e}<`):i.push(`${e}`);return i},b={pl_PL:{title:"Dzisiejsze zmiany w statystykach",points:"Punkty",rank:"Ranking",villages:"Liczba wiosek",members:"Liczba członków",oda:"Pokonani przeciwnicy jako agresor",odaRank:"RA",odd:"Pokonani przeciwnicy jako obrońca",oddRank:"RO",ods:"Pokonani przeciwnicy jako wspierający",odsRank:"RW",od:"Pokonani przeciwnicy",odRank:"Pokonani przeciwnicy razem ranking"},en_DK:{title:"Today's stat changes",points:"Points",rank:"Rank",villages:"Villages",members:"Members",oda:"ODA",odaRank:"ODA Rank",odd:"ODD",oddRank:"ODD Rank",ods:"ODS",odsRank:"ODS Rank",od:"OD",odRank:"OD Rank"},de_DE:{title:"Heutige Werte Änderungen",points:"Punkte",rank:"Rang",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odaRank:"BGA Rang",odd:"BGD",oddRank:"BGD Rang",ods:"BGS",odsRank:"BGS Rang",od:"BP",odRank:"BP Rang"}};const h=b[window.game_data.locale]||b.en_DK,y=e=>e>0?"color: #000; background-color: #0f0":e<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080";const f={pl_PL:{date:"Data",newOwner:"Nowy właściciel",oldOwner:"Poprzedni właściciel",village:"Wioska",title:"Przejęcia"},en_DK:{date:"Date",newOwner:"New owner",oldOwner:"Old owner",village:"Village",title:"Ennoblements"},de_DE:{date:"Datum",newOwner:"Neuer Besitzer",oldOwner:"Alter Besitzer",village:"Dorf",title:"Adelungen"}};var $=({html:e,id:t,title:n}={})=>{Dialog.show(t,`

${n}

`+e);const r=document.querySelector(".popup_box");r&&(r.style.width="auto",r.style.maxWidth="1000px")};const w=(e,t)=>new Date(e).toLocaleDateString(void 0,t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),D=e=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:e}),v=e=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:e}),k=f[window.game_data.locale]||f.en_DK,S=(e,t)=>e?`${e.name} (${t?`${t.tag}`:"-"})`:"-";var T=(e,t,{limit:n=0,currentPage:r=1,onPageChange:a=(()=>{})}={})=>{const i=`\n
\n ${u({total:t.total,limit:n,currentPage:r}).join("")}\n
\n \n \n \n \n \n \n \n \n ${t.items.map((e=>{let t=``;var n;return e.village?t+=``:t+="",t+=S(e.newOwner,e.newOwnerTribe),t+=S(e.oldOwner,e.oldOwnerTribe),t+""})).join("")}\n \n
\n ${k.date}\n \n ${k.village}\n \n ${k.newOwner}\n \n ${k.oldOwner}\n
${w(e.ennobledAt)}${((e="",t=500,n=500)=>`${e} (${t}|${n}) ${"K"+String(n)[0]+String(t)[0]}`)(e.village.name,e.village.x,e.village.y)}-
\n `;$({e:e,title:k.title,id:"ennoblements",html:i}),document.querySelectorAll("#ennoblementsPagination a").forEach((e=>{e.addEventListener("click",a)}))};function A(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function L(e,t){n(2,arguments);var a=r(e),i=A(t);return isNaN(i)?new Date(NaN):i?(a.setDate(a.getDate()+i),a):a}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"},de_DE:{title:"Verlauf",date:"Datum",tribe:"Stamm",points:"Punkte",villages:"Dörfer",members:"Mitglieder",oda:"BGA",odd:"BGV",ods:"BGS",od:"BP"}};const P=E[window.game_data.locale]||E.en_DK,M=e=>e>0?"+"+e:e;var j=(e,t,r,{currentPage:a=1,limit:i=0,onPageChange:o=(()=>{}),tribe:s=!1}={})=>{const l=`\n
\n ${u({total:t.total,limit:i,currentPage:a}).join("")}\n
\n \n \n \n \n ${s?"":``}\n \n \n ${s?``:""}\n \n \n \n ${s?"":``}\n \n ${t.items.map((e=>{const t=function(e,t){n(2,arguments);var r=A(t);return L(e,-r)}(new Date(e.createDate),1).toISOString().split(".")[0]+"Z",a=r.items.find((e=>e.createDate===t));let i=``;return!s&&e.tribe?i+=``:s||(i+=""),i+=`\n \n \n ${s?`\n \n `:""}\n \n \n \n ${s?"":`\n \n `}\n `,i})).join("")}\n \n
\n ${P.date}\n ${P.tribe}\n ${P.points}\n \n ${P.villages}\n ${P.members}\n ${P.od}\n \n ${P.oda}\n \n ${P.odd}\n ${P.ods}
${w(e.createDate,{year:"numeric",month:"2-digit",day:"2-digit"})}${e.tribe.tag}-\n ${e.points.toLocaleString()} (${e.rank})\n \n ${e.totalVillages.toLocaleString()}\n \n ${e.totalMembers}\n \n ${e.scoreTotal.toLocaleString()} (${e.rankTotal})\n \n ${e.scoreAtt.toLocaleString()} (${e.rankAtt})\n \n ${e.scoreDef.toLocaleString()} (${e.rankDef})\n \n ${e.scoreSup.toLocaleString()} (${e.rankSup})\n
\n `;$({e:e,title:P.title,id:"history",html:l}),document.querySelectorAll("#historyPagination a").forEach((e=>{e.addEventListener("click",o)}))},O=e=>parseInt(new URLSearchParams(e).get("id"));const R=(e="",t=0)=>`http://www.twstats.com/in/${e}/player/${t}`,x=(e="",t="",n=0,r="")=>`${((e="",t="")=>`https://${e}.tribalwarshelp.com/server/${t}`)(e,t)}/${r}/${n}`,H=(e="",t="",n=0)=>x(e,t,n,"player"),C=window.location.host.split(".")[0],z=((e="")=>e.substr(0,2))(C),G=O(window.location.search),q="kichiyaki_extended_tribe_profile"+G;let _="points";const N=document.querySelector("#content_value"),I=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody"),F=I,V=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)"),B=N.querySelector("h3").nextElementSibling.querySelector("tbody"),W=d[window.game_data.locale]||d.en_DK,K=()=>((e,t={})=>{const n=localStorage.getItem(e);let r=t;return n&&(r=JSON.parse(n)),r})(q),U=(e={})=>{var t,n;t=q,n=e,localStorage.setItem(t,JSON.stringify(n))},Y=()=>{const e=[];return B.querySelectorAll("a").forEach((t=>{const n=t.getAttribute("href");n.includes("info_player")&&e.push(O(n))})),e},Z=({tribe:e,dailyTribeStats:t,players:n})=>{[{title:W.createdAt+":",data:w(e.createdAt),id:"created_at"},{title:W.dominance+":",data:e.dominance.toFixed(2)+"%",id:"dominance"},{title:W.bestRank+":",data:e.bestRank+" "+`(${w(e.bestRankAt)})`,id:"best_rank"},{title:W.mostPoints+":",data:e.mostPoints.toLocaleString()+" "+`(${w(e.mostPointsAt)})`,id:"most_points"},{title:W.mostVillages+":",data:e.mostVillages+" "+`(${w(e.mostVillagesAt)})`,id:"most_villages"}].forEach((e=>{(({title:e,data:t,id:n})=>{let r=document.querySelector("#"+n);r||(r=document.createElement("tr"),r.id=n,r.appendChild(document.createElement("td")),r.appendChild(document.createElement("td")),I.append(r)),r.children[0].innerHTML=e,r.children[1].innerHTML=t})(e)})),t&&t.items.length>0&&((e,t)=>{let n=e.querySelector("#todaysStats");n||(n=document.createElement("div"),n.id="todaysStats",n.width="100%",e.prepend(n));const r=!(null==t.rankSup);n.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${r?"":`\n \n \n `}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${r?`\n \n \n \n \n \n \n `:""}\n \n \n \n \n \n \n \n \n \n
\n ${h.title}\n
\n ${h.points}:\n \n ${Math.abs(t.points).toLocaleString()}\n
\n ${h.rank}:\n \n ${Math.abs(t.rank)}\n
\n ${h.villages}:\n \n ${Math.abs(t.villages).toLocaleString()}\n
\n ${h.members}:\n \n ${Math.abs(t.members)}\n
\n ${h.oda}:\n \n ${Math.abs(t.scoreAtt).toLocaleString()}\n
\n ${h.odaRank}:\n \n ${Math.abs(t.rankAtt)}\n
\n ${h.odd}:\n \n ${Math.abs(t.scoreDef).toLocaleString()}\n
\n ${h.oddRank}:\n \n ${Math.abs(t.rankDef)}\n
\n ${h.ods}:\n \n ${Math.abs(t.scoreSup).toLocaleString()}\n
\n ${h.odsRank}:\n \n ${Math.abs(t.rankSup)}\n
\n ${h.od}:\n \n ${Math.abs(t.scoreTotal).toLocaleString()}\n
\n ${h.odRank}:\n \n ${Math.abs(t.rankTotal)}\n
\n `})(V,t.items[0]),n&&n.items.length>0&&(e=>{B.parentElement.style.width="100%",N.append(B.parentElement);const t=B.querySelector("tr:first-child");11!==t.children.length&&[W.oda,W.odd,W.ods,W.od,W.dailyGrowth,W.playerLinks].forEach((e=>{const n=document.createElement("th");n.innerHTML=e,t.appendChild(n)})),B.querySelectorAll("tr").forEach((t=>{const n=t.querySelector("a");if(!n)return;const r=O(n.getAttribute("href")),a=e.items.find((e=>e.id===r));a&&[[a.scoreAtt,a.rankAtt],[a.scoreDef,a.rankDef],[a.scoreSup,a.rankSup],[a.scoreTotal,a.rankTotal],a.dailyGrowth,[{link:H(z,C,a.id),label:"TWHelp"},{link:R(C,a.id),label:"TWStats"}]].forEach(((e,n)=>{let r=t.children[5+n];r||(r=document.createElement("td"),t.appendChild(r)),Array.isArray(e)?"number"==typeof e[0]?r.innerHTML=`${e[0].toLocaleString()} (${e[1]})`:e[0].link&&(r.innerHTML=e.map((({link:e,label:t})=>`${t}`)).join("
")):"number"==typeof e&&(r.innerHTML=e.toLocaleString())}))}))})(n)},J=async e=>{e.preventDefault();const t=p(e.target);if(!isNaN(t)){const n=await c({query:"\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, 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",variables:{filter:{or:{oldOwnerTribeID:[G],newOwnerTribeID:[G]}},offset:15*(t-1),limit:15,sort:["ennobledAt DESC"],server:C}});T(e,n.ennoblements,{currentPage:t,limit:15,onPageChange:J})}},X=async e=>{e.preventDefault();const t=p(e.target);if(!isNaN(t))try{const n={tribeID:[G]},{tribeHistory:r,dailyTribeStats:a}=await c({query:"\nquery tribeHistoryAndTribeDailyStats($server: String!,\n $tribeHistoryFilter: TribeHistoryFilter!,\n $dailyTribeStatsFilter: DailyTribeStatsFilter!,\n $sort: [String!],\n $offset: Int,\n $limit: Int) {\n tribeHistory(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $tribeHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreTotal\n rankTotal\n createDate\n totalMembers\n }\n }\n dailyTribeStats(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $dailyTribeStatsFilter) {\n items {\n points\n scoreAtt\n scoreDef\n scoreTotal\n villages\n createDate\n members\n }\n }\n}\n",variables:{server:C,offset:15*(t-1),limit:15,sort:["createDate DESC"],tribeHistoryFilter:n,dailyTribeStatsFilter:n}});j(e,r,a,{currentPage:t,limit:15,tribe:!0,onPageChange:X})}catch(e){console.log("couldnt load tribe history",e)}},Q=e=>e>0?"color: #000; background-color: #0f0":e<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080",ee=e=>{switch(_){case"points":return e.points;case"villages":return e.villages;case"od":return e.scoreTotal;case"oda":return e.scoreAtt;case"odd":return e.scoreDef;case"ods":return e.scoreSup;default:return 0}},te=e=>{const t=[...new Set(e.items.map((e=>e.createDate)))].reverse();return`\n \n \n ${W.player}\n ${t.map((e=>`${w(e,{year:"numeric",month:"2-digit",day:"2-digit"})}`)).join("")}\n ${W.total}\n \n ${Y().map((n=>{const r=e.items.filter((e=>e.player&&e.player.id===n)).reverse();let a;r.length>0&&(a=r[0].player);const i=[];let o=0;for(let e of t){const t=r.find((t=>t.createDate===e));let n=0;t&&(n=ee(t)),o+=n,i.push(`${n.toLocaleString()}`)}return`\n \n ${a?`${a.name}`:"-"}\n \n ${i.join("")}\n ${o.toLocaleString()}\n `})).join("")}\n \n `},ne=(e,t)=>{const n=`\n
\n \n \n
\n \n ${te(t)}\n
\n `;$({e:e,title:W.membersGrowth,id:"mg",html:n}),document.querySelector("#membersGrowthForm").addEventListener("submit",(e=>t=>{t.preventDefault(),_=t.target[0].value,document.querySelector("#membersGrowth").innerHTML=te(e)})(t))},re=async({createDateLTE:e,createDateGT:t}={})=>{const a=Y(),i=a.length*function(e,t){n(2,arguments);var a=r(e),i=r(t),o=l(a,i),d=Math.abs(s(a,i));a.setDate(a.getDate()-o*d);var c=Number(l(a,i)===-o),g=o*(d-c);return 0===g?0:g}(e,t),o={playerID:a,createDateLTE:e,createDateGT:t};return await c({query:"\nquery tribeMembersDailyStats($server: String!,\n $filter: DailyPlayerStatsFilter!,\n $limit: Int,\n $sort: [String!]) {\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n player {\n id\n name\n }\n points\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n",variables:{filter:o,limit:i,sort:["createDate DESC"],server:C}})},ae=async e=>{e.preventDefault();const t=new Date;t.setDate(t.getDate()-7);const n=await re({createDateLTE:new Date,createDateGT:t});ne(e,n.dailyPlayerStats)},ie=async e=>{e.preventDefault();const t=p(e.target);if(!isNaN(t)){((e,t,n)=>{const r=`\n
\n ${u({total:n.total,limit:15,currentPage:t}).join("")}\n
\n \n \n \n \n \n \n \n ${n.items.map((e=>{let t=``;return e.player?t+=``:t+="",t+=``,t+""})).join("")}\n \n
\n ${W.date}\n \n ${W.player}\n \n ${W.act}\n
${w(e.createdAt)}${e.player.name}-${e.newTribe&&e.newTribe.id===G?W.joined:W.left}
\n `;$({e:e,title:W.tribeChanges,id:"tribeChanges",html:r}),document.querySelectorAll("#tribeChangesPagination a").forEach((e=>{e.addEventListener("click",ie)}))})(e,t,(await c({query:"\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) {\n total\n items {\n player {\n id\n name\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n",variables:{filter:{or:{oldTribeID:[G],newTribeID:[G]}},offset:15*(t-1),limit:15,sort:["createdAt DESC"],server:C}})).tribeChanges)}},oe=e=>{e.preventDefault();const t=(()=>{const e=[];return B.querySelectorAll("a").forEach((t=>{t.getAttribute("href").includes("info_player")&&e.push(t.innerText.trim())})),e})(),n=[];for(let e=0;e{r+=`

${t+1}.

\n `})),Dialog.show("mailinglist",r)},se=async(e,t=!1)=>{try{const n=await c({variables:e,query:`\n query villages($server: String!, $sort: [String!], $limit: Int, $offset: Int, $filter: VillageFilter!) {\n villages(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $filter) {\n ${t?"total":""}\n items {\n id\n x\n y\n }\n }\n }\n `});if(n&&n.villages&&Array.isArray(n.villages.items))return n.villages}catch(e){console.log("load villages",e)}return{total:0,items:[]}},le=(e=0,t=0)=>e&&t?Dialog.show("loading",`Loaded: ${e}/${t}`):Dialog.show("loading","Loading..."),de=async e=>{e.preventDefault();let n=parseInt(e.target[4].value);const r={filter:{xLTE:parseInt(e.target[0].value),xGTE:parseInt(e.target[1].value),yLTE:parseInt(e.target[2].value),yGTE:parseInt(e.target[3].value),playerID:Y()},limit:isNaN(n)||!n?0:n,sort:["id ASC"],server:C};le();let{total:a,items:i}=await se(r,!0);const o=i.length;if(0!==n&&no)for(let e=o;e${i.map((e=>`${e.x}|${e.y}`)).join(" ")}\n `)},ce=e=>{e.preventDefault();Dialog.show("exportTribeVillages",'\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n '),document.querySelector("#etvForm").addEventListener("submit",de)},ge=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},me=()=>{const e=document.createElement("a");e.href=((e="",t="",n=0)=>x(e,t,n,"tribe"))(z,C,G),e.innerHTML=W.action.linkToTWHelp,F.appendChild(ge(e));const t=document.createElement("a");t.href="#",m(t,"1"),t.innerHTML=W.action.showEnnoblements,t.addEventListener("click",J),F.appendChild(ge(t));const n=document.createElement("a");n.href="#",m(n,"1"),n.innerHTML=W.action.showHistory,n.addEventListener("click",X),F.appendChild(ge(n));const r=document.createElement("a");r.href="#",m(r,"1"),r.innerHTML=W.action.showTribeChanges,r.addEventListener("click",ie),F.appendChild(ge(r));const a=document.createElement("a");a.href="#",a.innerHTML=W.action.showMembersGrowth,a.addEventListener("click",ae),F.appendChild(ge(a));const i=document.createElement("a");i.href="#",i.innerHTML=W.action.generateMailingList,i.addEventListener("click",oe),F.appendChild(ge(i));const o=document.createElement("a");o.href="#",o.innerHTML=W.action.exportVillages,o.addEventListener("click",ce),F.appendChild(ge(o))};!async function(){try{me();const e=K();e&&e.tribe&&Z(e);const t=await(async()=>{const e=Y(),t=await c({query:"\n query tribe(\n $server: String!\n $id: Int!\n $dailyTribeStatsSort: [String!]\n $dailyTribeStatsLimit: Int\n $playersLimit: Int\n $playersSort: [String!]\n $playerFilter: PlayerFilter!\n $dailyTribeStatsFilter: DailyTribeStatsFilter!\n ) {\n tribe(server: $server, id: $id) {\n id\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n createdAt\n dominance\n }\n dailyTribeStats(\n server: $server\n limit: $dailyTribeStatsLimit\n sort: $dailyTribeStatsSort\n filter: $dailyTribeStatsFilter\n ) {\n items {\n rank\n rankAtt\n rankDef\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreTotal\n villages\n members\n }\n }\n players(server: $server, sort: $playersSort, filter: $playerFilter, limit: $playersLimit) {\n items {\n id\n rankAtt\n rankDef\n rankSup\n rankTotal\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n dailyGrowth\n }\n }\n }\n",variables:{server:C,id:G,dailyTribeStatsSort:["createDate DESC"],dailyTribeStatsLimit:1,dailyTribeStatsFilter:{tribeID:[G]},playersSort:["rank ASC"],playersLimit:e.length,playerFilter:{id:e}}});return U(t),t})();t&&Z(t)}catch(e){console.log("extended tribe profile",e)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/extendedVillageProfile.js b/dist/quickbar/extendedVillageProfile.js index 21f28e0..7f6eca8 100644 --- a/dist/quickbar/extendedVillageProfile.js +++ b/dist/quickbar/extendedVillageProfile.js @@ -1 +1 @@ -!function(){const e="https://api.tribalwarshelp.com/graphql";var t=function(){let{query:t,variables:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(e,{method:"POST",body:JSON.stringify({query:t,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((e=>{let{data:t,errors:n}=e;if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((e=>e(t)))}))};const n={pl_PL:{loaded:"Załadowano",pop:"Populacja",mySupport:"Moje wsparcie",allySupport:"Wsparcie plemienia",total:"Łącznie",possibleLoyalty:"Prawdopodobne poparcie",ennobledAt:"Podbita o",never:"Nigdy",action:{linkToTWHelp:"Akta wioski (TWHelp)",showEnnoblements:"Pokaż przejęcia",countIncomingSupport:"Policz nadchodzące wsparcie"}},en_DK:{loaded:"Loaded",pop:"Pop",mySupport:"My support",allySupport:"Ally support",total:"Total",possibleLoyalty:"Possible loyalty",never:"Never",ennobledAt:"Ennobled at",action:{linkToTWHelp:"Village file (TWHelp)",showEnnoblements:"Show ennoblements",countIncomingSupport:"Count incoming support"}},de_DE:{loaded:"Geladen",pop:"Pop",mySupport:"Meine Unterstützung",allySupport:"Verbündete Unterstützung",total:"Total",possibleLoyalty:"Mögliche Zustimmung",never:"Niemals",ennobledAt:"Geadelt am",action:{linkToTWHelp:"Dorfakte (TWHelp)",showEnnoblements:"Zeige Adelungen",countIncomingSupport:"Zähle ankommende Unterstützung"}}};const o="data-page",r=(e,t)=>{if("number"!=typeof e)throw new Error("Expected number as the first argument");if("number"!=typeof t)throw new Error("Expected number as the second argument");return e>0?Math.ceil(e/t):1},a=function(){let{total:e,limit:t,marginRight:n=3,currentPage:a=0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const i=r(e,t),l=[];for(let e=1;e<=i;e++)e===a?l.push('>').concat(e,"<")):l.push('').concat(e,""));return l};const i=e=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:e}),l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const o="K"+String(n)[0]+String(t)[0];return"".concat(e," (").concat(t,"|").concat(n,") ").concat(o)};var c=e=>{return t="unit/unit_".concat(e,".png"),image_base+t;var t};const s=(e,t)=>new Date(e).toLocaleDateString(void 0,t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"});var d=e=>new Promise((t=>setTimeout(t,e)));const p=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))};function u(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function g(e){u(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function h(e,t){u(2,arguments);var n=g(e),o=g(t);return n.getTime()-o.getTime()}const m=(e,t)=>{let n=25+Math.abs(function(e,t){u(2,arguments);var n=h(e,t)/6e4;return n>0?Math.floor(n):Math.ceil(n)}(e,new Date))*(t/60);return n>100&&(n=100),Math.floor(n)};const b="tribalwarshelp.com",f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(e,".").concat(b,"/server/").concat(t)},y=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return"".concat(f(e,t),"/").concat(o,"/").concat(n)},w={pl_PL:{date:"Data",newOwner:"Nowy właściciel",oldOwner:"Poprzedni właściciel",village:"Wioska",title:"Przejęcia"},en_DK:{date:"Date",newOwner:"New owner",oldOwner:"Old owner",village:"Village",title:"Ennoblements"},de_DE:{date:"Datum",newOwner:"Neuer Besitzer",oldOwner:"Alter Besitzer",village:"Dorf",title:"Adelungen"}};const v=".popup_box",S=function(){let{html:e,id:t,title:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Dialog.show(t,"

".concat(n,"

")+e);const o=document.querySelector(v);o&&(o.style.width="auto",o.style.maxWidth="1000px")},E="ennoblementsPagination",O=w[window.game_data.locale]||w.en_DK,T=(e,t)=>{return e?'').concat(e.name," (").concat(t?'').concat(t.tag,""):"-",")"):"-";var n};function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function P(e){for(var t=1;t table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),q=document.querySelector("#content_value table.vis tbody");let M={};const $=n[window.game_data.locale]||n.en_DK,C=()=>function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=localStorage.getItem(e);let o=t;return n&&(o=JSON.parse(n)),o}(k),I=async()=>{let e=C();var n;return e.server&&(n=new Date(e.loadedAt),!(Math.abs(n.getTime()-(new Date).getTime())>864e5))&&e.server.unitConfig&&e.server.config||(e=await t({query:"\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n }\n unitConfig {\n spear {\n pop\n }\n sword {\n pop\n }\n axe {\n pop\n }\n archer {\n pop\n }\n spy {\n pop\n }\n light {\n pop\n }\n marcher {\n pop\n }\n heavy {\n pop\n }\n ram {\n pop\n }\n catapult {\n pop\n }\n knight {\n pop\n }\n snob {\n pop\n }\n }\n }\n }\n",variables:{key:A}}),e.loadedAt=new Date,function(){p(k,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}(e)),e.server},H=async e=>{e.preventDefault();const n=!(r=e.target)instanceof HTMLElement?0:parseInt(r.getAttribute(o));var r;if(!isNaN(n)){!function(e,t){let{limit:n=0,currentPage:o=1,onPageChange:r=(()=>{})}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const c=a({total:t.total,limit:n,currentPage:o}),d='\n
\n ').concat(c.join(""),'\n
\n \n \n \n \n \n \n \n \n ").concat(t.items.map((e=>{let t=""+"");return e.village?t+='"):t+="",t+=T(e.newOwner,e.newOwnerTribe),t+=T(e.oldOwner,e.oldOwnerTribe),t+""})).join(""),"\n \n
\n ').concat(O.date,"\n \n ").concat(O.village,"\n \n ").concat(O.newOwner,"\n \n ").concat(O.oldOwner,"\n
".concat(s(e.ennobledAt),"').concat(l(e.village.name,e.village.x,e.village.y),"-
\n ");S({e:e,title:O.title,id:"ennoblements",html:d}),document.querySelectorAll("#ennoblementsPagination a").forEach((e=>{e.addEventListener("click",r)}))}(e,(await t({query:"\n query ennoblements($server: String!, $offset: Int, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, offset: $offset, limit: $limit, sort: $sort, 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",variables:{filter:{villageID:[_]},offset:15*(n-1),limit:15,sort:["ennobledAt DESC"],server:A}})).ennoblements,{currentPage:n,limit:15,onPageChange:H})}},N=e=>{const t=[];let n=0;for(let o in e)n+=e[o]*M.unitConfig[o].pop,t.push("".concat(e[o].toLocaleString(),""));return t.push("".concat(n.toLocaleString(),"")),t},W=async e=>{e.preventDefault();const t=[],n={};document.querySelectorAll('span.command_hover_details[data-command-type="support"]').forEach((e=>{const o=parseInt(e.getAttribute("data-command-id"));e.classList.contains("commandicon-ally")?n[o]=!0:n[o]=!1,t.push(o)}));const o={spear:0,sword:0,axe:0,archer:0,spy:0,light:0,marcher:0,heavy:0,ram:0,catapult:0,knight:0,snob:0},r=P({},o),a=P({},o);for(let e=0;e").concat(e," / ").concat(t.length,""));const i=t[e],l=TribalWars.buildURL("",{screen:"info_command",ajax:"details",id:i});try{const e=await fetch(l),{units:t}=await e.json();if(t)for(let e in o){const l=parseInt(t[e].count);n[i]?r[e]+=l:o[e]+=l,a[e]+=l}await d(200)}catch(e){console.log("count incoming support",e)}}const i=[""];for(let e in o)i.push(''));i.push("".concat($.pop,""));const l=["".concat($.mySupport,""),...N(o)],s=["".concat($.allySupport,""),...N(r)],p=["".concat($.total,""),...N(a)];Dialog.show("incomingSupport",'\n \n \n \n '.concat(i.join(""),"\n \n \n ").concat(l.join(""),"\n \n \n ").concat(s.join(""),"\n \n \n ").concat(p.join(""),"\n \n \n
\n "));const u=document.querySelector(".popup_box");u&&(u.style.width="auto",u.style.maxWidth="900px")},z=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},U=()=>{const e=document.createElement("a");e.href=function(){return y(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,"village")}(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").substr(0,2)}(A),A,_),e.innerHTML=$.action.linkToTWHelp,x.appendChild(z(e));const t=document.createElement("a");t.href="#",function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!e instanceof HTMLElement)throw new Error("Expected HTMLElement as the first argument");if(t=parseInt(t),"number"!=typeof t||isNaN(t))throw new Error("Expected number or string as the second argument");e.setAttribute(o,t+"")}(t,"1"),t.innerHTML=$.action.showEnnoblements,t.addEventListener("click",H),x.appendChild(z(t));const n=document.createElement("a");n.href="#",n.innerHTML=$.action.countIncomingSupport,n.addEventListener("click",W),x.appendChild(z(n))},R=e=>{let{title:t,data:n,id:o}=e,r=document.querySelector("#"+o);r||(r=document.createElement("tr"),r.id=o,r.appendChild(document.createElement("td")),r.appendChild(document.createElement("td")),q.append(r)),r.children[0].innerHTML=t,r.children[1].innerHTML=n},K=()=>{const e=document.querySelectorAll("#content_value > div tbody tr"),t=[];if(0===e.length)throw new Error;e[0].querySelectorAll(".unit_link").forEach((()=>{t.push(0)}));for(let n=1;n{t[n]+=parseInt(e.innerHTML)}))}return t};!async function(){try{const e=await(async()=>await t({query:"\n query ennoblements($server: String!, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n",variables:{server:A,filter:{villageID:[_]},sort:["ennobledAt DESC"],limit:1}}))();M=await I(),function(){let{config:e,ennoblements:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=t&&Array.isArray(t.items)&&t.items[0]?t.items[0]:void 0;R({id:"loyalty",title:"".concat($.possibleLoyalty,":"),data:n?m(new Date(n.ennobledAt),e.speed):100}),R({id:"ennobledAt",title:"".concat($.ennobledAt,":"),data:n?s(n.ennobledAt):$.never});try{const e=K(),t=document.createElement("tr");t.style.textAlign="center",t.style.fontWeight="bold",t.appendChild(document.createElement("td")),e.forEach((e=>{const n=document.createElement("td");n.innerHTML=e,t.appendChild(n)})),document.querySelector("#content_value > div tbody").appendChild(t)}catch(e){}}({config:M.config,ennoblements:e.ennoblements}),U()}catch(e){console.log("extended village profile",e)}}()}(); \ No newline at end of file +!function(){function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(t){for(var n=1;nfetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:t}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:t})=>{if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise((t=>t(e)))}));const r={pl_PL:{loaded:"Załadowano",pop:"Populacja",mySupport:"Moje wsparcie",allySupport:"Wsparcie plemienia",total:"Łącznie",possibleLoyalty:"Prawdopodobne poparcie",ennobledAt:"Podbita o",never:"Nigdy",action:{linkToTWHelp:"Akta wioski (TWHelp)",showEnnoblements:"Pokaż przejęcia",countIncomingSupport:"Policz nadchodzące wsparcie"}},en_DK:{loaded:"Loaded",pop:"Pop",mySupport:"My support",allySupport:"Ally support",total:"Total",possibleLoyalty:"Possible loyalty",never:"Never",ennobledAt:"Ennobled at",action:{linkToTWHelp:"Village file (TWHelp)",showEnnoblements:"Show ennoblements",countIncomingSupport:"Count incoming support"}},de_DE:{loaded:"Geladen",pop:"Pop",mySupport:"Meine Unterstützung",allySupport:"Verbündete Unterstützung",total:"Total",possibleLoyalty:"Mögliche Zustimmung",never:"Niemals",ennobledAt:"Geadelt am",action:{linkToTWHelp:"Dorfakte (TWHelp)",showEnnoblements:"Zeige Adelungen",countIncomingSupport:"Zähle ankommende Unterstützung"}}};const o="data-page",a=({total:e,limit:t,marginRight:n=3,currentPage:r=0}={})=>{const o=((e,t)=>{if("number"!=typeof e)throw new Error("Expected number as the first argument");if("number"!=typeof t)throw new Error("Expected number as the second argument");return e>0?Math.ceil(e/t):1})(e,t),a=[];for(let e=1;e<=o;e++)e===r?a.push(`>${e}<`):a.push(`${e}`);return a};var i=e=>image_base+`unit/unit_${e}.png`;const l=(e,t)=>new Date(e).toLocaleDateString(void 0,t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"});var s=e=>new Promise((t=>setTimeout(t,e)));function c(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function d(e){c(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function p(e,t){c(2,arguments);var n=d(e),r=d(t);return n.getTime()-r.getTime()}var u=(e,t)=>{let n=25+Math.abs(function(e,t){c(2,arguments);var n=p(e,t)/6e4;return n>0?Math.floor(n):Math.ceil(n)}(e,new Date))*(t/60);return n>100&&(n=100),Math.floor(n)};const m=(e="",t="",n=0,r="")=>`${((e="",t="")=>`https://${e}.tribalwarshelp.com/server/${t}`)(e,t)}/${r}/${n}`,g={pl_PL:{date:"Data",newOwner:"Nowy właściciel",oldOwner:"Poprzedni właściciel",village:"Wioska",title:"Przejęcia"},en_DK:{date:"Date",newOwner:"New owner",oldOwner:"Old owner",village:"Village",title:"Ennoblements"},de_DE:{date:"Datum",newOwner:"Neuer Besitzer",oldOwner:"Alter Besitzer",village:"Dorf",title:"Adelungen"}};var h=({html:e,id:t,title:n}={})=>{Dialog.show(t,`

${n}

`+e);const r=document.querySelector(".popup_box");r&&(r.style.width="auto",r.style.maxWidth="1000px")};const b=g[window.game_data.locale]||g.en_DK,y=(e,t)=>{return e?`${e.name} (${t?`${t.tag}`:"-"})`:"-";var n};var w=(e,t,{limit:n=0,currentPage:r=1,onPageChange:o=(()=>{})}={})=>{const i=`\n
\n ${a({total:t.total,limit:n,currentPage:r}).join("")}\n
\n \n \n \n \n \n \n \n \n ${t.items.map((e=>{let t=``;var n;return e.village?t+=``:t+="",t+=y(e.newOwner,e.newOwnerTribe),t+=y(e.oldOwner,e.oldOwnerTribe),t+""})).join("")}\n \n
\n ${b.date}\n \n ${b.village}\n \n ${b.newOwner}\n \n ${b.oldOwner}\n
${l(e.ennobledAt)}${((e="",t=500,n=500)=>`${e} (${t}|${n}) ${"K"+String(n)[0]+String(t)[0]}`)(e.village.name,e.village.x,e.village.y)}-
\n `;h({e:e,title:b.title,id:"ennoblements",html:i}),document.querySelectorAll("#ennoblementsPagination a").forEach((e=>{e.addEventListener("click",o)}))};const f=window.location.host.split(".")[0],v=($=window.location.search,parseInt(new URLSearchParams($).get("id")));var $;const S="kiszkowaty_extended_village_profile_server_cfg",E=document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),T=document.querySelector("#content_value table.vis tbody");let D={};const A=r[window.game_data.locale]||r.en_DK,O=()=>((e,t={})=>{const n=localStorage.getItem(e);let r=t;return n&&(r=JSON.parse(n)),r})(S),_=(e={})=>{var t,n;t=S,n=e,localStorage.setItem(t,JSON.stringify(n))},L=async()=>{let e=O();var t;return e.server&&(t=new Date(e.loadedAt),!(Math.abs(t.getTime()-(new Date).getTime())>864e5))&&e.server.unitConfig&&e.server.config||(e=await n({query:"\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n }\n unitConfig {\n spear {\n pop\n }\n sword {\n pop\n }\n axe {\n pop\n }\n archer {\n pop\n }\n spy {\n pop\n }\n light {\n pop\n }\n marcher {\n pop\n }\n heavy {\n pop\n }\n ram {\n pop\n }\n catapult {\n pop\n }\n knight {\n pop\n }\n snob {\n pop\n }\n }\n }\n }\n",variables:{key:f}}),e.loadedAt=new Date,_(e)),e.server},P=async e=>{e.preventDefault();const t=!(r=e.target)instanceof HTMLElement?0:parseInt(r.getAttribute(o));var r;if(!isNaN(t)){const r=await n({query:"\n query ennoblements($server: String!, $offset: Int, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, offset: $offset, limit: $limit, sort: $sort, 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",variables:{filter:{villageID:[v]},offset:15*(t-1),limit:15,sort:["ennobledAt DESC"],server:f}});w(e,r.ennoblements,{currentPage:t,limit:15,onPageChange:P})}},j=e=>{const t=[];let n=0;for(let r in e)n+=e[r]*D.unitConfig[r].pop,t.push(`${e[r].toLocaleString()}`);return t.push(`${n.toLocaleString()}`),t},k=async e=>{e.preventDefault();const n=[],r={};document.querySelectorAll('span.command_hover_details[data-command-type="support"]').forEach((e=>{const t=parseInt(e.getAttribute("data-command-id"));e.classList.contains("commandicon-ally")?r[t]=!0:r[t]=!1,n.push(t)}));const o={spear:0,sword:0,axe:0,archer:0,spy:0,light:0,marcher:0,heavy:0,ram:0,catapult:0,knight:0,snob:0},a=t({},o),l=t({},o);for(let e=0;e${e} / ${n.length}`);const t=n[e],i=TribalWars.buildURL("",{screen:"info_command",ajax:"details",id:t});try{const e=await fetch(i),{units:n}=await e.json();if(n)for(let e in o){const i=parseInt(n[e].count);r[t]?a[e]+=i:o[e]+=i,l[e]+=i}await s(200)}catch(e){console.log("count incoming support",e)}}const c=[""];for(let e in o)c.push(``);c.push(`${A.pop}`);const d=[`${A.mySupport}`,...j(o)],p=[`${A.allySupport}`,...j(a)],u=[`${A.total}`,...j(l)];Dialog.show("incomingSupport",`\n \n \n \n ${c.join("")}\n \n \n ${d.join("")}\n \n \n ${p.join("")}\n \n \n ${u.join("")}\n \n \n
\n `);const m=document.querySelector(".popup_box");m&&(m.style.width="auto",m.style.maxWidth="900px")},x=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},q=()=>{const e=document.createElement("a");e.href=((e="",t="",n=0)=>m(e,t,n,"village"))(((e="")=>e.substr(0,2))(f),f,v),e.innerHTML=A.action.linkToTWHelp,E.appendChild(x(e));const t=document.createElement("a");t.href="#",((e,t=1)=>{if(!e instanceof HTMLElement)throw new Error("Expected HTMLElement as the first argument");if("number"!=typeof(t=parseInt(t))||isNaN(t))throw new Error("Expected number or string as the second argument");e.setAttribute(o,t+"")})(t,"1"),t.innerHTML=A.action.showEnnoblements,t.addEventListener("click",P),E.appendChild(x(t));const n=document.createElement("a");n.href="#",n.innerHTML=A.action.countIncomingSupport,n.addEventListener("click",k),E.appendChild(x(n))},M=({title:e,data:t,id:n})=>{let r=document.querySelector("#"+n);r||(r=document.createElement("tr"),r.id=n,r.appendChild(document.createElement("td")),r.appendChild(document.createElement("td")),T.append(r)),r.children[0].innerHTML=e,r.children[1].innerHTML=t},C=({config:e,ennoblements:t}={})=>{const n=t&&Array.isArray(t.items)&&t.items[0]?t.items[0]:void 0;M({id:"loyalty",title:`${A.possibleLoyalty}:`,data:n?u(new Date(n.ennobledAt),e.speed):100}),M({id:"ennobledAt",title:`${A.ennobledAt}:`,data:n?l(n.ennobledAt):A.never});try{const e=(()=>{const e=document.querySelectorAll("#content_value > div tbody tr"),t=[];if(0===e.length)throw new Error;e[0].querySelectorAll(".unit_link").forEach((()=>{t.push(0)}));for(let n=1;n{t[n]+=parseInt(e.innerHTML)}));return t})(),t=document.createElement("tr");t.style.textAlign="center",t.style.fontWeight="bold",t.appendChild(document.createElement("td")),e.forEach((e=>{const n=document.createElement("td");n.innerHTML=e,t.appendChild(n)})),document.querySelector("#content_value > div tbody").appendChild(t)}catch(e){}};!async function(){try{const e=await(async()=>await n({query:"\n query ennoblements($server: String!, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n",variables:{server:f,filter:{villageID:[v]},sort:["ennobledAt DESC"],limit:1}}))();D=await L(),C({config:D.config,ennoblements:e.ennoblements}),q()}catch(e){console.log("extended village profile",e)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/inADayTribeRankingGenerator.js b/dist/quickbar/inADayTribeRankingGenerator.js index 8530f59..c73b813 100644 --- a/dist/quickbar/inADayTribeRankingGenerator.js +++ b/dist/quickbar/inADayTribeRankingGenerator.js @@ -1 +1 @@ -!function(){var e=e=>parseInt(new URLSearchParams(e).get("id"));class t{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.dom=(new DOMParser).parseFromString(e,"text/html"),this.trs=this.dom.querySelectorAll("#in_a_day_ranking_table tbody tr"),this.filters=t}isValidRow(e){return!!e&&((!this.filters.playerID||e.playerID===this.filters.playerID)&&!(this.filters.tribes&&Array.isArray(this.filters.tribes)&&!this.filters.tribes.some((t=>t===e.tribe))))}parseRow(t){if(!t||!t instanceof HTMLTableRowElement)return;let r={};return r.rank=parseInt(t.children[0].innerText.trim()),r.name=t.children[1].innerText.trim(),r.playerID=e(t.children[1].querySelector("a").getAttribute("href")),r.tribe=t.children[2].innerText.trim(),r.tribeID=0,r.tribe&&(r.tribeID=e(t.children[2].querySelector("a").getAttribute("href"))),r.score=parseInt(t.children[3].innerText.trim().replace(/\./g,"")),r.date=t.children[4].innerText.trim(),r}parse(){const e=[];for(let t=1;tnew Promise((t=>setTimeout(t,e)));const a="iad_tribes",i="iad_limit",o=r[window.game_data.locale]||r.en_DK,l=()=>{const e=document.querySelector("#iad_tribes"),t=document.createElement("div");t.innerHTML="\n \n \n \n "),t.querySelector("button").addEventListener("click",(()=>{e.children.length>1&&t.remove()})),e.appendChild(t)},c=async e=>{e.preventDefault();const r=parseInt(document.querySelector("#iad_limit").value),a=[],i=new URLSearchParams(window.location.search).get("type")||"kill_att";document.querySelectorAll("#iad_tribes input").forEach((e=>{e.value&&a.push(e.value.trim())}));let l=[],c=0;for(;l.length").concat(l.length,"/").concat(r,""));try{const e=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:i,offset:25*c})),r=await e.text(),o=new t(r,{tribes:a});if(26!==o.trs.length)break;l=[...l,...o.parse()],c++,await n(200)}catch(e){break}}l.length>r&&(l=l.slice(0,r)),Dialog.show("iad_result","\n \n "))};!function(){try{(()=>{const e="iad_add",t=document.createElement("div"),r='\n
\n
\n
\n
\n \n \n
\n \n \n
\n ");t.innerHTML=r,document.querySelector("#content_value > table > tbody > tr > td:nth-child(2)").prepend(t),t.querySelector("form").addEventListener("submit",c),t.querySelector("#iad_add").addEventListener("click",l),l()})()}catch(e){console.log("'In A Day' Tribe Ranking Generator",e)}}()}(); \ No newline at end of file +!function(){var e=e=>parseInt(new URLSearchParams(e).get("id"));class t{isValidRow(e){return!!e&&((!this.filters.playerID||e.playerID===this.filters.playerID)&&!(this.filters.tribes&&Array.isArray(this.filters.tribes)&&!this.filters.tribes.some((t=>t===e.tribe))))}parseRow(t){if(!t||!t instanceof HTMLTableRowElement)return;let r={};return r.rank=parseInt(t.children[0].innerText.trim()),r.name=t.children[1].innerText.trim(),r.playerID=e(t.children[1].querySelector("a").getAttribute("href")),r.tribe=t.children[2].innerText.trim(),r.tribeID=0,r.tribe&&(r.tribeID=e(t.children[2].querySelector("a").getAttribute("href"))),r.score=parseInt(t.children[3].innerText.trim().replace(/\./g,"")),r.date=t.children[4].innerText.trim(),r}parse(){const e=[];for(let t=1;tnew Promise((t=>setTimeout(t,e)));const a=r[window.game_data.locale]||r.en_DK,i=()=>{const e=document.querySelector("#iad_tribes"),t=document.createElement("div");t.innerHTML=`\n \n \n \n `,t.querySelector("button").addEventListener("click",(()=>{e.children.length>1&&t.remove()})),e.appendChild(t)},l=async e=>{e.preventDefault();const r=parseInt(document.querySelector("#iad_limit").value),i=[],l=new URLSearchParams(window.location.search).get("type")||"kill_att";document.querySelectorAll("#iad_tribes input").forEach((e=>{e.value&&i.push(e.value.trim())}));let d=[],o=0;for(;d.length${d.length}/${r}`);try{const e=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:l,offset:25*o})),r=await e.text(),a=new t(r,{tribes:i});if(26!==a.trs.length)break;d=[...d,...a.parse()],o++,await n(200)}catch(e){break}}d.length>r&&(d=d.slice(0,r)),Dialog.show("iad_result",`\n \n `)};!function(){try{(()=>{const e=document.createElement("div"),t=`\n
\n
\n
\n
\n \n \n
\n \n \n
\n `;e.innerHTML=t,document.querySelector("#content_value > table > tbody > tr > td:nth-child(2)").prepend(e),e.querySelector("form").addEventListener("submit",l),e.querySelector("#iad_add").addEventListener("click",i),i()})()}catch(e){console.log("'In A Day' Tribe Ranking Generator",e)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/latestEnnoblements.js b/dist/quickbar/latestEnnoblements.js index 75cca63..1117fac 100644 --- a/dist/quickbar/latestEnnoblements.js +++ b/dist/quickbar/latestEnnoblements.js @@ -1 +1 @@ -!function(){const e="https://api.tribalwarshelp.com/graphql";const n=".popup_box",t=function(){let{html:e,id:t,title:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Dialog.show(t,"

".concat(o,"

")+e);const r=document.querySelector(n);r&&(r.style.width="auto",r.style.maxWidth="1000px")};const o=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t=localStorage.getItem(e);let o=n;return t&&(o=JSON.parse(t)),o},r=(e,n)=>{localStorage.setItem(e,JSON.stringify(n))},i="tribalwarshelp.com",a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(e,".").concat(i,"/server/").concat(n)};var l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.substr(0,2)};const c={pl_PL:{showLatestEnnoblements:"Pokaż najnowsze przejęcia",village:"Wioska",newOwner:"Nowy właściciel",newOwnerTribe:"Plemię nowego właściciela",oldOwner:"Poprzedni właściciel",oldOwnerTribe:"Plemię poprzedniego właściciela",date:"Data",filters:"Filtry",apply:"Zastosuj",ennoblements:"Przejęcia",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{showLatestEnnoblements:"Show the 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",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{showLatestEnnoblements:"Zeige letzten Adelungen",village:"Dorf",newOwner:"Neuer Besitzer",newOwnerTribe:"Neuer Stamm",oldOwner:"Alter Besitzer",oldOwnerTribe:"Alter Stamm",filters:"Filter",date:"Datum",apply:"Anwenden",ennoblements:"Adelungen",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function d(e){for(var n=1;nfunction(){let{query:n,variables:t={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(e,{method:"POST",body:JSON.stringify({query:n,variables:t}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((e=>{let{data:n,errors:t}=e;if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise((e=>e(n)))}))}({query:"\n query ennoblements($server: String!, $sort: [String!], $limit: Int) {\n ennoblements(server: $server, sort: $sort, limit: $limit) {\n items {\n newOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n oldOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n ennobledAt\n village {\n id\n name\n x\n y\n }\n }\n }\n }\n ",variables:{server:m,limit:50,sort:["ennobledAt DESC"]}}).then((e=>(function(){r(h,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}(e),new Promise((n=>n(e)))))),v=(e,n)=>e&&e.name.toLowerCase().includes(n.toLowerCase()),f=(e,n)=>e&&e.tribe&&(e.tribe.name.toLowerCase().includes(n.toLowerCase())||e.tribe.tag.toLowerCase().includes(n.toLowerCase())),j=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{newOwner:n,newOwnerTribe:t,oldOwner:o,oldOwnerTribe:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.filter((e=>!(n&&!v(e.newOwner,n))&&(!(t&&!f(e.newOwner,t))&&(!(o&&!v(e.oldOwner,o))&&!(r&&!f(e.oldOwner,r))))))},T=(e,n)=>{e.preventDefault();const t=d(d({},p),{},{newOwner:e.target[0].value,newOwnerTribe:e.target[1].value,oldOwner:e.target[2].value,oldOwnerTribe:e.target[3].value});document.querySelector("#".concat(u," tbody")).innerHTML=P(j(n,t)).join(""),function(){r(g,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}(t)},S=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];document.querySelector("#le_form").addEventListener("submit",(n=>{T(n,e)}))},_=e=>{return e&&e.name?'').concat(e.name," (").concat(e.tribe&&e.tribe.tag?'').concat(e.tribe.tag,""):"-",")"):"-";var n},L=e=>{return'').concat(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const o="K"+String(t)[0]+String(n)[0];return"".concat(e," (").concat(n,"|").concat(t,") ").concat(o)}(e.name,e.x,e.y),"");var n},P=e=>e.map((e=>{return"\n ".concat(L(e.village),"\n ").concat(_(e.newOwner),"\n ").concat(_(e.oldOwner),"\n ").concat((n=e.ennobledAt,new Date(n).toLocaleDateString(void 0,t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})),"\n ");var n,t})),x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=d(d({},p),n),r='\n
\n

TWHelp

\n

').concat(y.devNote,'

\n

').concat(y.filters,'

\n \n \n \n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n ").concat(P(j(e,o)).join(""),"\n \n
').concat(y.village,"").concat(y.newOwner,"").concat(y.oldOwner,"").concat(y.date,"
\n ");t({title:y.ennoblements,id:"ennoblements",html:r}),S(e)},D=async()=>{try{const e=o(h),n=o(g);e.ennoblements&&Array.isArray(e.ennoblements.items)&&e.ennoblements.items.length>0&&x(e.ennoblements.items,n);const{ennoblements:t}=await O();x(t.items,n)}catch(e){console.log("latestEnnoblements",e)}};(()=>{const e=document.createElement("div");e.style.position="fixed",e.style.top="5px",e.style.left="4px",e.style.zIndex="50000";const n=document.createElement("a");n.innerHTML=''),n.title=y.showLatestEnnoblements,n.style.cursor="pointer",n.addEventListener("click",D),e.append(n),document.body.appendChild(e)})()}(); \ No newline at end of file +!function(){function e(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function n(n){for(var t=1;t{Dialog.show(n,`

${t}

`+e);const r=document.querySelector(".popup_box");r&&(r.style.width="auto",r.style.maxWidth="1000px")};const r=(e,n={})=>{const t=localStorage.getItem(e);let r=n;return t&&(r=JSON.parse(t)),r},o=(e,n)=>{localStorage.setItem(e,JSON.stringify(n))},i=(e="",n="")=>`https://${e}.tribalwarshelp.com/server/${n}`;const l={pl_PL:{showLatestEnnoblements:"Pokaż najnowsze przejęcia",village:"Wioska",newOwner:"Nowy właściciel",newOwnerTribe:"Plemię nowego właściciela",oldOwner:"Poprzedni właściciel",oldOwnerTribe:"Plemię poprzedniego właściciela",date:"Data",filters:"Filtry",apply:"Zastosuj",ennoblements:"Przejęcia",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{showLatestEnnoblements:"Show the 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",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{showLatestEnnoblements:"Zeige letzten Adelungen",village:"Dorf",newOwner:"Neuer Besitzer",newOwnerTribe:"Neuer Stamm",oldOwner:"Alter Besitzer",oldOwnerTribe:"Alter Stamm",filters:"Filter",date:"Datum",apply:"Anwenden",ennoblements:"Adelungen",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};const a=window.location.host.split(".")[0],s="kiszkowaty_show_latest_ennoblements_cache",d="kiszkowaty_show_latest_ennoblements_filter",w={newOwner:"",newOwnerTribe:"",oldOwner:"",oldOwnerTribe:""},m=l[window.game_data.locale]||l.en_DK,b=()=>(({query:e,variables:n={}}={})=>fetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:n})=>{if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((n=>n(e)))})))({query:"\n query ennoblements($server: String!, $sort: [String!], $limit: Int) {\n ennoblements(server: $server, sort: $sort, limit: $limit) {\n items {\n newOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n oldOwner {\n id\n name\n tribe {\n id\n name\n tag\n }\n }\n ennobledAt\n village {\n id\n name\n x\n y\n }\n }\n }\n }\n ",variables:{server:a,limit:50,sort:["ennobledAt DESC"]}}).then((e=>(((e={})=>{o(s,e)})(e),new Promise((n=>n(e)))))),c=(e,n)=>e&&e.name.toLowerCase().includes(n.toLowerCase()),u=(e,n)=>e&&e.tribe&&(e.tribe.name.toLowerCase().includes(n.toLowerCase())||e.tribe.tag.toLowerCase().includes(n.toLowerCase())),h=(e=[],{newOwner:n,newOwnerTribe:t,oldOwner:r,oldOwnerTribe:o}={})=>e.filter((e=>!(n&&!c(e.newOwner,n))&&(!(t&&!u(e.newOwner,t))&&(!(r&&!c(e.oldOwner,r))&&!(o&&!u(e.oldOwner,o)))))),p=(e,t)=>{e.preventDefault();const r=n({},w,{newOwner:e.target[0].value,newOwnerTribe:e.target[1].value,oldOwner:e.target[2].value,oldOwnerTribe:e.target[3].value});document.querySelector("#le_table tbody").innerHTML=O(h(t,r)).join(""),((e={})=>{o(d,e)})(r)},g=e=>{return e&&e.name?`${e.name} (${e.tribe&&e.tribe.tag?`${e.tribe.tag}`:"-"})`:"-";var n},y=e=>{return`${((e="",n=500,t=500)=>`${e} (${n}|${t}) ${"K"+String(t)[0]+String(n)[0]}`)(e.name,e.x,e.y)}`;var n},O=e=>e.map((e=>{return`\n ${y(e.village)}\n ${g(e.newOwner)}\n ${g(e.oldOwner)}\n ${n=e.ennobledAt,new Date(n).toLocaleDateString(void 0,t||{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}\n `;var n,t})),v=(e=[],r={})=>{const o=n({},w,r),l=`\n
\n

e.substr(0,2))(a),a)}">TWHelp

\n

${m.devNote}

\n

${m.filters}

\n \n \n \n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n ${O(h(e,o)).join("")}\n \n
${m.village}${m.newOwner}${m.oldOwner}${m.date}
\n `;t({title:m.ennoblements,id:"ennoblements",html:l}),((e=[])=>{document.querySelector("#le_form").addEventListener("submit",(n=>{p(n,e)}))})(e)},f=async()=>{try{const e=r(s),n=r(d);e.ennoblements&&Array.isArray(e.ennoblements.items)&&e.ennoblements.items.length>0&&v(e.ennoblements.items,n);const{ennoblements:t}=await b();v(t.items,n)}catch(e){console.log("latestEnnoblements",e)}};(()=>{const e=document.createElement("div");e.style.position="fixed",e.style.top="5px",e.style.left="4px",e.style.zIndex="50000";const n=document.createElement("a");n.innerHTML='',n.title=m.showLatestEnnoblements,n.style.cursor="pointer",n.addEventListener("click",f),e.append(n),document.body.appendChild(e)})()}(); \ No newline at end of file diff --git a/dist/quickbar/mapCoordsPicker.js b/dist/quickbar/mapCoordsPicker.js index 6cb7d1e..84a042b 100644 --- a/dist/quickbar/mapCoordsPicker.js +++ b/dist/quickbar/mapCoordsPicker.js @@ -1 +1 @@ -!function(){const e={pl_PL:{startCoordsPicker:"Uruchom zbieracza koordynat",stopCoordsPicker:"Zatrzymaj zbieracza koordynat",exportedVillages:"Wyeksportowane wioski",cannotDeleteSelectedGroup:"Nie można usunąć wybranej grupy!",select:"Wybierz",delete:"Usuń",add:"Dodaj",save:"Zapisz",groupName:"Nazwa grupy",export:"Eksport"},en_DK:{startCoordsPicker:"Start coords picker",stopCoordsPicker:"Stop coords picker",exportedVillages:"Exported villages",cannotDeleteSelectedGroup:"Cannot delete selected group!",select:"Select",delete:"Delete",add:"Add",save:"Save",groupName:"Group name",export:"Export"},de_DE:{startCoordsPicker:"Starte Koordinaten-Selektor",stopCoordsPicker:"Stoppe Koordinaten-Selektor",exportedVillages:"Exportierte Dörfer",cannotDeleteSelectedGroup:"Gruppe kann nicht gelöscht werden!",select:"Selektieren",delete:"Löschen",add:"Hinzufügen",save:"Speichern",groupName:"Gruppen-Name",export:"Exportieren"}};function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function r(e){for(var r=1;r h2");let l,c,s,p,i=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=localStorage.getItem(e);let o=t;return r&&(o=JSON.parse(r)),o}(n,{started:!1,groups:{All:{villages:[],color:"#ffffff"}},selectedGroup:"All"});const u=e[window.game_data.locale]||e.en_DK,d=()=>{var e,t;e=n,t=i,localStorage.setItem(e,JSON.stringify(t))},g=(e,t)=>{const r=parseInt("".concat(e).concat(t),10),o=TWMap.villages[r];return o?o.id:NaN},m=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"transparent";const o=document.querySelector("#map_village_"+g(e,t));o&&(o.style.boxSizing="border-box",o.style.border="transparent"!==r?"5px solid ".concat(r):"none")},v=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";i.groups[e].villages.forEach((r=>{m(r.x,r.y,t||i.groups[e].color)}))},f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";for(let t in i.groups)v(t,e)},y=(e,t,r)=>{if(r.preventDefault(),isNaN(g(e,t)))return;const o="".concat(e,"|").concat(t);if(i.groups[i.selectedGroup].villages.some((e=>e.key===o)))return i.groups[i.selectedGroup].villages=i.groups[i.selectedGroup].villages.filter((e=>e.key!==o)),void m(e,t,"transparent");i.groups[i.selectedGroup].villages=[...i.groups[i.selectedGroup].villages,{x:e,y:t,key:o}],m(e,t,i.groups[i.selectedGroup].color),(e=>{for(let t in i.groups){if(t===i.selectedGroup)return;i.groups[t].villages=i.groups[t].villages.filter((t=>t.key!==e))}})(o)},b=(e,t)=>{const o=t&&t.name!==i.selectedGroup,n='\n \n \n \n ").concat(t?'"):"","\n ").concat(o?'"):"","\n "),a=document.createElement("form");if(a.innerHTML=n,a.addEventListener("submit",(e=>{e.preventDefault(),t?(t.name===i.selectedGroup&&(i.selectedGroup=e.target[1].value),v(t.name,e.target[0].value),i.groups[e.target[1].value]=r(r({},i.groups[t.name]),{},{color:e.target[0].value}),t.name!==e.target[1].value&&delete i.groups[t.name]):i.groups[e.target[1].value]={color:e.target[0].value,villages:[]},k()})),t){a.querySelector('button[type="button"]').addEventListener("click",(()=>{if(i.selectedGroup===t.name)return UI.ErrorMessage(u.cannotDeleteSelectedGroup);v(t.name,"transparent"),delete i.groups[t.name],a.remove()}));const e=a.querySelector(".selectButton");e&&e.addEventListener("click",(e=>{i.selectedGroup=t.name,k()}))}e.appendChild(a)},k=()=>{c.innerHTML="";for(let e in i.groups)b(c,r(r({},i.groups[e]),{},{name:e}));b(c)},h=()=>{const e=[];for(let t in i.groups)e.push('
\n

'.concat(t,"

\n \n
"));const t="\n ".concat(e.join(""),"\n ");Dialog.show(u.exportedVillages,t)},S=(e,t)=>{TWMap.mapHandler.__spawnSector(e,t),f()},_=()=>{TWMap.map.handler.__onClick=TWMap.map.handler.onClick,TWMap.map.handler.onClick=y,TWMap.mapHandler.__spawnSector=TWMap.map.handler.spawnSector,TWMap.mapHandler.spawnSector=S,l.innerHTML=u.stopCoordsPicker,(()=>{const e=document.createElement("button");e.innerHTML=u.export,e.addEventListener("click",h),s.appendChild(e)})(),f(),k(),p=setInterval(d,500)},x=()=>{i.started?(()=>{"function"==typeof TWMap.map.handler.__onClick&&(TWMap.map.handler.onClick=TWMap.map.handler.__onClick),"function"==typeof TWMap.map.handler.__spawnSector&&(TWMap.mapHandler.spawnSector=TWMap.map.handler.__spawnSector),l.innerHTML=u.startCoordsPicker,c.innerHTML="",s.innerHTML="",f("transparent"),p&&clearInterval(p);for(let e in i.groups)i.groups[e].villages=[]})():_(),i.started=!i.started,d()};!function(){try{l=document.createElement("button"),l.style.marginLeft="5px",l.innerHTML=i.started?u.stopCoordsPicker:u.startCoordsPicker,l.addEventListener("click",x),a.appendChild(l),c=document.createElement("div"),a.parentElement.insertBefore(c,a.nextSibling),s=document.createElement("div"),a.parentElement.insertBefore(s,a.nextSibling),i.started&&_()}catch(e){console.log("Map Coords Picker",e)}}()}(); \ No newline at end of file +!function(){function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(t){for(var r=1;r h2");let a,l,s,p,c=((e,t={})=>{const r=localStorage.getItem(e);let o=t;return r&&(o=JSON.parse(r)),o})(o,{started:!1,groups:{All:{villages:[],color:"#ffffff"}},selectedGroup:"All"});const i=r[window.game_data.locale]||r.en_DK,u=()=>{var e,t;e=o,t=c,localStorage.setItem(e,JSON.stringify(t))},d=(e,t)=>{const r=parseInt(`${e}${t}`,10),o=TWMap.villages[r];return o?o.id:NaN},g=(e,t,r="transparent")=>{const o=document.querySelector("#map_village_"+d(e,t));o&&(o.style.boxSizing="border-box",o.style.border="transparent"!==r?`5px solid ${r}`:"none")},m=(e,t="")=>{c.groups[e].villages.forEach((r=>{g(r.x,r.y,t||c.groups[e].color)}))},v=(e="")=>{for(let t in c.groups)m(t,e)},f=(e,t,r)=>{if(r.preventDefault(),isNaN(d(e,t)))return;const o=`${e}|${t}`;if(c.groups[c.selectedGroup].villages.some((e=>e.key===o)))return c.groups[c.selectedGroup].villages=c.groups[c.selectedGroup].villages.filter((e=>e.key!==o)),void g(e,t,"transparent");c.groups[c.selectedGroup].villages=[...c.groups[c.selectedGroup].villages,{x:e,y:t,key:o}],g(e,t,c.groups[c.selectedGroup].color),(e=>{for(let t in c.groups){if(t===c.selectedGroup)return;c.groups[t].villages=c.groups[t].villages.filter((t=>t.key!==e))}})(o)},y=(e,r)=>{const o=r&&r.name!==c.selectedGroup,n=`\n \n \n \n ${r?``:""}\n ${o?``:""}\n `,a=document.createElement("form");if(a.innerHTML=n,a.addEventListener("submit",(e=>{e.preventDefault(),r?(r.name===c.selectedGroup&&(c.selectedGroup=e.target[1].value),m(r.name,e.target[0].value),c.groups[e.target[1].value]=t({},c.groups[r.name],{color:e.target[0].value}),r.name!==e.target[1].value&&delete c.groups[r.name]):c.groups[e.target[1].value]={color:e.target[0].value,villages:[]},k()})),r){a.querySelector('button[type="button"]').addEventListener("click",(()=>{if(c.selectedGroup===r.name)return UI.ErrorMessage(i.cannotDeleteSelectedGroup);m(r.name,"transparent"),delete c.groups[r.name],a.remove()}));const e=a.querySelector(".selectButton");e&&e.addEventListener("click",(e=>{c.selectedGroup=r.name,k()}))}e.appendChild(a)},k=()=>{l.innerHTML="";for(let e in c.groups)y(l,t({},c.groups[e],{name:e}));y(l)},b=()=>{const e=[];for(let t in c.groups)e.push(`
\n

${t}

\n \n
`);const t=`\n ${e.join("")}\n `;Dialog.show(i.exportedVillages,t)},S=(e,t)=>{TWMap.mapHandler.__spawnSector(e,t),v()},h=()=>{TWMap.map.handler.__onClick=TWMap.map.handler.onClick,TWMap.map.handler.onClick=f,TWMap.mapHandler.__spawnSector=TWMap.map.handler.spawnSector,TWMap.mapHandler.spawnSector=S,a.innerHTML=i.stopCoordsPicker,(()=>{const e=document.createElement("button");e.innerHTML=i.export,e.addEventListener("click",b),s.appendChild(e)})(),v(),k(),p=setInterval(u,500)},_=()=>{c.started?(()=>{"function"==typeof TWMap.map.handler.__onClick&&(TWMap.map.handler.onClick=TWMap.map.handler.__onClick),"function"==typeof TWMap.map.handler.__spawnSector&&(TWMap.mapHandler.spawnSector=TWMap.map.handler.__spawnSector),a.innerHTML=i.startCoordsPicker,l.innerHTML="",s.innerHTML="",v("transparent"),p&&clearInterval(p);for(let e in c.groups)c.groups[e].villages=[]})():h(),c.started=!c.started,u()};!function(){try{a=document.createElement("button"),a.style.marginLeft="5px",a.innerHTML=c.started?i.stopCoordsPicker:i.startCoordsPicker,a.addEventListener("click",_),n.appendChild(a),l=document.createElement("div"),n.parentElement.insertBefore(l,n.nextSibling),s=document.createElement("div"),n.parentElement.insertBefore(s,n.nextSibling),c.started&&h()}catch(e){console.log("Map Coords Picker",e)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/warStatsGenerator.js b/dist/quickbar/warStatsGenerator.js index 7848c40..e0fcbde 100644 --- a/dist/quickbar/warStatsGenerator.js +++ b/dist/quickbar/warStatsGenerator.js @@ -1 +1 @@ -!function(){const e="https://api.tribalwarshelp.com/graphql";var t=function(){let{query:t,variables:n={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(e,{method:"POST",body:JSON.stringify({query:t,variables:n}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((e=>{let{data:t,errors:n}=e;if(n&&Array.isArray(n)&&n.length>0)throw new Error(n[0].message);return new Promise((e=>e(t)))}))};const n={pl_PL:{conquers:"Przejęcia",sideOne:"Strona 1",sideTwo:"Strona 2",difference:"Różnica",tribeTag:"Skrót plemienia",delete:"Usuń",notEnoughTribesSideOne:"Musisz dodać jakiekolwiek plemię do strony 1.",notEnoughTribesSideTwo:"Musisz dodać jakiekolwiek plemię do strony 2.",from:"Od",to:"Do",warStatsGenerator:"Generator statystyk wojennych",generateWarStats:"Wygeneruj statystyki wojenne",addTribe:"Dodaj plemię",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{conquers:"Conquers",sideOne:"Side one",sideTwo:"Side two",difference:"Difference",tribeTag:"Tribe tag",delete:"Delete",notEnoughTribesSideOne:"Not enough tribes added to the side one.",notEnoughTribesSideTwo:"Not enough tribes added to the side two.",from:"From",to:"To",warStatsGenerator:"War stats generator",generateWarStats:"Generate war stats",addTribe:"Add tribe",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{conquers:"Eroberungen",sideOne:"Partei A",sideTwo:"Partei B",difference:"Differenz",tribeTag:"Stammeskürzel",delete:"Löschen",notEnoughTribesSideOne:"Nicht genügend Stämme hinzugefügt zu Partei A.",notEnoughTribesSideTwo:"Nicht genügend Stämme hinzugefügt zu Partei B.",from:"Von",to:"Zu",warStatsGenerator:"Kriegsstatistik Generator",generateWarStats:"Generiere Statistik",addTribe:"Stamm Hinzufügen",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};const o="tribalwarshelp.com",r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(e,".").concat(o,"/server/").concat(t)},i=".popup_box",a=window.location.host.split(".")[0],s="sideOneAdd",c="sideOneInputs",d="sideTwoAdd",l="sideTwoInputs",u="from",m="warStatsResult",b=n[window.game_data.locale]||n.en_DK,g=e=>()=>{const t=document.createElement("div");t.innerHTML="\n \n \n \n "),t.querySelector("button").addEventListener("click",(()=>{t.remove()})),e.appendChild(t)},h=async e=>{e.preventDefault();const n=[],o=[];if(e.target.querySelectorAll("#".concat(c," input")).forEach((e=>{e.value.trim()&&n.push(e.value.trim())})),e.target.querySelectorAll("#".concat(l," input")).forEach((e=>{e.value.trim()&&o.push(e.value.trim())})),console.log("sideOneTags",n,"sideTwoTags",o),0===n.length)return UI.ErrorMessage(b.notEnoughTribesSideOne);if(0===o.length)return UI.ErrorMessage(b.notEnoughTribesSideTwo);const r=document.querySelectorAll("".concat(i," form #").concat(u," input"));let s;2===r.length&&r[0].value&&r[1].value&&(s=new Date("".concat(r[0].value,"T").concat(r[1].value,":00")));const d=document.querySelectorAll("".concat(i," form #").concat("to"," input"));let m;2===d.length&&d[0].value&&d[1].value&&(m=new Date("".concat(d[0].value,"T").concat(d[1].value,":00"))),e.target.querySelectorAll("button").forEach((e=>{e.disabled=!0}));try{const{tribes:e}=await t({query:"\n query tribes($server: String!, $filter: TribeFilter) {\n tribes(server: $server, filter: $filter) {\n items {\n id\n tag\n }\n }\n }\n",variables:{server:a,filter:{tag:[...n,...o]}}}),r=e.items.filter((e=>n.some((t=>e.tag===t)))).map((e=>e.id)),i=e.items.filter((e=>o.some((t=>e.tag===t)))).map((e=>e.id)),{sideOneEnnoblements:c,sideTwoEnnoblements:d}=await t({query:"\n query ennoblements($server: String!, $sideOneFilter: EnnoblementFilter, $sideTwoFilter: EnnoblementFilter) {\n sideOneEnnoblements: ennoblements(server: $server, filter: $sideOneFilter) {\n total\n }\n sideTwoEnnoblements: ennoblements(server: $server, filter: $sideTwoFilter) {\n total\n }\n }\n",variables:{server:a,sideOneFilter:{newOwnerTribeID:r,oldOwnerTribeID:i,ennobledAtGTE:s,ennobledAtLTE:m},sideTwoFilter:{newOwnerTribeID:i,oldOwnerTribeID:r,ennobledAtGTE:s,ennobledAtLTE:m}}});console.log("sideOneEnnoblements",c,"sideTwoEnnoblements",d),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const n="\n
\n

".concat(b.conquers,':

\n

').concat(b.sideOne,": ").concat(e,'

\n

').concat(b.sideTwo,": ").concat(t,'

\n

').concat(b.difference,": ").concat(Math.abs(e-t),'

\n
\n
\n ');document.querySelector("#warStatsResult").innerHTML=n}(c.total,d.total)}catch(e){console.log("handleFormSubmit",e)}e.target.querySelectorAll("button").forEach((e=>{e.disabled=!1}))},v=e=>{const t='\n
\n

TWHelp

\n

').concat(b.devNote,'

\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n

').concat(b.sideOne,'

\n
\n
\n \n
\n
\n
\n

').concat(b.sideTwo,'

\n
\n
\n \n
\n
\n
\n \n
\n
\n ");!function(){let{html:e,id:t,title:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Dialog.show(t,"

".concat(n,"

")+e);const o=document.querySelector(i);o&&(o.style.width="auto",o.style.maxWidth="1000px")}({title:b.warStatsGenerator,id:"warStats",html:t,e:e}),document.querySelector("".concat(i," form #").concat(s)).addEventListener("click",g(document.querySelector("#sideOneInputs"))),document.querySelector("".concat(i," form #").concat(d)).addEventListener("click",g(document.querySelector("#sideTwoInputs"))),document.querySelector("".concat(i," form")).addEventListener("submit",h)};!function(){try{(()=>{const e=document.createElement("div"),t=document.createElement("button");t.innerHTML=b.generateWarStats,t.addEventListener("click",v),e.appendChild(t),document.querySelector("#wars_ranking_table").parentElement.prepend(e)})()}catch(e){console.log("war stats",e)}}()}(); \ No newline at end of file +!function(){var e=({query:e,variables:t={}}={})=>fetch("https://api.tribalwarshelp.com/graphql",{method:"POST",body:JSON.stringify({query:e,variables:t}),headers:{"Content-Type":"application/json"}}).then((e=>e.json())).then((({data:e,errors:t})=>{if(t&&Array.isArray(t)&&t.length>0)throw new Error(t[0].message);return new Promise((t=>t(e)))}));const t={pl_PL:{conquers:"Przejęcia",sideOne:"Strona 1",sideTwo:"Strona 2",difference:"Różnica",tribeTag:"Skrót plemienia",delete:"Usuń",notEnoughTribesSideOne:"Musisz dodać jakiekolwiek plemię do strony 1.",notEnoughTribesSideTwo:"Musisz dodać jakiekolwiek plemię do strony 2.",from:"Od",to:"Do",warStatsGenerator:"Generator statystyk wojennych",generateWarStats:"Wygeneruj statystyki wojenne",addTribe:"Dodaj plemię",devNote:"Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :)."},en_DK:{conquers:"Conquers",sideOne:"Side one",sideTwo:"Side two",difference:"Difference",tribeTag:"Tribe tag",delete:"Delete",notEnoughTribesSideOne:"Not enough tribes added to the side one.",notEnoughTribesSideTwo:"Not enough tribes added to the side two.",from:"From",to:"To",warStatsGenerator:"War stats generator",generateWarStats:"Generate war stats",addTribe:"Add tribe",devNote:"Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)."},de_DE:{conquers:"Eroberungen",sideOne:"Partei A",sideTwo:"Partei B",difference:"Differenz",tribeTag:"Stammeskürzel",delete:"Löschen",notEnoughTribesSideOne:"Nicht genügend Stämme hinzugefügt zu Partei A.",notEnoughTribesSideTwo:"Nicht genügend Stämme hinzugefügt zu Partei B.",from:"Von",to:"Zu",warStatsGenerator:"Kriegsstatistik Generator",generateWarStats:"Generiere Statistik",addTribe:"Stamm Hinzufügen",devNote:"Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)."}};const n=(e="",t="")=>`https://${e}.tribalwarshelp.com/server/${t}`,r=".popup_box";var i=({html:e,id:t,title:n}={})=>{Dialog.show(t,`

${n}

`+e);const i=document.querySelector(r);i&&(i.style.width="auto",i.style.maxWidth="1000px")};const o=window.location.host.split(".")[0],s=t[window.game_data.locale]||t.en_DK,a=e=>()=>{const t=document.createElement("div");t.innerHTML=`\n \n \n \n `,t.querySelector("button").addEventListener("click",(()=>{t.remove()})),e.appendChild(t)},d=async t=>{t.preventDefault();const n=[],r=[];if(t.target.querySelectorAll("#sideOneInputs input").forEach((e=>{e.value.trim()&&n.push(e.value.trim())})),t.target.querySelectorAll("#sideTwoInputs input").forEach((e=>{e.value.trim()&&r.push(e.value.trim())})),console.log("sideOneTags",n,"sideTwoTags",r),0===n.length)return UI.ErrorMessage(s.notEnoughTribesSideOne);if(0===r.length)return UI.ErrorMessage(s.notEnoughTribesSideTwo);const i=document.querySelectorAll(".popup_box form #from input");let a;2===i.length&&i[0].value&&i[1].value&&(a=new Date(`${i[0].value}T${i[1].value}:00`));const d=document.querySelectorAll(".popup_box form #to input");let l;2===d.length&&d[0].value&&d[1].value&&(l=new Date(`${d[0].value}T${d[1].value}:00`)),t.target.querySelectorAll("button").forEach((e=>{e.disabled=!0}));try{const{tribes:t}=await e({query:"\n query tribes($server: String!, $filter: TribeFilter) {\n tribes(server: $server, filter: $filter) {\n items {\n id\n tag\n }\n }\n }\n",variables:{server:o,filter:{tag:[...n,...r]}}}),i=t.items.filter((e=>n.some((t=>e.tag===t)))).map((e=>e.id)),d=t.items.filter((e=>r.some((t=>e.tag===t)))).map((e=>e.id)),{sideOneEnnoblements:u,sideTwoEnnoblements:m}=await e({query:"\n query ennoblements($server: String!, $sideOneFilter: EnnoblementFilter, $sideTwoFilter: EnnoblementFilter) {\n sideOneEnnoblements: ennoblements(server: $server, filter: $sideOneFilter) {\n total\n }\n sideTwoEnnoblements: ennoblements(server: $server, filter: $sideTwoFilter) {\n total\n }\n }\n",variables:{server:o,sideOneFilter:{newOwnerTribeID:i,oldOwnerTribeID:d,ennobledAtGTE:a,ennobledAtLTE:l},sideTwoFilter:{newOwnerTribeID:d,oldOwnerTribeID:i,ennobledAtGTE:a,ennobledAtLTE:l}}});console.log("sideOneEnnoblements",u,"sideTwoEnnoblements",m),((e=0,t=0)=>{const n=`\n
\n

${s.conquers}:

\n

${s.sideOne}: ${e}

\n

${s.sideTwo}: ${t}

\n

${s.difference}: ${Math.abs(e-t)}

\n
\n
\n `;document.querySelector("#warStatsResult").innerHTML=n})(u.total,m.total)}catch(e){console.log("handleFormSubmit",e)}t.target.querySelectorAll("button").forEach((e=>{e.disabled=!1}))},l=e=>{const t=`\n
\n

e.substr(0,2))(o),o)}">TWHelp

\n

${s.devNote}

\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n

${s.sideOne}

\n
\n
\n \n
\n
\n
\n

${s.sideTwo}

\n
\n
\n \n
\n
\n
\n \n
\n
\n `;i({title:s.warStatsGenerator,id:"warStats",html:t,e:e}),document.querySelector(".popup_box form #sideOneAdd").addEventListener("click",a(document.querySelector("#sideOneInputs"))),document.querySelector(".popup_box form #sideTwoAdd").addEventListener("click",a(document.querySelector("#sideTwoInputs"))),document.querySelector(".popup_box form").addEventListener("submit",d)};!function(){try{(()=>{const e=document.createElement("div"),t=document.createElement("button");t.innerHTML=s.generateWarStats,t.addEventListener("click",l),e.appendChild(t),document.querySelector("#wars_ranking_table").parentElement.prepend(e)})()}catch(e){console.log("war stats",e)}}()}(); \ No newline at end of file diff --git a/dist/warStatsGenerator.js b/dist/warStatsGenerator.js index bfeb94d..e3f97f0 100644 --- a/dist/warStatsGenerator.js +++ b/dist/warStatsGenerator.js @@ -1,257 +1,320 @@ (function () { - const $3af05e958b2a20a26445518aba292c50$export$API_URI = 'https://api.tribalwarshelp.com/graphql'; - var $3af05e958b2a20a26445518aba292c50$export$default = function () { - let {query, variables = {}} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - return fetch($3af05e958b2a20a26445518aba292c50$export$API_URI, { - method: 'POST', - body: JSON.stringify({ - query, - variables - }), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - return res.json(); - }).then(_ref => { - let {data, errors} = _ref; - if (errors && Array.isArray(errors) && errors.length > 0) { - throw new Error(errors[0].message); - } - return new Promise(resolve => resolve(data)); +const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql'; +var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = { +} } = { +})=>{ + return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, { + method: 'POST', + body: JSON.stringify({ + query: query, + variables: variables + }), + headers: { + 'Content-Type': 'application/json' + } + }).then((res)=>{ + return res.json(); + }).then(({ data: data , errors: errors })=>{ + if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message); + return new Promise((resolve)=>resolve(data) + ); }); - }; - const $5adf165e6af4801598a359969d322bf5$var$translations = { +}; + + +const $dd2f3b715639879a$var$translations = { pl_PL: { - conquers: 'Przejęcia', - sideOne: 'Strona 1', - sideTwo: 'Strona 2', - difference: 'Różnica', - tribeTag: 'Skrót plemienia', - delete: 'Usuń', - notEnoughTribesSideOne: 'Musisz dodać jakiekolwiek plemię do strony 1.', - notEnoughTribesSideTwo: 'Musisz dodać jakiekolwiek plemię do strony 2.', - from: 'Od', - to: 'Do', - warStatsGenerator: 'Generator statystyk wojennych', - generateWarStats: 'Wygeneruj statystyki wojenne', - addTribe: 'Dodaj plemię', - devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' + conquers: 'Przejęcia', + sideOne: 'Strona 1', + sideTwo: 'Strona 2', + difference: 'Różnica', + tribeTag: 'Skrót plemienia', + delete: 'Usuń', + notEnoughTribesSideOne: 'Musisz dodać jakiekolwiek plemię do strony 1.', + notEnoughTribesSideTwo: 'Musisz dodać jakiekolwiek plemię do strony 2.', + from: 'Od', + to: 'Do', + warStatsGenerator: 'Generator statystyk wojennych', + generateWarStats: 'Wygeneruj statystyki wojenne', + addTribe: 'Dodaj plemię', + devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' }, en_DK: { - conquers: 'Conquers', - sideOne: 'Side one', - sideTwo: 'Side two', - difference: 'Difference', - tribeTag: 'Tribe tag', - delete: 'Delete', - notEnoughTribesSideOne: 'Not enough tribes added to the side one.', - notEnoughTribesSideTwo: 'Not enough tribes added to the side two.', - from: 'From', - to: 'To', - warStatsGenerator: 'War stats generator', - generateWarStats: 'Generate war stats', - addTribe: 'Add tribe', - devNote: "Information from the author - I've just launched a new stat tracking website, don't forget to check it out :)." + conquers: 'Conquers', + sideOne: 'Side one', + sideTwo: 'Side two', + difference: 'Difference', + tribeTag: 'Tribe tag', + delete: 'Delete', + notEnoughTribesSideOne: 'Not enough tribes added to the side one.', + notEnoughTribesSideTwo: 'Not enough tribes added to the side two.', + from: 'From', + to: 'To', + warStatsGenerator: 'War stats generator', + generateWarStats: 'Generate war stats', + addTribe: 'Add tribe', + devNote: `Information from the author - I've just launched a new stat tracking website, don't forget to check it out :).` }, de_DE: { - conquers: 'Eroberungen', - sideOne: 'Partei A', - sideTwo: 'Partei B', - difference: 'Differenz', - tribeTag: 'Stammeskürzel', - delete: 'Löschen', - notEnoughTribesSideOne: 'Nicht genügend Stämme hinzugefügt zu Partei A.', - notEnoughTribesSideTwo: 'Nicht genügend Stämme hinzugefügt zu Partei B.', - from: 'Von', - to: 'Zu', - warStatsGenerator: 'Kriegsstatistik Generator', - generateWarStats: 'Generiere Statistik', - addTribe: 'Stamm Hinzufügen', - devNote: "Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :)." + conquers: 'Eroberungen', + sideOne: 'Partei A', + sideTwo: 'Partei B', + difference: 'Differenz', + tribeTag: 'Stammeskürzel', + delete: 'Löschen', + notEnoughTribesSideOne: 'Nicht genügend Stämme hinzugefügt zu Partei A.', + notEnoughTribesSideTwo: 'Nicht genügend Stämme hinzugefügt zu Partei B.', + from: 'Von', + to: 'Zu', + warStatsGenerator: 'Kriegsstatistik Generator', + generateWarStats: 'Generiere Statistik', + addTribe: 'Stamm Hinzufügen', + devNote: `Information vom Entwickler - Ich habe eine neue Statistik-Website gestartet, vergiss nicht diese zu testen :).` } - }; - var $5adf165e6af4801598a359969d322bf5$export$default = () => $5adf165e6af4801598a359969d322bf5$var$translations[window.game_data.locale] || $5adf165e6af4801598a359969d322bf5$var$translations.en_DK; - var $075335fbc46b1a64d60d11b353f74662$export$default = () => window.location.host.split('.')[0]; - var $1f14636dcc53402ba1b7661b758ca0aa$export$default = function () { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return server.substr(0, 2); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL = 'tribalwarshelp.com'; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage = function buildURLToServerPage() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - return ("https://").concat(version, ".").concat($d147509fefd1cb8b3b83e8f38f763543$export$BASE_URL, "/server/").concat(server); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile = function buildURLToProfile() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - let entity = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ''; - return ("").concat($d147509fefd1cb8b3b83e8f38f763543$export$buildURLToServerPage(version, server), "/").concat(entity, "/").concat(id); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildPlayerURL = function buildPlayerURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'player'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildTribeURL = function buildTribeURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'tribe'); - }; - const $d147509fefd1cb8b3b83e8f38f763543$export$buildVillageURL = function buildVillageURL() { - let version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let server = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - return $d147509fefd1cb8b3b83e8f38f763543$export$buildURLToProfile(version, server, id, 'village'); - }; - const $6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR = '.popup_box'; - const $6412e4d8722bc72f55b3c382206290ed$export$default = function showPopup() { - let {html, id, title} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - Dialog.show(id, ("

").concat(title, "

") + html); - const popup = document.querySelector($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR); +}; +var $dd2f3b715639879a$export$2e2bcd8739ae039 = ()=>$dd2f3b715639879a$var$translations[window.game_data.locale] || $dd2f3b715639879a$var$translations.en_DK +; + + +var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0] +; + + +var $5b3edb3901c8177a$export$2e2bcd8739ae039 = (server = '')=>server.substr(0, 2) +; + + +const $f3b273bd698d94bc$export$ca6dda5263526f75 = 'tribalwarshelp.com'; +const $f3b273bd698d94bc$export$5d5850cc00079a21 = (version = '', server = '')=>{ + return `https://${version}.${$f3b273bd698d94bc$export$ca6dda5263526f75}/server/${server}`; +}; +const $f3b273bd698d94bc$export$a4588dcb88e3f9db = (version = '', server = '', id = 0, entity = '')=>{ + return `${$f3b273bd698d94bc$export$5d5850cc00079a21(version, server)}/${entity}/${id}`; +}; +const $f3b273bd698d94bc$export$3df7b9b48f38839e = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'player'); +}; +const $f3b273bd698d94bc$export$7345792e21cfc457 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'tribe'); +}; +const $f3b273bd698d94bc$export$e537a41a0fc85cc5 = (version = '', server = '', id = 0)=>{ + return $f3b273bd698d94bc$export$a4588dcb88e3f9db(version, server, id, 'village'); +}; + + +const $20636c16dad2c11a$export$21d4bed11ae27f0b = '.popup_box'; +const $20636c16dad2c11a$var$showPopup = ({ html: html , id: id , title: title } = { +})=>{ + Dialog.show(id, `

${title}

` + html); + const popup = document.querySelector($20636c16dad2c11a$export$21d4bed11ae27f0b); if (popup) { - popup.style.width = 'auto'; - popup.style.maxWidth = '1000px'; + popup.style.width = 'auto'; + popup.style.maxWidth = '1000px'; } - }; - // ==UserScript== - // @name War stats generator - // @namespace https://github.com/tribalwarshelp/scripts - // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js - // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js - // @version 0.3.5 - // @description War stats generator - // @author Kichiyaki https://dwysokinski.me/ - // @match *://*/game.php*screen=ranking*mode=wars* - // @grant none - // @run-at document-end - // ==/UserScript== - const $1f04f025e20ce30abc71521ae440de01$var$SERVER = $075335fbc46b1a64d60d11b353f74662$export$default(); - const $1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_BUTTON_ID = 'sideOneAdd'; - const $1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_INPUT_CONTAINER_ID = 'sideOneInputs'; - const $1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_BUTTON_ID = 'sideTwoAdd'; - const $1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_INPUT_CONTAINER_ID = 'sideTwoInputs'; - const $1f04f025e20ce30abc71521ae440de01$var$TO_INPUT_ID = 'to'; - const $1f04f025e20ce30abc71521ae440de01$var$FROM_INPUT_ID = 'from'; - const $1f04f025e20ce30abc71521ae440de01$var$RESULT_CONTAINER_ID = 'warStatsResult'; - const $1f04f025e20ce30abc71521ae440de01$var$TRIBES_QUERY = "\n query tribes($server: String!, $filter: TribeFilter) {\n tribes(server: $server, filter: $filter) {\n items {\n id\n tag\n }\n }\n }\n"; - const $1f04f025e20ce30abc71521ae440de01$var$ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $sideOneFilter: EnnoblementFilter, $sideTwoFilter: EnnoblementFilter) {\n sideOneEnnoblements: ennoblements(server: $server, filter: $sideOneFilter) {\n total\n }\n sideTwoEnnoblements: ennoblements(server: $server, filter: $sideTwoFilter) {\n total\n }\n }\n"; - const $1f04f025e20ce30abc71521ae440de01$var$translations = $5adf165e6af4801598a359969d322bf5$export$default(); - const $1f04f025e20ce30abc71521ae440de01$var$showResult = function showResult() { - let sideOne = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - let sideTwo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - const html = ("\n
\n

").concat($1f04f025e20ce30abc71521ae440de01$var$translations.conquers, ":

\n

").concat($1f04f025e20ce30abc71521ae440de01$var$translations.sideOne, ": ").concat(sideOne, "

\n

").concat($1f04f025e20ce30abc71521ae440de01$var$translations.sideTwo, ": ").concat(sideTwo, "

\n

").concat($1f04f025e20ce30abc71521ae440de01$var$translations.difference, ": ").concat(Math.abs(sideOne - sideTwo), "

\n
\n
\n "); - document.querySelector('#' + $1f04f025e20ce30abc71521ae440de01$var$RESULT_CONTAINER_ID).innerHTML = html; - }; - const $1f04f025e20ce30abc71521ae440de01$var$createAddTribeHandler = container => { - return () => { - const div = document.createElement('div'); - div.innerHTML = ("\n \n \n \n "); - div.querySelector('button').addEventListener('click', () => { - div.remove(); - }); - container.appendChild(div); +}; +var $20636c16dad2c11a$export$2e2bcd8739ae039 = $20636c16dad2c11a$var$showPopup; + + +// ==UserScript== +// @name War stats generator +// @namespace https://github.com/tribalwarshelp/scripts +// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js +// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js +// @version 0.3.5 +// @description War stats generator +// @author Kichiyaki https://dwysokinski.me/ +// @match *://*/game.php*screen=ranking*mode=wars* +// @grant none +// @run-at document-end +// ==/UserScript== +const $813af46890790f24$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039(); +const $813af46890790f24$var$SIDE_ONE_BUTTON_ID = 'sideOneAdd'; +const $813af46890790f24$var$SIDE_ONE_INPUT_CONTAINER_ID = 'sideOneInputs'; +const $813af46890790f24$var$SIDE_TWO_BUTTON_ID = 'sideTwoAdd'; +const $813af46890790f24$var$SIDE_TWO_INPUT_CONTAINER_ID = 'sideTwoInputs'; +const $813af46890790f24$var$TO_INPUT_ID = 'to'; +const $813af46890790f24$var$FROM_INPUT_ID = 'from'; +const $813af46890790f24$var$RESULT_CONTAINER_ID = 'warStatsResult'; +const $813af46890790f24$var$TRIBES_QUERY = ` + query tribes($server: String!, $filter: TribeFilter) { + tribes(server: $server, filter: $filter) { + items { + id + tag + } + } + } +`; +const $813af46890790f24$var$ENNOBLEMENTS_QUERY = ` + query ennoblements($server: String!, $sideOneFilter: EnnoblementFilter, $sideTwoFilter: EnnoblementFilter) { + sideOneEnnoblements: ennoblements(server: $server, filter: $sideOneFilter) { + total + } + sideTwoEnnoblements: ennoblements(server: $server, filter: $sideTwoFilter) { + total + } + } +`; +const $813af46890790f24$var$translations = $dd2f3b715639879a$export$2e2bcd8739ae039(); +const $813af46890790f24$var$showResult = (sideOne = 0, sideTwo = 0)=>{ + const html = ` +
+

${$813af46890790f24$var$translations.conquers}:

+

${$813af46890790f24$var$translations.sideOne}: ${sideOne}

+

${$813af46890790f24$var$translations.sideTwo}: ${sideTwo}

+

${$813af46890790f24$var$translations.difference}: ${Math.abs(sideOne - sideTwo)}

+
+
+ `; + document.querySelector('#' + $813af46890790f24$var$RESULT_CONTAINER_ID).innerHTML = html; +}; +const $813af46890790f24$var$createAddTribeHandler = (container)=>{ + return ()=>{ + const div = document.createElement('div'); + div.innerHTML = ` + + + + `; + div.querySelector('button').addEventListener('click', ()=>{ + div.remove(); + }); + container.appendChild(div); }; - }; - const $1f04f025e20ce30abc71521ae440de01$var$handleFormSubmit = async e => { +}; +const $813af46890790f24$var$handleFormSubmit = async (e)=>{ e.preventDefault(); const sideOneTags = []; const sideTwoTags = []; - e.target.querySelectorAll(("#").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_INPUT_CONTAINER_ID, " input")).forEach(el => { - if (el.value.trim()) { - sideOneTags.push(el.value.trim()); - } + e.target.querySelectorAll(`#${$813af46890790f24$var$SIDE_ONE_INPUT_CONTAINER_ID} input`).forEach((el)=>{ + if (el.value.trim()) sideOneTags.push(el.value.trim()); }); - e.target.querySelectorAll(("#").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_INPUT_CONTAINER_ID, " input")).forEach(el => { - if (el.value.trim()) { - sideTwoTags.push(el.value.trim()); - } + e.target.querySelectorAll(`#${$813af46890790f24$var$SIDE_TWO_INPUT_CONTAINER_ID} input`).forEach((el)=>{ + if (el.value.trim()) sideTwoTags.push(el.value.trim()); }); console.log('sideOneTags', sideOneTags, 'sideTwoTags', sideTwoTags); - if (sideOneTags.length === 0) return UI.ErrorMessage($1f04f025e20ce30abc71521ae440de01$var$translations.notEnoughTribesSideOne); - if (sideTwoTags.length === 0) return UI.ErrorMessage($1f04f025e20ce30abc71521ae440de01$var$translations.notEnoughTribesSideTwo); - const fromInputs = document.querySelectorAll(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$FROM_INPUT_ID, " input")); + if (sideOneTags.length === 0) return UI.ErrorMessage($813af46890790f24$var$translations.notEnoughTribesSideOne); + if (sideTwoTags.length === 0) return UI.ErrorMessage($813af46890790f24$var$translations.notEnoughTribesSideTwo); + const fromInputs = document.querySelectorAll(`${$20636c16dad2c11a$export$21d4bed11ae27f0b} form #${$813af46890790f24$var$FROM_INPUT_ID} input`); let ennobledAtGTE; - if (fromInputs.length === 2 && fromInputs[0].value && fromInputs[1].value) { - ennobledAtGTE = new Date(("").concat(fromInputs[0].value, "T").concat(fromInputs[1].value, ":00")); - } - const toInputs = document.querySelectorAll(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$TO_INPUT_ID, " input")); + if (fromInputs.length === 2 && fromInputs[0].value && fromInputs[1].value) ennobledAtGTE = new Date(`${fromInputs[0].value}T${fromInputs[1].value}:00`); + const toInputs = document.querySelectorAll(`${$20636c16dad2c11a$export$21d4bed11ae27f0b} form #${$813af46890790f24$var$TO_INPUT_ID} input`); let ennobledAtLTE; - if (toInputs.length === 2 && toInputs[0].value && toInputs[1].value) { - ennobledAtLTE = new Date(("").concat(toInputs[0].value, "T").concat(toInputs[1].value, ":00")); - } - e.target.querySelectorAll('button').forEach(button => { - button.disabled = true; + if (toInputs.length === 2 && toInputs[0].value && toInputs[1].value) ennobledAtLTE = new Date(`${toInputs[0].value}T${toInputs[1].value}:00`); + e.target.querySelectorAll('button').forEach((button)=>{ + button.disabled = true; }); try { - const {tribes} = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $1f04f025e20ce30abc71521ae440de01$var$TRIBES_QUERY, - variables: { - server: $1f04f025e20ce30abc71521ae440de01$var$SERVER, - filter: { - tag: [...sideOneTags, ...sideTwoTags] - } - } - }); - const sideOneTribes = tribes.items.filter(item => sideOneTags.some(tag => item.tag === tag)).map(tribe => tribe.id); - const sideTwoTribes = tribes.items.filter(item => sideTwoTags.some(tag => item.tag === tag)).map(tribe => tribe.id); - const {sideOneEnnoblements, sideTwoEnnoblements} = await $3af05e958b2a20a26445518aba292c50$export$default({ - query: $1f04f025e20ce30abc71521ae440de01$var$ENNOBLEMENTS_QUERY, - variables: { - server: $1f04f025e20ce30abc71521ae440de01$var$SERVER, - sideOneFilter: { - newOwnerTribeID: sideOneTribes, - oldOwnerTribeID: sideTwoTribes, - ennobledAtGTE, - ennobledAtLTE - }, - sideTwoFilter: { - newOwnerTribeID: sideTwoTribes, - oldOwnerTribeID: sideOneTribes, - ennobledAtGTE, - ennobledAtLTE - } - } - }); - console.log('sideOneEnnoblements', sideOneEnnoblements, 'sideTwoEnnoblements', sideTwoEnnoblements); - $1f04f025e20ce30abc71521ae440de01$var$showResult(sideOneEnnoblements.total, sideTwoEnnoblements.total); + const { tribes: tribes } = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $813af46890790f24$var$TRIBES_QUERY, + variables: { + server: $813af46890790f24$var$SERVER, + filter: { + tag: [ + ...sideOneTags, + ...sideTwoTags + ] + } + } + }); + const sideOneTribes = tribes.items.filter((item)=>sideOneTags.some((tag)=>item.tag === tag + ) + ).map((tribe)=>tribe.id + ); + const sideTwoTribes = tribes.items.filter((item)=>sideTwoTags.some((tag)=>item.tag === tag + ) + ).map((tribe)=>tribe.id + ); + const { sideOneEnnoblements: sideOneEnnoblements , sideTwoEnnoblements: sideTwoEnnoblements } = await $902f167bfdc7b30b$export$2e2bcd8739ae039({ + query: $813af46890790f24$var$ENNOBLEMENTS_QUERY, + variables: { + server: $813af46890790f24$var$SERVER, + sideOneFilter: { + newOwnerTribeID: sideOneTribes, + oldOwnerTribeID: sideTwoTribes, + ennobledAtGTE: ennobledAtGTE, + ennobledAtLTE: ennobledAtLTE + }, + sideTwoFilter: { + newOwnerTribeID: sideTwoTribes, + oldOwnerTribeID: sideOneTribes, + ennobledAtGTE: ennobledAtGTE, + ennobledAtLTE: ennobledAtLTE + } + } + }); + console.log('sideOneEnnoblements', sideOneEnnoblements, 'sideTwoEnnoblements', sideTwoEnnoblements); + $813af46890790f24$var$showResult(sideOneEnnoblements.total, sideTwoEnnoblements.total); } catch (error) { - console.log('handleFormSubmit', error); + console.log('handleFormSubmit', error); } - e.target.querySelectorAll('button').forEach(button => { - button.disabled = false; + e.target.querySelectorAll('button').forEach((button)=>{ + button.disabled = false; }); - }; - const $1f04f025e20ce30abc71521ae440de01$var$showWarStatsForm = e => { - const html = ("\n
\n

TWHelp

\n

").concat($1f04f025e20ce30abc71521ae440de01$var$translations.devNote, "

\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n

").concat($1f04f025e20ce30abc71521ae440de01$var$translations.sideOne, "

\n
\n
\n \n
\n
\n
\n

").concat($1f04f025e20ce30abc71521ae440de01$var$translations.sideTwo, "

\n
\n
\n \n
\n
\n
\n \n
\n
\n "); - $6412e4d8722bc72f55b3c382206290ed$export$default({ - title: $1f04f025e20ce30abc71521ae440de01$var$translations.warStatsGenerator, - id: 'warStats', - html, - e +}; +const $813af46890790f24$var$showWarStatsForm = (e)=>{ + const html = ` +
+

TWHelp

+

${$813af46890790f24$var$translations.devNote}

+
+
+
+
+ + + +
+
+ + + +
+
+
+
+

${$813af46890790f24$var$translations.sideOne}

+
+
+ +
+
+
+

${$813af46890790f24$var$translations.sideTwo}

+
+
+ +
+
+
+ +
+
+ `; + $20636c16dad2c11a$export$2e2bcd8739ae039({ + title: $813af46890790f24$var$translations.warStatsGenerator, + id: 'warStats', + html: html, + e: e }); - document.querySelector(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_BUTTON_ID)).addEventListener('click', $1f04f025e20ce30abc71521ae440de01$var$createAddTribeHandler(document.querySelector('#' + $1f04f025e20ce30abc71521ae440de01$var$SIDE_ONE_INPUT_CONTAINER_ID))); - document.querySelector(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form #").concat($1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_BUTTON_ID)).addEventListener('click', $1f04f025e20ce30abc71521ae440de01$var$createAddTribeHandler(document.querySelector('#' + $1f04f025e20ce30abc71521ae440de01$var$SIDE_TWO_INPUT_CONTAINER_ID))); - document.querySelector(("").concat($6412e4d8722bc72f55b3c382206290ed$export$POPUP_SELECTOR, " form")).addEventListener('submit', $1f04f025e20ce30abc71521ae440de01$var$handleFormSubmit); - }; - const $1f04f025e20ce30abc71521ae440de01$var$renderUI = () => { + document.querySelector(`${$20636c16dad2c11a$export$21d4bed11ae27f0b} form #${$813af46890790f24$var$SIDE_ONE_BUTTON_ID}`).addEventListener('click', $813af46890790f24$var$createAddTribeHandler(document.querySelector('#' + $813af46890790f24$var$SIDE_ONE_INPUT_CONTAINER_ID))); + document.querySelector(`${$20636c16dad2c11a$export$21d4bed11ae27f0b} form #${$813af46890790f24$var$SIDE_TWO_BUTTON_ID}`).addEventListener('click', $813af46890790f24$var$createAddTribeHandler(document.querySelector('#' + $813af46890790f24$var$SIDE_TWO_INPUT_CONTAINER_ID))); + document.querySelector(`${$20636c16dad2c11a$export$21d4bed11ae27f0b} form`).addEventListener('submit', $813af46890790f24$var$handleFormSubmit); +}; +const $813af46890790f24$var$renderUI = ()=>{ const div = document.createElement('div'); const button = document.createElement('button'); - button.innerHTML = $1f04f025e20ce30abc71521ae440de01$var$translations.generateWarStats; - button.addEventListener('click', $1f04f025e20ce30abc71521ae440de01$var$showWarStatsForm); + button.innerHTML = $813af46890790f24$var$translations.generateWarStats; + button.addEventListener('click', $813af46890790f24$var$showWarStatsForm); div.appendChild(button); document.querySelector('#wars_ranking_table').parentElement.prepend(div); - }; - (function () { +}; +(function() { try { - $1f04f025e20ce30abc71521ae440de01$var$renderUI(); + $813af46890790f24$var$renderUI(); } catch (error) { - console.log('war stats', error); + console.log('war stats', error); } - })(); })(); +})(); diff --git a/postbuild.js b/postbuild.js index 2c3a6e8..c765513 100644 --- a/postbuild.js +++ b/postbuild.js @@ -1,6 +1,5 @@ const path = require('path'); const fs = require('fs'); -const _ = require('lodash'); const versions = require('./versions.json'); const srcDirectory = path.join(__dirname, 'src'); @@ -10,12 +9,12 @@ scripts.forEach(f => { if (!version) { return; } + [ path.join(__dirname, 'dist', f), - path.join(__dirname, 'dist', 'quickbar', f), + path.join(__dirname, 'dist', 'quickbar', f) ].forEach(p => { const fileContent = fs.readFileSync(p); - const compile = _.template(fileContent); - fs.writeFileSync(p, compile({ version })); + fs.writeFileSync(p, fileContent.toString('utf-8').replace(/<%= version %>/g, version)); }); }); diff --git a/src/bonusBarbarianVillageFinder.js b/src/bonusBarbarianVillageFinder.js index a00cfc5..a6c2ab0 100644 --- a/src/bonusBarbarianVillageFinder.js +++ b/src/bonusBarbarianVillageFinder.js @@ -9,7 +9,7 @@ import { calcDistanceBetweenTwoPoints } from './utils/math'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js -// @version ${version} +// @version <%= version %> // @description Bonus barbarian village finder // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=map* diff --git a/src/commandRenamer.js b/src/commandRenamer.js index 5e372d6..ea16408 100644 --- a/src/commandRenamer.js +++ b/src/commandRenamer.js @@ -6,7 +6,7 @@ import wait from './utils/wait'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/commandRenamer.js -// @version ${version} +// @version <%= version %> // @description Command renamer // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*mode=incomings* diff --git a/src/dailyAchievements.js b/src/dailyAchievements.js index 3a88036..6a04e76 100644 --- a/src/dailyAchievements.js +++ b/src/dailyAchievements.js @@ -13,7 +13,7 @@ import { buildURLToServerPage } from './utils/twhelp'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js -// @version ${version} +// @version <%= version %> // @description Daily achievements // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=info_player&mode=awards* diff --git a/src/extendedMapPopup.js b/src/extendedMapPopup.js index ea1a2c8..fc92adc 100644 --- a/src/extendedMapPopup.js +++ b/src/extendedMapPopup.js @@ -14,7 +14,7 @@ import calcLoyalty from './utils/calcLoyalty'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js -// @version ${version} +// @version <%= version %> // @description Extended map popup // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=map* diff --git a/src/extendedPlayerProfile.js b/src/extendedPlayerProfile.js index e9da0fc..2382f34 100644 --- a/src/extendedPlayerProfile.js +++ b/src/extendedPlayerProfile.js @@ -25,7 +25,7 @@ import { setItem, getItem } from './utils/localStorage'; // @namespace https://github.com/tribalwarshelp/scripts // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js -// @version ${version} +// @version <%= version %> // @description Extended player profile // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=info_player* diff --git a/src/extendedTribeProfile.js b/src/extendedTribeProfile.js index 364c637..55656d0 100644 --- a/src/extendedTribeProfile.js +++ b/src/extendedTribeProfile.js @@ -25,7 +25,7 @@ import * as twutils from './utils/tribalwars'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js -// @version ${version} +// @version <%= version %> // @description Extended tribe profile // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=info_ally* diff --git a/src/extendedVillageProfile.js b/src/extendedVillageProfile.js index 5356466..86cbc95 100644 --- a/src/extendedVillageProfile.js +++ b/src/extendedVillageProfile.js @@ -17,7 +17,7 @@ import showEnnoblementsPopup from './common/showEnnoblementsPopup'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js -// @version ${version} +// @version <%= version %> // @description Extended village profile // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=info_village* diff --git a/src/inADayTribeRankingGenerator.js b/src/inADayTribeRankingGenerator.js index 2ea0b90..4bd33d4 100644 --- a/src/inADayTribeRankingGenerator.js +++ b/src/inADayTribeRankingGenerator.js @@ -7,7 +7,7 @@ import wait from './utils/wait'; // @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 ${version} +// @version <%= version %> // @description 'In A Day' tribe ranking generator // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=ranking*mode=in_a_day* diff --git a/src/latestEnnoblements.js b/src/latestEnnoblements.js index 3b52988..5e785c8 100644 --- a/src/latestEnnoblements.js +++ b/src/latestEnnoblements.js @@ -13,7 +13,7 @@ import loadTranslations from './i18n/latestEnnoblements'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js -// @version ${version} +// @version <%= version %> // @description Shows the latest ennoblements // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php* diff --git a/src/mapCoordsPicker.js b/src/mapCoordsPicker.js index 7d36dcb..6cc0e24 100644 --- a/src/mapCoordsPicker.js +++ b/src/mapCoordsPicker.js @@ -6,7 +6,7 @@ import { getItem, setItem } from './utils/localStorage'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/mapCoordsPicker.js -// @version ${version} +// @version <%= version %> // @description Map coords picker // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=map* diff --git a/src/warStatsGenerator.js b/src/warStatsGenerator.js index bf96a0d..7d872db 100644 --- a/src/warStatsGenerator.js +++ b/src/warStatsGenerator.js @@ -10,7 +10,7 @@ import showPopup, { POPUP_SELECTOR } from './utils/showPopup'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/warStatsGenerator.js -// @version ${version} +// @version <%= version %> // @description War stats generator // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php*screen=ranking*mode=wars*