// ==UserScript== // @name MZ - Players Grouped by Age in Other Teams' Player Pages // @namespace http://tampermonkey.net/ // @version 1.0 // @description Displays players grouped by age in other teams' player pages // @author Douglas // @match https://www.managerzone.com/?p=players&tid=* // @icon https://www.google.com/s2/favicons?sz=64&domain=managerzone.com // @grant GM_addStyle // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; const ageCountMap = new Map(); document.querySelectorAll('#players_container .playerContainer').forEach(player => { let ageElement = player.querySelector('td'); if (ageElement) { let age = parseInt(ageElement.textContent.replace(/\D/g, '').trim()); if (ageCountMap.has(age)) { ageCountMap.set(age, ageCountMap.get(age) + 1); } else { ageCountMap.set(age, 1); } } }); const playerFiltersElement = document.querySelector('#player_filters'); if (playerFiltersElement) { const table = document.createElement('table'); table.id = 'ageTable'; const thead = document.createElement('thead'); const tbody = document.createElement('tbody'); const headerRow = document.createElement('tr'); const ageHeader = document.createElement('th'); ageHeader.textContent = 'Age'; const countHeader = document.createElement('th'); countHeader.textContent = 'Count'; headerRow.appendChild(ageHeader); headerRow.appendChild(countHeader); thead.appendChild(headerRow); table.appendChild(thead); const tableEntries = Array.from(ageCountMap.entries()); tableEntries.sort((a, b) => a[0] - b[0]); tableEntries.forEach(([age, count]) => { const row = document.createElement('tr'); const ageCell = document.createElement('td'); ageCell.textContent = age; const countCell = document.createElement('td'); countCell.textContent = count; row.appendChild(ageCell); row.appendChild(countCell); tbody.appendChild(row); }); table.appendChild(tbody); playerFiltersElement.appendChild(table); } })(); GM_addStyle(` #ageTable { border-collapse: separate; border-spacing: 0; color: white; width: 100px; font-size: 11px; display: inline-block; vertical-align: top; margin-left: 10px; } #ageTable th, #ageTable td { padding: 1px 4px; color: white; } #ageTable thead tr { background-color: #000080; color: #FFFF00; } #ageTable tbody tr:nth-child(even) { background-color: #000080; } #ageTable tbody tr:nth-child(odd) { background-color: #FF1493; } #ageTable tbody tr:hover { background-color: #00BFFF; color: black; } #ageTable th, #ageTable td { font-weight: normal; border: 1px solid #1E90FF; text-align: center; } #ageTable th { border-top: 2px solid #00BFFF; border-bottom: 2px solid #0000FF; } `);