From f449516552c71fe2317a927c3f983ff0e16d8ada Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Sat, 21 Nov 2020 15:01:40 +0100 Subject: [PATCH] bump scripts to the new API version --- dist/bonusBarbarianVillageFinder.js | 12 ++-- dist/dailyAchievements.js | 4 +- dist/extendedMapPopup.js | 12 ++-- dist/extendedPlayerProfile.js | 48 ++++++------- dist/extendedTribeProfile.js | 64 ++++++++--------- dist/extendedVillageProfile.js | 22 +++--- dist/quickbar/bonusBarbarianVillageFinder.js | 2 +- dist/quickbar/dailyAchievements.js | 2 +- dist/quickbar/extendedMapPopup.js | 2 +- dist/quickbar/extendedPlayerProfile.js | 2 +- dist/quickbar/extendedTribeProfile.js | 2 +- dist/quickbar/extendedVillageProfile.js | 2 +- src/bonusBarbarianVillageFinder.js | 10 +-- src/dailyAchievements.js | 10 +-- src/extendedMapPopup.js | 10 +-- src/extendedPlayerProfile.js | 50 ++++++------- src/extendedTribeProfile.js | 75 ++++++++++---------- src/extendedVillageProfile.js | 20 +++--- src/latestEnnoblements.js | 4 +- 19 files changed, 171 insertions(+), 182 deletions(-) diff --git a/dist/bonusBarbarianVillageFinder.js b/dist/bonusBarbarianVillageFinder.js index f7ed6e8..35db657 100644 --- a/dist/bonusBarbarianVillageFinder.js +++ b/dist/bonusBarbarianVillageFinder.js @@ -293,14 +293,14 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js -// @version 0.4.2 +// @version 0.4.3 // @description Bonus barbarian village finder // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=map* // @grant none // ==/UserScript== const SERVER = (0, _getCurrentServer.default)(); -const QUERY = "\n query villages($server: String!, $filter: VillageFilter) {\n villages(server: $server, filter: $filter) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n"; +const QUERY = "\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n"; const TABLE_ID = 'bonusBarbarianVillageFinderTable'; const ACTUAL_COORDS_ID = 'actualCoords'; const translations = (0, _bonusBarbarianVillageFinder.default)(); @@ -311,12 +311,12 @@ const buildReqOptions = (bonus, offset) => { query: QUERY, variables: { server: SERVER, + sort: ['id DESC'], filter: { bonus, - sort: 'id DESC', - playerID: [0], - offset - } + playerID: [0] + }, + offset } }; }; diff --git a/dist/dailyAchievements.js b/dist/dailyAchievements.js index 1ab3300..0ffc5a1 100644 --- a/dist/dailyAchievements.js +++ b/dist/dailyAchievements.js @@ -307,7 +307,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js -// @version 0.4.0 +// @version 0.4.1 // @description Daily achievements // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_player&mode=awards* @@ -316,7 +316,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope const SERVER = (0, _getCurrentServer.default)(); const LOCAL_STORAGE_KEY = 'kichiyaki_daily_achievements'; const SERVER_QUERY = "\n query server($server: String!) {\n server(key: $server) {\n key\n historyUpdatedAt\n }\n }\n"; -const DAILY_STATS_QUERY = "\n query data($server: String!, $createDateGTE: Time!) {\n dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStats(server: $server, filter: { sort: \"scoreAtt DESC\", createDateGTE: $createDateGTE, playerFilter: { sort: \"id DESC\" }, limit: 5 }) {\n items {\n scoreAtt\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreDef: dailyPlayerStats(server: $server, filter: { sort: \"scoreDef DESC\", createDateGTE: $createDateGTE, playerFilter: { sort: \"id DESC\" }, limit: 5 }) {\n items {\n scoreDef\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreSup: dailyPlayerStats(server: $server, filter: { sort: \"scoreSup DESC\", createDateGTE: $createDateGTE, playerFilter: { sort: \"id DESC\" }, limit: 5 }) {\n items {\n scoreSup\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByVillages: dailyPlayerStats(server: $server, filter: { sort: \"villages DESC\", createDateGTE: $createDateGTE, playerFilter: { sort: \"id DESC\" }, limit: 5 }) {\n items {\n villages\n player {\n id\n name\n }\n }\n }\n }\n"; +const DAILY_STATS_QUERY = "\n query data($server: String!, $createDateGTE: Time!) {\n dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStats(server: $server, sort: [\"scoreAtt DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreAtt\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreDef: dailyPlayerStats(server: $server, sort: [\"scoreDef DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreDef\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByScoreSup: dailyPlayerStats(server: $server, sort: [\"scoreSup DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n scoreSup\n player {\n id\n name\n }\n }\n }\n dailyPlayerStatsOrderedByVillages: dailyPlayerStats(server: $server, sort: [\"villages DESC\", \"playerID desc\"], filter: { createDateGTE: $createDateGTE }, limit: 5) {\n items {\n villages\n player {\n id\n name\n }\n }\n }\n }\n"; let container = undefined; const translations = (0, _dailyAchievments.default)(); diff --git a/dist/extendedMapPopup.js b/dist/extendedMapPopup.js index b65c07c..0dc0cf3 100644 --- a/dist/extendedMapPopup.js +++ b/dist/extendedMapPopup.js @@ -675,7 +675,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js -// @version 0.6.1 +// @version 0.6.2 // @description Extended map popup // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=map* @@ -683,7 +683,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // ==/UserScript== const SERVER = (0, _getCurrentServer.default)(); const CURR_SERVER_CONFIG = "\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n unitSpeed\n snob {\n maxDist\n }\n }\n unitConfig {\n spear {\n speed\n }\n sword {\n speed\n }\n axe {\n speed\n }\n archer {\n speed\n }\n spy {\n speed\n }\n light {\n speed\n }\n marcher {\n speed\n }\n heavy {\n speed\n }\n ram {\n speed\n }\n catapult {\n speed\n }\n knight {\n speed\n }\n snob {\n speed\n }\n }\n }\n }\n"; -const LAST_VILLAGE_CONQUER_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n"; +const LAST_VILLAGE_CONQUER_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!, $sort: [String!], $limit: Int) {\n ennoblements(server: $server, filter: $filter, sort: $sort, limit: $limit) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n"; const SERVER_CONFIG_LOCAL_STORAGE_KEY = 'kiszkowaty_extended_map_popup_server_cfg'; const translations = (0, _extendedMapPopup.default)(); @@ -734,11 +734,11 @@ const loadVillageData = async function loadVillageData(id) { query: LAST_VILLAGE_CONQUER_QUERY, variables: { server: SERVER, + sort: ['ennobledAt DESC'], filter: { - villageID: [id], - sort: 'ennobledAt DESC', - limit: 1 - } + villageID: [id] + }, + limit: 1 } }); TWMap.popup.extendedMapPopupCache[id] = data; diff --git a/dist/extendedPlayerProfile.js b/dist/extendedPlayerProfile.js index ceb4672..80be41b 100644 --- a/dist/extendedPlayerProfile.js +++ b/dist/extendedPlayerProfile.js @@ -1115,12 +1115,6 @@ var _localStorage = require("./utils/localStorage"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } @@ -1130,7 +1124,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.4 +// @version 1.1.5 // @description Extended player profile // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_player* @@ -1146,13 +1140,13 @@ if (isNaN(PLAYER_ID) || !PLAYER_ID) { } const LOCAL_STORAGE_KEY = 'kichiyaki_extended_player_profile' + PLAYER_ID; -const PLAYER_QUERY = "\n query player($server: String!, $id: Int!, $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, filter: $filter) {\n items {\n rank\n rankAtt\n rankDef\n rankSup\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n }\n }\n }\n"; -const TRIBE_CHANGES_QUERY = "\n query tribeChanges($server: String!, $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, filter: $filter) {\n total\n items {\n oldTribe {\n id\n tag\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n"; +const PLAYER_QUERY = "\n query player($server: String!, $id: Int!, $limit: Int, $sort: [String!], $filter: DailyPlayerStatsFilter) {\n player(server: $server, id: $id) {\n id\n name\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n servers\n joinedAt\n nameChanges {\n oldName\n newName\n changeDate\n }\n dailyGrowth\n }\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n rank\n rankAtt\n rankDef\n rankSup\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n }\n }\n }\n"; +const TRIBE_CHANGES_QUERY = "\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) {\n total\n items {\n oldTribe {\n id\n tag\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n"; const TRIBE_CHANGES_PAGINATION_CONTAINER_ID = 'tribeChangesPagination'; const TRIBE_CHANGES_PER_PAGE = 15; -const PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY = "\nquery playerHistoryAndPlayerDailyStats($server: String!,\n $playerHistoryFilter: PlayerHistoryFilter!,\n $dailyPlayerStatsFilter: DailyPlayerStatsFilter!) {\n playerHistory(server: $server, 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, filter: $dailyPlayerStatsFilter) {\n items {\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n"; +const PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY = "\nquery playerHistoryAndPlayerDailyStats($server: String!,\n $playerHistoryFilter: PlayerHistoryFilter!,\n $dailyPlayerStatsFilter: DailyPlayerStatsFilter!,\n $limit: Int,\n $offset: Int,\n $sort: [String!]) {\n playerHistory(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $playerHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreSup\n rankSup\n scoreTotal\n rankTotal\n tribe {\n id\n tag\n }\n createDate\n }\n }\n dailyPlayerStats(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $dailyPlayerStatsFilter) {\n items {\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n"; const PLAYER_HISTORY_PER_PAGE = 15; -const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n"; +const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n"; const ENNOBLEMENTS_PER_PAGE = 15; const profileInfoTBody = document.querySelector('#player_info > tbody'); const actionContainer = PLAYER_ID === CURRENT_PLAYER_ID ? profileInfoTBody : document.querySelector('#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody'); @@ -1213,9 +1207,9 @@ const loadData = async () => { variables: { server: SERVER, id: PLAYER_ID, + limit: 1, + sort: ['createDate DESC'], filter: { - sort: 'createDate DESC', - limit: 1, playerID: [PLAYER_ID] } } @@ -1392,11 +1386,11 @@ const handleShowTribeChangesButtonClick = async e => { query: TRIBE_CHANGES_QUERY, variables: { filter: { - playerID: [PLAYER_ID], - offset: TRIBE_CHANGES_PER_PAGE * (page - 1), - limit: TRIBE_CHANGES_PER_PAGE, - sort: 'createdAt DESC' + playerID: [PLAYER_ID] }, + sort: ['createdAt DESC'], + offset: TRIBE_CHANGES_PER_PAGE * (page - 1), + limit: TRIBE_CHANGES_PER_PAGE, server: SERVER } }); @@ -1411,10 +1405,7 @@ const handleShowPlayerHistoryClick = async e => { if (!isNaN(page)) { try { const filter = { - playerID: [PLAYER_ID], - offset: PLAYER_HISTORY_PER_PAGE * (page - 1), - limit: PLAYER_HISTORY_PER_PAGE, - sort: 'createDate DESC' + playerID: [PLAYER_ID] }; const { playerHistory, @@ -1424,9 +1415,10 @@ const handleShowPlayerHistoryClick = async e => { variables: { server: SERVER, playerHistoryFilter: filter, - dailyPlayerStatsFilter: _objectSpread(_objectSpread({}, filter), {}, { - offset: filter.offset + 1 - }) + offset: PLAYER_HISTORY_PER_PAGE * (page - 1), + limit: PLAYER_HISTORY_PER_PAGE, + sort: ['createDate DESC'], + dailyPlayerStatsFilter: filter } }); (0, _showHistoryPopup.default)(e, playerHistory, dailyPlayerStats, { @@ -1453,11 +1445,11 @@ const handleShowPlayerEnnoblementsClick = async e => { or: { oldOwnerID: [PLAYER_ID], newOwnerID: [PLAYER_ID] - }, - offset: ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: ENNOBLEMENTS_PER_PAGE, - sort: 'ennobledAt DESC' + } }, + offset: ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: ENNOBLEMENTS_PER_PAGE, + sort: ['ennobledAt DESC'], server: SERVER } }); diff --git a/dist/extendedTribeProfile.js b/dist/extendedTribeProfile.js index 5b1fe4a..f2cc11f 100644 --- a/dist/extendedTribeProfile.js +++ b/dist/extendedTribeProfile.js @@ -1744,7 +1744,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // @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.0.8 +// @version 1.0.9 // @description Extended tribe profile // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_ally* @@ -1754,14 +1754,14 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope const SERVER = (0, _getCurrentServer.default)(); const TRIBE_ID = (0, _getIDFromURL.default)(window.location.search); const LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + TRIBE_ID; -const TRIBE_QUERY = "\n query tribe($server: String!, $id: Int!, $playerFilter: PlayerFilter!, $dailyTribeStatsFilter: DailyTribeStatsFilter!) {\n tribe(server: $server, id: $id) {\n id\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n createdAt\n dominance\n }\n dailyTribeStats(server: $server, filter: $dailyTribeStatsFilter) {\n items {\n rank\n rankAtt\n rankDef\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreTotal\n villages\n members\n }\n }\n players(server: $server, filter: $playerFilter) {\n items {\n id\n rankAtt\n rankDef\n rankSup\n rankTotal\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n dailyGrowth\n }\n }\n }\n"; -const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n"; +const TRIBE_QUERY = "\n query tribe($server: String!, $id: Int!, $dailyTribeStatsSort: [String!], $dailyTribeStatsLimit: Int, $playerSort: [String!], $playerFilter: PlayerFilter!, $dailyTribeStatsFilter: DailyTribeStatsFilter!) {\n tribe(server: $server, id: $id) {\n id\n bestRank\n bestRankAt\n mostPoints\n mostPointsAt\n mostVillages\n mostVillagesAt\n createdAt\n dominance\n }\n dailyTribeStats(server: $server, limit: $dailyTribeStatsLimit, sort: $dailyTribeStatsSort, filter: $dailyTribeStatsFilter) {\n items {\n rank\n rankAtt\n rankDef\n rankTotal\n points\n scoreAtt\n scoreAtt\n scoreDef\n scoreTotal\n villages\n members\n }\n }\n players(server: $server, sort: $playerSort, filter: $playerFilter) {\n items {\n id\n rankAtt\n rankDef\n rankSup\n rankTotal\n scoreAtt\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n dailyGrowth\n }\n }\n }\n"; +const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n"; const ENNOBLEMENTS_PER_PAGE = 15; -const TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY = "\nquery tribeHistoryAndTribeDailyStats($server: String!,\n $tribeHistoryFilter: TribeHistoryFilter!,\n $dailyTribeStatsFilter: DailyTribeStatsFilter!) {\n tribeHistory(server: $server, filter: $tribeHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreTotal\n rankTotal\n createDate\n totalMembers\n }\n }\n dailyTribeStats(server: $server, filter: $dailyTribeStatsFilter) {\n items {\n points\n scoreAtt\n scoreDef\n scoreTotal\n villages\n createDate\n members\n }\n }\n}\n"; +const TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY = "\nquery tribeHistoryAndTribeDailyStats($server: String!,\n $tribeHistoryFilter: TribeHistoryFilter!,\n $dailyTribeStatsFilter: DailyTribeStatsFilter!,\n $sort: [String!],\n $offset: Int,\n $limit: Int) {\n tribeHistory(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $tribeHistoryFilter) {\n total\n items {\n totalVillages\n points\n rank\n scoreAtt\n rankAtt\n scoreDef\n rankDef\n scoreTotal\n rankTotal\n createDate\n totalMembers\n }\n }\n dailyTribeStats(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $dailyTribeStatsFilter) {\n items {\n points\n scoreAtt\n scoreDef\n scoreTotal\n villages\n createDate\n members\n }\n }\n}\n"; const TRIBE_HISTORY_PER_PAGE = 15; -const TRIBE_MEMBERS_DAILY_STATS_QUERY = "\nquery tribeMembersDailyStats($server: String!,\n $filter: DailyPlayerStatsFilter!) {\n dailyPlayerStats(server: $server, filter: $filter) {\n items {\n player {\n id\n name\n }\n points\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n"; +const TRIBE_MEMBERS_DAILY_STATS_QUERY = "\nquery tribeMembersDailyStats($server: String!,\n $filter: DailyPlayerStatsFilter!,\n $limit: Int,\n $sort: [String!]) {\n dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n player {\n id\n name\n }\n points\n scoreAtt\n scoreDef\n scoreSup\n scoreTotal\n villages\n createDate\n }\n }\n}\n"; let MEMBERS_GROWTH_MODE = 'points'; -const TRIBE_CHANGES_QUERY = "\n query tribeChanges($server: String!, $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, filter: $filter) {\n total\n items {\n player {\n id\n name\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n"; +const TRIBE_CHANGES_QUERY = "\n query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) {\n total\n items {\n player {\n id\n name\n }\n newTribe {\n id\n tag\n }\n createdAt\n }\n }\n }\n"; const TRIBE_CHANGES_PAGINATION_CONTAINER_ID = 'tribeChangesPagination'; const TRIBE_CHANGES_PER_PAGE = 15; const profileInfoTBody = document.querySelector('#content_value > table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody'); @@ -1808,14 +1808,13 @@ const loadData = async () => { variables: { server: SERVER, id: TRIBE_ID, + dailyTribeStatsSort: ['createDate DESC'], + dailyTibeStatsLimit: 1, dailyTribeStatsFilter: { - sort: 'createDate DESC', - limit: 1, tribeID: [TRIBE_ID] }, + playerSort: ['rank ASC'], playerFilter: { - sort: 'rank ASC', - limit: memberIDs.length, id: memberIDs } } @@ -1940,11 +1939,11 @@ const handleShowTribeEnnoblementsClick = async e => { or: { oldOwnerTribeID: [TRIBE_ID], newOwnerTribeID: [TRIBE_ID] - }, - offset: ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: ENNOBLEMENTS_PER_PAGE, - sort: 'ennobledAt DESC' + } }, + offset: ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: ENNOBLEMENTS_PER_PAGE, + sort: ['ennobledAt DESC'], server: SERVER } }); @@ -1963,10 +1962,7 @@ const handleShowTribeHistoryClick = async e => { if (!isNaN(page)) { try { const filter = { - tribeID: [TRIBE_ID], - offset: TRIBE_HISTORY_PER_PAGE * (page - 1), - limit: TRIBE_HISTORY_PER_PAGE, - sort: 'createDate DESC' + tribeID: [TRIBE_ID] }; const { tribeHistory, @@ -1975,10 +1971,11 @@ const handleShowTribeHistoryClick = async e => { query: TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY, variables: { server: SERVER, + offset: TRIBE_HISTORY_PER_PAGE * (page - 1), + limit: TRIBE_HISTORY_PER_PAGE, + sort: ['createDate DESC'], tribeHistoryFilter: filter, - dailyTribeStatsFilter: _objectSpread(_objectSpread({}, filter), {}, { - offset: filter.offset + 1 - }) + dailyTribeStatsFilter: filter } }); (0, _showHistoryPopup.default)(e, tribeHistory, dailyTribeStats, { @@ -2090,8 +2087,6 @@ const loadMembersGrowthData = async function loadMembersGrowthData() { const limit = memberIDs.length * (0, _differenceInDays.default)(createDateLTE, createDateGT); const filter = { playerID: memberIDs, - limit, - sort: 'createDate DESC', createDateLTE, createDateGT }; @@ -2099,6 +2094,8 @@ const loadMembersGrowthData = async function loadMembersGrowthData() { query: TRIBE_MEMBERS_DAILY_STATS_QUERY, variables: { filter, + limit, + sort: ['createDate DESC'], server: SERVER } }); @@ -2157,11 +2154,11 @@ const handleShowTribeChangesClick = async e => { or: { oldTribeID: [TRIBE_ID], newTribeID: [TRIBE_ID] - }, - offset: TRIBE_CHANGES_PER_PAGE * (page - 1), - limit: TRIBE_CHANGES_PER_PAGE, - sort: 'createdAt DESC' + } }, + offset: TRIBE_CHANGES_PER_PAGE * (page - 1), + limit: TRIBE_CHANGES_PER_PAGE, + sort: ['createdAt DESC'], server: SERVER } }); @@ -2191,7 +2188,7 @@ const loadVillages = async function loadVillages(variables) { try { const data = await (0, _requestCreator.default)({ variables, - query: "\n query villages($server: String!, $filter: VillageFilter!) {\n villages(server: $server, filter: $filter) {\n ".concat(total ? 'total' : '', "\n items {\n id\n x\n y\n }\n }\n }\n ") + query: "\n query villages($server: String!, $sort: [String!], $limit: Int, $offset: Int, $filter: VillageFilter!) {\n villages(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $filter) {\n ".concat(total ? 'total' : '', "\n items {\n id\n x\n y\n }\n }\n }\n ") }); if (data && data.villages && Array.isArray(data.villages.items)) { @@ -2227,10 +2224,10 @@ const handleExportTribeVillagesFormSubmit = async e => { xGTE: parseInt(e.target[1].value), yLTE: parseInt(e.target[2].value), yGTE: parseInt(e.target[3].value), - limit: isNaN(limit) || !limit ? 0 : limit, - playerID: getMemberIDs(), - sort: 'id ASC' + playerID: getMemberIDs() }, + limit: isNaN(limit) || !limit ? 0 : limit, + sort: ['id ASC'], server: SERVER }; showLoadingDialog(); @@ -2248,9 +2245,8 @@ const handleExportTribeVillagesFormSubmit = async e => { for (let offset = length; offset < total; offset += length) { showLoadingDialog(offset, total); const more = await loadVillages(_objectSpread(_objectSpread({}, variables), {}, { - filter: _objectSpread(_objectSpread({}, variables.filter), {}, { - offset - }) + filter: _objectSpread({}, variables.filter), + offset })); items = [...items, ...more.items]; } diff --git a/dist/extendedVillageProfile.js b/dist/extendedVillageProfile.js index 24b03ed..9a96514 100644 --- a/dist/extendedVillageProfile.js +++ b/dist/extendedVillageProfile.js @@ -804,7 +804,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js -// @version 0.7.1 +// @version 0.7.2 // @description Extended village profile // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_village* @@ -813,8 +813,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // ==/UserScript== const SERVER = (0, _getCurrentServer.default)(); const VILLAGE_ID = (0, _getIDFromURL.default)(window.location.search); -const LAST_CONQUER_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n"; -const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n"; +const LAST_CONQUER_QUERY = "\n query ennoblements($server: String!, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, limit: $limit, sort: $sort, filter: $filter) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n"; +const ENNOBLEMENTS_QUERY = "\n query ennoblements($server: String!, $offset: Int, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) {\n ennoblements(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n"; const ENNOBLEMENTS_PER_PAGE = 15; const CURR_SERVER_CONFIG = "\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n }\n unitConfig {\n spear {\n pop\n }\n sword {\n pop\n }\n axe {\n pop\n }\n archer {\n pop\n }\n spy {\n pop\n }\n light {\n pop\n }\n marcher {\n pop\n }\n heavy {\n pop\n }\n ram {\n pop\n }\n catapult {\n pop\n }\n knight {\n pop\n }\n snob {\n pop\n }\n }\n }\n }\n"; const SERVER_CONFIG_LOCAL_STORAGE_KEY = 'kiszkowaty_extended_village_profile_server_cfg'; @@ -859,10 +859,10 @@ const loadPageData = async () => { variables: { server: SERVER, filter: { - villageID: [VILLAGE_ID], - sort: 'ennobledAt DESC', - limit: 1 - } + villageID: [VILLAGE_ID] + }, + sort: ['ennobledAt DESC'], + limit: 1 } }); return data; @@ -877,11 +877,11 @@ const handleShowTribeEnnoblementsClick = async e => { query: ENNOBLEMENTS_QUERY, variables: { filter: { - villageID: [VILLAGE_ID], - offset: ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: ENNOBLEMENTS_PER_PAGE, - sort: 'ennobledAt DESC' + villageID: [VILLAGE_ID] }, + offset: ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: ENNOBLEMENTS_PER_PAGE, + sort: ['ennobledAt DESC'], server: SERVER } }); diff --git a/dist/quickbar/bonusBarbarianVillageFinder.js b/dist/quickbar/bonusBarbarianVillageFinder.js index 5a84320..dd79cdd 100644 --- a/dist/quickbar/bonusBarbarianVillageFinder.js +++ b/dist/quickbar/bonusBarbarianVillageFinder.js @@ -9,5 +9,5 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel },{}],"XOOL":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.calcDistanceBetweenTwoPoints=void 0;const e=(e,t,s,o)=>{const c=e-s,n=t-o;return Math.sqrt(c*c+n*n)};exports.calcDistanceBetweenTwoPoints=e; },{}],"fvjy":[function(require,module,exports) { -"use strict";var e=o(require("./libs/requestCreator")),t=o(require("./i18n/bonusBarbarianVillageFinder")),n=o(require("./utils/getCurrentServer")),r=require("./utils/tribalwars"),a=require("./utils/math");function o(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t({query:u,variables:{server:l,filter:{bonus:e,sort:"id DESC",playerID:[0],offset:t}}}),m=async t=>{const{villages:n}=await(0,e.default)(y(t,0));for(let r=n.length;r{e.preventDefault();const t=await m(parseInt(e.target[0].value)),n=TWMap.pos;t.items=t.items.map(e=>i(i({},e),{},{distance:(0,a.calcDistanceBetweenTwoPoints)(n[0],n[1],e.x,e.y)})).sort((e,t)=>e.distance-t.distance),document.querySelector("#"+d).innerHTML=h(t.items)},g=()=>{let e=[];for(let t in TWMap.bonus_data)e.push({value:t,text:TWMap.bonus_data[t].text});return e},h=e=>"\n \n \n \n ".concat(f.village,"\n \n \n ").concat(f.distance,"\n \n \n ").concat(f.action,"\n \n \n ").concat(Array.isArray(e)?e.map(e=>'\n \n \n ').concat((0,r.formatVillageName)(e.name,e.x,e.y),"\n \n \n \n ").concat(e.distance.toFixed(1),'\n \n \n Center\n \n ')).join(""):"","\n \n "),O=()=>{document.querySelector("#actualCoords").innerHTML="".concat(f.actualCoords,": ").concat(TWMap.pos.join("|"),"")},j=()=>{const e='\n

