您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Trophymanager: summary all seasons's transfer info and save data for TMVN League Transfer script (http://greasyfork.icu/en/scripts/416755)
// ==UserScript== // @name TMVN History Transfer // @namespace https://trophymanager.com // @version 4 // @description Trophymanager: summary all seasons's transfer info and save data for TMVN League Transfer script (http://greasyfork.icu/en/scripts/416755) // @match https://trophymanager.com/history/club/transfers/* // @grant none // ==/UserScript== (function () { 'use strict'; var transferSummary = []; var loadDone = false; var clubId = $('.box_sub_header a')[1].getAttribute('href').substring(6, $('.box_sub_header a')[1].getAttribute('href').toString().length - 1); var comboSeason = document.getElementById('stats_season').options; var seasonIds = []; for (let i = 0; i < comboSeason.length; i++) { seasonIds.push(comboSeason[i].value); } if (clubId != "" && seasonIds.length > 0) { seasonIds.forEach((seasonId) => { $.ajax('https://trophymanager.com/history/club/transfers/' + clubId + '/' + seasonId, { type: "GET", dataType: 'html', crossDomain: true, success: function (response) { let tdArr = $('.zebra.hover td', response); if (tdArr.length >= 3) { var bought, sold, balance, quantity, average; bought = Math.round(tdArr[tdArr.length - 3].children[0].innerText.replace(/,/g, '')); sold = Math.round(tdArr[tdArr.length - 2].children[0].innerText.replace(/,/g, '')); balance = sold - bought; if (bought > 0 && sold > 0) { quantity = (tdArr.length - 3) / 4; } else if ((bought == 0 && sold > 0) || (bought > 0 && sold == 0)) { quantity = Math.round((tdArr.length - 4) / 4); //bug when has sell/buy players but all prices = 0 --> round and accept wrong result } else if (bought == 0 && sold == 0) { quantity = 0; } if (quantity == 0) { average = 0; } else { average = Number(((sold + bought) / quantity).toFixed(1)); } transferSummary.push({ Season: seasonId, Bought: bought, Sold: sold, Balance: balance, Quantity: quantity, Average: average }); if (transferSummary.length >= seasonIds.length) { loadDone = true; } } }, error: function (e) {} }); }); } var myInterval = setInterval(append, 1000); function append() { if (!loadDone) { return; } clearInterval(myInterval); transferSummary.sort(function (a, b) { return b.Season - a.Season }); //order an object array /*APPEND SUMMARY TRANSFER*/ var summaryTransfer = "<div class=\"column3_a\">" + "<div class=\"box\">" + "<div class=\"box_head\">" + "<h2 class=\"std\">Summary Transfer (M)</h2>" + "</div>" + "<div class=\"box_body\">" + "<div class=\"box_shadow\"></div>" + "<div id=\"summaryTransfer_content\" class=\"content_menu\"></div>" + "</div>" + "<div class=\"box_footer\">" + "<div></div>" + "</div>" + "</div>" + "</div>"; if ($('#bteam_reminder').length == 1) { $(".main_center")[3].innerHTML += summaryTransfer; } else { $(".main_center")[2].innerHTML += summaryTransfer; } var summaryTransfer_content = "<table>" + "<tr><th align='right'>SS</th><th align='right'>Buy</th><th align='right'>Sell</th><th align='right'>+-</th><th align='right'>#</th><th align='right'>Avg</th></tr>"; var totalBought = 0, totalSold = 0, totalQuantity = 0; transferSummary.forEach((summary) => { summaryTransfer_content += '<tr><td align="right">' + summary.Season + '</td><td align="right">' + summary.Bought.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + summary.Sold.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + summary.Balance.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + summary.Quantity + '</td><td align="right">' + summary.Average.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td></tr>'; totalBought += summary.Bought; totalSold += summary.Sold; totalQuantity += summary.Quantity; }); summaryTransfer_content += '<tr><td align="right"><span style="color:Orange;">Average</span></td><td align="right">' + (totalBought / transferSummary.length).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + (totalSold / transferSummary.length).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + (Math.round(totalSold / transferSummary.length) - Math.round(totalBought / transferSummary.length)).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + (totalQuantity / transferSummary.length).toFixed(0) + '</td><td align="right">' + (totalQuantity > 0 ? ((totalSold + totalBought) / totalQuantity).toFixed(1) : 0) + '</td></tr>'; summaryTransfer_content += '<tr><td align="right"><span style="color:Orange;">Total</span></td><td align="right">' + totalBought.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + totalSold.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + (totalSold - totalBought).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + totalQuantity.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + '</td><td align="right">' + '</td></tr>'; summaryTransfer_content += "</table>"; $("#summaryTransfer_content").append(summaryTransfer_content); $('.column3')[0].parentNode.removeChild($('.column3')[0]); localStorage.setItem(clubId + "_AVERAGE_TRANSFER", JSON.stringify({ "Time": new Date(), "Bought": Number((totalBought / transferSummary.length).toFixed(0)), "Sold": Number((totalSold / transferSummary.length).toFixed(0)), "Balance": Math.round(totalSold / transferSummary.length) - Math.round(totalBought / transferSummary.length), "Quantity": Number((totalQuantity / transferSummary.length).toFixed(0)), "Average": totalQuantity > 0 ? Number(((totalSold + totalBought) / totalQuantity).toFixed(1)) : 0, "SeasonCount": transferSummary.length })); } })();