diff --git a/dist/extendedPlayerProfile.js b/dist/extendedPlayerProfile.js index e65d280..04acf4e 100644 --- a/dist/extendedPlayerProfile.js +++ b/dist/extendedPlayerProfile.js @@ -1054,21 +1054,6 @@ var _default = function _default() { }; exports.default = _default; -},{}],"Syko":[function(require,module,exports) { -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.formatPlayerURL = void 0; - -const formatPlayerURL = function formatPlayerURL() { - let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - let id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - return "http://www.twstats.com/in/".concat(server, "/player/").concat(id); -}; - -exports.formatPlayerURL = formatPlayerURL; },{}],"gvXE":[function(require,module,exports) { "use strict"; @@ -1179,14 +1164,16 @@ var _getServerVersionCode = _interopRequireDefault(require("./utils/getServerVer var _formatDate = _interopRequireDefault(require("./utils/formatDate")); -var _twstats = require("./utils/twstats"); - var _tribalwars = require("./utils/tribalwars"); -var _twhelp = require("./utils/twhelp"); +var twhelputils = _interopRequireWildcard(require("./utils/twhelp")); var _localStorage = require("./utils/localStorage"); +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } @@ -1198,7 +1185,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r // @namespace https://github.com/tribalwarshelp/scripts // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js -// @version 1.1.6 +// @version 1.1.7 // @description Extended player profile // @author Kichiyaki https://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_player* @@ -1206,6 +1193,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r // @run-at document-end // ==/UserScript== const SERVER = (0, _getCurrentServer.default)(); +const VERSION = (0, _getServerVersionCode.default)(SERVER); let PLAYER_ID = (0, _getIDFromURL.default)(window.location.search); const CURRENT_PLAYER_ID = parseInt(game_data.player.id); @@ -1339,7 +1327,7 @@ const renderPlayerServers = player => { otherElementContainer.prepend(playerServers); } - playerServers.querySelector('td').innerHTML = player.servers.sort().map(server => "").concat(server, "")).join(''); + playerServers.querySelector('td').innerHTML = player.servers.sort().map(server => "").concat(server, "")).join(''); }; const renderPlayerOtherNames = player => { @@ -1551,7 +1539,7 @@ const wrapAction = action => { const renderActions = () => { const linkToTWHelp = document.createElement('a'); - linkToTWHelp.href = (0, _twhelp.buildPlayerURL)((0, _getServerVersionCode.default)(SERVER), SERVER, PLAYER_ID); + linkToTWHelp.href = twhelputils.buildPlayerURL(VERSION, SERVER, PLAYER_ID); linkToTWHelp.innerHTML = translations.action.linkToTWHelp; actionContainer.appendChild(wrapAction(linkToTWHelp)); const showTribeChanges = document.createElement('a'); @@ -1597,4 +1585,4 @@ const renderActions = () => { console.log('extended player profile', error); } })(); -},{"./libs/InADayParser":"dSAr","./libs/requestCreator":"Ph2E","./i18n/extendedPlayerProfile":"I8dv","./common/renderTodaysStats":"yrCm","./utils/showPopup":"chDM","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/hyphensToCamelCase":"GxsT","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/getServerVersionCode":"J1Ly","./utils/formatDate":"V6Mf","./utils/twstats":"Syko","./utils/tribalwars":"fHHP","./utils/twhelp":"gvXE","./utils/localStorage":"KWxH"}]},{},["yRop"], null) \ No newline at end of file +},{"./libs/InADayParser":"dSAr","./libs/requestCreator":"Ph2E","./i18n/extendedPlayerProfile":"I8dv","./common/renderTodaysStats":"yrCm","./utils/showPopup":"chDM","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/hyphensToCamelCase":"GxsT","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/getServerVersionCode":"J1Ly","./utils/formatDate":"V6Mf","./utils/tribalwars":"fHHP","./utils/twhelp":"gvXE","./utils/localStorage":"KWxH"}]},{},["yRop"], null) \ No newline at end of file diff --git a/dist/quickbar/extendedPlayerProfile.js b/dist/quickbar/extendedPlayerProfile.js index 6d6a8a6..f93a819 100644 --- a/dist/quickbar/extendedPlayerProfile.js +++ b/dist/quickbar/extendedPlayerProfile.js @@ -44,12 +44,10 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=()=>window.location.host.split(".")[0];exports.default=e; },{}],"J1Ly":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").substr(0,2)};exports.default=e; -},{}],"Syko":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatPlayerURL=void 0;const t=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)};exports.formatPlayerURL=t; },{}],"gvXE":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildVillageURL=exports.buildTribeURL=exports.buildPlayerURL=exports.buildURLToProfile=exports.buildURLToServerPage=exports.BASE_URL=void 0;const e="tribalwarshelp.com";exports.BASE_URL=e;const t=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"https://".concat(t,".").concat(e,"/server/").concat(o)};exports.buildURLToServerPage=t;const o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return"".concat(t(e,o),"/").concat(n,"/").concat(l)};exports.buildURLToProfile=o;const l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return o(e,t,l,"player")};exports.buildPlayerURL=l;const n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return o(e,t,l,"tribe")};exports.buildTribeURL=n;const i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return o(e,t,l,"village")};exports.buildVillageURL=i; },{}],"KWxH":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setItem=exports.getItem=void 0;const e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=localStorage.getItem(e);let s=t;return o&&(s=JSON.parse(o)),s};exports.getItem=e;const t=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))};exports.setItem=t; },{}],"yRop":[function(require,module,exports) { -"use strict";var e=p(require("./libs/InADayParser")),t=p(require("./libs/requestCreator")),n=p(require("./i18n/extendedPlayerProfile")),r=p(require("./common/renderTodaysStats")),a=p(require("./utils/showPopup")),i=p(require("./common/showEnnoblementsPopup")),o=p(require("./common/showHistoryPopup")),l=p(require("./utils/hyphensToCamelCase")),s=require("./utils/pagination"),c=p(require("./utils/getIDFromURL")),d=p(require("./utils/getCurrentServer")),u=p(require("./utils/getServerVersionCode")),y=p(require("./utils/formatDate")),m=require("./utils/twstats"),f=require("./utils/tribalwars"),g=require("./utils/twhelp"),h=require("./utils/localStorage");function p(e){return e&&e.__esModule?e:{default:e}}function b(e,t){if(null==e)return{};var n,r,a=v(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function v(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}const S=(0,d.default)();let D=(0,c.default)(window.location.search);const w=parseInt(game_data.player.id);!isNaN(D)&&D||(D=w);const $="kichiyaki_extended_player_profile"+D,A="\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",P="\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",k="tribeChangesPagination",q=15,T="\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",C=15,L="\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",E=15,_=document.querySelector("#player_info > tbody"),I=D===w?_:document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),H=document.querySelector(D===w?"#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)":"#content_value > table > tbody > tr > td:nth-child(2)"),N=(0,n.default)(),O=()=>(0,h.getItem)($),R=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,h.setItem)($,e)},j=async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:r}=n,a=b(n,["name"]);try{const n=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:t,name:r||""})),o=await n.text();if(!o)throw new Error;const l=new e.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,tribe:"",date:new Date}}},x=async()=>{const e=await(0,t.default)({query:A,variables:{server:S,id:D,limit:1,sort:["createDate DESC"],filter:{playerID:[D]}}});if(e.player){const t={},n={name:e.player.name,playerID:e.player.id};for(let e of["kill_att","kill_def","kill_sup","loot_res","loot_vil","scavenge","conquer"])t[(0,l.default)(e.replace("kill_",""))]=await j(e,n);e.player.inADay=t}return R(e),e},M=e=>{let{title:t,data:n,id:r}=e,a=document.querySelector("#"+r);a||((a=document.createElement("tr")).id=r,a.appendChild(document.createElement("td")),a.appendChild(document.createElement("td")),_.append(a)),a.children[0].innerHTML=t,a.children[1].innerHTML=n},F=e=>{let t=document.querySelector("#playerServers");t||((t=document.createElement("table")).id="playerServers",t.classList.add("vis"),t.width="100%",t.innerHTML="\n \n \n \n ".concat(N.playerServers,"\n \n \n \n \n \n \n \n "),H.prepend(t)),t.querySelector("td").innerHTML=e.servers.sort().map(t=>'').concat(t,"")).join("")},V=e=>{let t=document.querySelector("#playerOtherNames");t||((t=document.createElement("div")).id="playerOtherNames",t.width="100%",H.prepend(t)),t.innerHTML='\n \n \n \n \n \n \n \n ").concat(e.nameChanges.map(e=>"\n \n \n \n \n \n ")).join(""),"\n \n
\n '.concat(N.oldName,"\n \n ").concat(N.newName,"\n \n ").concat(N.date,"\n
\n ".concat(e.oldName,"\n \n ").concat(e.newName,"\n \n ").concat((0,y.default)(e.changeDate,{year:"numeric",month:"2-digit",day:"2-digit"}),"\n
\n ")},U=e=>{let t=document.querySelector("#inADayRanks");t||((t=document.createElement("div")).id="inADayRanks",t.width="100%",H.prepend(t)),t.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n '.concat(N.inADayBestScores,"\n
\n ").concat(N.unitsDefeatedWhileAttacking,"\n \n ").concat(e.inADay.att.score.toLocaleString()," (").concat(e.inADay.att.rank,".)\n
\n ").concat(N.unitsDefeatedWhileDefending,"\n \n ").concat(e.inADay.def.score.toLocaleString()," (").concat(e.inADay.def.rank,".)\n
\n ").concat(N.unitsDefeatedWhileSupporting,"\n \n ").concat(e.inADay.sup.score.toLocaleString()," (").concat(e.inADay.sup.rank,".)\n
\n ").concat(N.resourcesPlundered,"\n \n ").concat(e.inADay.lootRes.score.toLocaleString()," (").concat(e.inADay.lootRes.rank,".)\n
\n ").concat(N.villagesPlundered,"\n \n ").concat(e.inADay.lootVil.score.toLocaleString()," (").concat(e.inADay.lootVil.rank,".)\n
\n ").concat(N.resourcesGathered,"\n \n ").concat(e.inADay.scavenge.score.toLocaleString()," (").concat(e.inADay.scavenge.rank,".)\n
\n ").concat(N.villagesConquered,"\n \n ").concat(e.inADay.conquer.score.toLocaleString()," (").concat(e.inADay.conquer.rank,".)\n
\n ")},W=e=>{let{player:t,dailyPlayerStats:n}=e;[{title:N.joinedAt+":",data:(0,y.default)(t.joinedAt),id:"joined_at"},{title:N.dailyGrowth+":",data:t.dailyGrowth.toLocaleString(),id:"dg"},{title:N.bestRank+":",data:t.bestRank+" "+"(".concat((0,y.default)(t.bestRankAt),")"),id:"best_rank"},{title:N.mostPoints+":",data:t.mostPoints.toLocaleString()+" "+"(".concat((0,y.default)(t.mostPointsAt),")"),id:"most_points"},{title:N.mostVillages+":",data:t.mostVillages+" "+"(".concat((0,y.default)(t.mostVillagesAt),")"),id:"most_villages"}].forEach(e=>{M(e)}),U(t),n&&n.items.length>0&&(0,r.default)(H,n.items[0]),t.nameChanges.length>0&&V(t),t.servers.length>0&&F(t)},G=(e,t,n)=>{const r=(0,s.generatePaginationItems)({total:n.total,limit:15,currentPage:t}),i='\n
\n ').concat(r.join(""),'\n
\n \n \n \n \n \n \n \n ").concat(n.items.map(e=>{let t=""+"");return e.newTribe?t+='"):t+="",e.oldTribe?t+='"):t+="",t+""}).join(""),"\n \n
\n ').concat(N.date,"\n \n ").concat(N.newTribe,"\n \n ").concat(N.oldTribe,"\n
".concat((0,y.default)(e.createdAt),"').concat(e.newTribe.tag,"-').concat(e.oldTribe.tag,"-
\n ");(0,a.default)({e:e,title:N.tribeChanges,id:"tribeChanges",html:i}),document.querySelectorAll("#tribeChangesPagination a").forEach(e=>{e.addEventListener("click",B)})},B=async e=>{e.preventDefault();const n=(0,s.getPage)(e.target);if(!isNaN(n)){const r=await(0,t.default)({query:P,variables:{filter:{playerID:[D]},sort:["createdAt DESC"],offset:15*(n-1),limit:15,server:S}});G(e,n,r.tribeChanges)}},z=async e=>{e.preventDefault();const n=(0,s.getPage)(e.target);if(!isNaN(n))try{const a={playerID:[D]},{playerHistory:i,dailyPlayerStats:l}=await(0,t.default)({query:T,variables:{server:S,playerHistoryFilter:a,offset:15*(n-1),limit:15,sort:["createDate DESC"],dailyPlayerStatsFilter:a}});(0,o.default)(e,i,l,{currentPage:n,limit:15,onPageChange:z,tribe:!1})}catch(r){console.log("cannot load player history",r)}},J=async e=>{e.preventDefault();const n=(0,s.getPage)(e.target);if(!isNaN(n)){const r=await(0,t.default)({query:L,variables:{filter:{or:{oldOwnerID:[D],newOwnerID:[D]}},offset:15*(n-1),limit:15,sort:["ennobledAt DESC"],server:S}});(0,i.default)(e,r.ennoblements,{currentPage:n,limit:15,onPageChange:J})}},K=e=>{e.preventDefault(),Dialog.show(N.exportedVillages,""))},Q=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},X=()=>{const e=document.createElement("a");e.href=(0,g.buildPlayerURL)((0,u.default)(S),S,D),e.innerHTML=N.action.linkToTWHelp,I.appendChild(Q(e));const t=document.createElement("a");t.href="#",(0,s.setPage)(t,"1"),t.innerHTML=N.action.showTribeChanges,t.addEventListener("click",B),I.appendChild(Q(t));const n=document.createElement("a");n.href="#",(0,s.setPage)(n,"1"),n.innerHTML=N.action.showHistory,n.addEventListener("click",z),I.appendChild(Q(n));const r=document.createElement("a");r.href="#",(0,s.setPage)(r,"1"),r.innerHTML=N.action.showEnnoblements,r.addEventListener("click",J),I.appendChild(Q(r));const a=document.createElement("a");a.href="#",a.innerHTML=N.action.exportVillages,a.addEventListener("click",K),I.appendChild(Q(a))};!async function(){try{X();const t=O();t&&t.player&&W(t);const n=await x();n&&W(n)}catch(e){console.log("extended player profile",e)}}(); -},{"./libs/InADayParser":"dSAr","./libs/requestCreator":"Ph2E","./i18n/extendedPlayerProfile":"I8dv","./common/renderTodaysStats":"yrCm","./utils/showPopup":"chDM","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/hyphensToCamelCase":"GxsT","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/getServerVersionCode":"J1Ly","./utils/formatDate":"V6Mf","./utils/twstats":"Syko","./utils/tribalwars":"fHHP","./utils/twhelp":"gvXE","./utils/localStorage":"KWxH"}]},{},["yRop"], null) \ No newline at end of file +"use strict";var e=b(require("./libs/InADayParser")),t=b(require("./libs/requestCreator")),n=b(require("./i18n/extendedPlayerProfile")),r=b(require("./common/renderTodaysStats")),a=b(require("./utils/showPopup")),i=b(require("./common/showEnnoblementsPopup")),o=b(require("./common/showHistoryPopup")),l=b(require("./utils/hyphensToCamelCase")),s=require("./utils/pagination"),c=b(require("./utils/getIDFromURL")),d=b(require("./utils/getCurrentServer")),u=b(require("./utils/getServerVersionCode")),y=b(require("./utils/formatDate")),f=require("./utils/tribalwars"),m=h(require("./utils/twhelp")),p=require("./utils/localStorage");function g(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return g=function(){return e},e}function h(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=g();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=r?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function b(e){return e&&e.__esModule?e:{default:e}}function v(e,t){if(null==e)return{};var n,r,a=D(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function D(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}const S=(0,d.default)(),w=(0,u.default)(S);let P=(0,c.default)(window.location.search);const $=parseInt(game_data.player.id);!isNaN(P)&&P||(P=$);const k="kichiyaki_extended_player_profile"+P,A="\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",q="\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",T="tribeChangesPagination",C=15,L="\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",E=15,_="\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",O=15,I=document.querySelector("#player_info > tbody"),H=P===$?I:document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),j=document.querySelector(P===$?"#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)":"#content_value > table > tbody > tr > td:nth-child(2)"),M=(0,n.default)(),N=()=>(0,p.getItem)(k),R=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,p.setItem)(k,e)},x=async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:r}=n,a=v(n,["name"]);try{const n=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:t,name:r||""})),o=await n.text();if(!o)throw new Error;const l=new e.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,tribe:"",date:new Date}}},F=async()=>{const e=await(0,t.default)({query:A,variables:{server:S,id:P,limit:1,sort:["createDate DESC"],filter:{playerID:[P]}}});if(e.player){const t={},n={name:e.player.name,playerID:e.player.id};for(let e of["kill_att","kill_def","kill_sup","loot_res","loot_vil","scavenge","conquer"])t[(0,l.default)(e.replace("kill_",""))]=await x(e,n);e.player.inADay=t}return R(e),e},V=e=>{let{title:t,data:n,id:r}=e,a=document.querySelector("#"+r);a||((a=document.createElement("tr")).id=r,a.appendChild(document.createElement("td")),a.appendChild(document.createElement("td")),I.append(a)),a.children[0].innerHTML=t,a.children[1].innerHTML=n},W=e=>{let t=document.querySelector("#playerServers");t||((t=document.createElement("table")).id="playerServers",t.classList.add("vis"),t.width="100%",t.innerHTML="\n \n \n \n ".concat(M.playerServers,"\n \n \n \n \n \n \n \n "),j.prepend(t)),t.querySelector("td").innerHTML=e.servers.sort().map(t=>'').concat(t,"")).join("")},U=e=>{let t=document.querySelector("#playerOtherNames");t||((t=document.createElement("div")).id="playerOtherNames",t.width="100%",j.prepend(t)),t.innerHTML='\n \n \n \n \n \n \n \n ").concat(e.nameChanges.map(e=>"\n \n \n \n \n \n ")).join(""),"\n \n
\n '.concat(M.oldName,"\n \n ").concat(M.newName,"\n \n ").concat(M.date,"\n
\n ".concat(e.oldName,"\n \n ").concat(e.newName,"\n \n ").concat((0,y.default)(e.changeDate,{year:"numeric",month:"2-digit",day:"2-digit"}),"\n
\n ")},G=e=>{let t=document.querySelector("#inADayRanks");t||((t=document.createElement("div")).id="inADayRanks",t.width="100%",j.prepend(t)),t.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n '.concat(M.inADayBestScores,"\n
\n ").concat(M.unitsDefeatedWhileAttacking,"\n \n ").concat(e.inADay.att.score.toLocaleString()," (").concat(e.inADay.att.rank,".)\n
\n ").concat(M.unitsDefeatedWhileDefending,"\n \n ").concat(e.inADay.def.score.toLocaleString()," (").concat(e.inADay.def.rank,".)\n
\n ").concat(M.unitsDefeatedWhileSupporting,"\n \n ").concat(e.inADay.sup.score.toLocaleString()," (").concat(e.inADay.sup.rank,".)\n
\n ").concat(M.resourcesPlundered,"\n \n ").concat(e.inADay.lootRes.score.toLocaleString()," (").concat(e.inADay.lootRes.rank,".)\n
\n ").concat(M.villagesPlundered,"\n \n ").concat(e.inADay.lootVil.score.toLocaleString()," (").concat(e.inADay.lootVil.rank,".)\n
\n ").concat(M.resourcesGathered,"\n \n ").concat(e.inADay.scavenge.score.toLocaleString()," (").concat(e.inADay.scavenge.rank,".)\n
\n ").concat(M.villagesConquered,"\n \n ").concat(e.inADay.conquer.score.toLocaleString()," (").concat(e.inADay.conquer.rank,".)\n
\n ")},B=e=>{let{player:t,dailyPlayerStats:n}=e;[{title:M.joinedAt+":",data:(0,y.default)(t.joinedAt),id:"joined_at"},{title:M.dailyGrowth+":",data:t.dailyGrowth.toLocaleString(),id:"dg"},{title:M.bestRank+":",data:t.bestRank+" "+"(".concat((0,y.default)(t.bestRankAt),")"),id:"best_rank"},{title:M.mostPoints+":",data:t.mostPoints.toLocaleString()+" "+"(".concat((0,y.default)(t.mostPointsAt),")"),id:"most_points"},{title:M.mostVillages+":",data:t.mostVillages+" "+"(".concat((0,y.default)(t.mostVillagesAt),")"),id:"most_villages"}].forEach(e=>{V(e)}),G(t),n&&n.items.length>0&&(0,r.default)(j,n.items[0]),t.nameChanges.length>0&&U(t),t.servers.length>0&&W(t)},z=(e,t,n)=>{const r=(0,s.generatePaginationItems)({total:n.total,limit:15,currentPage:t}),i='\n
\n ').concat(r.join(""),'\n
\n \n \n \n \n \n \n \n ").concat(n.items.map(e=>{let t=""+"");return e.newTribe?t+='"):t+="",e.oldTribe?t+='"):t+="",t+""}).join(""),"\n \n
\n ').concat(M.date,"\n \n ").concat(M.newTribe,"\n \n ").concat(M.oldTribe,"\n
".concat((0,y.default)(e.createdAt),"').concat(e.newTribe.tag,"-').concat(e.oldTribe.tag,"-
\n ");(0,a.default)({e:e,title:M.tribeChanges,id:"tribeChanges",html:i}),document.querySelectorAll("#tribeChangesPagination a").forEach(e=>{e.addEventListener("click",J)})},J=async e=>{e.preventDefault();const n=(0,s.getPage)(e.target);if(!isNaN(n)){const r=await(0,t.default)({query:q,variables:{filter:{playerID:[P]},sort:["createdAt DESC"],offset:15*(n-1),limit:15,server:S}});z(e,n,r.tribeChanges)}},K=async e=>{e.preventDefault();const n=(0,s.getPage)(e.target);if(!isNaN(n))try{const a={playerID:[P]},{playerHistory:i,dailyPlayerStats:l}=await(0,t.default)({query:L,variables:{server:S,playerHistoryFilter:a,offset:15*(n-1),limit:15,sort:["createDate DESC"],dailyPlayerStatsFilter:a}});(0,o.default)(e,i,l,{currentPage:n,limit:15,onPageChange:K,tribe:!1})}catch(r){console.log("cannot load player history",r)}},Q=async e=>{e.preventDefault();const n=(0,s.getPage)(e.target);if(!isNaN(n)){const r=await(0,t.default)({query:_,variables:{filter:{or:{oldOwnerID:[P],newOwnerID:[P]}},offset:15*(n-1),limit:15,sort:["ennobledAt DESC"],server:S}});(0,i.default)(e,r.ennoblements,{currentPage:n,limit:15,onPageChange:Q})}},X=e=>{e.preventDefault(),Dialog.show(M.exportedVillages,""))},Y=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},Z=()=>{const e=document.createElement("a");e.href=m.buildPlayerURL(w,S,P),e.innerHTML=M.action.linkToTWHelp,H.appendChild(Y(e));const t=document.createElement("a");t.href="#",(0,s.setPage)(t,"1"),t.innerHTML=M.action.showTribeChanges,t.addEventListener("click",J),H.appendChild(Y(t));const n=document.createElement("a");n.href="#",(0,s.setPage)(n,"1"),n.innerHTML=M.action.showHistory,n.addEventListener("click",K),H.appendChild(Y(n));const r=document.createElement("a");r.href="#",(0,s.setPage)(r,"1"),r.innerHTML=M.action.showEnnoblements,r.addEventListener("click",Q),H.appendChild(Y(r));const a=document.createElement("a");a.href="#",a.innerHTML=M.action.exportVillages,a.addEventListener("click",X),H.appendChild(Y(a))};!async function(){try{Z();const t=N();t&&t.player&&B(t);const n=await F();n&&B(n)}catch(e){console.log("extended player profile",e)}}(); +},{"./libs/InADayParser":"dSAr","./libs/requestCreator":"Ph2E","./i18n/extendedPlayerProfile":"I8dv","./common/renderTodaysStats":"yrCm","./utils/showPopup":"chDM","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/hyphensToCamelCase":"GxsT","./utils/pagination":"fCHX","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/getServerVersionCode":"J1Ly","./utils/formatDate":"V6Mf","./utils/tribalwars":"fHHP","./utils/twhelp":"gvXE","./utils/localStorage":"KWxH"}]},{},["yRop"], null) \ No newline at end of file diff --git a/src/extendedPlayerProfile.js b/src/extendedPlayerProfile.js index cc91fe5..14d9938 100644 --- a/src/extendedPlayerProfile.js +++ b/src/extendedPlayerProfile.js @@ -16,9 +16,8 @@ import getIDFromURL from './utils/getIDFromURL'; import getCurrentServer from './utils/getCurrentServer'; import getServerVersionCode from './utils/getServerVersionCode'; import formatDate from './utils/formatDate'; -import { formatPlayerURL } from './utils/twstats'; import { formatTribeURL } from './utils/tribalwars'; -import { buildPlayerURL } from './utils/twhelp'; +import * as twhelputils from './utils/twhelp'; import { setItem, getItem } from './utils/localStorage'; // ==UserScript== @@ -26,7 +25,7 @@ import { setItem, getItem } from './utils/localStorage'; // @namespace https://github.com/tribalwarshelp/scripts // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedPlayerProfile.js -// @version 1.1.6 +// @version 1.1.7 // @description Extended player profile // @author Kichiyaki https://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_player* @@ -35,6 +34,7 @@ import { setItem, getItem } from './utils/localStorage'; // ==/UserScript== const SERVER = getCurrentServer(); +const VERSION = getServerVersionCode(SERVER); let PLAYER_ID = getIDFromURL(window.location.search); const CURRENT_PLAYER_ID = parseInt(game_data.player.id); if (isNaN(PLAYER_ID) || !PLAYER_ID) { @@ -306,7 +306,8 @@ const renderPlayerServers = (player) => { .sort() .map( (server) => - `${server}` @@ -664,11 +665,7 @@ const wrapAction = (action) => { const renderActions = () => { const linkToTWHelp = document.createElement('a'); - linkToTWHelp.href = buildPlayerURL( - getServerVersionCode(SERVER), - SERVER, - PLAYER_ID - ); + linkToTWHelp.href = twhelputils.buildPlayerURL(VERSION, SERVER, PLAYER_ID); linkToTWHelp.innerHTML = translations.action.linkToTWHelp; actionContainer.appendChild(wrapAction(linkToTWHelp));