\n
\n \n \n
\n \n ').concat(h(),"\n
\n ");p||((p=document.createElement("div")).classList.add("containerBorder"),p.style.clear="both",document.querySelector("#map_big").appendChild(p)),p.innerHTML=e,p.querySelector("form").addEventListener("submit",v),O(),setInterval(O,1e3)};j(); +"use strict";var t=o(require("./libs/requestCreator")),e=o(require("./i18n/bonusBarbarianVillageFinder")),n=o(require("./utils/getCurrentServer")),r=require("./utils/tribalwars"),a=require("./utils/math");function o(t){return t&&t.__esModule?t:{default:t}}function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function i(t){for(var e=1;e({query:u,variables:{server:l,sort:["id DESC"],filter:{bonus:t,playerID:[0]},offset:e}}),m=async e=>{const{villages:n}=await(0,t.default)(y(e,0));for(let r=n.length;r{t.preventDefault();const e=await m(parseInt(t.target[0].value)),n=TWMap.pos;e.items=e.items.map(t=>i(i({},t),{},{distance:(0,a.calcDistanceBetweenTwoPoints)(n[0],n[1],t.x,t.y)})).sort((t,e)=>t.distance-e.distance),document.querySelector("#"+d).innerHTML=h(e.items)},v=()=>{let t=[];for(let e in TWMap.bonus_data)t.push({value:e,text:TWMap.bonus_data[e].text});return t},h=t=>"\n \n \n \n ".concat(b.village,"\n \n \n ").concat(b.distance,"\n \n \n ").concat(b.action,"\n \n \n ").concat(Array.isArray(t)?t.map(t=>'\n \n \n ').concat((0,r.formatVillageName)(t.name,t.x,t.y),"\n \n \n \n ").concat(t.distance.toFixed(1),'\n \n \n Center\n \n ')).join(""):"","\n \n "),O=()=>{document.querySelector("#actualCoords").innerHTML="".concat(b.actualCoords,": ").concat(TWMap.pos.join("|"),"")},j=()=>{const t='\n

