2021-06-12 05:26:55 +00:00
( function ( ) {
2021-10-17 11:02:02 +00:00
function $6a49e4c969cec444$export$2e2bcd8739ae039 ( obj , key , value ) {
if ( key in obj ) Object . defineProperty ( obj , key , {
value : value ,
enumerable : true ,
configurable : true ,
writable : true
} ) ;
else obj [ key ] = value ;
return obj ;
}
function $f1e9793517c51c58$export$2e2bcd8739ae039 ( target ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var source = arguments [ i ] != null ? arguments [ i ] : {
} ;
var ownKeys = Object . keys ( source ) ;
if ( typeof Object . getOwnPropertySymbols === 'function' ) ownKeys = ownKeys . concat ( Object . getOwnPropertySymbols ( source ) . filter ( function ( sym ) {
return Object . getOwnPropertyDescriptor ( source , sym ) . enumerable ;
} ) ) ;
ownKeys . forEach ( function ( key ) {
$6a49e4c969cec444$export$2e2bcd8739ae039 ( target , key , source [ key ] ) ;
} ) ;
2020-07-17 11:50:29 +00:00
}
2021-10-17 11:02:02 +00:00
return target ;
}
function $b1520df0e3a4699c$export$2e2bcd8739ae039 ( source , excluded ) {
if ( source == null ) return {
} ;
var target = {
} ;
var sourceKeys = Object . keys ( source ) ;
var key , i ;
for ( i = 0 ; i < sourceKeys . length ; i ++ ) {
key = sourceKeys [ i ] ;
if ( excluded . indexOf ( key ) >= 0 ) continue ;
target [ key ] = source [ key ] ;
2020-07-17 11:50:29 +00:00
}
2021-10-17 11:02:02 +00:00
return target ;
}
function $f26b272b176e5476$export$2e2bcd8739ae039 ( source , excluded ) {
if ( source == null ) return {
} ;
var target = $b1520df0e3a4699c$export$2e2bcd8739ae039 ( source , excluded ) ;
var key , i ;
if ( Object . getOwnPropertySymbols ) {
var sourceSymbolKeys = Object . getOwnPropertySymbols ( source ) ;
for ( i = 0 ; i < sourceSymbolKeys . length ; i ++ ) {
key = sourceSymbolKeys [ i ] ;
if ( excluded . indexOf ( key ) >= 0 ) continue ;
if ( ! Object . prototype . propertyIsEnumerable . call ( source , key ) ) continue ;
target [ key ] = source [ key ] ;
}
}
return target ;
}
function $14473fdd7558f621$export$2e2bcd8739ae039 ( required , args ) {
if ( args . length < required ) throw new TypeError ( required + ' argument' + ( required > 1 ? 's' : '' ) + ' required, but only ' + args . length + ' present' ) ;
}
function $cef0ab118a15bdd4$export$2e2bcd8739ae039 ( argument ) {
$14473fdd7558f621$export$2e2bcd8739ae039 ( 1 , arguments ) ;
var argStr = Object . prototype . toString . call ( argument ) ; // Clone the date
if ( argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]' ) // Prevent the date to lose the milliseconds when passed to new Date() in IE10
return new Date ( argument . getTime ( ) ) ;
else if ( typeof argument === 'number' || argStr === '[object Number]' ) return new Date ( argument ) ;
else {
if ( ( typeof argument === 'string' || argStr === '[object String]' ) && typeof console !== 'undefined' ) {
// eslint-disable-next-line no-console
console . warn ( "Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule" ) ; // eslint-disable-next-line no-console
console . warn ( new Error ( ) . stack ) ;
}
return new Date ( NaN ) ;
}
}
function $5c7eb77435f5b299$export$2e2bcd8739ae039 ( date ) {
2021-06-12 05:26:55 +00:00
var utcDate = new Date ( Date . UTC ( date . getFullYear ( ) , date . getMonth ( ) , date . getDate ( ) , date . getHours ( ) , date . getMinutes ( ) , date . getSeconds ( ) , date . getMilliseconds ( ) ) ) ;
utcDate . setUTCFullYear ( date . getFullYear ( ) ) ;
return date . getTime ( ) - utcDate . getTime ( ) ;
2021-10-17 11:02:02 +00:00
}
function $e0c28e86cf0881e5$export$2e2bcd8739ae039 ( dirtyDate ) {
$14473fdd7558f621$export$2e2bcd8739ae039 ( 1 , arguments ) ;
var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039 ( dirtyDate ) ;
2021-06-12 05:26:55 +00:00
date . setHours ( 0 , 0 , 0 , 0 ) ;
return date ;
2021-10-17 11:02:02 +00:00
}
var $df209d46368bbe8e$var$MILLISECONDS _IN _DAY = 86400000 ;
function $df209d46368bbe8e$export$2e2bcd8739ae039 ( dirtyDateLeft , dirtyDateRight ) {
$14473fdd7558f621$export$2e2bcd8739ae039 ( 2 , arguments ) ;
var startOfDayLeft = $e0c28e86cf0881e5$export$2e2bcd8739ae039 ( dirtyDateLeft ) ;
var startOfDayRight = $e0c28e86cf0881e5$export$2e2bcd8739ae039 ( dirtyDateRight ) ;
var timestampLeft = startOfDayLeft . getTime ( ) - $5c7eb77435f5b299$export$2e2bcd8739ae039 ( startOfDayLeft ) ;
var timestampRight = startOfDayRight . getTime ( ) - $5c7eb77435f5b299$export$2e2bcd8739ae039 ( startOfDayRight ) ; // Round the number of days to the nearest integer
2021-06-12 05:26:55 +00:00
// because the number of milliseconds in a day is not constant
// (e.g. it's different in the day of the daylight saving time clock shift)
2021-10-17 11:02:02 +00:00
return Math . round ( ( timestampLeft - timestampRight ) / $df209d46368bbe8e$var$MILLISECONDS _IN _DAY ) ;
}
// for accurate equality comparisons of UTC timestamps that end up
// having the same representation in local time, e.g. one hour before
// DST ends vs. the instant that DST ends.
function $404c1b1679418875$var$compareLocalAsc ( dateLeft , dateRight ) {
2021-06-12 05:26:55 +00:00
var diff = dateLeft . getFullYear ( ) - dateRight . getFullYear ( ) || dateLeft . getMonth ( ) - dateRight . getMonth ( ) || dateLeft . getDate ( ) - dateRight . getDate ( ) || dateLeft . getHours ( ) - dateRight . getHours ( ) || dateLeft . getMinutes ( ) - dateRight . getMinutes ( ) || dateLeft . getSeconds ( ) - dateRight . getSeconds ( ) || dateLeft . getMilliseconds ( ) - dateRight . getMilliseconds ( ) ;
2021-10-17 11:02:02 +00:00
if ( diff < 0 ) return - 1 ;
else if ( diff > 0 ) return 1 ; // Return 0 if diff is 0; return NaN if diff is NaN
else return diff ;
}
function $404c1b1679418875$export$2e2bcd8739ae039 ( dirtyDateLeft , dirtyDateRight ) {
$14473fdd7558f621$export$2e2bcd8739ae039 ( 2 , arguments ) ;
var dateLeft = $cef0ab118a15bdd4$export$2e2bcd8739ae039 ( dirtyDateLeft ) ;
var dateRight = $cef0ab118a15bdd4$export$2e2bcd8739ae039 ( dirtyDateRight ) ;
var sign = $404c1b1679418875$var$compareLocalAsc ( dateLeft , dateRight ) ;
var difference = Math . abs ( $df209d46368bbe8e$export$2e2bcd8739ae039 ( dateLeft , dateRight ) ) ;
dateLeft . setDate ( dateLeft . getDate ( ) - sign * difference ) ; // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full
2021-06-12 05:26:55 +00:00
// If so, result must be decreased by 1 in absolute value
2021-10-17 11:02:02 +00:00
var isLastDayNotFull = Number ( $404c1b1679418875$var$compareLocalAsc ( dateLeft , dateRight ) === - sign ) ;
var result = sign * ( difference - isLastDayNotFull ) ; // Prevent negative zero
2021-06-12 05:26:55 +00:00
return result === 0 ? 0 : result ;
2021-10-17 11:02:02 +00:00
}
const $b2c56a1bf7676610$var$translations = {
2021-06-12 05:26:55 +00:00
pl _PL : {
2021-10-17 11:02:02 +00:00
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'
}
2021-06-12 05:26:55 +00:00
} ,
en _DK : {
2021-10-17 11:02:02 +00:00
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'
}
2021-06-12 05:26:55 +00:00
} ,
de _DE : {
2021-10-17 11:02:02 +00:00
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'
}
2020-07-22 15:31:27 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
var $b2c56a1bf7676610$export$2e2bcd8739ae039 = ( ) => $b2c56a1bf7676610$var$translations [ window . game _data . locale ] || $b2c56a1bf7676610$var$translations . en _DK
;
const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql' ;
var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ( { query : query , variables : variables = {
} } = {
} ) => {
return fetch ( $902f167bfdc7b30b$export$fb18762d0c18fa09 , {
method : 'POST' ,
body : JSON . stringify ( {
query : query ,
variables : variables
} ) ,
headers : {
'Content-Type' : 'application/json'
}
} ) . then ( ( res ) => {
return res . json ( ) ;
} ) . then ( ( { data : data , errors : errors } ) => {
if ( errors && Array . isArray ( errors ) && errors . length > 0 ) throw new Error ( errors [ 0 ] . message ) ;
return new Promise ( ( resolve ) => resolve ( data )
) ;
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $57fe06ddde7dcd5d$var$ATTRIBUTE = 'data-page' ;
const $57fe06ddde7dcd5d$export$8947b11ec08f5f9d = ( ) => {
2021-06-12 05:26:55 +00:00
return 'display: flex; flex-direction: row; flex-wrap: wrap;' ;
2021-10-17 11:02:02 +00:00
} ;
const $57fe06ddde7dcd5d$export$5e830c5f3cd8a610 = ( el , page = 1 ) => {
if ( ! el instanceof HTMLElement ) throw new Error ( 'Expected HTMLElement as the first argument' ) ;
2021-06-12 05:26:55 +00:00
page = parseInt ( page ) ;
2021-10-17 11:02:02 +00:00
if ( typeof page !== 'number' || isNaN ( page ) ) throw new Error ( 'Expected number or string as the second argument' ) ;
el . setAttribute ( $57fe06ddde7dcd5d$var$ATTRIBUTE , page + '' ) ;
} ;
const $57fe06ddde7dcd5d$export$c2a6433281518c91 = ( el ) => {
if ( ! el instanceof HTMLElement ) return 0 ;
return parseInt ( el . getAttribute ( $57fe06ddde7dcd5d$var$ATTRIBUTE ) ) ;
} ;
const $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4 = ( total , limit ) => {
if ( typeof total !== 'number' ) throw new Error ( 'Expected number as the first argument' ) ;
if ( typeof limit !== 'number' ) throw new Error ( 'Expected number as the second argument' ) ;
2021-06-12 05:26:55 +00:00
return total > 0 ? Math . ceil ( total / limit ) : 1 ;
2021-10-17 11:02:02 +00:00
} ;
const $57fe06ddde7dcd5d$export$58a42a77c71a7de0 = ( { total : total , limit : limit , marginRight : marginRight = 3 , currentPage : currentPage = 0 , } = {
} ) => {
const numberOfPages = $57fe06ddde7dcd5d$export$9b5e2cbbf1f8d8c4 ( total , limit ) ;
2021-06-12 05:26:55 +00:00
const paginationItems = [ ] ;
2021-10-17 11:02:02 +00:00
for ( let i = 1 ; i <= numberOfPages ; i ++ ) if ( i === currentPage ) paginationItems . push ( ` <strong style="margin-right: ${ marginRight } px">> ${ i } <</strong> ` ) ;
else paginationItems . push ( ` <a style="margin-right: ${ marginRight } px" href="#" ${ $57fe06ddde7dcd5d$var$ATTRIBUTE } =" ${ i } "> ${ i } </a> ` ) ;
2021-06-12 05:26:55 +00:00
return paginationItems ;
2021-10-17 11:02:02 +00:00
} ;
const $2889ee192ffdc307$var$translations = {
2021-06-12 05:26:55 +00:00
pl _PL : {
2021-10-17 11:02:02 +00:00
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'
2021-06-12 05:26:55 +00:00
} ,
en _DK : {
2021-10-17 11:02:02 +00:00
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'
2021-06-12 05:26:55 +00:00
} ,
de _DE : {
2021-10-17 11:02:02 +00:00
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'
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
var $2889ee192ffdc307$export$2e2bcd8739ae039 = ( ) => $2889ee192ffdc307$var$translations [ window . game _data . locale ] || $2889ee192ffdc307$var$translations . en _DK
;
var $3ff10df18b2a4d54$export$2e2bcd8739ae039 = ( v ) => v === undefined || v === null
;
const $9f98bc5d5b389b94$var$translations = $2889ee192ffdc307$export$2e2bcd8739ae039 ( ) ;
const $9f98bc5d5b389b94$var$getTodaysStatsTdStyle = ( value ) => {
2021-06-12 05:26:55 +00:00
const statIncreaseStyle = 'color: #000; background-color: #0f0' ;
const statDecreaseStyle = 'color: #000; background-color: #f00' ;
const defaultStyle = 'color: #000; background-color: #808080' ;
return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle ;
2021-10-17 11:02:02 +00:00
} ;
var $9f98bc5d5b389b94$export$2e2bcd8739ae039 = ( container , stats ) => {
2021-06-12 05:26:55 +00:00
let todaysStats = container . querySelector ( '#todaysStats' ) ;
if ( ! todaysStats ) {
2021-10-17 11:02:02 +00:00
todaysStats = document . createElement ( 'div' ) ;
todaysStats . id = 'todaysStats' ;
todaysStats . width = '100%' ;
container . prepend ( todaysStats ) ;
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
const player = ! $3ff10df18b2a4d54$export$2e2bcd8739ae039 ( stats . rankSup ) ;
todaysStats . innerHTML = `
< table width = "100%" class = "vis" >
< tbody >
< tr >
< th colspan = "2" >
$ { $9f98bc5d5b389b94$var$translations . title }
< / t h >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . points } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.points)}" >
$ { Math . abs ( stats . points ) . toLocaleString ( ) }
< / t d >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . rank } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.rank)}" >
$ { Math . abs ( stats . rank ) }
< / t d >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . villages } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.villages)}" >
$ { Math . abs ( stats . villages ) . toLocaleString ( ) }
< / t d >
< / t r >
$ { ! player ? ` <tr>
< td >
$ { $9f98bc5d5b389b94$var$translations . members } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.members)}" >
$ { Math . abs ( stats . members ) }
< / t d >
< / t r > ` : ' ' }
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . oda } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.scoreAtt)}" >
$ { Math . abs ( stats . scoreAtt ) . toLocaleString ( ) }
< / t d >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . odaRank } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.rankAtt)}" >
$ { Math . abs ( stats . rankAtt ) }
< / t d >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . odd } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.scoreDef)}" >
$ { Math . abs ( stats . scoreDef ) . toLocaleString ( ) }
< / t d >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . oddRank } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.rankDef)}" >
$ { Math . abs ( stats . rankDef ) }
< / t d >
< / t r >
$ { player ? ` <tr>
< td >
$ { $9f98bc5d5b389b94$var$translations . ods } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.scoreSup)}" >
$ { Math . abs ( stats . scoreSup ) . toLocaleString ( ) }
< / t d >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . odsRank } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.rankSup)}" >
$ { Math . abs ( stats . rankSup ) }
< / t d >
< / t r > ` : ' ' }
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . od } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.scoreTotal)}" >
$ { Math . abs ( stats . scoreTotal ) . toLocaleString ( ) }
< / t d >
< / t r >
< tr >
< td >
$ { $9f98bc5d5b389b94$var$translations . odRank } :
< / t d >
< td style = "${$9f98bc5d5b389b94$var$getTodaysStatsTdStyle(stats.rankTotal)}" >
$ { Math . abs ( stats . rankTotal ) }
< / t d >
< / t r >
< / t b o d y >
< / t a b l e >
` ;
} ;
const $37476051484be03e$var$translations = {
2021-06-12 05:26:55 +00:00
pl _PL : {
2021-10-17 11:02:02 +00:00
date : 'Data' ,
newOwner : 'Nowy właściciel' ,
oldOwner : 'Poprzedni właściciel' ,
village : 'Wioska' ,
title : 'Przejęcia'
2021-06-12 05:26:55 +00:00
} ,
en _DK : {
2021-10-17 11:02:02 +00:00
date : 'Date' ,
newOwner : 'New owner' ,
oldOwner : 'Old owner' ,
village : 'Village' ,
title : 'Ennoblements'
2021-06-12 05:26:55 +00:00
} ,
de _DE : {
2021-10-17 11:02:02 +00:00
date : 'Datum' ,
newOwner : 'Neuer Besitzer' ,
oldOwner : 'Alter Besitzer' ,
village : 'Dorf' ,
title : 'Adelungen'
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
var $37476051484be03e$export$2e2bcd8739ae039 = ( ) => $37476051484be03e$var$translations [ window . game _data . locale ] || $37476051484be03e$var$translations . en _DK
;
const $20636c16dad2c11a$export$21d4bed11ae27f0b = '.popup_box' ;
const $20636c16dad2c11a$var$showPopup = ( { html : html , id : id , title : title } = {
} ) => {
Dialog . show ( id , ` <h3> ${ title } </h3> ` + html ) ;
const popup = document . querySelector ( $20636c16dad2c11a$export$21d4bed11ae27f0b ) ;
2021-06-12 05:26:55 +00:00
if ( popup ) {
2021-10-17 11:02:02 +00:00
popup . style . width = 'auto' ;
popup . style . maxWidth = '1000px' ;
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
var $20636c16dad2c11a$export$2e2bcd8739ae039 = $20636c16dad2c11a$var$showPopup ;
const $ca7593443ca49f96$export$17201263355d526a = ( d = new Date ( ) , tz = 'UTC' ) => {
2021-06-12 05:26:55 +00:00
return new Date ( new Date ( d ) . toLocaleString ( 'en-US' , {
2021-10-17 11:02:02 +00:00
timeZone : tz
2021-06-12 05:26:55 +00:00
} ) ) ;
2021-10-17 11:02:02 +00:00
} ;
const $ca7593443ca49f96$export$6a20e8f386d90a85 = ( d = new Date ( ) ) => {
return $ca7593443ca49f96$export$17201263355d526a ( d ) ;
} ;
const $ca7593443ca49f96$export$3ae94a2503e890a1 = ( date , options ) => {
2021-06-12 05:26:55 +00:00
return new Date ( date ) . toLocaleDateString ( undefined , options ? options : {
2021-10-17 11:02:02 +00:00
year : 'numeric' ,
month : '2-digit' ,
day : '2-digit' ,
hour : '2-digit' ,
minute : '2-digit' ,
second : '2-digit'
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $db1dd60e5389e0c9$export$7345792e21cfc457 = ( id ) => {
2021-06-12 05:26:55 +00:00
return window . location . origin + TribalWars . buildURL ( '' , {
2021-10-17 11:02:02 +00:00
screen : 'info_ally' ,
id : id
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $db1dd60e5389e0c9$export$3df7b9b48f38839e = ( id ) => {
2021-06-12 05:26:55 +00:00
return window . location . origin + TribalWars . buildURL ( '' , {
2021-10-17 11:02:02 +00:00
screen : 'info_player' ,
id : id
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = ( id ) => {
2021-06-12 05:26:55 +00:00
return window . location . origin + TribalWars . buildURL ( '' , {
2021-10-17 11:02:02 +00:00
screen : 'info_village' ,
id : id
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = ( n = '' , x = 500 , y = 500 ) => {
2021-06-12 05:26:55 +00:00
const continent = 'K' + String ( y ) [ 0 ] + String ( x ) [ 0 ] ;
2021-10-17 11:02:02 +00:00
return ` ${ n } ( ${ x } | ${ y } ) ${ continent } ` ;
} ;
const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = ( distance , baseSpeed ) => {
2021-06-12 05:26:55 +00:00
return Math . round ( distance * baseSpeed ) ;
2021-10-17 11:02:02 +00:00
} ;
const $db1dd60e5389e0c9$export$8b4b6650247854da = ( img ) => {
2021-06-12 05:26:55 +00:00
return image _base + img ;
2021-10-17 11:02:02 +00:00
} ;
const $5d71a092de4ef3d0$var$PAGINATION _CONTAINER _ID = 'ennoblementsPagination' ;
const $5d71a092de4ef3d0$var$translations = $37476051484be03e$export$2e2bcd8739ae039 ( ) ;
const $5d71a092de4ef3d0$var$getPlayerTd = ( player , tribe ) => {
if ( player ) return ` <td><a href=" ${ $db1dd60e5389e0c9$export$3df7b9b48f38839e ( player . id ) } "> ${ player . name } ( ${ tribe ? ` <a href=" ${ $db1dd60e5389e0c9$export$7345792e21cfc457 ( tribe . id ) } "> ${ tribe . tag } </a> ` : '-' } )</a></td> ` ;
2021-06-12 05:26:55 +00:00
return '<td>-</td>' ;
2021-10-17 11:02:02 +00:00
} ;
var $5d71a092de4ef3d0$export$2e2bcd8739ae039 = ( e , ennoblements , { limit : limit = 0 , currentPage : currentPage = 1 , onPageChange : onPageChange = ( ) => {
} } = {
} ) => {
const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0 ( {
total : ennoblements . total ,
limit : limit ,
currentPage : currentPage
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
const html = `
< div style = "${$57fe06ddde7dcd5d$export$8947b11ec08f5f9d()}" id = "${$5d71a092de4ef3d0$var$PAGINATION_CONTAINER_ID}" >
$ { paginationItems . join ( '' ) }
< / d i v >
< table class = "vis" style = "border-collapse: separate; border-spacing: 2px; width: 100%;" >
< tbody >
< tr >
< th >
$ { $5d71a092de4ef3d0$var$translations . date }
< / t h >
< th >
$ { $5d71a092de4ef3d0$var$translations . village }
< / t h >
< th >
$ { $5d71a092de4ef3d0$var$translations . newOwner }
< / t h >
< th >
$ { $5d71a092de4ef3d0$var$translations . oldOwner }
< / t h >
< / t r >
$ { ennoblements . items . map ( ( ennoblement ) => {
let rowHTML = '<tr>' + ` <td> ${ $ca7593443ca49f96$export$3ae94a2503e890a1 ( ennoblement . ennobledAt ) } </td> ` ;
if ( ennoblement . village ) rowHTML += ` <td><a href=" ${ $db1dd60e5389e0c9$export$e537a41a0fc85cc5 ( ennoblement . village . id ) } "> ${ $db1dd60e5389e0c9$export$c6f77ec2633c38b1 ( ennoblement . village . name , ennoblement . village . x , ennoblement . village . y ) } </a></td> ` ;
else rowHTML += '<td>-</td>' ;
rowHTML += $5d71a092de4ef3d0$var$getPlayerTd ( ennoblement . newOwner , ennoblement . newOwnerTribe ) ;
rowHTML += $5d71a092de4ef3d0$var$getPlayerTd ( ennoblement . oldOwner , ennoblement . oldOwnerTribe ) ;
return rowHTML + '</tr>' ;
} ) . join ( '' ) }
< / t b o d y >
< / t a b l e >
` ;
$20636c16dad2c11a$export$2e2bcd8739ae039 ( {
e : e ,
title : $5d71a092de4ef3d0$var$translations . title ,
id : 'ennoblements' ,
html : html
2020-07-17 14:13:09 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
document . querySelectorAll ( '#' + $5d71a092de4ef3d0$var$PAGINATION _CONTAINER _ID + ' a' ) . forEach ( ( el ) => {
el . addEventListener ( 'click' , onPageChange ) ;
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
function $70df79293cae00de$export$2e2bcd8739ae039 ( dirtyNumber ) {
if ( dirtyNumber === null || dirtyNumber === true || dirtyNumber === false ) return NaN ;
2021-06-12 05:26:55 +00:00
var number = Number ( dirtyNumber ) ;
2021-10-17 11:02:02 +00:00
if ( isNaN ( number ) ) return number ;
2021-06-12 05:26:55 +00:00
return number < 0 ? Math . ceil ( number ) : Math . floor ( number ) ;
2021-10-17 11:02:02 +00:00
}
function $a858d2abc30fc0ee$export$2e2bcd8739ae039 ( dirtyDate , dirtyAmount ) {
$14473fdd7558f621$export$2e2bcd8739ae039 ( 2 , arguments ) ;
var date = $cef0ab118a15bdd4$export$2e2bcd8739ae039 ( dirtyDate ) ;
var amount = $70df79293cae00de$export$2e2bcd8739ae039 ( dirtyAmount ) ;
if ( isNaN ( amount ) ) return new Date ( NaN ) ;
if ( ! amount ) // If 0 days, no-op to avoid changing times in the hour before end of DST
return date ;
2021-06-12 05:26:55 +00:00
date . setDate ( date . getDate ( ) + amount ) ;
return date ;
2021-10-17 11:02:02 +00:00
}
function $a1ee77722e069569$export$2e2bcd8739ae039 ( dirtyDate , dirtyAmount ) {
$14473fdd7558f621$export$2e2bcd8739ae039 ( 2 , arguments ) ;
var amount = $70df79293cae00de$export$2e2bcd8739ae039 ( dirtyAmount ) ;
return $a858d2abc30fc0ee$export$2e2bcd8739ae039 ( dirtyDate , - amount ) ;
}
const $4b6b30b3791bc0bb$var$translations = {
2021-06-12 05:26:55 +00:00
pl _PL : {
2021-10-17 11:02:02 +00:00
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'
2021-06-12 05:26:55 +00:00
} ,
en _DK : {
2021-10-17 11:02:02 +00:00
title : ` History ` ,
date : 'Date' ,
tribe : 'Tribe' ,
points : 'Points' ,
villages : 'Villages' ,
members : 'Members' ,
oda : 'ODA' ,
odd : 'ODD' ,
ods : 'ODS' ,
od : 'OD'
2021-06-12 05:26:55 +00:00
} ,
de _DE : {
2021-10-17 11:02:02 +00:00
title : ` Verlauf ` ,
date : 'Datum' ,
tribe : 'Stamm' ,
points : 'Punkte' ,
villages : 'Dörfer' ,
members : 'Mitglieder' ,
oda : 'BGA' ,
odd : 'BGV' ,
ods : 'BGS' ,
od : 'BP'
2020-07-17 13:05:13 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
var $4b6b30b3791bc0bb$export$2e2bcd8739ae039 = ( ) => $4b6b30b3791bc0bb$var$translations [ window . game _data . locale ] || $4b6b30b3791bc0bb$var$translations . en _DK
;
const $8b71c6d7781a0268$var$PAGINATION _CONTAINER _ID = 'historyPagination' ;
const $8b71c6d7781a0268$var$translations = $4b6b30b3791bc0bb$export$2e2bcd8739ae039 ( ) ;
const $8b71c6d7781a0268$var$addMathSymbol = ( v ) => {
2021-06-12 05:26:55 +00:00
return v > 0 ? '+' + v : v ;
2021-10-17 11:02:02 +00:00
} ;
var $8b71c6d7781a0268$export$2e2bcd8739ae039 = ( e , history , daily , { currentPage : currentPage = 1 , limit : limit = 0 , onPageChange : onPageChange = ( ) => {
} , tribe : tribe = false } = {
} ) => {
const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0 ( {
total : history . total ,
limit : limit ,
currentPage : currentPage
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
const html = `
< div style = "${$57fe06ddde7dcd5d$export$8947b11ec08f5f9d()}" id = "${$8b71c6d7781a0268$var$PAGINATION_CONTAINER_ID}" >
$ { paginationItems . join ( '' ) }
< / d i v >
< table class = "vis" style = "border-collapse: separate; border-spacing: 2px; width: 100%;" >
< tbody >
< tr >
< th >
$ { $8b71c6d7781a0268$var$translations . date }
< / t h >
$ { tribe ? '' : ` <th> ${ $8b71c6d7781a0268$var$translations . tribe } </th> ` }
< th >
$ { $8b71c6d7781a0268$var$translations . points }
< / t h >
< th >
$ { $8b71c6d7781a0268$var$translations . villages }
< / t h >
$ { tribe ? ` <th> ${ $8b71c6d7781a0268$var$translations . members } </th> ` : '' }
< th >
$ { $8b71c6d7781a0268$var$translations . od }
< / t h >
< th >
$ { $8b71c6d7781a0268$var$translations . oda }
< / t h >
< th >
$ { $8b71c6d7781a0268$var$translations . odd }
< / t h >
$ { tribe ? '' : ` <th> ${ $8b71c6d7781a0268$var$translations . ods } </th> ` }
< / t r >
$ { history . items . map ( ( history ) => {
const subtracted = $a1ee77722e069569$export$2e2bcd8739ae039 ( new Date ( history . createDate ) , 1 ) . toISOString ( ) . split ( '.' ) [ 0 ] + 'Z' ;
const stats = daily . items . find ( ( stats ) => {
return stats . createDate === subtracted ;
} ) ;
let rowHTML = '<tr>' + ` <td> ${ $ca7593443ca49f96$export$3ae94a2503e890a1 ( history . createDate , {
year : 'numeric' ,
month : '2-digit' ,
day : '2-digit'
} ) } < / t d > ` ;
if ( ! tribe && history . tribe ) rowHTML += ` <td><a href=" ${ $db1dd60e5389e0c9$export$7345792e21cfc457 ( history . tribe . id ) } "> ${ history . tribe . tag } </a></td> ` ;
else if ( ! tribe ) rowHTML += '<td>-</td>' ;
rowHTML += `
< td title = "${stats ? $8b71c6d7781a0268$var$addMathSymbol(stats.points) : ''}" >
$ { history . points . toLocaleString ( ) } ( < strong > $ { history . rank } < / s t r o n g > )
< / t d >
< td title = "${stats ? $8b71c6d7781a0268$var$addMathSymbol(stats.villages) : ''}" >
$ { history . totalVillages . toLocaleString ( ) }
< / t d >
$ { ! tribe ? '' : `
< td title = "${stats ? $8b71c6d7781a0268$var$addMathSymbol(stats.members) : ''}" >
$ { history . totalMembers }
< / t d >
` }
< td title = "${stats ? $8b71c6d7781a0268$var$addMathSymbol(stats.scoreTotal) : ''}" >
$ { history . scoreTotal . toLocaleString ( ) } ( < strong > $ { history . rankTotal } < / s t r o n g > )
< / t d >
< td title = "${stats ? $8b71c6d7781a0268$var$addMathSymbol(stats.scoreAtt) : ''}" >
$ { history . scoreAtt . toLocaleString ( ) } ( < strong > $ { history . rankAtt } < / s t r o n g > )
< / t d >
< td title = "${stats ? $8b71c6d7781a0268$var$addMathSymbol(stats.scoreDef) : ''}" >
$ { history . scoreDef . toLocaleString ( ) } ( < strong > $ { history . rankDef } < / s t r o n g > )
< / t d >
$ { tribe ? '' : `
< td title = "${stats ? $8b71c6d7781a0268$var$addMathSymbol(stats.scoreSup) : ''}" >
$ { history . scoreSup . toLocaleString ( ) } ( < strong > $ { history . rankSup } < / s t r o n g > )
< / t d >
` }
` + '</tr>';
return rowHTML ;
} ) . join ( '' ) }
< / t b o d y >
< / t a b l e >
` ;
$20636c16dad2c11a$export$2e2bcd8739ae039 ( {
e : e ,
title : $8b71c6d7781a0268$var$translations . title ,
id : 'history' ,
html : html
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
document . querySelectorAll ( '#' + $8b71c6d7781a0268$var$PAGINATION _CONTAINER _ID + ' a' ) . forEach ( ( el ) => {
el . addEventListener ( 'click' , onPageChange ) ;
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
var $c1259165cf39ac5b$export$2e2bcd8739ae039 = ( url ) => parseInt ( new URLSearchParams ( url ) . get ( 'id' ) )
;
var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ( ) => window . location . host . split ( '.' ) [ 0 ]
;
const $362bcac9fa8968ec$export$f92dfeb71e9bb569 = ( key , d = {
} ) => {
2021-06-12 05:26:55 +00:00
const json = localStorage . getItem ( key ) ;
let obj = d ;
2021-10-17 11:02:02 +00:00
if ( json ) obj = JSON . parse ( json ) ;
2021-06-12 05:26:55 +00:00
return obj ;
2021-10-17 11:02:02 +00:00
} ;
const $362bcac9fa8968ec$export$8a8216c44337cd5 = ( key , payload ) => {
2021-06-12 05:26:55 +00:00
localStorage . setItem ( key , JSON . stringify ( payload ) ) ;
2021-10-17 11:02:02 +00:00
} ;
var $5b3edb3901c8177a$export$2e2bcd8739ae039 = ( server = '' ) => server . substr ( 0 , 2 )
;
const $c8a988f78c71dfa9$export$3df7b9b48f38839e = ( server = '' , id = 0 ) => {
return ` http://www.twstats.com/in/ ${ server } /player/ ${ id } ` ;
} ;
const $f3b273bd698d94bc$export$ca6dda5263526f75 = 'tribalwarshelp.com' ;
const $f3b273bd698d94bc$export$5d5850cc00079a21 = ( version = '' , server = '' ) => {
return ` https:// ${ version } . ${ $f3b273bd698d94bc$export$ca6dda5263526f75 } /server/ ${ server } ` ;
} ;
const $f3b273bd698d94bc$export$a4588dcb88e3f9db = ( version = '' , server = '' , id = 0 , entity = '' ) => {
return ` ${ $f3b273bd698d94bc$export$5d5850cc00079a21 ( version , server ) } / ${ entity } / ${ id } ` ;
} ;
const $f3b273bd698d94bc$export$3df7b9b48f38839e = ( version = '' , server = '' , id = 0 ) => {
return $f3b273bd698d94bc$export$a4588dcb88e3f9db ( version , server , id , 'player' ) ;
} ;
const $f3b273bd698d94bc$export$7345792e21cfc457 = ( version = '' , server = '' , id = 0 ) => {
return $f3b273bd698d94bc$export$a4588dcb88e3f9db ( version , server , id , 'tribe' ) ;
} ;
const $f3b273bd698d94bc$export$e537a41a0fc85cc5 = ( version = '' , server = '' , id = 0 ) => {
return $f3b273bd698d94bc$export$a4588dcb88e3f9db ( version , server , id , 'village' ) ;
} ;
// ==UserScript==
// @name Extended tribe profile
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js
// @version 1.1.8
// @description Extended tribe profile
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=info_ally*
// @grant none
// @run-at document-end
// ==/UserScript==
const $9c5e2ca851587025$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039 ( ) ;
const $9c5e2ca851587025$var$VERSION = $5b3edb3901c8177a$export$2e2bcd8739ae039 ( $9c5e2ca851587025$var$SERVER ) ;
const $9c5e2ca851587025$var$TRIBE _ID = $c1259165cf39ac5b$export$2e2bcd8739ae039 ( window . location . search ) ;
const $9c5e2ca851587025$var$LOCAL _STORAGE _KEY = 'kichiyaki_extended_tribe_profile' + $9c5e2ca851587025$var$TRIBE _ID ;
const $9c5e2ca851587025$var$TRIBE _QUERY = `
query tribe (
$server : String !
$id : Int !
$dailyTribeStatsSort : [ String ! ]
$dailyTribeStatsLimit : Int
$playersLimit : Int
$playersSort : [ String ! ]
$playerFilter : PlayerFilter !
$dailyTribeStatsFilter : DailyTribeStatsFilter !
) {
tribe ( server : $server , id : $id ) {
id
bestRank
bestRankAt
mostPoints
mostPointsAt
mostVillages
mostVillagesAt
createdAt
dominance
}
dailyTribeStats (
server : $server
limit : $dailyTribeStatsLimit
sort : $dailyTribeStatsSort
filter : $dailyTribeStatsFilter
) {
items {
rank
rankAtt
rankDef
rankTotal
points
scoreAtt
scoreAtt
scoreDef
scoreTotal
villages
members
2021-06-12 05:26:55 +00:00
}
}
2021-10-17 11:02:02 +00:00
players ( server : $server , sort : $playersSort , filter : $playerFilter , limit : $playersLimit ) {
items {
id
rankAtt
rankDef
rankSup
rankTotal
scoreAtt
scoreAtt
scoreDef
scoreSup
scoreTotal
dailyGrowth
2021-06-12 05:26:55 +00:00
}
}
2020-07-17 13:05:13 +00:00
}
2021-10-17 11:02:02 +00:00
` ;
const $9c5e2ca851587025$var$ENNOBLEMENTS _QUERY = `
query ennoblements ( $server : String ! , $limit : Int , $offset : Int , $sort : [ String ! ] , $filter : EnnoblementFilter ! ) {
ennoblements ( server : $server , limit : $limit , offset : $offset , sort : $sort , filter : $filter ) {
total
items {
village {
id
name
x
y
}
oldOwner {
id
name
}
oldOwnerTribe {
id
tag
}
newOwner {
id
name
}
newOwnerTribe {
id
tag
}
ennobledAt
}
}
}
` ;
const $9c5e2ca851587025$var$ENNOBLEMENTS _PER _PAGE = 15 ;
const $9c5e2ca851587025$var$TRIBE _HISTORY _AND _TRIBE _DAILY _STATS _QUERY = `
query tribeHistoryAndTribeDailyStats ( $server : String ! ,
$tribeHistoryFilter : TribeHistoryFilter ! ,
$dailyTribeStatsFilter : DailyTribeStatsFilter ! ,
$sort : [ String ! ] ,
$offset : Int ,
$limit : Int ) {
tribeHistory ( server : $server , sort : $sort , limit : $limit , offset : $offset , filter : $tribeHistoryFilter ) {
total
items {
totalVillages
points
rank
scoreAtt
rankAtt
scoreDef
rankDef
scoreTotal
rankTotal
createDate
totalMembers
2021-06-12 05:26:55 +00:00
}
}
2021-10-17 11:02:02 +00:00
dailyTribeStats ( server : $server , sort : $sort , limit : $limit , offset : $offset , filter : $dailyTribeStatsFilter ) {
items {
points
scoreAtt
scoreDef
scoreTotal
villages
createDate
members
}
}
}
` ;
const $9c5e2ca851587025$var$TRIBE _HISTORY _PER _PAGE = 15 ;
const $9c5e2ca851587025$var$TRIBE _MEMBERS _DAILY _STATS _QUERY = `
query tribeMembersDailyStats ( $server : String ! ,
$filter : DailyPlayerStatsFilter ! ,
$limit : Int ,
$sort : [ String ! ] ) {
dailyPlayerStats ( server : $server , limit : $limit , sort : $sort , filter : $filter ) {
items {
player {
id
name
}
points
scoreAtt
scoreDef
scoreSup
scoreTotal
villages
createDate
}
}
}
` ;
let $9c5e2ca851587025$var$MEMBERS _GROWTH _MODE = 'points' ;
const $9c5e2ca851587025$var$TRIBE _CHANGES _QUERY = `
query tribeChanges ( $server : String ! , $limit : Int , $offset : Int , $sort : [ String ! ] , $filter : TribeChangeFilter ! ) {
tribeChanges ( server : $server , offset : $offset , limit : $limit , sort : $sort , filter : $filter ) {
total
items {
player {
id
name
}
newTribe {
id
tag
}
createdAt
}
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
}
` ;
const $9c5e2ca851587025$var$TRIBE _CHANGES _PAGINATION _CONTAINER _ID = 'tribeChangesPagination' ;
const $9c5e2ca851587025$var$TRIBE _CHANGES _PER _PAGE = 15 ;
const $9c5e2ca851587025$var$contentValue = document . querySelector ( '#content_value' ) ;
const $9c5e2ca851587025$var$profileInfoTBody = document . querySelector ( '#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody' ) ;
const $9c5e2ca851587025$var$actionContainer = $9c5e2ca851587025$var$profileInfoTBody ;
const $9c5e2ca851587025$var$otherElementsContainer = document . querySelector ( '#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)' ) ;
const $9c5e2ca851587025$var$membersContainer = $9c5e2ca851587025$var$contentValue . querySelector ( 'h3' ) . nextElementSibling . querySelector ( 'tbody' ) ;
const $9c5e2ca851587025$var$translations = $b2c56a1bf7676610$export$2e2bcd8739ae039 ( ) ;
const $9c5e2ca851587025$var$loadDataFromCache = ( ) => {
return $362bcac9fa8968ec$export$f92dfeb71e9bb569 ( $9c5e2ca851587025$var$LOCAL _STORAGE _KEY ) ;
} ;
const $9c5e2ca851587025$var$cacheTribeData = ( data = {
} ) => {
$362bcac9fa8968ec$export$8a8216c44337cd5 ( $9c5e2ca851587025$var$LOCAL _STORAGE _KEY , data ) ;
} ;
const $9c5e2ca851587025$var$getMemberIDs = ( ) => {
const ids = [ ] ;
$9c5e2ca851587025$var$membersContainer . querySelectorAll ( 'a' ) . forEach ( ( a ) => {
const href = a . getAttribute ( 'href' ) ;
if ( href . includes ( 'info_player' ) ) ids . push ( $c1259165cf39ac5b$export$2e2bcd8739ae039 ( href ) ) ;
2021-06-12 05:26:55 +00:00
} ) ;
return ids ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$getMemberNames = ( ) => {
2021-06-12 05:26:55 +00:00
const ids = [ ] ;
2021-10-17 11:02:02 +00:00
$9c5e2ca851587025$var$membersContainer . querySelectorAll ( 'a' ) . forEach ( ( a ) => {
if ( a . getAttribute ( 'href' ) . includes ( 'info_player' ) ) ids . push ( a . innerText . trim ( ) ) ;
2021-06-12 05:26:55 +00:00
} ) ;
return ids ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$loadData = async ( ) => {
const memberIDs = $9c5e2ca851587025$var$getMemberIDs ( ) ;
const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039 ( {
query : $9c5e2ca851587025$var$TRIBE _QUERY ,
variables : {
server : $9c5e2ca851587025$var$SERVER ,
id : $9c5e2ca851587025$var$TRIBE _ID ,
dailyTribeStatsSort : [
'createDate DESC'
] ,
dailyTribeStatsLimit : 1 ,
dailyTribeStatsFilter : {
tribeID : [
$9c5e2ca851587025$var$TRIBE _ID
]
} ,
playersSort : [
'rank ASC'
] ,
playersLimit : memberIDs . length ,
playerFilter : {
id : memberIDs
}
2021-06-12 05:26:55 +00:00
}
2020-07-17 13:43:28 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
$9c5e2ca851587025$var$cacheTribeData ( data ) ;
2021-06-12 05:26:55 +00:00
return data ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$renderTr = ( { title : title , data : data , id : id } ) => {
2021-06-12 05:26:55 +00:00
let tr = document . querySelector ( '#' + id ) ;
if ( ! tr ) {
2021-10-17 11:02:02 +00:00
tr = document . createElement ( 'tr' ) ;
tr . id = id ;
tr . appendChild ( document . createElement ( 'td' ) ) ;
tr . appendChild ( document . createElement ( 'td' ) ) ;
$9c5e2ca851587025$var$profileInfoTBody . append ( tr ) ;
2021-06-12 05:26:55 +00:00
}
tr . children [ 0 ] . innerHTML = title ;
tr . children [ 1 ] . innerHTML = data ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$extendMembersData = ( players ) => {
$9c5e2ca851587025$var$membersContainer . parentElement . style . width = '100%' ;
$9c5e2ca851587025$var$contentValue . append ( $9c5e2ca851587025$var$membersContainer . parentElement ) ;
const heading = $9c5e2ca851587025$var$membersContainer . querySelector ( 'tr:first-child' ) ;
if ( heading . children . length !== 11 ) [
$9c5e2ca851587025$var$translations . oda ,
$9c5e2ca851587025$var$translations . odd ,
$9c5e2ca851587025$var$translations . ods ,
$9c5e2ca851587025$var$translations . od ,
$9c5e2ca851587025$var$translations . dailyGrowth ,
$9c5e2ca851587025$var$translations . playerLinks ,
] . forEach ( ( v ) => {
2021-06-12 05:26:55 +00:00
const th = document . createElement ( 'th' ) ;
th . innerHTML = v ;
heading . appendChild ( th ) ;
2021-10-17 11:02:02 +00:00
} ) ;
$9c5e2ca851587025$var$membersContainer . querySelectorAll ( 'tr' ) . forEach ( ( tr ) => {
const a = tr . querySelector ( 'a' ) ;
if ( ! a ) return ;
const playerID = $c1259165cf39ac5b$export$2e2bcd8739ae039 ( a . getAttribute ( 'href' ) ) ;
const player = players . items . find ( ( p ) => p . id === playerID
) ;
if ( player ) [
[
player . scoreAtt ,
player . rankAtt
] ,
[
player . scoreDef ,
player . rankDef
] ,
[
player . scoreSup ,
player . rankSup
] ,
[
player . scoreTotal ,
player . rankTotal
] ,
player . dailyGrowth ,
[
{
link : $f3b273bd698d94bc$export$3df7b9b48f38839e ( $9c5e2ca851587025$var$VERSION , $9c5e2ca851587025$var$SERVER , player . id ) ,
label : 'TWHelp'
} ,
{
link : $c8a988f78c71dfa9$export$3df7b9b48f38839e ( $9c5e2ca851587025$var$SERVER , player . id ) ,
label : 'TWStats'
} ,
] ,
] . forEach ( ( data , index ) => {
let td = tr . children [ 5 + index ] ;
if ( ! td ) {
td = document . createElement ( 'td' ) ;
tr . appendChild ( td ) ;
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
if ( Array . isArray ( data ) ) {
if ( typeof data [ 0 ] === 'number' ) td . innerHTML = ` ${ data [ 0 ] . toLocaleString ( ) } (<strong> ${ data [ 1 ] } </strong>) ` ;
else if ( data [ 0 ] . link ) td . innerHTML = data . map ( ( { link : link , label : label } ) => ` <a target="_blank" href=" ${ link } "> ${ label } </a> `
) . join ( '<br>' ) ;
} else if ( typeof data === 'number' ) td . innerHTML = data . toLocaleString ( ) ;
2021-06-12 05:26:55 +00:00
} ) ;
2020-07-17 13:43:28 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$render = ( { tribe : tribe , dailyTribeStats : dailyTribeStats , players : players } ) => {
[
{
title : $9c5e2ca851587025$var$translations . createdAt + ':' ,
data : $ca7593443ca49f96$export$3ae94a2503e890a1 ( tribe . createdAt ) ,
id : 'created_at'
} ,
{
title : $9c5e2ca851587025$var$translations . dominance + ':' ,
data : tribe . dominance . toFixed ( 2 ) + '%' ,
id : 'dominance'
} ,
{
title : $9c5e2ca851587025$var$translations . bestRank + ':' ,
data : tribe . bestRank + ' ' + ` ( ${ $ca7593443ca49f96$export$3ae94a2503e890a1 ( tribe . bestRankAt ) } ) ` ,
id : 'best_rank'
} ,
{
title : $9c5e2ca851587025$var$translations . mostPoints + ':' ,
data : tribe . mostPoints . toLocaleString ( ) + ' ' + ` ( ${ $ca7593443ca49f96$export$3ae94a2503e890a1 ( tribe . mostPointsAt ) } ) ` ,
id : 'most_points'
} ,
{
title : $9c5e2ca851587025$var$translations . mostVillages + ':' ,
data : tribe . mostVillages + ' ' + ` ( ${ $ca7593443ca49f96$export$3ae94a2503e890a1 ( tribe . mostVillagesAt ) } ) ` ,
id : 'most_villages'
} ,
] . forEach ( ( data ) => {
$9c5e2ca851587025$var$renderTr ( data ) ;
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
if ( dailyTribeStats && dailyTribeStats . items . length > 0 ) $9f98bc5d5b389b94$export$2e2bcd8739ae039 ( $9c5e2ca851587025$var$otherElementsContainer , dailyTribeStats . items [ 0 ] ) ;
if ( players && players . items . length > 0 ) $9c5e2ca851587025$var$extendMembersData ( players ) ;
} ;
const $9c5e2ca851587025$var$handleShowTribeEnnoblementsClick = async ( e ) => {
2021-06-12 05:26:55 +00:00
e . preventDefault ( ) ;
2021-10-17 11:02:02 +00:00
const page = $57fe06ddde7dcd5d$export$c2a6433281518c91 ( e . target ) ;
2021-06-12 05:26:55 +00:00
if ( ! isNaN ( page ) ) {
2021-10-17 11:02:02 +00:00
const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039 ( {
query : $9c5e2ca851587025$var$ENNOBLEMENTS _QUERY ,
variables : {
filter : {
or : {
oldOwnerTribeID : [
$9c5e2ca851587025$var$TRIBE _ID
] ,
newOwnerTribeID : [
$9c5e2ca851587025$var$TRIBE _ID
]
}
} ,
offset : $9c5e2ca851587025$var$ENNOBLEMENTS _PER _PAGE * ( page - 1 ) ,
limit : $9c5e2ca851587025$var$ENNOBLEMENTS _PER _PAGE ,
sort : [
'ennobledAt DESC'
] ,
server : $9c5e2ca851587025$var$SERVER
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
} ) ;
$5d71a092de4ef3d0$export$2e2bcd8739ae039 ( e , data . ennoblements , {
currentPage : page ,
limit : $9c5e2ca851587025$var$ENNOBLEMENTS _PER _PAGE ,
onPageChange : $9c5e2ca851587025$var$handleShowTribeEnnoblementsClick
} ) ;
2020-07-17 19:44:35 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$handleShowTribeHistoryClick = async ( e ) => {
2021-06-12 05:26:55 +00:00
e . preventDefault ( ) ;
2021-10-17 11:02:02 +00:00
const page = $57fe06ddde7dcd5d$export$c2a6433281518c91 ( e . target ) ;
if ( ! isNaN ( page ) ) try {
2021-06-12 05:26:55 +00:00
const filter = {
2021-10-17 11:02:02 +00:00
tribeID : [
$9c5e2ca851587025$var$TRIBE _ID
]
2021-06-12 05:26:55 +00:00
} ;
2021-10-17 11:02:02 +00:00
const { tribeHistory : tribeHistory , dailyTribeStats : dailyTribeStats } = await $902f167bfdc7b30b$export$2e2bcd8739ae039 ( {
query : $9c5e2ca851587025$var$TRIBE _HISTORY _AND _TRIBE _DAILY _STATS _QUERY ,
variables : {
server : $9c5e2ca851587025$var$SERVER ,
offset : $9c5e2ca851587025$var$TRIBE _HISTORY _PER _PAGE * ( page - 1 ) ,
limit : $9c5e2ca851587025$var$TRIBE _HISTORY _PER _PAGE ,
sort : [
'createDate DESC'
] ,
tribeHistoryFilter : filter ,
dailyTribeStatsFilter : filter
}
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
$8b71c6d7781a0268$export$2e2bcd8739ae039 ( e , tribeHistory , dailyTribeStats , {
currentPage : page ,
limit : $9c5e2ca851587025$var$TRIBE _HISTORY _PER _PAGE ,
tribe : true ,
onPageChange : $9c5e2ca851587025$var$handleShowTribeHistoryClick
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} catch ( error ) {
2021-06-12 05:49:43 +00:00
console . log ( 'couldnt load tribe history' , error ) ;
2020-07-17 19:44:35 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$getMembersGrowthTdStyle = ( value ) => {
2021-06-12 05:26:55 +00:00
const statIncreaseStyle = 'color: #000; background-color: #0f0' ;
const statDecreaseStyle = 'color: #000; background-color: #f00' ;
const defaultStyle = 'color: #000; background-color: #808080' ;
return value > 0 ? statIncreaseStyle : value < 0 ? statDecreaseStyle : defaultStyle ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$mapMembersGrowthTdValue = ( i ) => {
switch ( $9c5e2ca851587025$var$MEMBERS _GROWTH _MODE ) {
case 'points' :
return i . points ;
case 'villages' :
return i . villages ;
case 'od' :
return i . scoreTotal ;
case 'oda' :
return i . scoreAtt ;
case 'odd' :
return i . scoreDef ;
case 'ods' :
return i . scoreSup ;
default :
return 0 ;
2020-07-18 10:02:35 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$buildMembersGrowthTBody = ( stats ) => {
const dates = [
... new Set ( stats . items . map ( ( item ) => item . createDate
) ) ,
] . reverse ( ) ;
return `
< tbody >
< tr >
< th > $ { $9c5e2ca851587025$var$translations . player } < / t h >
$ { dates . map ( ( date ) => {
return ` <th> ${ $ca7593443ca49f96$export$3ae94a2503e890a1 ( date , {
year : 'numeric' ,
month : '2-digit' ,
day : '2-digit'
} ) } < / t h > ` ;
} ) . join ( '' ) }
< th > $ { $9c5e2ca851587025$var$translations . total } < / t h >
< / t r >
$ { $9c5e2ca851587025$var$getMemberIDs ( ) . map ( ( id ) => {
const filtered = stats . items . filter ( ( item ) => item . player && item . player . id === id
) . reverse ( ) ;
let player = undefined ;
if ( filtered . length > 0 ) player = filtered [ 0 ] . player ;
const tds = [ ] ;
let total = 0 ;
for ( let date of dates ) {
const i = filtered . find ( ( i ) => i . createDate === date
) ;
let val = 0 ;
if ( i ) val = $9c5e2ca851587025$var$mapMembersGrowthTdValue ( i ) ;
total += val ;
tds . push ( ` <td style=" ${ $9c5e2ca851587025$var$getMembersGrowthTdStyle ( val ) } "> ${ val . toLocaleString ( ) } </td> ` ) ;
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
return ` <tr>
< td >
$ { player ? ` <a href=" ${ $db1dd60e5389e0c9$export$3df7b9b48f38839e ( id ) } "> ${ player . name } </a> ` : '-' }
< / t d >
$ { tds . join ( '' ) }
< td style = "${$9c5e2ca851587025$var$getMembersGrowthTdStyle(total)}" > < strong > $ { total . toLocaleString ( ) } < / s t r o n g > < / t d >
< / t r > ` ;
} ) . join ( '' ) }
< / t b o d y >
` ;
} ;
const $9c5e2ca851587025$var$MEMBERS _GROWTH _TABLE _ID = 'membersGrowth' ;
const $9c5e2ca851587025$var$MEMBERS _GROWTH _FORM = $9c5e2ca851587025$var$MEMBERS _GROWTH _TABLE _ID + 'Form' ;
const $9c5e2ca851587025$var$createChangeTypeHandler = ( stats ) => ( e ) => {
e . preventDefault ( ) ;
$9c5e2ca851587025$var$MEMBERS _GROWTH _MODE = e . target [ 0 ] . value ;
document . querySelector ( '#' + $9c5e2ca851587025$var$MEMBERS _GROWTH _TABLE _ID ) . innerHTML = $9c5e2ca851587025$var$buildMembersGrowthTBody ( stats ) ;
}
;
const $9c5e2ca851587025$var$renderMembersGrowthPopup = ( e , stats ) => {
const formOptions = [
[
'points' ,
$9c5e2ca851587025$var$translations . points
] ,
[
'villages' ,
$9c5e2ca851587025$var$translations . villages
] ,
[
'od' ,
$9c5e2ca851587025$var$translations . opponentsDefeated
] ,
[
'oda' ,
$9c5e2ca851587025$var$translations . opponentsDefeatedAsAttacker
] ,
[
'odd' ,
$9c5e2ca851587025$var$translations . opponentsDefeatedAsDefender
] ,
[
'ods' ,
$9c5e2ca851587025$var$translations . opponentsDefeatedAsSupporter
] ,
] . map ( ( v ) => ` <option ${ $9c5e2ca851587025$var$MEMBERS _GROWTH _MODE === v [ 0 ] ? 'selected="selected"' : '' } value=" ${ v [ 0 ] } "> ${ v [ 1 ] } </option> `
) ;
const html = `
< form id = "${$9c5e2ca851587025$var$MEMBERS_GROWTH_FORM}" >
< select >
$ { formOptions . join ( '' ) }
< / s e l e c t >
< button type = "submit" > $ { $9c5e2ca851587025$var$translations . change } < / b u t t o n >
< / f o r m >
< table id = "${$9c5e2ca851587025$var$MEMBERS_GROWTH_TABLE_ID}" class = "vis" style = "border-collapse: separate; border-spacing: 2px; width: 100%;" >
$ { $9c5e2ca851587025$var$buildMembersGrowthTBody ( stats ) }
< / t a b l e >
` ;
$20636c16dad2c11a$export$2e2bcd8739ae039 ( {
e : e ,
title : $9c5e2ca851587025$var$translations . membersGrowth ,
id : 'mg' ,
html : html
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
document . querySelector ( '#' + $9c5e2ca851587025$var$MEMBERS _GROWTH _FORM ) . addEventListener ( 'submit' , $9c5e2ca851587025$var$createChangeTypeHandler ( stats ) ) ;
} ;
const $9c5e2ca851587025$var$loadMembersGrowthData = async ( { createDateLTE : createDateLTE , createDateGT : createDateGT } = {
} ) => {
const memberIDs = $9c5e2ca851587025$var$getMemberIDs ( ) ;
const limit = memberIDs . length * $404c1b1679418875$export$2e2bcd8739ae039 ( createDateLTE , createDateGT ) ;
2021-06-12 05:26:55 +00:00
const filter = {
2021-10-17 11:02:02 +00:00
playerID : memberIDs ,
createDateLTE : createDateLTE ,
createDateGT : createDateGT
2021-06-12 05:26:55 +00:00
} ;
2021-10-17 11:02:02 +00:00
return await $902f167bfdc7b30b$export$2e2bcd8739ae039 ( {
query : $9c5e2ca851587025$var$TRIBE _MEMBERS _DAILY _STATS _QUERY ,
variables : {
filter : filter ,
limit : limit ,
sort : [
'createDate DESC'
] ,
server : $9c5e2ca851587025$var$SERVER
}
2020-07-18 10:02:35 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$handleShowMembersGrowthClick = async ( e ) => {
2021-06-12 05:26:55 +00:00
e . preventDefault ( ) ;
const createDateGT = new Date ( ) ;
createDateGT . setDate ( createDateGT . getDate ( ) - 7 ) ;
2021-10-17 11:02:02 +00:00
const data = await $9c5e2ca851587025$var$loadMembersGrowthData ( {
createDateLTE : new Date ( ) ,
createDateGT : createDateGT
2020-08-04 13:57:29 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
$9c5e2ca851587025$var$renderMembersGrowthPopup ( e , data . dailyPlayerStats ) ;
} ;
const $9c5e2ca851587025$var$renderTribeChanges = ( e , currentPage , tribeChanges ) => {
const paginationItems = $57fe06ddde7dcd5d$export$58a42a77c71a7de0 ( {
total : tribeChanges . total ,
limit : $9c5e2ca851587025$var$TRIBE _CHANGES _PER _PAGE ,
currentPage : currentPage
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
const html = `
< div style = "${$57fe06ddde7dcd5d$export$8947b11ec08f5f9d()}" id = "${$9c5e2ca851587025$var$TRIBE_CHANGES_PAGINATION_CONTAINER_ID}" >
$ { paginationItems . join ( '' ) }
< / d i v >
< table class = "vis" style = "border-collapse: separate; border-spacing: 2px; width: 100%;" >
< tbody >
< tr >
< th >
$ { $9c5e2ca851587025$var$translations . date }
< / t h >
< th >
$ { $9c5e2ca851587025$var$translations . player }
< / t h >
< th >
$ { $9c5e2ca851587025$var$translations . act }
< / t h >
< / t r >
$ { tribeChanges . items . map ( ( tribeChange ) => {
let rowHTML = '<tr>' + ` <td> ${ $ca7593443ca49f96$export$3ae94a2503e890a1 ( tribeChange . createdAt ) } </td> ` ;
if ( tribeChange . player ) rowHTML += ` <td><a href=" ${ $db1dd60e5389e0c9$export$3df7b9b48f38839e ( tribeChange . player . id ) } "> ${ tribeChange . player . name } </a></td> ` ;
else rowHTML += '<td>-</td>' ;
rowHTML += ` <td><strong> ${ tribeChange . newTribe && tribeChange . newTribe . id === $9c5e2ca851587025$var$TRIBE _ID ? $9c5e2ca851587025$var$translations . joined : $9c5e2ca851587025$var$translations . left } </strong></td> ` ;
return rowHTML + '</tr>' ;
} ) . join ( '' ) }
< / t b o d y >
< / t a b l e >
` ;
$20636c16dad2c11a$export$2e2bcd8739ae039 ( {
e : e ,
title : $9c5e2ca851587025$var$translations . tribeChanges ,
id : 'tribeChanges' ,
html : html
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
document . querySelectorAll ( '#' + $9c5e2ca851587025$var$TRIBE _CHANGES _PAGINATION _CONTAINER _ID + ' a' ) . forEach ( ( el ) => {
el . addEventListener ( 'click' , $9c5e2ca851587025$var$handleShowTribeChangesClick ) ;
2021-06-12 05:26:55 +00:00
} ) ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$handleShowTribeChangesClick = async ( e ) => {
2021-06-12 05:26:55 +00:00
e . preventDefault ( ) ;
2021-10-17 11:02:02 +00:00
const page = $57fe06ddde7dcd5d$export$c2a6433281518c91 ( e . target ) ;
2021-06-12 05:26:55 +00:00
if ( ! isNaN ( page ) ) {
2021-10-17 11:02:02 +00:00
const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039 ( {
query : $9c5e2ca851587025$var$TRIBE _CHANGES _QUERY ,
variables : {
filter : {
or : {
oldTribeID : [
$9c5e2ca851587025$var$TRIBE _ID
] ,
newTribeID : [
$9c5e2ca851587025$var$TRIBE _ID
]
}
} ,
offset : $9c5e2ca851587025$var$TRIBE _CHANGES _PER _PAGE * ( page - 1 ) ,
limit : $9c5e2ca851587025$var$TRIBE _CHANGES _PER _PAGE ,
sort : [
'createdAt DESC'
] ,
server : $9c5e2ca851587025$var$SERVER
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
} ) ;
$9c5e2ca851587025$var$renderTribeChanges ( e , page , data . tribeChanges ) ;
2020-08-04 13:57:29 +00:00
}
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$handleGenerateMailingListClick = ( e ) => {
2021-06-12 05:26:55 +00:00
e . preventDefault ( ) ;
2021-10-17 11:02:02 +00:00
const members = $9c5e2ca851587025$var$getMemberNames ( ) ;
2021-06-12 05:26:55 +00:00
const chunks = [ ] ;
2021-10-17 11:02:02 +00:00
for ( let i = 0 ; i < members . length ; i += 50 ) chunks . push ( members . slice ( i , i + 50 ) ) ;
2021-06-12 05:26:55 +00:00
let html = '' ;
2021-10-17 11:02:02 +00:00
chunks . forEach ( ( names , index ) => {
html += ` <h3 style="margin-bottom: 5px;"> ${ index + 1 } .</h3>
< textarea cols = 30 rows = 8 readonly style = "margin-bottom: 15px;" > $ { names . join ( ';' ) } < / t e x t a r e a > ` ;
2021-06-12 05:26:55 +00:00
} ) ;
Dialog . show ( 'mailinglist' , html ) ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$loadVillages = async ( variables , total = false ) => {
2021-06-12 05:26:55 +00:00
try {
2021-10-17 11:02:02 +00:00
const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039 ( {
variables : variables ,
query : `
query villages ( $server : String ! , $sort : [ String ! ] , $limit : Int , $offset : Int , $filter : VillageFilter ! ) {
villages ( server : $server , sort : $sort , limit : $limit , offset : $offset , filter : $filter ) {
$ { total ? 'total' : '' }
items {
id
x
y
}
}
}
`
} ) ;
if ( data && data . villages && Array . isArray ( data . villages . items ) ) return data . villages ;
2021-06-12 05:26:55 +00:00
} catch ( error ) {
2021-10-17 11:02:02 +00:00
console . log ( 'load villages' , error ) ;
2020-08-04 13:57:29 +00:00
}
2021-06-12 05:26:55 +00:00
return {
2021-10-17 11:02:02 +00:00
total : 0 ,
items : [ ]
2021-06-12 05:26:55 +00:00
} ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$showLoadingDialog = ( current = 0 , total = 0 ) => {
if ( ! current || ! total ) return Dialog . show ( 'loading' , '<strong>Loading...</strong>' ) ;
return Dialog . show ( 'loading' , ` Loaded: <strong> ${ current } </strong>/<strong> ${ total } </strong> ` ) ;
} ;
const $9c5e2ca851587025$var$handleExportTribeVillagesFormSubmit = async ( e ) => {
2021-06-12 05:26:55 +00:00
e . preventDefault ( ) ;
let limit = parseInt ( e . target [ 4 ] . value ) ;
const variables = {
2021-10-17 11:02:02 +00:00
filter : {
xLTE : parseInt ( e . target [ 0 ] . value ) ,
xGTE : parseInt ( e . target [ 1 ] . value ) ,
yLTE : parseInt ( e . target [ 2 ] . value ) ,
yGTE : parseInt ( e . target [ 3 ] . value ) ,
playerID : $9c5e2ca851587025$var$getMemberIDs ( )
} ,
limit : isNaN ( limit ) || ! limit ? 0 : limit ,
sort : [
'id ASC'
] ,
server : $9c5e2ca851587025$var$SERVER
2021-06-12 05:26:55 +00:00
} ;
2021-10-17 11:02:02 +00:00
$9c5e2ca851587025$var$showLoadingDialog ( ) ;
let { total : total , items : items } = await $9c5e2ca851587025$var$loadVillages ( variables , true ) ;
2021-06-12 05:26:55 +00:00
const length = items . length ;
2021-10-17 11:02:02 +00:00
if ( limit !== 0 && limit < total ) total = limit ;
if ( isNaN ( limit ) || ! limit || limit > length ) for ( let offset = length ; offset < total ; offset += length ) {
$9c5e2ca851587025$var$showLoadingDialog ( offset , total ) ;
const more = await $9c5e2ca851587025$var$loadVillages ( $f1e9793517c51c58$export$2e2bcd8739ae039 ( {
} , variables , {
filter : $f1e9793517c51c58$export$2e2bcd8739ae039 ( {
} , variables . filter ) ,
offset : offset
2021-06-12 05:26:55 +00:00
} ) ) ;
2021-10-17 11:02:02 +00:00
items = [
... items ,
... more . items
] ;
2021-06-12 05:26:55 +00:00
}
2021-10-17 11:02:02 +00:00
Dialog . show ( 'exportTribeVillages' , `
< textarea cols = 60 rows = 8 readonly > $ { items . map ( ( item ) => ` ${ item . x } | ${ item . y } `
) . join ( ' ' ) } < / t e x t a r e a >
` );
} ;
const $9c5e2ca851587025$var$handleExportTribeVillagesClick = ( e ) => {
2021-06-12 05:26:55 +00:00
e . preventDefault ( ) ;
const FORM _ID = 'etvForm' ;
2021-10-17 11:02:02 +00:00
const html = `
< div style = "display: flex; align-items: center; justify-content: center;" >
< form id = "${FORM_ID}" >
< div >
< label > X <= < / l a b e l >
< input type = "number" min = "0" value = "1000" required / >
< / d i v >
< div >
< label > X >= < / l a b e l >
< input type = "number" min = "0" value = "0" required / >
< / d i v >
< div >
< label > Y <= < / l a b e l >
< input type = "number" min = "0" value = "1000" required / >
< / d i v >
< div >
< label > Y >= < / l a b e l >
< input type = "number" min = "0" value = "0" required / >
< / d i v >
< div >
< label > Limit : < / l a b e l >
< input type = "number" min = "0" value = "0" required / >
< / d i v >
< button type = "submit" > Export < / b u t t o n >
< / f o r m >
< / d i v >
` ;
2021-06-12 05:26:55 +00:00
Dialog . show ( 'exportTribeVillages' , html ) ;
2021-10-17 11:02:02 +00:00
document . querySelector ( '#' + FORM _ID ) . addEventListener ( 'submit' , $9c5e2ca851587025$var$handleExportTribeVillagesFormSubmit ) ;
} ;
const $9c5e2ca851587025$var$wrapAction = ( action ) => {
2021-06-12 05:26:55 +00:00
const actionWrapperTd = document . createElement ( 'td' ) ;
actionWrapperTd . colSpan = '2' ;
actionWrapperTd . append ( action ) ;
const actionWrapperTr = document . createElement ( 'tr' ) ;
actionWrapperTr . appendChild ( actionWrapperTd ) ;
return actionWrapperTr ;
2021-10-17 11:02:02 +00:00
} ;
const $9c5e2ca851587025$var$renderActions = ( ) => {
2021-06-12 05:26:55 +00:00
const linkToTWHelp = document . createElement ( 'a' ) ;
2021-10-17 11:02:02 +00:00
linkToTWHelp . href = $f3b273bd698d94bc$export$7345792e21cfc457 ( $9c5e2ca851587025$var$VERSION , $9c5e2ca851587025$var$SERVER , $9c5e2ca851587025$var$TRIBE _ID ) ;
linkToTWHelp . innerHTML = $9c5e2ca851587025$var$translations . action . linkToTWHelp ;
$9c5e2ca851587025$var$actionContainer . appendChild ( $9c5e2ca851587025$var$wrapAction ( linkToTWHelp ) ) ;
2021-06-12 05:26:55 +00:00
const showEnnoblements = document . createElement ( 'a' ) ;
showEnnoblements . href = '#' ;
2021-10-17 11:02:02 +00:00
$57fe06ddde7dcd5d$export$5e830c5f3cd8a610 ( showEnnoblements , '1' ) ;
showEnnoblements . innerHTML = $9c5e2ca851587025$var$translations . action . showEnnoblements ;
showEnnoblements . addEventListener ( 'click' , $9c5e2ca851587025$var$handleShowTribeEnnoblementsClick ) ;
$9c5e2ca851587025$var$actionContainer . appendChild ( $9c5e2ca851587025$var$wrapAction ( showEnnoblements ) ) ;
2021-06-12 05:26:55 +00:00
const showHistory = document . createElement ( 'a' ) ;
showHistory . href = '#' ;
2021-10-17 11:02:02 +00:00
$57fe06ddde7dcd5d$export$5e830c5f3cd8a610 ( showHistory , '1' ) ;
showHistory . innerHTML = $9c5e2ca851587025$var$translations . action . showHistory ;
showHistory . addEventListener ( 'click' , $9c5e2ca851587025$var$handleShowTribeHistoryClick ) ;
$9c5e2ca851587025$var$actionContainer . appendChild ( $9c5e2ca851587025$var$wrapAction ( showHistory ) ) ;
2021-06-12 05:26:55 +00:00
const showTribeChanges = document . createElement ( 'a' ) ;
showTribeChanges . href = '#' ;
2021-10-17 11:02:02 +00:00
$57fe06ddde7dcd5d$export$5e830c5f3cd8a610 ( showTribeChanges , '1' ) ;
showTribeChanges . innerHTML = $9c5e2ca851587025$var$translations . action . showTribeChanges ;
showTribeChanges . addEventListener ( 'click' , $9c5e2ca851587025$var$handleShowTribeChangesClick ) ;
$9c5e2ca851587025$var$actionContainer . appendChild ( $9c5e2ca851587025$var$wrapAction ( showTribeChanges ) ) ;
2021-06-12 05:26:55 +00:00
const showMembersGrowth = document . createElement ( 'a' ) ;
showMembersGrowth . href = '#' ;
2021-10-17 11:02:02 +00:00
showMembersGrowth . innerHTML = $9c5e2ca851587025$var$translations . action . showMembersGrowth ;
showMembersGrowth . addEventListener ( 'click' , $9c5e2ca851587025$var$handleShowMembersGrowthClick ) ;
$9c5e2ca851587025$var$actionContainer . appendChild ( $9c5e2ca851587025$var$wrapAction ( showMembersGrowth ) ) ;
2021-06-12 05:26:55 +00:00
const generateMailingList = document . createElement ( 'a' ) ;
generateMailingList . href = '#' ;
2021-10-17 11:02:02 +00:00
generateMailingList . innerHTML = $9c5e2ca851587025$var$translations . action . generateMailingList ;
generateMailingList . addEventListener ( 'click' , $9c5e2ca851587025$var$handleGenerateMailingListClick ) ;
$9c5e2ca851587025$var$actionContainer . appendChild ( $9c5e2ca851587025$var$wrapAction ( generateMailingList ) ) ;
2021-06-12 05:26:55 +00:00
const exportVillages = document . createElement ( 'a' ) ;
exportVillages . href = '#' ;
2021-10-17 11:02:02 +00:00
exportVillages . innerHTML = $9c5e2ca851587025$var$translations . action . exportVillages ;
exportVillages . addEventListener ( 'click' , $9c5e2ca851587025$var$handleExportTribeVillagesClick ) ;
$9c5e2ca851587025$var$actionContainer . appendChild ( $9c5e2ca851587025$var$wrapAction ( exportVillages ) ) ;
} ;
( async function ( ) {
2021-06-12 05:26:55 +00:00
try {
2021-10-17 11:02:02 +00:00
$9c5e2ca851587025$var$renderActions ( ) ;
const dataFromCache = $9c5e2ca851587025$var$loadDataFromCache ( ) ;
if ( dataFromCache && dataFromCache . tribe ) $9c5e2ca851587025$var$render ( dataFromCache ) ;
const dataFromAPI = await $9c5e2ca851587025$var$loadData ( ) ;
if ( dataFromAPI ) $9c5e2ca851587025$var$render ( dataFromAPI ) ;
2021-06-12 05:26:55 +00:00
} catch ( error ) {
2021-10-17 11:02:02 +00:00
console . log ( 'extended tribe profile' , error ) ;
2021-06-12 05:26:55 +00:00
}
2020-07-17 11:50:29 +00:00
} ) ( ) ;
2021-06-12 05:26:55 +00:00
2021-10-17 11:02:02 +00:00
} ) ( ) ;