From 552b6d201eee891b5f44428b42296a27c5cd6ed6 Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Sat, 12 Jun 2021 07:49:43 +0200 Subject: [PATCH] chore: fix some of the translations --- README.md | 4 ++-- dist/bonusBarbarianVillageFinder.js | 11 +++++++---- dist/dailyAchievements.js | 2 +- dist/extendedPlayerProfile.js | 2 +- dist/extendedTribeProfile.js | 2 +- dist/latestEnnoblements.js | 6 +++--- dist/quickbar/bonusBarbarianVillageFinder.js | 2 +- dist/quickbar/dailyAchievements.js | 2 +- dist/quickbar/extendedPlayerProfile.js | 2 +- dist/quickbar/extendedTribeProfile.js | 2 +- dist/quickbar/latestEnnoblements.js | 2 +- src/bonusBarbarianVillageFinder.js | 2 +- src/extendedPlayerProfile.js | 2 +- src/extendedTribeProfile.js | 2 +- src/i18n/bonusBarbarianVillageFinder.js | 3 +++ src/i18n/dailyAchievments.js | 2 +- src/i18n/latestEnnoblements.js | 2 +- src/latestEnnoblements.js | 4 ++-- 18 files changed, 30 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 4915592..e9a8e18 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## Scripts -- [Latest ennoblements](#1-latest-ennoblements) +- [The latest ennoblements](#1-the-latest-ennoblements) - [Extended player profile](#2-extended-player-profile) - [Extended tribe profile](#3-extended-tribe-profile) - [Extended village profile](#4-extended-village-profile) @@ -21,7 +21,7 @@ - ['In A Day' tribe ranking generator](#9-in-a-day-tribe-ranking-generator) - [War stats generator](#10-war-stats-generator) -### 1. Latest ennoblements +### 1. The latest ennoblements [Code](https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js) diff --git a/dist/bonusBarbarianVillageFinder.js b/dist/bonusBarbarianVillageFinder.js index 77541b2..5a337d4 100644 --- a/dist/bonusBarbarianVillageFinder.js +++ b/dist/bonusBarbarianVillageFinder.js @@ -27,21 +27,24 @@ searchBonusBarbarianVillages: 'Wyszukaj koczownicze', village: 'Wioska', distance: 'Dystans', - action: 'Akcja' + action: 'Akcja', + center: 'Wycentruj' }, en_DK: { actualCoords: 'Actual coords', searchBonusBarbarianVillages: 'Search bonus barbarian villages', village: 'Village', distance: 'Distance', - action: 'Action' + action: 'Action', + center: 'Center' }, de_DE: { actualCoords: 'Aktuelle Koordinaten', searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer', village: 'Dorf', distance: 'Distanz', - action: 'Aktion' + action: 'Aktion', + center: 'Center' } }; var $3b197ddc404523dce25bd8470f854619$export$default = () => $3b197ddc404523dce25bd8470f854619$var$translations[window.game_data.locale] || $3b197ddc404523dce25bd8470f854619$var$translations.en_DK; @@ -186,7 +189,7 @@ 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 Center\n \n ")).join('') : '', "\n \n "); + 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('|'), ""); diff --git a/dist/dailyAchievements.js b/dist/dailyAchievements.js index 0a1b521..119c50b 100644 --- a/dist/dailyAchievements.js +++ b/dist/dailyAchievements.js @@ -2072,7 +2072,7 @@ const $a777d6796a2564869cad39f35c35c293$var$translations = { pl_PL: { title: 'Dzienne osiągnięcia - prawdopodobni gracze', - warning: 'Pamiętaj! Ten skrypt pokazuje wykalkulowane przez TribalWars wyniki, nie pokonane jednostki.', + warning: 'Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.', aotd: 'Agresor dnia', dotd: 'Obrońca dnia', sotd: 'Pomocnik dnia', diff --git a/dist/extendedPlayerProfile.js b/dist/extendedPlayerProfile.js index 955d528..035f256 100644 --- a/dist/extendedPlayerProfile.js +++ b/dist/extendedPlayerProfile.js @@ -940,7 +940,7 @@ tribe: false }); } catch (error) { - console.log('cannot load player history', error); + console.log('couldnt load player history', error); } } }; diff --git a/dist/extendedTribeProfile.js b/dist/extendedTribeProfile.js index 39282c6..bac9c0b 100644 --- a/dist/extendedTribeProfile.js +++ b/dist/extendedTribeProfile.js @@ -1060,7 +1060,7 @@ onPageChange: $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeHistoryClick }); } catch (error) { - console.log('cannot load tribe history', error); + console.log('couldnt load tribe history', error); } } }; diff --git a/dist/latestEnnoblements.js b/dist/latestEnnoblements.js index 614c5ef..8f1b773 100644 --- a/dist/latestEnnoblements.js +++ b/dist/latestEnnoblements.js @@ -142,7 +142,7 @@ devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' }, en_DK: { - showLatestEnnoblements: 'Show latest ennoblements', + showLatestEnnoblements: 'Show the latest ennoblements', village: 'Village', newOwner: 'New owner', newOwnerTribe: 'New owner tribe', @@ -213,12 +213,12 @@ return obj; } // ==UserScript== - // @name Latest ennoblements + // @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.1 - // @description Show the latest ennoblements + // @description Shows the latest ennoblements // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php* // @grant none diff --git a/dist/quickbar/bonusBarbarianVillageFinder.js b/dist/quickbar/bonusBarbarianVillageFinder.js index 243bebb..8f17c52 100644 --- a/dist/quickbar/bonusBarbarianVillageFinder.js +++ b/dist/quickbar/bonusBarbarianVillageFinder.js @@ -1 +1 @@ -!function(){const t="https://api.tribalwarshelp.com/graphql";var n=function(){let{query:n,variables:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(t,{method:"POST",body:JSON.stringify({query:n,variables:e}),headers:{"Content-Type":"application/json"}}).then((t=>t.json())).then((t=>{let{data:n,errors:e}=t;if(e&&Array.isArray(e)&&e.length>0)throw new Error(e[0].message);return new Promise((t=>t(n)))}))};const e={pl_PL:{actualCoords:"Aktualne koordynaty",searchBonusBarbarianVillages:"Wyszukaj koczownicze",village:"Wioska",distance:"Dystans",action:"Akcja"},en_DK:{actualCoords:"Actual coords",searchBonusBarbarianVillages:"Search bonus barbarian villages",village:"Village",distance:"Distance",action:"Action"},de_DE:{actualCoords:"Aktuelle Koordinaten",searchBonusBarbarianVillages:"Suche Bonus-Barbarendörfer",village:"Dorf",distance:"Distanz",action:"Aktion"}};const a=(t,n,e,a)=>{const r=t-e,o=n-a;return Math.sqrt(r*r+o*o)};function r(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,a)}return e}function o(t){for(var n=1;n({query:"\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",variables:{server:c,sort:["id DESC"],filter:{bonus:t,playerID:[0]},offset:n}}),p=async t=>{t.preventDefault();const e=await(async t=>{const{villages:e}=await n(b(t,0));for(let a=e.length;ao(o({},t),{},{distance:a(r[0],r[1],t.x,t.y)}))).sort(((t,n)=>t.distance-n.distance)),document.querySelector("#bonusBarbarianVillageFinderTable").innerHTML=f(e.items)},f=t=>"\n \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]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const a="K"+String(e)[0]+String(n)[0];return"".concat(t," (").concat(n,"|").concat(e,") ").concat(a)}(t.name,t.x,t.y),"\n \n \n \n ").concat(t.distance.toFixed(1),'\n \n \n Center\n \n ');var n})).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(){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 diff --git a/dist/quickbar/dailyAchievements.js b/dist/quickbar/dailyAchievements.js index 4fdd869..03aa3cd 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 wykalkulowane przez TribalWars wyniki, 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){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 diff --git a/dist/quickbar/extendedPlayerProfile.js b/dist/quickbar/extendedPlayerProfile.js index 3cd06c7..9b07baa 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("cannot 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(){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 diff --git a/dist/quickbar/extendedTribeProfile.js b/dist/quickbar/extendedTribeProfile.js index b93973f..222919d 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 > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody"),et=tt,nt=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)"),at=document.querySelector("#content_value h3").nextElementSibling.querySelector("tbody"),rt=c[window.game_data.locale]||c.en_DK,ot=()=>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),it=()=>{const t=[];return at.querySelectorAll("a").forEach((e=>{const n=e.getAttribute("href");n.includes("info_player")&&t.push(z(n))})),t},lt=async()=>{const t=it(),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},ct=t=>{let{tribe:e,dailyTribeStats:n,players:a}=t;[{title:rt.createdAt+":",data:k(e.createdAt),id:"created_at"},{title:rt.dominance+":",data:e.dominance.toFixed(2)+"%",id:"dominance"},{title:rt.bestRank+":",data:e.bestRank+" "+"(".concat(k(e.bestRankAt),")"),id:"best_rank"},{title:rt.mostPoints+":",data:e.mostPoints.toLocaleString()+" "+"(".concat(k(e.mostPointsAt),")"),id:"most_points"},{title:rt.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")),tt.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 ")})(nt,n.items[0]),a&&a.items.length>0&&(t=>{at.parentElement.style.width="100%";const e=at.querySelector("tr:first-child");11!==e.children.length&&[rt.oda,rt.odd,rt.ods,rt.od,rt.dailyGrowth,rt.playerLinks].forEach((t=>{const n=document.createElement("th");n.innerHTML=t,e.appendChild(n)})),at.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)},st=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:st})}},dt=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:dt})}catch(t){console.log("cannot load tribe history",t)}},gt=t=>t>0?"color: #000; background-color: #0f0":t<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080",pt=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}},mt=t=>{const e=[...new Set(t.items.map((t=>t.createDate)))].reverse();return"\n \n \n ".concat(rt.player,"\n ").concat(e.map((t=>"".concat(k(t,{year:"numeric",month:"2-digit",day:"2-digit"}),""))).join(""),"\n ").concat(rt.total,"\n \n ").concat(it().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=pt(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 ")},ut="membersGrowth",ht="membersGrowthForm",bt=(t,e)=>{const n=[["points",rt.points],["villages",rt.villages],["od",rt.opponentsDefeated],["oda",rt.opponentsDefeatedAsAttacker],["odd",rt.opponentsDefeatedAsDefender],["ods",rt.opponentsDefeatedAsSupporter]].map((t=>""))),a='\n
\n \n \n
\n \n ').concat(mt(e),"\n
\n ");D({e:t,title:rt.membersGrowth,id:"mg",html:a}),document.querySelector("#membersGrowthForm").addEventListener("submit",(t=>e=>{e.preventDefault(),X=e.target[0].value,document.querySelector("#membersGrowth").innerHTML=mt(t)})(e))},yt=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=it(),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});bt(t,n.dailyPlayerStats)},ft=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(rt.date,"\n \n ").concat(rt.player,"\n \n ").concat(rt.act,"\n
".concat(k(t.createdAt),"').concat(t.player.name,"-".concat(t.newTribe&&t.newTribe.id===Y?rt.joined:rt.left,"
\n ");D({e:t,title:rt.tribeChanges,id:"tribeChanges",html:r}),document.querySelectorAll("#tribeChangesPagination a").forEach((t=>{t.addEventListener("click",ft)}))})(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)}},wt=t=>{t.preventDefault();const e=(()=>{const t=[];return at.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)},vt=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:[]}},Dt=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...")},kt=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:it()},limit:isNaN(e)||!e?0:e,sort:["id ASC"],server:K};Dt();let{total:a,items:r}=await vt(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 "))},St=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",kt)},Tt=t=>{const e=document.createElement("td");e.colSpan="2",e.append(t);const n=document.createElement("tr");return n.appendChild(e),n},At=()=>{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=rt.action.linkToTWHelp,et.appendChild(Tt(t));const e=document.createElement("a");e.href="#",p(e,"1"),e.innerHTML=rt.action.showEnnoblements,e.addEventListener("click",st),et.appendChild(Tt(e));const n=document.createElement("a");n.href="#",p(n,"1"),n.innerHTML=rt.action.showHistory,n.addEventListener("click",dt),et.appendChild(Tt(n));const a=document.createElement("a");a.href="#",p(a,"1"),a.innerHTML=rt.action.showTribeChanges,a.addEventListener("click",ft),et.appendChild(Tt(a));const r=document.createElement("a");r.href="#",r.innerHTML=rt.action.showMembersGrowth,r.addEventListener("click",yt),et.appendChild(Tt(r));const o=document.createElement("a");o.href="#",o.innerHTML=rt.action.generateMailingList,o.addEventListener("click",wt),et.appendChild(Tt(o));const i=document.createElement("a");i.href="#",i.innerHTML=rt.action.exportVillages,i.addEventListener("click",St),et.appendChild(Tt(i))};!async function(){try{At();const t=ot();t&&t.tribe&&ct(t);const e=await lt();e&&ct(e)}catch(t){console.log("extended tribe profile",t)}}()}(); \ No newline at end of file +!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 > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody"),et=tt,nt=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)"),at=document.querySelector("#content_value h3").nextElementSibling.querySelector("tbody"),rt=c[window.game_data.locale]||c.en_DK,ot=()=>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),it=()=>{const t=[];return at.querySelectorAll("a").forEach((e=>{const n=e.getAttribute("href");n.includes("info_player")&&t.push(z(n))})),t},lt=async()=>{const t=it(),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},ct=t=>{let{tribe:e,dailyTribeStats:n,players:a}=t;[{title:rt.createdAt+":",data:k(e.createdAt),id:"created_at"},{title:rt.dominance+":",data:e.dominance.toFixed(2)+"%",id:"dominance"},{title:rt.bestRank+":",data:e.bestRank+" "+"(".concat(k(e.bestRankAt),")"),id:"best_rank"},{title:rt.mostPoints+":",data:e.mostPoints.toLocaleString()+" "+"(".concat(k(e.mostPointsAt),")"),id:"most_points"},{title:rt.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")),tt.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 ")})(nt,n.items[0]),a&&a.items.length>0&&(t=>{at.parentElement.style.width="100%";const e=at.querySelector("tr:first-child");11!==e.children.length&&[rt.oda,rt.odd,rt.ods,rt.od,rt.dailyGrowth,rt.playerLinks].forEach((t=>{const n=document.createElement("th");n.innerHTML=t,e.appendChild(n)})),at.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)},st=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:st})}},dt=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:dt})}catch(t){console.log("couldnt load tribe history",t)}},gt=t=>t>0?"color: #000; background-color: #0f0":t<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080",pt=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}},mt=t=>{const e=[...new Set(t.items.map((t=>t.createDate)))].reverse();return"\n \n \n ".concat(rt.player,"\n ").concat(e.map((t=>"".concat(k(t,{year:"numeric",month:"2-digit",day:"2-digit"}),""))).join(""),"\n ").concat(rt.total,"\n \n ").concat(it().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=pt(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 ")},ut="membersGrowth",ht="membersGrowthForm",bt=(t,e)=>{const n=[["points",rt.points],["villages",rt.villages],["od",rt.opponentsDefeated],["oda",rt.opponentsDefeatedAsAttacker],["odd",rt.opponentsDefeatedAsDefender],["ods",rt.opponentsDefeatedAsSupporter]].map((t=>""))),a='\n
\n \n \n
\n \n ').concat(mt(e),"\n
\n ");D({e:t,title:rt.membersGrowth,id:"mg",html:a}),document.querySelector("#membersGrowthForm").addEventListener("submit",(t=>e=>{e.preventDefault(),X=e.target[0].value,document.querySelector("#membersGrowth").innerHTML=mt(t)})(e))},yt=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=it(),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});bt(t,n.dailyPlayerStats)},ft=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(rt.date,"\n \n ").concat(rt.player,"\n \n ").concat(rt.act,"\n
".concat(k(t.createdAt),"').concat(t.player.name,"-".concat(t.newTribe&&t.newTribe.id===Y?rt.joined:rt.left,"
\n ");D({e:t,title:rt.tribeChanges,id:"tribeChanges",html:r}),document.querySelectorAll("#tribeChangesPagination a").forEach((t=>{t.addEventListener("click",ft)}))})(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)}},wt=t=>{t.preventDefault();const e=(()=>{const t=[];return at.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)},vt=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:[]}},Dt=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...")},kt=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:it()},limit:isNaN(e)||!e?0:e,sort:["id ASC"],server:K};Dt();let{total:a,items:r}=await vt(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 "))},St=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",kt)},Tt=t=>{const e=document.createElement("td");e.colSpan="2",e.append(t);const n=document.createElement("tr");return n.appendChild(e),n},At=()=>{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=rt.action.linkToTWHelp,et.appendChild(Tt(t));const e=document.createElement("a");e.href="#",p(e,"1"),e.innerHTML=rt.action.showEnnoblements,e.addEventListener("click",st),et.appendChild(Tt(e));const n=document.createElement("a");n.href="#",p(n,"1"),n.innerHTML=rt.action.showHistory,n.addEventListener("click",dt),et.appendChild(Tt(n));const a=document.createElement("a");a.href="#",p(a,"1"),a.innerHTML=rt.action.showTribeChanges,a.addEventListener("click",ft),et.appendChild(Tt(a));const r=document.createElement("a");r.href="#",r.innerHTML=rt.action.showMembersGrowth,r.addEventListener("click",yt),et.appendChild(Tt(r));const o=document.createElement("a");o.href="#",o.innerHTML=rt.action.generateMailingList,o.addEventListener("click",wt),et.appendChild(Tt(o));const i=document.createElement("a");i.href="#",i.innerHTML=rt.action.exportVillages,i.addEventListener("click",St),et.appendChild(Tt(i))};!async function(){try{At();const t=ot();t&&t.tribe&&ct(t);const e=await lt();e&&ct(e)}catch(t){console.log("extended tribe profile",t)}}()}(); \ No newline at end of file diff --git a/dist/quickbar/latestEnnoblements.js b/dist/quickbar/latestEnnoblements.js index d217b5d..75cca63 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 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(){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 diff --git a/src/bonusBarbarianVillageFinder.js b/src/bonusBarbarianVillageFinder.js index 2dea746..555e0ed 100644 --- a/src/bonusBarbarianVillageFinder.js +++ b/src/bonusBarbarianVillageFinder.js @@ -130,7 +130,7 @@ const buildTableBodyHTML = villages => { Center + }, ${village.y})">${translations.center} ` ) diff --git a/src/extendedPlayerProfile.js b/src/extendedPlayerProfile.js index d84d70a..2364da0 100644 --- a/src/extendedPlayerProfile.js +++ b/src/extendedPlayerProfile.js @@ -609,7 +609,7 @@ const handleShowPlayerHistoryClick = async e => { tribe: false, }); } catch (error) { - console.log('cannot load player history', error); + console.log('couldnt load player history', error); } } }; diff --git a/src/extendedTribeProfile.js b/src/extendedTribeProfile.js index 8c0c010..e64e71e 100644 --- a/src/extendedTribeProfile.js +++ b/src/extendedTribeProfile.js @@ -450,7 +450,7 @@ const handleShowTribeHistoryClick = async e => { onPageChange: handleShowTribeHistoryClick, }); } catch (error) { - console.log('cannot load tribe history', error); + console.log('couldnt load tribe history', error); } } }; diff --git a/src/i18n/bonusBarbarianVillageFinder.js b/src/i18n/bonusBarbarianVillageFinder.js index 47605ea..e003a34 100644 --- a/src/i18n/bonusBarbarianVillageFinder.js +++ b/src/i18n/bonusBarbarianVillageFinder.js @@ -5,6 +5,7 @@ const translations = { village: 'Wioska', distance: 'Dystans', action: 'Akcja', + center: 'Wycentruj', }, en_DK: { actualCoords: 'Actual coords', @@ -12,6 +13,7 @@ const translations = { village: 'Village', distance: 'Distance', action: 'Action', + center: 'Center', }, de_DE: { actualCoords: 'Aktuelle Koordinaten', @@ -19,6 +21,7 @@ const translations = { village: 'Dorf', distance: 'Distanz', action: 'Aktion', + center: 'Center', }, }; diff --git a/src/i18n/dailyAchievments.js b/src/i18n/dailyAchievments.js index f600586..a919239 100644 --- a/src/i18n/dailyAchievments.js +++ b/src/i18n/dailyAchievments.js @@ -2,7 +2,7 @@ const translations = { pl_PL: { title: 'Dzienne osiągnięcia - prawdopodobni gracze', warning: - 'Pamiętaj! Ten skrypt pokazuje wykalkulowane przez TribalWars wyniki, nie pokonane jednostki.', + 'Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.', aotd: 'Agresor dnia', dotd: 'Obrońca dnia', sotd: 'Pomocnik dnia', diff --git a/src/i18n/latestEnnoblements.js b/src/i18n/latestEnnoblements.js index 8b4b266..204ad48 100644 --- a/src/i18n/latestEnnoblements.js +++ b/src/i18n/latestEnnoblements.js @@ -14,7 +14,7 @@ const translations = { 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).', }, en_DK: { - showLatestEnnoblements: 'Show latest ennoblements', + showLatestEnnoblements: 'Show the latest ennoblements', village: 'Village', newOwner: 'New owner', newOwnerTribe: 'New owner tribe', diff --git a/src/latestEnnoblements.js b/src/latestEnnoblements.js index 3d1ebb2..02db40a 100644 --- a/src/latestEnnoblements.js +++ b/src/latestEnnoblements.js @@ -9,12 +9,12 @@ import getServerVersionCode from './utils/getServerVersionCode'; import loadTranslations from './i18n/latestEnnoblements'; // ==UserScript== -// @name Latest ennoblements +// @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.1 -// @description Show the latest ennoblements +// @description Shows the latest ennoblements // @author Kichiyaki https://dwysokinski.me/ // @match *://*/game.php* // @grant none