\n
\n \n \n
\n \n ').concat(h(),"\n
\n ");p||((p=document.createElement("div")).classList.add("containerBorder"),p.style.clear="both",document.querySelector("#map_big").appendChild(p)),p.innerHTML=t,p.querySelector("form").addEventListener("submit",g),O(),setInterval(O,1e3)};j(); },{"./libs/requestCreator":"Ph2E","./i18n/bonusBarbarianVillageFinder":"MRps","./utils/getCurrentServer":"DMkL","./utils/tribalwars":"fHHP","./utils/math":"XOOL"}]},{},["fvjy"], null) \ No newline at end of file diff --git a/dist/quickbar/dailyAchievements.js b/dist/quickbar/dailyAchievements.js index 0024bf3..b6dfb87 100644 --- a/dist/quickbar/dailyAchievements.js +++ b/dist/quickbar/dailyAchievements.js @@ -9,5 +9,5 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel },{}],"DMkL":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=()=>window.location.host.split(".")[0];exports.default=e; },{}],"Jg9g":[function(require,module,exports) { -"use strict";var e=i(require("./libs/requestCreator")),r=i(require("./i18n/dailyAchievments")),t=require("./utils/localStorage"),a=require("./utils/tribalwars"),n=i(require("./utils/getCurrentServer"));function i(e){return e&&e.__esModule?e:{default:e}}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,a)}return t}function o(e){for(var r=1;r(0,t.getItem)(d),f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,t.setItem)(d,e)},S=async()=>{let r=await(0,e.default)({query:y,variables:{server:l}});if(r.server){const t=await(0,e.default)({query:p,variables:{server:l,createDateGTE:r.server.historyUpdatedAt.split("T")[0]+"T00:00:00Z"}});r=o(o({},r),t)}return f(r),r},m=e=>{let{dailyPlayerStatsOrderedByScoreAtt:r,dailyPlayerStatsOrderedByScoreDef:t,dailyPlayerStatsOrderedByScoreSup:n,dailyPlayerStatsOrderedByVillages:i}=e;const c='\n
'.concat(v.title,'
\n
\n
\n

').concat(v.warning,"

\n

").concat(v.aotd,"

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

').concat(v.dotd,"

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

').concat(v.sotd,"

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

').concat(v.gpotd,"

\n ").concat(i.items.map((e,r)=>"".concat(r+1,'. ').concat(e.player.name," - ").concat(e.villages.toLocaleString(),"")).join("
"),'\n
\n
\n
\n ');u||((u=document.createElement("div")).classList.add("award-group"),document.querySelector("#content_value > div:nth-child(4)").prepend(u)),u.innerHTML=c};!async function(){try{const r=g();r&&r.server&&m(r);const t=await S();t.server&&m(t)}catch(e){console.log("dailyAchievements",e)}}(); +"use strict";var e=c(require("./libs/requestCreator")),r=c(require("./i18n/dailyAchievments")),t=require("./utils/localStorage"),a=require("./utils/tribalwars"),n=c(require("./utils/getCurrentServer"));function c(e){return e&&e.__esModule?e:{default:e}}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);r&&(a=a.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,a)}return t}function o(e){for(var r=1;r(0,t.getItem)(d),f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,t.setItem)(d,e)},m=async()=>{let r=await(0,e.default)({query:y,variables:{server:l}});if(r.server){const t=await(0,e.default)({query:p,variables:{server:l,createDateGTE:r.server.historyUpdatedAt.split("T")[0]+"T00:00:00Z"}});r=o(o({},r),t)}return f(r),r},S=e=>{let{dailyPlayerStatsOrderedByScoreAtt:r,dailyPlayerStatsOrderedByScoreDef:t,dailyPlayerStatsOrderedByScoreSup:n,dailyPlayerStatsOrderedByVillages:c}=e;const i='\n
'.concat(v.title,'
\n
\n
\n

').concat(v.warning,"

\n

").concat(v.aotd,"

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

').concat(v.dotd,"

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

').concat(v.sotd,"

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

').concat(v.gpotd,"

\n ").concat(c.items.map((e,r)=>"".concat(r+1,'. ').concat(e.player.name," - ").concat(e.villages.toLocaleString(),"")).join("
"),'\n
\n
\n
\n ');u||((u=document.createElement("div")).classList.add("award-group"),document.querySelector("#content_value > div:nth-child(4)").prepend(u)),u.innerHTML=i};!async function(){try{const r=g();r&&r.server&&S(r);const t=await m();t.server&&S(t)}catch(e){console.log("dailyAchievements",e)}}(); },{"./libs/requestCreator":"Ph2E","./i18n/dailyAchievments":"rX6I","./utils/localStorage":"KWxH","./utils/tribalwars":"fHHP","./utils/getCurrentServer":"DMkL"}]},{},["Jg9g"], null) \ No newline at end of file diff --git a/dist/quickbar/extendedMapPopup.js b/dist/quickbar/extendedMapPopup.js index 239b5d2..586de6e 100644 --- a/dist/quickbar/extendedMapPopup.js +++ b/dist/quickbar/extendedMapPopup.js @@ -31,5 +31,5 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel },{"../differenceInMilliseconds/index.js":"H70G","../_lib/requiredArgs/index.js":"kK6Q"}],"ATOB":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("date-fns/differenceInMinutes"));function t(e){return e&&e.__esModule?e:{default:e}}var r=(t,r)=>{let u=25+Math.abs((0,e.default)(t,new Date))*(r/60);return u>100&&(u=100),Math.floor(u)};exports.default=r; },{"date-fns/differenceInMinutes":"oGJj"}],"HdqX":[function(require,module,exports) { -"use strict";var e=c(require("date-fns/addMinutes")),n=c(require("./i18n/extendedMapPopup")),t=c(require("./libs/requestCreator")),r=c(require("./utils/formatDate")),a=c(require("./utils/getCurrentServer")),o=require("./utils/math"),i=c(require("./utils/buildUnitImgURL")),l=require("./utils/localStorage"),p=require("./utils/tribalwars"),d=c(require("./utils/countLoyalty"));function c(e){return e&&e.__esModule?e:{default:e}}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function u(e){for(var n=1;n(0,l.getItem)(m),w=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,l.setItem)(m,e)},M=e=>Math.abs(e.getTime()-(new Date).getTime())>864e5,T=async()=>{let e=h();return e&&e.server&&!M(new Date(e.loadedAt))&&e.server.config&&e.server.config.speed&&e.server.config.snob&&e.server.config.snob.maxDist&&e.server.config.unitSpeed&&e.server.unitConfig||((e=await(0,t.default)({query:f,variables:{key:y}})).loadedAt=new Date,w(e)),e&&e.server&&e.server.config?{config:e.server.config,unitConfig:e.server.unitConfig}:{}},q=async function(e){let{cacheOnly:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n||TWMap.popup.extendedMapPopupCache[e])return TWMap.popup.extendedMapPopupCache[e];try{const n=await(0,t.default)({query:b,variables:{server:y,filter:{villageID:[e],sort:"ennobledAt DESC",limit:1}}});return TWMap.popup.extendedMapPopupCache[e]=n,n}catch(r){console.log("loadVillageData",r)}},O=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=[];for(let t in e)0!==e[t].speed&&n.push(u(u({},e[t]),{},{name:t,img:(0,i.default)(t)}));return n},S=e=>e%2==0?"#f8f4e8":"#ded3b9;",C=(e,n)=>'\n \n \n \n '),x=(n,t)=>'\n \n ').concat((0,r.default)((0,e.default)(Timing.getCurrentServerTime(),n)),"\n \n "),D=(e,n,t)=>{let{config:a,unitConfig:i}=t;const l=TWMap.CoordByXY(TWMap.villageKey[e]),c=(0,o.calcDistanceBetweenTwoPoints)(l[0],l[1],window.game_data.village.x,window.game_data.village.y),s=n&&n.ennoblements&&n.ennoblements.items&&n.ennoblements.items.length>0?n.ennoblements.items[0]:void 0,u=document.querySelector("#map_popup #info_content tbody");let g=u.querySelector("#units");g||((g=document.createElement("tr")).id="units",u.appendChild(g));const y=O(i);g.innerHTML='\n \n \n \n \n '.concat(y.map(C).join(""),'\n \n \n ').concat(y.map((e,n)=>x((0,p.calcAttackDuration)(c,a.unitSpeed,e.speed),n)).join(""),"\n \n \n
\n \n ");let f=u.querySelector("#lastEnnobledAt");f||((f=document.createElement("tr")).id="lastEnnobledAt",u.appendChild(f)),f.innerHTML="\n \n ".concat(v.ennobledAt,":\n \n \n ").concat(s?(0,r.default)(s.ennobledAt):v.never,"\n \n ");let b=u.querySelector("#loyalty");b||((b=document.createElement("tr")).id="loyalty",u.appendChild(b)),b.innerHTML="\n \n ".concat(v.possibleLoyalty,":\n \n \n ").concat(s?(0,d.default)(new Date(s.ennobledAt),a.speed):100,"\n \n ");let m=u.querySelector("#canSendNoble");m||((m=document.createElement("tr")).id="canSendNoble",u.appendChild(m)),m.innerHTML="\n \n ".concat(v.canSendNoble,":\n \n \n ").concat(c\n ")},P=e=>async n=>{TWMap.popup._loadVillage(n);const t=await q(parseInt(n));D(parseInt(n),t,e)},_=e=>async(n,t,r)=>{TWMap.popup._displayForVillage(n,t,r);const a=await q(parseInt(n.id),{cacheOnly:window.game_data.features.Premium.active});D(parseInt(n.id),a,e)};!async function(){try{const n=await T();TWMap.popup.extendedMapPopupCache={},TWMap.popup._loadVillage=TWMap.popup.loadVillage,TWMap.popup.loadVillage=P(n),TWMap.popup._displayForVillage=TWMap.popup.displayForVillage,TWMap.popup.displayForVillage=_(n)}catch(e){console.log("extended map popup",e)}}(); +"use strict";var e=c(require("date-fns/addMinutes")),n=c(require("./i18n/extendedMapPopup")),t=c(require("./libs/requestCreator")),r=c(require("./utils/formatDate")),a=c(require("./utils/getCurrentServer")),o=require("./utils/math"),i=c(require("./utils/buildUnitImgURL")),l=require("./utils/localStorage"),p=require("./utils/tribalwars"),d=c(require("./utils/countLoyalty"));function c(e){return e&&e.__esModule?e:{default:e}}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function u(e){for(var n=1;n(0,l.getItem)(b),w=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,l.setItem)(b,e)},M=e=>Math.abs(e.getTime()-(new Date).getTime())>864e5,T=async()=>{let e=h();return e&&e.server&&!M(new Date(e.loadedAt))&&e.server.config&&e.server.config.speed&&e.server.config.snob&&e.server.config.snob.maxDist&&e.server.config.unitSpeed&&e.server.unitConfig||((e=await(0,t.default)({query:y,variables:{key:m}})).loadedAt=new Date,w(e)),e&&e.server&&e.server.config?{config:e.server.config,unitConfig:e.server.unitConfig}:{}},q=async function(e){let{cacheOnly:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n||TWMap.popup.extendedMapPopupCache[e])return TWMap.popup.extendedMapPopupCache[e];try{const n=await(0,t.default)({query:f,variables:{server:m,sort:["ennobledAt DESC"],filter:{villageID:[e]},limit:1}});return TWMap.popup.extendedMapPopupCache[e]=n,n}catch(r){console.log("loadVillageData",r)}},O=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=[];for(let t in e)0!==e[t].speed&&n.push(u(u({},e[t]),{},{name:t,img:(0,i.default)(t)}));return n},S=e=>e%2==0?"#f8f4e8":"#ded3b9;",C=(e,n)=>'\n \n \n \n '),x=(n,t)=>'\n \n ').concat((0,r.default)((0,e.default)(Timing.getCurrentServerTime(),n)),"\n \n "),D=(e,n,t)=>{let{config:a,unitConfig:i}=t;const l=TWMap.CoordByXY(TWMap.villageKey[e]),c=(0,o.calcDistanceBetweenTwoPoints)(l[0],l[1],window.game_data.village.x,window.game_data.village.y),s=n&&n.ennoblements&&n.ennoblements.items&&n.ennoblements.items.length>0?n.ennoblements.items[0]:void 0,u=document.querySelector("#map_popup #info_content tbody");let g=u.querySelector("#units");g||((g=document.createElement("tr")).id="units",u.appendChild(g));const m=O(i);g.innerHTML='\n \n \n \n \n '.concat(m.map(C).join(""),'\n \n \n ').concat(m.map((e,n)=>x((0,p.calcAttackDuration)(c,a.unitSpeed,e.speed),n)).join(""),"\n \n \n
\n \n ");let y=u.querySelector("#lastEnnobledAt");y||((y=document.createElement("tr")).id="lastEnnobledAt",u.appendChild(y)),y.innerHTML="\n \n ".concat(v.ennobledAt,":\n \n \n ").concat(s?(0,r.default)(s.ennobledAt):v.never,"\n \n ");let f=u.querySelector("#loyalty");f||((f=document.createElement("tr")).id="loyalty",u.appendChild(f)),f.innerHTML="\n \n ".concat(v.possibleLoyalty,":\n \n \n ").concat(s?(0,d.default)(new Date(s.ennobledAt),a.speed):100,"\n \n ");let b=u.querySelector("#canSendNoble");b||((b=document.createElement("tr")).id="canSendNoble",u.appendChild(b)),b.innerHTML="\n \n ".concat(v.canSendNoble,":\n \n \n ").concat(c\n ")},P=e=>async n=>{TWMap.popup._loadVillage(n);const t=await q(parseInt(n));D(parseInt(n),t,e)},_=e=>async(n,t,r)=>{TWMap.popup._displayForVillage(n,t,r);const a=await q(parseInt(n.id),{cacheOnly:window.game_data.features.Premium.active});D(parseInt(n.id),a,e)};!async function(){try{const n=await T();TWMap.popup.extendedMapPopupCache={},TWMap.popup._loadVillage=TWMap.popup.loadVillage,TWMap.popup.loadVillage=P(n),TWMap.popup._displayForVillage=TWMap.popup.displayForVillage,TWMap.popup.displayForVillage=_(n)}catch(e){console.log("extended map popup",e)}}(); },{"date-fns/addMinutes":"pfh4","./i18n/extendedMapPopup":"ddIN","./libs/requestCreator":"Ph2E","./utils/formatDate":"V6Mf","./utils/getCurrentServer":"DMkL","./utils/math":"XOOL","./utils/buildUnitImgURL":"KX6P","./utils/localStorage":"KWxH","./utils/tribalwars":"fHHP","./utils/countLoyalty":"ATOB"}]},{},["HdqX"], null) \ No newline at end of file diff --git a/dist/quickbar/extendedPlayerProfile.js b/dist/quickbar/extendedPlayerProfile.js index ddf85bb..bb8581f 100644 --- a/dist/quickbar/extendedPlayerProfile.js +++ b/dist/quickbar/extendedPlayerProfile.js @@ -47,5 +47,5 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel },{}],"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=g(require("./libs/InADayParser")),t=g(require("./libs/requestCreator")),n=g(require("./i18n/extendedPlayerProfile")),r=g(require("./common/renderTodaysStats")),a=g(require("./utils/showPopup")),i=g(require("./common/showEnnoblementsPopup")),o=g(require("./common/showHistoryPopup")),l=g(require("./utils/hyphensToCamelCase")),c=require("./utils/pagination"),s=g(require("./utils/getIDFromURL")),d=g(require("./utils/getCurrentServer")),u=g(require("./utils/formatDate")),y=require("./utils/twstats"),p=require("./utils/tribalwars"),m=require("./utils/localStorage");function g(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function w(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 D=(0,d.default)();let S=(0,s.default)(window.location.search);const P=parseInt(game_data.player.id);!isNaN(S)&&S||(S=P);const A="kichiyaki_extended_player_profile"+S,k="\n query player($server: String!, $id: Int!, $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, 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!, $filter: TribeChangeFilter!) {\n tribeChanges(server: $server, 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",O=15,C="\nquery playerHistoryAndPlayerDailyStats($server: String!,\n $playerHistoryFilter: PlayerHistoryFilter!,\n $dailyPlayerStatsFilter: DailyPlayerStatsFilter!) {\n playerHistory(server: $server, 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, 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,L="\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n total\n items {\n village {\n id\n name\n x\n y\n }\n oldOwner {\n id\n name\n }\n oldOwnerTribe {\n id\n tag\n }\n newOwner {\n id\n name\n }\n newOwnerTribe {\n id\n tag\n }\n ennobledAt\n }\n }\n }\n",j=15,_=document.querySelector("#player_info > tbody"),$=S===P?_:document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),H=document.querySelector(S===P?"#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)":"#content_value > table > tbody > tr > td:nth-child(2)"),I=(0,n.default)(),N=()=>(0,m.getItem)(A),R=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,m.setItem)(A,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:k,variables:{server:D,id:S,filter:{sort:"createDate DESC",limit:1,playerID:[S]}}});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},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},V=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(I.playerServers,"\n \n \n \n \n \n \n \n "),H.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%",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(I.oldName,"\n \n ").concat(I.newName,"\n \n ").concat(I.date,"\n
\n ".concat(e.oldName,"\n \n ").concat(e.newName,"\n \n ").concat((0,u.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%",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(I.inADayBestScores,"\n
\n ").concat(I.unitsDefeatedWhileAttacking,"\n \n ").concat(e.inADay.att.score.toLocaleString()," (").concat(e.inADay.att.rank,".)\n
\n ").concat(I.unitsDefeatedWhileDefending,"\n \n ").concat(e.inADay.def.score.toLocaleString()," (").concat(e.inADay.def.rank,".)\n
\n ").concat(I.unitsDefeatedWhileSupporting,"\n \n ").concat(e.inADay.sup.score.toLocaleString()," (").concat(e.inADay.sup.rank,".)\n
\n ").concat(I.resourcesPlundered,"\n \n ").concat(e.inADay.lootRes.score.toLocaleString()," (").concat(e.inADay.lootRes.rank,".)\n
\n ").concat(I.villagesPlundered,"\n \n ").concat(e.inADay.lootVil.score.toLocaleString()," (").concat(e.inADay.lootVil.rank,".)\n
\n ").concat(I.resourcesGathered,"\n \n ").concat(e.inADay.scavenge.score.toLocaleString()," (").concat(e.inADay.scavenge.rank,".)\n
\n ").concat(I.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:I.joinedAt+":",data:(0,u.default)(t.joinedAt),id:"joined_at"},{title:I.dailyGrowth+":",data:t.dailyGrowth.toLocaleString(),id:"dg"},{title:I.bestRank+":",data:t.bestRank+" "+"(".concat((0,u.default)(t.bestRankAt),")"),id:"best_rank"},{title:I.mostPoints+":",data:t.mostPoints.toLocaleString()+" "+"(".concat((0,u.default)(t.mostPointsAt),")"),id:"most_points"},{title:I.mostVillages+":",data:t.mostVillages+" "+"(".concat((0,u.default)(t.mostVillagesAt),")"),id:"most_villages"}].forEach(e=>{M(e)}),G(t),n&&n.items.length>0&&(0,r.default)(H,n.items[0]),t.nameChanges.length>0&&U(t),t.servers.length>0&&V(t)},B=(e,t,n)=>{const r=(0,c.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(I.date,"\n \n ").concat(I.newTribe,"\n \n ").concat(I.oldTribe,"\n
".concat((0,u.default)(e.createdAt),"').concat(e.newTribe.tag,"-').concat(e.oldTribe.tag,"-
\n ");(0,a.default)({e:e,title:I.tribeChanges,id:"tribeChanges",html:i}),document.querySelectorAll("#tribeChangesPagination a").forEach(e=>{e.addEventListener("click",z)})},z=async e=>{e.preventDefault();const n=(0,c.getPage)(e.target);if(!isNaN(n)){const r=await(0,t.default)({query:q,variables:{filter:{playerID:[S],offset:15*(n-1),limit:15,sort:"createdAt DESC"},server:D}});B(e,n,r.tribeChanges)}},J=async e=>{e.preventDefault();const n=(0,c.getPage)(e.target);if(!isNaN(n))try{const a={playerID:[S],offset:15*(n-1),limit:15,sort:"createDate DESC"},{playerHistory:i,dailyPlayerStats:l}=await(0,t.default)({query:C,variables:{server:D,playerHistoryFilter:a,dailyPlayerStatsFilter:h(h({},a),{},{offset:a.offset+1})}});(0,o.default)(e,i,l,{currentPage:n,limit:15,onPageChange:J,tribe:!1})}catch(r){console.log("cannot load player history",r)}},K=async e=>{e.preventDefault();const n=(0,c.getPage)(e.target);if(!isNaN(n)){const r=await(0,t.default)({query:L,variables:{filter:{or:{oldOwnerID:[S],newOwnerID:[S]},offset:15*(n-1),limit:15,sort:"ennobledAt DESC"},server:D}});(0,i.default)(e,r.ennoblements,{currentPage:n,limit:15,onPageChange:K})}},Q=e=>{e.preventDefault(),Dialog.show(I.exportedVillages,""))},X=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},Y=()=>{const e=document.createElement("a");e.href="#",(0,c.setPage)(e,"1"),e.innerHTML=I.action.showTribeChanges,e.addEventListener("click",z),$.appendChild(X(e));const t=document.createElement("a");t.href="#",(0,c.setPage)(t,"1"),t.innerHTML=I.action.showHistory,t.addEventListener("click",J),$.appendChild(X(t));const n=document.createElement("a");n.href="#",(0,c.setPage)(n,"1"),n.innerHTML=I.action.showEnnoblements,n.addEventListener("click",K),$.appendChild(X(n));const r=document.createElement("a");r.href="#",r.innerHTML=I.action.exportVillages,r.addEventListener("click",Q),$.appendChild(X(r))};!async function(){try{Y();const t=N();t&&t.player&&W(t);const n=await F();n&&W(n)}catch(e){console.log("extended player profile",e)}}(); +"use strict";var t=g(require("./libs/InADayParser")),e=g(require("./libs/requestCreator")),n=g(require("./i18n/extendedPlayerProfile")),r=g(require("./common/renderTodaysStats")),a=g(require("./utils/showPopup")),i=g(require("./common/showEnnoblementsPopup")),o=g(require("./common/showHistoryPopup")),l=g(require("./utils/hyphensToCamelCase")),s=require("./utils/pagination"),c=g(require("./utils/getIDFromURL")),d=g(require("./utils/getCurrentServer")),y=g(require("./utils/formatDate")),u=require("./utils/twstats"),m=require("./utils/tribalwars"),f=require("./utils/localStorage");function g(t){return t&&t.__esModule?t:{default:t}}function h(t,e){if(null==t)return{};var n,r,a=p(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}function p(t,e){if(null==t)return{};var n,r,a={},i=Object.keys(t);for(r=0;r=0||(a[n]=t[n]);return a}const b=(0,d.default)();let v=(0,c.default)(window.location.search);const S=parseInt(game_data.player.id);!isNaN(v)&&v||(v=S);const D="kichiyaki_extended_player_profile"+v,w="\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",$="\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",A="tribeChangesPagination",P=15,k="\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",q=15,T="\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",C=15,L=document.querySelector("#player_info > tbody"),E=v===S?L:document.querySelector("#content_value > table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),_=document.querySelector(v===S?"#content_value > table:nth-child(7) > tbody > tr > td:nth-child(2)":"#content_value > table > tbody > tr > td:nth-child(2)"),I=(0,n.default)(),H=()=>(0,f.getItem)(D),N=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,f.setItem)(D,t)},O=async function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{name:r}=n,a=h(n,["name"]);try{const n=await fetch(TribalWars.buildURL("",{screen:"ranking",mode:"in_a_day",type:e,name:r||""})),o=await n.text();if(!o)throw new Error;const l=new t.default(o,a).parse();if(0===l.length)throw new Error;return l[0]}catch(i){return{rank:0,playerID:0,score:0,tribeID:0,tribe:"",date:new Date}}},R=async()=>{const t=await(0,e.default)({query:w,variables:{server:b,id:v,limit:1,sort:["createDate DESC"],filter:{playerID:[v]}}});if(t.player){const e={},n={name:t.player.name,playerID:t.player.id};for(let t of["kill_att","kill_def","kill_sup","loot_res","loot_vil","scavenge","conquer"])e[(0,l.default)(t.replace("kill_",""))]=await O(t,n);t.player.inADay=e}return N(t),t},j=t=>{let{title:e,data:n,id:r}=t,a=document.querySelector("#"+r);a||((a=document.createElement("tr")).id=r,a.appendChild(document.createElement("td")),a.appendChild(document.createElement("td")),L.append(a)),a.children[0].innerHTML=e,a.children[1].innerHTML=n},x=t=>{let e=document.querySelector("#playerServers");e||((e=document.createElement("table")).id="playerServers",e.classList.add("vis"),e.width="100%",e.innerHTML="\n \n \n \n ".concat(I.playerServers,"\n \n \n \n \n \n \n \n "),_.prepend(e)),e.querySelector("td").innerHTML=t.servers.sort().map(e=>'').concat(e,"")).join("")},F=t=>{let e=document.querySelector("#playerOtherNames");e||((e=document.createElement("div")).id="playerOtherNames",e.width="100%",_.prepend(e)),e.innerHTML='\n \n \n \n \n \n \n \n ").concat(t.nameChanges.map(t=>"\n \n \n \n \n \n ")).join(""),"\n \n
\n '.concat(I.oldName,"\n \n ").concat(I.newName,"\n \n ").concat(I.date,"\n
\n ".concat(t.oldName,"\n \n ").concat(t.newName,"\n \n ").concat((0,y.default)(t.changeDate,{year:"numeric",month:"2-digit",day:"2-digit"}),"\n
\n ")},M=t=>{let e=document.querySelector("#inADayRanks");e||((e=document.createElement("div")).id="inADayRanks",e.width="100%",_.prepend(e)),e.innerHTML='\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n '.concat(I.inADayBestScores,"\n
\n ").concat(I.unitsDefeatedWhileAttacking,"\n \n ").concat(t.inADay.att.score.toLocaleString()," (").concat(t.inADay.att.rank,".)\n
\n ").concat(I.unitsDefeatedWhileDefending,"\n \n ").concat(t.inADay.def.score.toLocaleString()," (").concat(t.inADay.def.rank,".)\n
\n ").concat(I.unitsDefeatedWhileSupporting,"\n \n ").concat(t.inADay.sup.score.toLocaleString()," (").concat(t.inADay.sup.rank,".)\n
\n ").concat(I.resourcesPlundered,"\n \n ").concat(t.inADay.lootRes.score.toLocaleString()," (").concat(t.inADay.lootRes.rank,".)\n
\n ").concat(I.villagesPlundered,"\n \n ").concat(t.inADay.lootVil.score.toLocaleString()," (").concat(t.inADay.lootVil.rank,".)\n
\n ").concat(I.resourcesGathered,"\n \n ").concat(t.inADay.scavenge.score.toLocaleString()," (").concat(t.inADay.scavenge.rank,".)\n
\n ").concat(I.villagesConquered,"\n \n ").concat(t.inADay.conquer.score.toLocaleString()," (").concat(t.inADay.conquer.rank,".)\n
\n ")},V=t=>{let{player:e,dailyPlayerStats:n}=t;[{title:I.joinedAt+":",data:(0,y.default)(e.joinedAt),id:"joined_at"},{title:I.dailyGrowth+":",data:e.dailyGrowth.toLocaleString(),id:"dg"},{title:I.bestRank+":",data:e.bestRank+" "+"(".concat((0,y.default)(e.bestRankAt),")"),id:"best_rank"},{title:I.mostPoints+":",data:e.mostPoints.toLocaleString()+" "+"(".concat((0,y.default)(e.mostPointsAt),")"),id:"most_points"},{title:I.mostVillages+":",data:e.mostVillages+" "+"(".concat((0,y.default)(e.mostVillagesAt),")"),id:"most_villages"}].forEach(t=>{j(t)}),M(e),n&&n.items.length>0&&(0,r.default)(_,n.items[0]),e.nameChanges.length>0&&F(e),e.servers.length>0&&x(e)},U=(t,e,n)=>{const r=(0,s.generatePaginationItems)({total:n.total,limit:15,currentPage:e}),i='\n
\n ').concat(r.join(""),'\n
\n \n \n \n \n \n \n \n ").concat(n.items.map(t=>{let e=""+"");return t.newTribe?e+='"):e+="",t.oldTribe?e+='"):e+="",e+""}).join(""),"\n \n
\n ').concat(I.date,"\n \n ").concat(I.newTribe,"\n \n ").concat(I.oldTribe,"\n
".concat((0,y.default)(t.createdAt),"').concat(t.newTribe.tag,"-').concat(t.oldTribe.tag,"-
\n ");(0,a.default)({e:t,title:I.tribeChanges,id:"tribeChanges",html:i}),document.querySelectorAll("#tribeChangesPagination a").forEach(t=>{t.addEventListener("click",G)})},G=async t=>{t.preventDefault();const n=(0,s.getPage)(t.target);if(!isNaN(n)){const r=await(0,e.default)({query:$,variables:{filter:{playerID:[v]},sort:["createdAt DESC"],offset:15*(n-1),limit:15,server:b}});U(t,n,r.tribeChanges)}},W=async t=>{t.preventDefault();const n=(0,s.getPage)(t.target);if(!isNaN(n))try{const a={playerID:[v]},{playerHistory:i,dailyPlayerStats:l}=await(0,e.default)({query:k,variables:{server:b,playerHistoryFilter:a,offset:15*(n-1),limit:15,sort:["createDate DESC"],dailyPlayerStatsFilter:a}});(0,o.default)(t,i,l,{currentPage:n,limit:15,onPageChange:W,tribe:!1})}catch(r){console.log("cannot load player history",r)}},B=async t=>{t.preventDefault();const n=(0,s.getPage)(t.target);if(!isNaN(n)){const r=await(0,e.default)({query:T,variables:{filter:{or:{oldOwnerID:[v],newOwnerID:[v]}},offset:15*(n-1),limit:15,sort:["ennobledAt DESC"],server:b}});(0,i.default)(t,r.ennoblements,{currentPage:n,limit:15,onPageChange:B})}},z=t=>{t.preventDefault(),Dialog.show(I.exportedVillages,""))},J=t=>{const e=document.createElement("td");e.colSpan="2",e.append(t);const n=document.createElement("tr");return n.appendChild(e),n},K=()=>{const t=document.createElement("a");t.href="#",(0,s.setPage)(t,"1"),t.innerHTML=I.action.showTribeChanges,t.addEventListener("click",G),E.appendChild(J(t));const e=document.createElement("a");e.href="#",(0,s.setPage)(e,"1"),e.innerHTML=I.action.showHistory,e.addEventListener("click",W),E.appendChild(J(e));const n=document.createElement("a");n.href="#",(0,s.setPage)(n,"1"),n.innerHTML=I.action.showEnnoblements,n.addEventListener("click",B),E.appendChild(J(n));const r=document.createElement("a");r.href="#",r.innerHTML=I.action.exportVillages,r.addEventListener("click",z),E.appendChild(J(r))};!async function(){try{K();const e=H();e&&e.player&&V(e);const n=await R();n&&V(n)}catch(t){console.log("extended player profile",t)}}(); },{"./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/formatDate":"V6Mf","./utils/twstats":"Syko","./utils/tribalwars":"fHHP","./utils/localStorage":"KWxH"}]},{},["yRop"], null) \ No newline at end of file diff --git a/dist/quickbar/extendedTribeProfile.js b/dist/quickbar/extendedTribeProfile.js index 26cda23..c7f8153 100644 --- a/dist/quickbar/extendedTribeProfile.js +++ b/dist/quickbar/extendedTribeProfile.js @@ -61,5 +61,5 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel },{}],"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; },{}],"r4nF":[function(require,module,exports) { -"use strict";var e=p(require("validator/lib/isURL")),t=p(require("date-fns/differenceInDays")),n=p(require("./i18n/extendedTribeProfile")),r=p(require("./libs/requestCreator")),a=require("./utils/pagination"),i=p(require("./common/renderTodaysStats")),o=p(require("./common/showEnnoblementsPopup")),l=p(require("./common/showHistoryPopup")),s=p(require("./utils/showPopup")),c=p(require("./utils/getIDFromURL")),d=p(require("./utils/getCurrentServer")),u=require("./utils/localStorage"),m=p(require("./utils/formatDate")),f=require("./utils/twstats"),b=require("./utils/tribalwars");function p(e){return e&&e.__esModule?e:{default:e}}function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function g(e){for(var t=1;t table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody"),O=F,x=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)"),j=document.querySelector("#content_value > table.vis > tbody"),H=(0,n.default)(),I=()=>(0,u.getItem)(w),M=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,u.setItem)(w,e)},G=()=>{const e=[];return j.querySelectorAll("a").forEach(t=>{const n=t.getAttribute("href");n.includes("info_player")&&e.push((0,c.default)(n))}),e},_=()=>{const e=[];return j.querySelectorAll("a").forEach(t=>{t.getAttribute("href").includes("info_player")&&e.push(t.innerText.trim())}),e},N=async()=>{const e=G(),t=await(0,r.default)({query:S,variables:{server:v,id:D,dailyTribeStatsFilter:{sort:"createDate DESC",limit:1,tribeID:[D]},playerFilter:{sort:"rank ASC",limit:e.length,id:e}}});return M(t),t},R=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")),F.append(a)),a.children[0].innerHTML=t,a.children[1].innerHTML=n},V=t=>{j.parentElement.style.width="100%";const n=j.querySelector("tr:first-child");11!==n.children.length&&[H.oda,H.odd,H.ods,H.od,H.dailyGrowth,H.playerLinks].forEach(e=>{const t=document.createElement("th");t.innerHTML=e,n.appendChild(t)}),j.querySelectorAll("tr").forEach(n=>{const r=n.querySelector("a");if(!r)return;const a=(0,c.default)(r.getAttribute("href")),i=t.items.find(e=>e.id===a);i&&[[i.scoreAtt,i.rankAtt],[i.scoreDef,i.rankDef],[i.scoreSup,i.rankSup],[i.scoreTotal,i.rankTotal],i.dailyGrowth,[(0,f.formatPlayerURL)(v,i.id),"TWStats"]].forEach((t,r)=>{let a=n.children[5+r];a||(a=document.createElement("td"),n.appendChild(a)),Array.isArray(t)?"number"==typeof t[0]?a.innerHTML="".concat(t[0].toLocaleString()," (").concat(t[1],")"):(0,e.default)(t[0])&&(a.innerHTML='').concat(t[1],"")):"number"==typeof t&&(a.innerHTML=t.toLocaleString())})})},U=e=>{let{tribe:t,dailyTribeStats:n,players:r}=e;[{title:H.createdAt+":",data:(0,m.default)(t.createdAt),id:"created_at"},{title:H.dominance+":",data:t.dominance.toFixed(2)+"%",id:"dominance"},{title:H.bestRank+":",data:t.bestRank+" "+"(".concat((0,m.default)(t.bestRankAt),")"),id:"best_rank"},{title:H.mostPoints+":",data:t.mostPoints.toLocaleString()+" "+"(".concat((0,m.default)(t.mostPointsAt),")"),id:"most_points"},{title:H.mostVillages+":",data:t.mostVillages+" "+"(".concat((0,m.default)(t.mostVillagesAt),")"),id:"most_villages"}].forEach(e=>{R(e)}),n&&n.items.length>0&&(0,i.default)(x,n.items[0]),r&&r.items.length>0&&V(r)},X=async e=>{e.preventDefault();const t=(0,a.getPage)(e.target);if(!isNaN(t)){const n=await(0,r.default)({query:T,variables:{filter:{or:{oldOwnerTribeID:[D],newOwnerTribeID:[D]},offset:15*(t-1),limit:15,sort:"ennobledAt DESC"},server:v}});(0,o.default)(e,n.ennoblements,{currentPage:t,limit:15,onPageChange:X})}},Y=async e=>{e.preventDefault();const t=(0,a.getPage)(e.target);if(!isNaN(t))try{const a={tribeID:[D],offset:15*(t-1),limit:15,sort:"createDate DESC"},{tribeHistory:i,dailyTribeStats:o}=await(0,r.default)({query:q,variables:{server:v,tribeHistoryFilter:a,dailyTribeStatsFilter:g(g({},a),{},{offset:a.offset+1})}});(0,l.default)(e,i,o,{currentPage:t,limit:15,tribe:!0,onPageChange:Y})}catch(n){console.log("cannot load tribe history",n)}},W=e=>{return e>0?"color: #000; background-color: #0f0":e<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080"},z=e=>{switch(P){case"points":return e.points;case"villages":return e.villages;case"od":return e.scoreTotal;case"oda":return e.scoreAtt;case"odd":return e.scoreDef;case"ods":return e.scoreSup;default:return 0}},B=e=>{const t=[...new Set(e.items.map(e=>e.createDate))].reverse();return"\n \n \n ".concat(H.player,"\n ").concat(t.map(e=>"".concat((0,m.default)(e,{year:"numeric",month:"2-digit",day:"2-digit"}),"")).join(""),"\n ").concat(H.total,"\n \n ").concat(G().map(n=>{const r=e.items.filter(e=>e.player&&e.player.id===n).reverse();let a=void 0;r.length>0&&(a=r[0].player);const i=[];let o=0;for(let e of t){const t=r.find(t=>t.createDate===e);let n=0;t&&(n=z(t)),o+=n,i.push('').concat(n.toLocaleString(),""))}return"\n \n ".concat(a?'').concat(a.name,""):"-","\n \n ").concat(i.join(""),'\n ').concat(o.toLocaleString(),"\n ")}).join(""),"\n \n ")},J="membersGrowth",K="membersGrowthForm",Q=e=>t=>{t.preventDefault(),P=t.target[0].value,document.querySelector("#membersGrowth").innerHTML=B(e)},Z=(e,t)=>{const n=[["points",H.points],["villages",H.villages],["od",H.opponentsDefeated],["oda",H.opponentsDefeatedAsAttacker],["odd",H.opponentsDefeatedAsDefender],["ods",H.opponentsDefeatedAsSupporter]].map(e=>"")),r='\n
\n \n \n
\n \n ').concat(B(t),"\n
\n ");(0,s.default)({e:e,title:H.membersGrowth,id:"mg",html:r}),document.querySelector("#membersGrowthForm").addEventListener("submit",Q(t))},ee=async function(){let{createDateLTE:e,createDateGT:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=G(),i={playerID:a,limit:a.length*(0,t.default)(e,n),sort:"createDate DESC",createDateLTE:e,createDateGT:n};return await(0,r.default)({query:L,variables:{filter:i,server:v}})},te=async e=>{e.preventDefault();const t=new Date;t.setDate(t.getDate()-7);const n=await ee({createDateLTE:new Date,createDateGT:t});Z(e,n.dailyPlayerStats)},ne=(e,t,n)=>{const r=(0,a.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.player?t+='"):t+="",(t+=""))+""}).join(""),"\n \n
\n ').concat(H.date,"\n \n ").concat(H.player,"\n \n ").concat(H.act,"\n
".concat((0,m.default)(e.createdAt),"').concat(e.player.name,"-".concat(e.newTribe&&e.newTribe.id===D?H.joined:H.left,"
\n ");(0,s.default)({e:e,title:H.tribeChanges,id:"tribeChanges",html:i}),document.querySelectorAll("#tribeChangesPagination a").forEach(e=>{e.addEventListener("click",re)})},re=async e=>{e.preventDefault();const t=(0,a.getPage)(e.target);if(!isNaN(t)){const n=await(0,r.default)({query:k,variables:{filter:{or:{oldTribeID:[D],newTribeID:[D]},offset:15*(t-1),limit:15,sort:"createdAt DESC"},server:v}});ne(e,t,n.tribeChanges)}},ae=e=>{e.preventDefault();const t=_(),n=[];for(let a=0;a{r+='

'.concat(t+1,'.

\n ")}),Dialog.show("mailinglist",r)},ie=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{const a=await(0,r.default)({variables:e,query:"\n query villages($server: String!, $filter: VillageFilter!) {\n villages(server: $server, filter: $filter) {\n ".concat(t?"total":"","\n items {\n id\n x\n y\n }\n }\n }\n ")});if(a&&a.villages&&Array.isArray(a.villages.items))return a.villages}catch(n){console.log("load villages",n)}return{total:0,items:[]}},oe=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e&&t?Dialog.show("loading","Loaded: ".concat(e,"/").concat(t,"")):Dialog.show("loading","Loading...")},le=async e=>{e.preventDefault();let t=parseInt(e.target[4].value);const n={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),limit:isNaN(t)||!t?0:t,playerID:G(),sort:"id ASC"},server:v};oe();let{total:r,items:a}=await ie(n,!0);const i=a.length;if(0!==t&&ti)for(let o=i;o".concat(a.map(e=>"".concat(e.x,"|").concat(e.y)).join(" "),"\n "))},se=e=>{e.preventDefault();const t='\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n ');Dialog.show("exportTribeVillages",t),document.querySelector("#etvForm").addEventListener("submit",le)},ce=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},de=()=>{const e=document.createElement("a");e.href="#",(0,a.setPage)(e,"1"),e.innerHTML=H.action.showEnnoblements,e.addEventListener("click",X),O.appendChild(ce(e));const t=document.createElement("a");t.href="#",(0,a.setPage)(t,"1"),t.innerHTML=H.action.showHistory,t.addEventListener("click",Y),O.appendChild(ce(t));const n=document.createElement("a");n.href="#",(0,a.setPage)(n,"1"),n.innerHTML=H.action.showTribeChanges,n.addEventListener("click",re),O.appendChild(ce(n));const r=document.createElement("a");r.href="#",r.innerHTML=H.action.showMembersGrowth,r.addEventListener("click",te),O.appendChild(ce(r));const i=document.createElement("a");i.href="#",i.innerHTML=H.action.generateMailingList,i.addEventListener("click",ae),O.appendChild(ce(i));const o=document.createElement("a");o.href="#",o.innerHTML=H.action.exportVillages,o.addEventListener("click",se),O.appendChild(ce(o))};!async function(){try{document.querySelector("#content_value > table:nth-child(3)").style.width="100%",de();const t=I();t&&t.tribe&&U(t);const n=await N();n&&U(n)}catch(e){console.log("extended tribe profile",e)}}(); +"use strict";var e=y(require("validator/lib/isURL")),t=y(require("date-fns/differenceInDays")),n=y(require("./i18n/extendedTribeProfile")),r=y(require("./libs/requestCreator")),a=require("./utils/pagination"),i=y(require("./common/renderTodaysStats")),o=y(require("./common/showEnnoblementsPopup")),l=y(require("./common/showHistoryPopup")),s=y(require("./utils/showPopup")),c=y(require("./utils/getIDFromURL")),d=y(require("./utils/getCurrentServer")),u=require("./utils/localStorage"),m=y(require("./utils/formatDate")),f=require("./utils/twstats"),b=require("./utils/tribalwars");function y(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function g(e){for(var t=1;t table:nth-child(3) > tbody > tr > td:nth-child(1) > table > tbody"),F=I,O=document.querySelector("#content_value > table:nth-child(3) > tbody > tr > td:nth-child(2)"),x=document.querySelector("#content_value > table.vis > tbody"),j=(0,n.default)(),H=()=>(0,u.getItem)(D),M=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,u.setItem)(D,e)},G=()=>{const e=[];return x.querySelectorAll("a").forEach(t=>{const n=t.getAttribute("href");n.includes("info_player")&&e.push((0,c.default)(n))}),e},_=()=>{const e=[];return x.querySelectorAll("a").forEach(t=>{t.getAttribute("href").includes("info_player")&&e.push(t.innerText.trim())}),e},N=async()=>{const e=G(),t=await(0,r.default)({query:T,variables:{server:v,id:S,dailyTribeStatsSort:["createDate DESC"],dailyTibeStatsLimit:1,dailyTribeStatsFilter:{tribeID:[S]},playerSort:["rank ASC"],playerFilter:{id:e}}});return M(t),t},R=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},V=t=>{x.parentElement.style.width="100%";const n=x.querySelector("tr:first-child");11!==n.children.length&&[j.oda,j.odd,j.ods,j.od,j.dailyGrowth,j.playerLinks].forEach(e=>{const t=document.createElement("th");t.innerHTML=e,n.appendChild(t)}),x.querySelectorAll("tr").forEach(n=>{const r=n.querySelector("a");if(!r)return;const a=(0,c.default)(r.getAttribute("href")),i=t.items.find(e=>e.id===a);i&&[[i.scoreAtt,i.rankAtt],[i.scoreDef,i.rankDef],[i.scoreSup,i.rankSup],[i.scoreTotal,i.rankTotal],i.dailyGrowth,[(0,f.formatPlayerURL)(v,i.id),"TWStats"]].forEach((t,r)=>{let a=n.children[5+r];a||(a=document.createElement("td"),n.appendChild(a)),Array.isArray(t)?"number"==typeof t[0]?a.innerHTML="".concat(t[0].toLocaleString()," (").concat(t[1],")"):(0,e.default)(t[0])&&(a.innerHTML='').concat(t[1],"")):"number"==typeof t&&(a.innerHTML=t.toLocaleString())})})},U=e=>{let{tribe:t,dailyTribeStats:n,players:r}=e;[{title:j.createdAt+":",data:(0,m.default)(t.createdAt),id:"created_at"},{title:j.dominance+":",data:t.dominance.toFixed(2)+"%",id:"dominance"},{title:j.bestRank+":",data:t.bestRank+" "+"(".concat((0,m.default)(t.bestRankAt),")"),id:"best_rank"},{title:j.mostPoints+":",data:t.mostPoints.toLocaleString()+" "+"(".concat((0,m.default)(t.mostPointsAt),")"),id:"most_points"},{title:j.mostVillages+":",data:t.mostVillages+" "+"(".concat((0,m.default)(t.mostVillagesAt),")"),id:"most_villages"}].forEach(e=>{R(e)}),n&&n.items.length>0&&(0,i.default)(O,n.items[0]),r&&r.items.length>0&&V(r)},X=async e=>{e.preventDefault();const t=(0,a.getPage)(e.target);if(!isNaN(t)){const n=await(0,r.default)({query:$,variables:{filter:{or:{oldOwnerTribeID:[S],newOwnerTribeID:[S]}},offset:15*(t-1),limit:15,sort:["ennobledAt DESC"],server:v}});(0,o.default)(e,n.ennoblements,{currentPage:t,limit:15,onPageChange:X})}},Y=async e=>{e.preventDefault();const t=(0,a.getPage)(e.target);if(!isNaN(t))try{const a={tribeID:[S]},{tribeHistory:i,dailyTribeStats:o}=await(0,r.default)({query:E,variables:{server:v,offset:15*(t-1),limit:15,sort:["createDate DESC"],tribeHistoryFilter:a,dailyTribeStatsFilter:a}});(0,l.default)(e,i,o,{currentPage:t,limit:15,tribe:!0,onPageChange:Y})}catch(n){console.log("cannot load tribe history",n)}},W=e=>{return e>0?"color: #000; background-color: #0f0":e<0?"color: #000; background-color: #f00":"color: #000; background-color: #808080"},z=e=>{switch(L){case"points":return e.points;case"villages":return e.villages;case"od":return e.scoreTotal;case"oda":return e.scoreAtt;case"odd":return e.scoreDef;case"ods":return e.scoreSup;default:return 0}},B=e=>{const t=[...new Set(e.items.map(e=>e.createDate))].reverse();return"\n \n \n ".concat(j.player,"\n ").concat(t.map(e=>"".concat((0,m.default)(e,{year:"numeric",month:"2-digit",day:"2-digit"}),"")).join(""),"\n ").concat(j.total,"\n \n ").concat(G().map(n=>{const r=e.items.filter(e=>e.player&&e.player.id===n).reverse();let a=void 0;r.length>0&&(a=r[0].player);const i=[];let o=0;for(let e of t){const t=r.find(t=>t.createDate===e);let n=0;t&&(n=z(t)),o+=n,i.push('').concat(n.toLocaleString(),""))}return"\n \n ".concat(a?'').concat(a.name,""):"-","\n \n ").concat(i.join(""),'\n ').concat(o.toLocaleString(),"\n ")}).join(""),"\n \n ")},J="membersGrowth",K="membersGrowthForm",Q=e=>t=>{t.preventDefault(),L=t.target[0].value,document.querySelector("#membersGrowth").innerHTML=B(e)},Z=(e,t)=>{const n=[["points",j.points],["villages",j.villages],["od",j.opponentsDefeated],["oda",j.opponentsDefeatedAsAttacker],["odd",j.opponentsDefeatedAsDefender],["ods",j.opponentsDefeatedAsSupporter]].map(e=>"")),r='\n
\n \n \n
\n \n ').concat(B(t),"\n
\n ");(0,s.default)({e:e,title:j.membersGrowth,id:"mg",html:r}),document.querySelector("#membersGrowthForm").addEventListener("submit",Q(t))},ee=async function(){let{createDateLTE:e,createDateGT:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const a=G(),i=a.length*(0,t.default)(e,n),o={playerID:a,createDateLTE:e,createDateGT:n};return await(0,r.default)({query:A,variables:{filter:o,limit:i,sort:["createDate DESC"],server:v}})},te=async e=>{e.preventDefault();const t=new Date;t.setDate(t.getDate()-7);const n=await ee({createDateLTE:new Date,createDateGT:t});Z(e,n.dailyPlayerStats)},ne=(e,t,n)=>{const r=(0,a.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.player?t+='"):t+="",(t+=""))+""}).join(""),"\n \n
\n ').concat(j.date,"\n \n ").concat(j.player,"\n \n ").concat(j.act,"\n
".concat((0,m.default)(e.createdAt),"').concat(e.player.name,"-".concat(e.newTribe&&e.newTribe.id===S?j.joined:j.left,"
\n ");(0,s.default)({e:e,title:j.tribeChanges,id:"tribeChanges",html:i}),document.querySelectorAll("#tribeChangesPagination a").forEach(e=>{e.addEventListener("click",re)})},re=async e=>{e.preventDefault();const t=(0,a.getPage)(e.target);if(!isNaN(t)){const n=await(0,r.default)({query:P,variables:{filter:{or:{oldTribeID:[S],newTribeID:[S]}},offset:15*(t-1),limit:15,sort:["createdAt DESC"],server:v}});ne(e,t,n.tribeChanges)}},ae=e=>{e.preventDefault();const t=_(),n=[];for(let a=0;a{r+='

'.concat(t+1,'.

\n ")}),Dialog.show("mailinglist",r)},ie=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{const a=await(0,r.default)({variables:e,query:"\n query villages($server: String!, $sort: [String!], $limit: Int, $offset: Int, $filter: VillageFilter!) {\n villages(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $filter) {\n ".concat(t?"total":"","\n items {\n id\n x\n y\n }\n }\n }\n ")});if(a&&a.villages&&Array.isArray(a.villages.items))return a.villages}catch(n){console.log("load villages",n)}return{total:0,items:[]}},oe=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e&&t?Dialog.show("loading","Loaded: ".concat(e,"/").concat(t,"")):Dialog.show("loading","Loading...")},le=async e=>{e.preventDefault();let t=parseInt(e.target[4].value);const n={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:G()},limit:isNaN(t)||!t?0:t,sort:["id ASC"],server:v};oe();let{total:r,items:a}=await ie(n,!0);const i=a.length;if(0!==t&&ti)for(let o=i;o".concat(a.map(e=>"".concat(e.x,"|").concat(e.y)).join(" "),"\n "))},se=e=>{e.preventDefault();const t='\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n ');Dialog.show("exportTribeVillages",t),document.querySelector("#etvForm").addEventListener("submit",le)},ce=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},de=()=>{const e=document.createElement("a");e.href="#",(0,a.setPage)(e,"1"),e.innerHTML=j.action.showEnnoblements,e.addEventListener("click",X),F.appendChild(ce(e));const t=document.createElement("a");t.href="#",(0,a.setPage)(t,"1"),t.innerHTML=j.action.showHistory,t.addEventListener("click",Y),F.appendChild(ce(t));const n=document.createElement("a");n.href="#",(0,a.setPage)(n,"1"),n.innerHTML=j.action.showTribeChanges,n.addEventListener("click",re),F.appendChild(ce(n));const r=document.createElement("a");r.href="#",r.innerHTML=j.action.showMembersGrowth,r.addEventListener("click",te),F.appendChild(ce(r));const i=document.createElement("a");i.href="#",i.innerHTML=j.action.generateMailingList,i.addEventListener("click",ae),F.appendChild(ce(i));const o=document.createElement("a");o.href="#",o.innerHTML=j.action.exportVillages,o.addEventListener("click",se),F.appendChild(ce(o))};!async function(){try{document.querySelector("#content_value > table:nth-child(3)").style.width="100%",de();const t=H();t&&t.tribe&&U(t);const n=await N();n&&U(n)}catch(e){console.log("extended tribe profile",e)}}(); },{"validator/lib/isURL":"XMVV","date-fns/differenceInDays":"mdVI","./i18n/extendedTribeProfile":"iFDG","./libs/requestCreator":"Ph2E","./utils/pagination":"fCHX","./common/renderTodaysStats":"yrCm","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/showPopup":"chDM","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/localStorage":"KWxH","./utils/formatDate":"V6Mf","./utils/twstats":"Syko","./utils/tribalwars":"fHHP"}]},{},["r4nF"], null) \ No newline at end of file diff --git a/dist/quickbar/extendedVillageProfile.js b/dist/quickbar/extendedVillageProfile.js index 5101984..66b1209 100644 --- a/dist/quickbar/extendedVillageProfile.js +++ b/dist/quickbar/extendedVillageProfile.js @@ -35,5 +35,5 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel },{}],"vNT1":[function(require,module,exports) { "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var t=l(require("../i18n/showEnnoblementsPopup")),e=require("../utils/pagination"),n=l(require("../utils/showPopup")),a=l(require("../utils/formatDate")),o=require("../utils/tribalwars");function l(t){return t&&t.__esModule?t:{default:t}}const r="ennoblementsPagination",i=(0,t.default)(),c=(t,e)=>t?'').concat(t.name," (").concat(e?'').concat(e.tag,""):"-",")"):"-";var d=function(t,l){let{limit:d=0,currentPage:s=1,onPageChange:u=(()=>{})}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const g=(0,e.generatePaginationItems)({total:l.total,limit:d,currentPage:s}),m='\n
\n ').concat(g.join(""),'\n
\n \n \n \n \n \n \n \n \n ").concat(l.items.map(t=>{let e=""+"");return t.village?e+='"):e+="",e+=c(t.newOwner,t.newOwnerTribe),(e+=c(t.oldOwner,t.oldOwnerTribe))+""}).join(""),"\n \n
\n ').concat(i.date,"\n \n ").concat(i.village,"\n \n ").concat(i.newOwner,"\n \n ").concat(i.oldOwner,"\n
".concat((0,a.default)(t.ennobledAt),"').concat((0,o.formatVillageName)(t.village.name,t.village.x,t.village.y),"-
\n ");(0,n.default)({e:t,title:i.title,id:"ennoblements",html:m}),document.querySelectorAll("#ennoblementsPagination a").forEach(t=>{t.addEventListener("click",u)})};exports.default=d; },{"../i18n/showEnnoblementsPopup":"tKRp","../utils/pagination":"fCHX","../utils/showPopup":"chDM","../utils/formatDate":"V6Mf","../utils/tribalwars":"fHHP"}],"UdfQ":[function(require,module,exports) { -"use strict";var e=u(require("./libs/requestCreator")),t=u(require("./i18n/extendedVillageProfile")),n=require("./utils/pagination"),r=u(require("./utils/getCurrentServer")),o=u(require("./utils/getIDFromURL")),a=u(require("./utils/buildUnitImgURL")),i=u(require("./utils/formatDate")),l=u(require("./utils/wait")),c=require("./utils/localStorage"),s=u(require("./utils/countLoyalty")),d=u(require("./common/showEnnoblementsPopup"));function u(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m(e){for(var t=1;t table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),E=document.querySelector("#content_value table.vis tbody");let O={};const j=(0,t.default)(),A=()=>(0,c.getItem)(q),D=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,c.setItem)(q,e)},C=e=>Math.abs(e.getTime()-(new Date).getTime())>864e5,L=async()=>{let t=A();return t.server&&!C(new Date(t.loadedAt))&&t.server.unitConfig&&t.server.config||((t=await(0,e.default)({query:w,variables:{key:f}})).loadedAt=new Date,D(t)),t.server},_=async()=>{return await(0,e.default)({query:y,variables:{server:f,filter:{villageID:[g],sort:"ennobledAt DESC",limit:1}}})},P=async t=>{t.preventDefault();const r=(0,n.getPage)(t.target);if(!isNaN(r)){const n=await(0,e.default)({query:b,variables:{filter:{villageID:[g],offset:15*(r-1),limit:15,sort:"ennobledAt DESC"},server:f}});(0,d.default)(t,n.ennoblements,{currentPage:r,limit:15,onPageChange:P})}},k=e=>{const t=[];let n=0;for(let r in e)n+=e[r]*O.unitConfig[r].pop,t.push("".concat(e[r].toLocaleString(),""));return t.push("".concat(n.toLocaleString(),"")),t},x=async e=>{e.preventDefault();const t=[],n={};document.querySelectorAll('span.command_hover_details[data-command-type="support"]').forEach(e=>{const r=parseInt(e.getAttribute("data-command-id"));e.classList.contains("commandicon-ally")?n[r]=!0:n[r]=!1,t.push(r)});const r={spear:0,sword:0,axe:0,archer:0,spy:0,light:0,marcher:0,heavy:0,ram:0,catapult:0,knight:0,snob:0},o=m({},r),i=m({},r);for(let a=0;a").concat(a," / ").concat(t.length,""));const e=t[a],c=TribalWars.buildURL("",{screen:"info_command",ajax:"details",id:e});try{const t=await fetch(c),{units:a}=await t.json();if(a)for(let l in r){const t=parseInt(a[l].count);n[e]?o[l]+=t:r[l]+=t,i[l]+=t}await(0,l.default)(200)}catch(h){console.log("count incoming support",h)}}const c=[""];for(let l in r)c.push(''));c.push("".concat(j.pop,""));const s=["".concat(j.mySupport,""),...k(r)],d=["".concat(j.allySupport,""),...k(o)],u=["".concat(j.total,""),...k(i)];Dialog.show("incomingSupport",'\n \n \n \n '.concat(c.join(""),"\n \n \n ").concat(s.join(""),"\n \n \n ").concat(d.join(""),"\n \n \n ").concat(u.join(""),"\n \n \n
\n "));const p=document.querySelector(".popup_box");p&&(p.style.width="auto",p.style.maxWidth="900px")},T=e=>{const t=document.createElement("td");t.colSpan="2",t.append(e);const n=document.createElement("tr");return n.appendChild(t),n},I=()=>{const e=document.createElement("a");e.href="#",(0,n.setPage)(e,"1"),e.innerHTML=j.action.showEnnoblements,e.addEventListener("click",P),S.appendChild(T(e));const t=document.createElement("a");t.href="#",t.innerHTML=j.action.countIncomingSupport,t.addEventListener("click",x),S.appendChild(T(t))},$=e=>{let{title:t,data:n,id:r}=e,o=document.querySelector("#"+r);o||((o=document.createElement("tr")).id=r,o.appendChild(document.createElement("td")),o.appendChild(document.createElement("td")),E.append(o)),o.children[0].innerHTML=t,o.children[1].innerHTML=n},M=()=>{const e=document.querySelectorAll("#content_value > div tbody tr"),t=[];if(0===e.length)throw new Error;e[0].querySelectorAll(".unit_link").forEach(()=>{t.push(0)});for(let n=1;n{t[n]+=parseInt(e.innerHTML)})}return t},H=function(){let{config:e,ennoblements:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=t&&Array.isArray(t.items)&&t.items[0]?t.items[0]:void 0;$({id:"loyalty",title:"".concat(j.possibleLoyalty,":"),data:n?(0,s.default)(new Date(n.ennobledAt),e.speed):100}),$({id:"ennobledAt",title:"".concat(j.ennobledAt,":"),data:n?(0,i.default)(n.ennobledAt):j.never});try{const e=M(),t=document.createElement("tr");t.style.textAlign="center",t.style.fontWeight="bold",t.appendChild(document.createElement("td")),e.forEach(e=>{const n=document.createElement("td");n.innerHTML=e,t.appendChild(n)}),document.querySelector("#content_value > div tbody").appendChild(t)}catch(r){}};!async function(){try{const t=await _();O=await L(),H({config:O.config,ennoblements:t.ennoblements}),I()}catch(e){console.log("extended village profile",e)}}(); +"use strict";var e=u(require("./libs/requestCreator")),t=u(require("./i18n/extendedVillageProfile")),n=require("./utils/pagination"),r=u(require("./utils/getCurrentServer")),o=u(require("./utils/getIDFromURL")),i=u(require("./utils/buildUnitImgURL")),l=u(require("./utils/formatDate")),a=u(require("./utils/wait")),c=require("./utils/localStorage"),s=u(require("./utils/countLoyalty")),d=u(require("./common/showEnnoblementsPopup"));function u(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m(e){for(var t=1;t table > tbody > tr > td:nth-child(1) > table:nth-child(2) > tbody"),E=document.querySelector("#content_value table.vis tbody");let O={};const $=(0,t.default)(),j=()=>(0,c.getItem)(S),A=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,c.setItem)(S,e)},D=e=>Math.abs(e.getTime()-(new Date).getTime())>864e5,C=async()=>{let t=j();return t.server&&!D(new Date(t.loadedAt))&&t.server.unitConfig&&t.server.config||((t=await(0,e.default)({query:w,variables:{key:h}})).loadedAt=new Date,A(t)),t.server},L=async()=>{return await(0,e.default)({query:y,variables:{server:h,filter:{villageID:[g]},sort:["ennobledAt DESC"],limit:1}})},_=async t=>{t.preventDefault();const r=(0,n.getPage)(t.target);if(!isNaN(r)){const n=await(0,e.default)({query:b,variables:{filter:{villageID:[g]},offset:15*(r-1),limit:15,sort:["ennobledAt DESC"],server:h}});(0,d.default)(t,n.ennoblements,{currentPage:r,limit:15,onPageChange:_})}},P=e=>{const t=[];let n=0;for(let r in e)n+=e[r]*O.unitConfig[r].pop,t.push("".concat(e[r].toLocaleString(),""));return t.push("".concat(n.toLocaleString(),"")),t},I=async e=>{e.preventDefault();const t=[],n={};document.querySelectorAll('span.command_hover_details[data-command-type="support"]').forEach(e=>{const r=parseInt(e.getAttribute("data-command-id"));e.classList.contains("commandicon-ally")?n[r]=!0:n[r]=!1,t.push(r)});const r={spear:0,sword:0,axe:0,archer:0,spy:0,light:0,marcher:0,heavy:0,ram:0,catapult:0,knight:0,snob:0},o=m({},r),l=m({},r);for(let i=0;i").concat(i," / ").concat(t.length,""));const e=t[i],c=TribalWars.buildURL("",{screen:"info_command",ajax:"details",id:e});try{const t=await fetch(c),{units:i}=await t.json();if(i)for(let a in r){const t=parseInt(i[a].count);n[e]?o[a]+=t:r[a]+=t,l[a]+=t}await(0,a.default)(200)}catch(f){console.log("count incoming support",f)}}const c=[""];for(let a in r)c.push(''));c.push("".concat($.pop,""));const s=["".concat($.mySupport,""),...P(r)],d=["".concat($.allySupport,""),...P(o)],u=["".concat($.total,""),...P(l)];Dialog.show("incomingSupport",'\n \n \n \n '.concat(c.join(""),"\n \n \n ").concat(s.join(""),"\n \n \n ").concat(d.join(""),"\n \n \n ").concat(u.join(""),"\n \n \n
\n "));const p=document.querySelector(".popup_box");p&&(p.style.width="auto",p.style.maxWidth="900px")},k=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,n.setPage)(e,"1"),e.innerHTML=$.action.showEnnoblements,e.addEventListener("click",_),q.appendChild(k(e));const t=document.createElement("a");t.href="#",t.innerHTML=$.action.countIncomingSupport,t.addEventListener("click",I),q.appendChild(k(t))},T=e=>{let{title:t,data:n,id:r}=e,o=document.querySelector("#"+r);o||((o=document.createElement("tr")).id=r,o.appendChild(document.createElement("td")),o.appendChild(document.createElement("td")),E.append(o)),o.children[0].innerHTML=t,o.children[1].innerHTML=n},M=()=>{const e=document.querySelectorAll("#content_value > div tbody tr"),t=[];if(0===e.length)throw new Error;e[0].querySelectorAll(".unit_link").forEach(()=>{t.push(0)});for(let n=1;n{t[n]+=parseInt(e.innerHTML)})}return t},H=function(){let{config:e,ennoblements:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=t&&Array.isArray(t.items)&&t.items[0]?t.items[0]:void 0;T({id:"loyalty",title:"".concat($.possibleLoyalty,":"),data:n?(0,s.default)(new Date(n.ennobledAt),e.speed):100}),T({id:"ennobledAt",title:"".concat($.ennobledAt,":"),data:n?(0,l.default)(n.ennobledAt):$.never});try{const e=M(),t=document.createElement("tr");t.style.textAlign="center",t.style.fontWeight="bold",t.appendChild(document.createElement("td")),e.forEach(e=>{const n=document.createElement("td");n.innerHTML=e,t.appendChild(n)}),document.querySelector("#content_value > div tbody").appendChild(t)}catch(r){}};!async function(){try{const t=await L();O=await C(),H({config:O.config,ennoblements:t.ennoblements}),x()}catch(e){console.log("extended village profile",e)}}(); },{"./libs/requestCreator":"Ph2E","./i18n/extendedVillageProfile":"LNef","./utils/pagination":"fCHX","./utils/getCurrentServer":"DMkL","./utils/getIDFromURL":"tQUs","./utils/buildUnitImgURL":"KX6P","./utils/formatDate":"V6Mf","./utils/wait":"oUdd","./utils/localStorage":"KWxH","./utils/countLoyalty":"ATOB","./common/showEnnoblementsPopup":"vNT1"}]},{},["UdfQ"], null) \ No newline at end of file diff --git a/src/bonusBarbarianVillageFinder.js b/src/bonusBarbarianVillageFinder.js index 69313ea..20adc51 100644 --- a/src/bonusBarbarianVillageFinder.js +++ b/src/bonusBarbarianVillageFinder.js @@ -9,7 +9,7 @@ import { calcDistanceBetweenTwoPoints } from './utils/math'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js -// @version 0.4.2 +// @version 0.4.3 // @description Bonus barbarian village finder // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=map* @@ -18,8 +18,8 @@ import { calcDistanceBetweenTwoPoints } from './utils/math'; const SERVER = getCurrentServer(); const QUERY = ` - query villages($server: String!, $filter: VillageFilter) { - villages(server: $server, filter: $filter) { + query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) { + villages(server: $server, filter: $filter, offset: $offset, sort: $sort) { total items { id @@ -41,12 +41,12 @@ const buildReqOptions = (bonus, offset) => { query: QUERY, variables: { server: SERVER, + sort: ['id DESC'], filter: { bonus, - sort: 'id DESC', playerID: [0], - offset, }, + offset, }, }; }; diff --git a/src/dailyAchievements.js b/src/dailyAchievements.js index d528ee7..a6f75aa 100644 --- a/src/dailyAchievements.js +++ b/src/dailyAchievements.js @@ -9,7 +9,7 @@ import getCurrentServer from './utils/getCurrentServer'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/dailyAchievements.js -// @version 0.4.0 +// @version 0.4.1 // @description Daily achievements // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_player&mode=awards* @@ -28,7 +28,7 @@ const SERVER_QUERY = ` `; const DAILY_STATS_QUERY = ` query data($server: String!, $createDateGTE: Time!) { - dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStats(server: $server, filter: { sort: "scoreAtt DESC", createDateGTE: $createDateGTE, playerFilter: { sort: "id DESC" }, limit: 5 }) { + dailyPlayerStatsOrderedByScoreAtt: dailyPlayerStats(server: $server, sort: ["scoreAtt DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { items { scoreAtt player { @@ -37,7 +37,7 @@ const DAILY_STATS_QUERY = ` } } } - dailyPlayerStatsOrderedByScoreDef: dailyPlayerStats(server: $server, filter: { sort: "scoreDef DESC", createDateGTE: $createDateGTE, playerFilter: { sort: "id DESC" }, limit: 5 }) { + dailyPlayerStatsOrderedByScoreDef: dailyPlayerStats(server: $server, sort: ["scoreDef DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { items { scoreDef player { @@ -46,7 +46,7 @@ const DAILY_STATS_QUERY = ` } } } - dailyPlayerStatsOrderedByScoreSup: dailyPlayerStats(server: $server, filter: { sort: "scoreSup DESC", createDateGTE: $createDateGTE, playerFilter: { sort: "id DESC" }, limit: 5 }) { + dailyPlayerStatsOrderedByScoreSup: dailyPlayerStats(server: $server, sort: ["scoreSup DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { items { scoreSup player { @@ -55,7 +55,7 @@ const DAILY_STATS_QUERY = ` } } } - dailyPlayerStatsOrderedByVillages: dailyPlayerStats(server: $server, filter: { sort: "villages DESC", createDateGTE: $createDateGTE, playerFilter: { sort: "id DESC" }, limit: 5 }) { + dailyPlayerStatsOrderedByVillages: dailyPlayerStats(server: $server, sort: ["villages DESC", "playerID desc"], filter: { createDateGTE: $createDateGTE }, limit: 5) { items { villages player { diff --git a/src/extendedMapPopup.js b/src/extendedMapPopup.js index 4ee285d..3dfb0a9 100644 --- a/src/extendedMapPopup.js +++ b/src/extendedMapPopup.js @@ -14,7 +14,7 @@ import countLoyalty from './utils/countLoyalty'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js -// @version 0.6.1 +// @version 0.6.2 // @description Extended map popup // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=map* @@ -74,8 +74,8 @@ const CURR_SERVER_CONFIG = ` } `; const LAST_VILLAGE_CONQUER_QUERY = ` - query ennoblements($server: String!, $filter: EnnoblementFilter!) { - ennoblements(server: $server, filter: $filter) { + query ennoblements($server: String!, $filter: EnnoblementFilter!, $sort: [String!], $limit: Int) { + ennoblements(server: $server, filter: $filter, sort: $sort, limit: $limit) { items { ennobledAt village { @@ -138,11 +138,11 @@ const loadVillageData = async (id, { cacheOnly = false } = {}) => { query: LAST_VILLAGE_CONQUER_QUERY, variables: { server: SERVER, + sort: ['ennobledAt DESC'], filter: { villageID: [id], - sort: 'ennobledAt DESC', - limit: 1, }, + limit: 1, }, }); TWMap.popup.extendedMapPopupCache[id] = data; diff --git a/src/extendedPlayerProfile.js b/src/extendedPlayerProfile.js index 84712d3..3f05bbf 100644 --- a/src/extendedPlayerProfile.js +++ b/src/extendedPlayerProfile.js @@ -24,7 +24,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.4 +// @version 1.1.5 // @description Extended player profile // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_player* @@ -40,7 +40,7 @@ if (isNaN(PLAYER_ID) || !PLAYER_ID) { } const LOCAL_STORAGE_KEY = 'kichiyaki_extended_player_profile' + PLAYER_ID; const PLAYER_QUERY = ` - query player($server: String!, $id: Int!, $filter: DailyPlayerStatsFilter) { + query player($server: String!, $id: Int!, $limit: Int, $sort: [String!], $filter: DailyPlayerStatsFilter) { player(server: $server, id: $id) { id name @@ -59,7 +59,7 @@ const PLAYER_QUERY = ` } dailyGrowth } - dailyPlayerStats(server: $server, filter: $filter) { + dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) { items { rank rankAtt @@ -78,8 +78,8 @@ const PLAYER_QUERY = ` } `; const TRIBE_CHANGES_QUERY = ` - query tribeChanges($server: String!, $filter: TribeChangeFilter!) { - tribeChanges(server: $server, filter: $filter) { + query tribeChanges($server: String!, $limit: Int, $offset: Int, $sort: [String!], $filter: TribeChangeFilter!) { + tribeChanges(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $filter) { total items { oldTribe { @@ -100,8 +100,11 @@ const TRIBE_CHANGES_PER_PAGE = 15; const PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY = ` query playerHistoryAndPlayerDailyStats($server: String!, $playerHistoryFilter: PlayerHistoryFilter!, - $dailyPlayerStatsFilter: DailyPlayerStatsFilter!) { - playerHistory(server: $server, filter: $playerHistoryFilter) { + $dailyPlayerStatsFilter: DailyPlayerStatsFilter!, + $limit: Int, + $offset: Int, + $sort: [String!]) { + playerHistory(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $playerHistoryFilter) { total items { totalVillages @@ -122,7 +125,7 @@ query playerHistoryAndPlayerDailyStats($server: String!, createDate } } - dailyPlayerStats(server: $server, filter: $dailyPlayerStatsFilter) { + dailyPlayerStats(server: $server, limit: $limit, offset: $offset, sort: $sort, filter: $dailyPlayerStatsFilter) { items { points scoreAtt @@ -138,8 +141,8 @@ query playerHistoryAndPlayerDailyStats($server: String!, `; const PLAYER_HISTORY_PER_PAGE = 15; const ENNOBLEMENTS_QUERY = ` - query ennoblements($server: String!, $filter: EnnoblementFilter!) { - ennoblements(server: $server, filter: $filter) { + 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 { @@ -230,9 +233,9 @@ const loadData = async () => { variables: { server: SERVER, id: PLAYER_ID, + limit: 1, + sort: ['createDate DESC'], filter: { - sort: 'createDate DESC', - limit: 1, playerID: [PLAYER_ID], }, }, @@ -567,10 +570,10 @@ const handleShowTribeChangesButtonClick = async (e) => { variables: { filter: { playerID: [PLAYER_ID], - offset: TRIBE_CHANGES_PER_PAGE * (page - 1), - limit: TRIBE_CHANGES_PER_PAGE, - sort: 'createdAt DESC', }, + sort: ['createdAt DESC'], + offset: TRIBE_CHANGES_PER_PAGE * (page - 1), + limit: TRIBE_CHANGES_PER_PAGE, server: SERVER, }, }); @@ -585,19 +588,16 @@ const handleShowPlayerHistoryClick = async (e) => { try { const filter = { playerID: [PLAYER_ID], - offset: PLAYER_HISTORY_PER_PAGE * (page - 1), - limit: PLAYER_HISTORY_PER_PAGE, - sort: 'createDate DESC', }; const { playerHistory, dailyPlayerStats } = await requestCreator({ query: PLAYER_HISTORY_AND_PLAYER_DAILY_STATS_QUERY, variables: { server: SERVER, playerHistoryFilter: filter, - dailyPlayerStatsFilter: { - ...filter, - offset: filter.offset + 1, - }, + offset: PLAYER_HISTORY_PER_PAGE * (page - 1), + limit: PLAYER_HISTORY_PER_PAGE, + sort: ['createDate DESC'], + dailyPlayerStatsFilter: filter, }, }); showHistoryPopup(e, playerHistory, dailyPlayerStats, { @@ -624,10 +624,10 @@ const handleShowPlayerEnnoblementsClick = async (e) => { oldOwnerID: [PLAYER_ID], newOwnerID: [PLAYER_ID], }, - offset: ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: ENNOBLEMENTS_PER_PAGE, - sort: 'ennobledAt DESC', }, + offset: ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: ENNOBLEMENTS_PER_PAGE, + sort: ['ennobledAt DESC'], server: SERVER, }, }); diff --git a/src/extendedTribeProfile.js b/src/extendedTribeProfile.js index 272d443..becff3d 100644 --- a/src/extendedTribeProfile.js +++ b/src/extendedTribeProfile.js @@ -24,7 +24,7 @@ import { formatPlayerURL as formatPlayerURLTribalWars } from './utils/tribalwars // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedTribeProfile.js -// @version 1.0.8 +// @version 1.0.9 // @description Extended tribe profile // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_ally* @@ -36,7 +36,7 @@ const SERVER = getCurrentServer(); const TRIBE_ID = getIDFromURL(window.location.search); const LOCAL_STORAGE_KEY = 'kichiyaki_extended_tribe_profile' + TRIBE_ID; const TRIBE_QUERY = ` - query tribe($server: String!, $id: Int!, $playerFilter: PlayerFilter!, $dailyTribeStatsFilter: DailyTribeStatsFilter!) { + query tribe($server: String!, $id: Int!, $dailyTribeStatsSort: [String!], $dailyTribeStatsLimit: Int, $playerSort: [String!], $playerFilter: PlayerFilter!, $dailyTribeStatsFilter: DailyTribeStatsFilter!) { tribe(server: $server, id: $id) { id bestRank @@ -48,7 +48,7 @@ const TRIBE_QUERY = ` createdAt dominance } - dailyTribeStats(server: $server, filter: $dailyTribeStatsFilter) { + dailyTribeStats(server: $server, limit: $dailyTribeStatsLimit, sort: $dailyTribeStatsSort, filter: $dailyTribeStatsFilter) { items { rank rankAtt @@ -63,7 +63,7 @@ const TRIBE_QUERY = ` members } } - players(server: $server, filter: $playerFilter) { + players(server: $server, sort: $playerSort, filter: $playerFilter) { items { id rankAtt @@ -81,8 +81,8 @@ const TRIBE_QUERY = ` } `; const ENNOBLEMENTS_QUERY = ` - query ennoblements($server: String!, $filter: EnnoblementFilter!) { - ennoblements(server: $server, filter: $filter) { + 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 { @@ -116,8 +116,11 @@ const ENNOBLEMENTS_PER_PAGE = 15; const TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY = ` query tribeHistoryAndTribeDailyStats($server: String!, $tribeHistoryFilter: TribeHistoryFilter!, - $dailyTribeStatsFilter: DailyTribeStatsFilter!) { - tribeHistory(server: $server, filter: $tribeHistoryFilter) { + $dailyTribeStatsFilter: DailyTribeStatsFilter!, + $sort: [String!], + $offset: Int, + $limit: Int) { + tribeHistory(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $tribeHistoryFilter) { total items { totalVillages @@ -133,7 +136,7 @@ query tribeHistoryAndTribeDailyStats($server: String!, totalMembers } } - dailyTribeStats(server: $server, filter: $dailyTribeStatsFilter) { + dailyTribeStats(server: $server, sort: $sort, limit: $limit, offset: $offset, filter: $dailyTribeStatsFilter) { items { points scoreAtt @@ -149,8 +152,10 @@ query tribeHistoryAndTribeDailyStats($server: String!, const TRIBE_HISTORY_PER_PAGE = 15; const TRIBE_MEMBERS_DAILY_STATS_QUERY = ` query tribeMembersDailyStats($server: String!, - $filter: DailyPlayerStatsFilter!) { - dailyPlayerStats(server: $server, filter: $filter) { + $filter: DailyPlayerStatsFilter!, + $limit: Int, + $sort: [String!]) { + dailyPlayerStats(server: $server, limit: $limit, sort: $sort, filter: $filter) { items { player { id @@ -169,8 +174,8 @@ query tribeMembersDailyStats($server: String!, `; let MEMBERS_GROWTH_MODE = 'points'; const TRIBE_CHANGES_QUERY = ` - query tribeChanges($server: String!, $filter: TribeChangeFilter!) { - tribeChanges(server: $server, filter: $filter) { + 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 { @@ -236,14 +241,13 @@ const loadData = async () => { variables: { server: SERVER, id: TRIBE_ID, + dailyTribeStatsSort: ['createDate DESC'], + dailyTibeStatsLimit: 1, dailyTribeStatsFilter: { - sort: 'createDate DESC', - limit: 1, tribeID: [TRIBE_ID], }, + playerSort: ['rank ASC'], playerFilter: { - sort: 'rank ASC', - limit: memberIDs.length, id: memberIDs, }, }, @@ -374,10 +378,10 @@ const handleShowTribeEnnoblementsClick = async (e) => { oldOwnerTribeID: [TRIBE_ID], newOwnerTribeID: [TRIBE_ID], }, - offset: ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: ENNOBLEMENTS_PER_PAGE, - sort: 'ennobledAt DESC', }, + offset: ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: ENNOBLEMENTS_PER_PAGE, + sort: ['ennobledAt DESC'], server: SERVER, }, }); @@ -396,19 +400,16 @@ const handleShowTribeHistoryClick = async (e) => { try { const filter = { tribeID: [TRIBE_ID], - offset: TRIBE_HISTORY_PER_PAGE * (page - 1), - limit: TRIBE_HISTORY_PER_PAGE, - sort: 'createDate DESC', }; const { tribeHistory, dailyTribeStats } = await requestCreator({ query: TRIBE_HISTORY_AND_TRIBE_DAILY_STATS_QUERY, variables: { server: SERVER, + offset: TRIBE_HISTORY_PER_PAGE * (page - 1), + limit: TRIBE_HISTORY_PER_PAGE, + sort: ['createDate DESC'], tribeHistoryFilter: filter, - dailyTribeStatsFilter: { - ...filter, - offset: filter.offset + 1, - }, + dailyTribeStatsFilter: filter, }, }); showHistoryPopup(e, tribeHistory, dailyTribeStats, { @@ -574,8 +575,6 @@ const loadMembersGrowthData = async ({ createDateLTE, createDateGT } = {}) => { memberIDs.length * differenceInDays(createDateLTE, createDateGT); const filter = { playerID: memberIDs, - limit, - sort: 'createDate DESC', createDateLTE, createDateGT, }; @@ -583,6 +582,8 @@ const loadMembersGrowthData = async ({ createDateLTE, createDateGT } = {}) => { query: TRIBE_MEMBERS_DAILY_STATS_QUERY, variables: { filter, + limit, + sort: ['createDate DESC'], server: SERVER, }, }); @@ -673,10 +674,10 @@ const handleShowTribeChangesClick = async (e) => { oldTribeID: [TRIBE_ID], newTribeID: [TRIBE_ID], }, - offset: TRIBE_CHANGES_PER_PAGE * (page - 1), - limit: TRIBE_CHANGES_PER_PAGE, - sort: 'createdAt DESC', }, + offset: TRIBE_CHANGES_PER_PAGE * (page - 1), + limit: TRIBE_CHANGES_PER_PAGE, + sort: ['createdAt DESC'], server: SERVER, }, }); @@ -709,8 +710,8 @@ const loadVillages = async (variables, total = false) => { const data = await requestCreator({ variables, query: ` - query villages($server: String!, $filter: VillageFilter!) { - villages(server: $server, filter: $filter) { + 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 @@ -752,10 +753,10 @@ const handleExportTribeVillagesFormSubmit = async (e) => { xGTE: parseInt(e.target[1].value), yLTE: parseInt(e.target[2].value), yGTE: parseInt(e.target[3].value), - limit: isNaN(limit) || !limit ? 0 : limit, playerID: getMemberIDs(), - sort: 'id ASC', }, + limit: isNaN(limit) || !limit ? 0 : limit, + sort: ['id ASC'], server: SERVER, }; showLoadingDialog(); @@ -772,8 +773,8 @@ const handleExportTribeVillagesFormSubmit = async (e) => { ...variables, filter: { ...variables.filter, - offset, }, + offset, }); items = [...items, ...more.items]; } diff --git a/src/extendedVillageProfile.js b/src/extendedVillageProfile.js index e2fd256..e3df70c 100644 --- a/src/extendedVillageProfile.js +++ b/src/extendedVillageProfile.js @@ -15,7 +15,7 @@ import showEnnoblementsPopup from './common/showEnnoblementsPopup'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedVillageProfile.js -// @version 0.7.1 +// @version 0.7.2 // @description Extended village profile // @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php*screen=info_village* @@ -26,8 +26,8 @@ import showEnnoblementsPopup from './common/showEnnoblementsPopup'; const SERVER = getCurrentServer(); const VILLAGE_ID = getIDFromURL(window.location.search); const LAST_CONQUER_QUERY = ` - query ennoblements($server: String!, $filter: EnnoblementFilter!) { - ennoblements(server: $server, filter: $filter) { + query ennoblements($server: String!, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) { + ennoblements(server: $server, limit: $limit, sort: $sort, filter: $filter) { items { ennobledAt village { @@ -38,8 +38,8 @@ const LAST_CONQUER_QUERY = ` } `; const ENNOBLEMENTS_QUERY = ` - query ennoblements($server: String!, $filter: EnnoblementFilter!) { - ennoblements(server: $server, filter: $filter) { + query ennoblements($server: String!, $offset: Int, $limit: Int, $sort: [String!], $filter: EnnoblementFilter!) { + ennoblements(server: $server, offset: $offset, limit: $limit, sort: $sort, filter: $filter) { total items { village { @@ -167,9 +167,9 @@ const loadPageData = async () => { server: SERVER, filter: { villageID: [VILLAGE_ID], - sort: 'ennobledAt DESC', - limit: 1, }, + sort: ['ennobledAt DESC'], + limit: 1, }, }); return data; @@ -184,10 +184,10 @@ const handleShowTribeEnnoblementsClick = async (e) => { variables: { filter: { villageID: [VILLAGE_ID], - offset: ENNOBLEMENTS_PER_PAGE * (page - 1), - limit: ENNOBLEMENTS_PER_PAGE, - sort: 'ennobledAt DESC', }, + offset: ENNOBLEMENTS_PER_PAGE * (page - 1), + limit: ENNOBLEMENTS_PER_PAGE, + sort: ['ennobledAt DESC'], server: SERVER, }, }); diff --git a/src/latestEnnoblements.js b/src/latestEnnoblements.js index 9d0fe13..14a1e02 100644 --- a/src/latestEnnoblements.js +++ b/src/latestEnnoblements.js @@ -16,9 +16,9 @@ import loadTranslations from './i18n/latestEnnoblements'; // @namespace https://github.com/tribalwarshelp/scripts // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js -// @version 1.0.4 +// @version 1.0.5 // @description Show the latest ennoblements -// @author Kichiyaki http://dawid-wysokinski.pl/ | Icon author *GD* +// @author Kichiyaki http://dawid-wysokinski.pl/ // @match *://*/game.php* // @grant none // @run-at document-end