// ==UserScript==
// @name TMVN League Squad
// @namespace https://trophymanager.com
// @version 5
// @description Trophymanager: using with 'TMVN Squad Value' script to get value of club. The info is for reference only and maybe out of date. You need click on club name to open squad page for update info or click on link in the title of table
// @match https://trophymanager.com/league/*
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/414474/TMVN%20League%20Squad.user.js
// @updateURL https://update.greasyfork.icu/scripts/414474/TMVN%20League%20Squad.meta.js
// ==/UserScript==
(function () {
'use strict';
const APPLICATION_PARAM = {
DEFAULT_SHOW_MODE: "100",
LOCAL_STORAGE_KEY: "TMVN_LEAGUE_SQUAD_SHOW_MODE",
SHOW_MODE_ARR: ["111", "110", "101", "011", "100", "010", "001"]
}
try {
$('.banner_placeholder.rectangle')[0].parentNode.removeChild($('.banner_placeholder.rectangle')[0]);
} catch (err) {}
var clubMap = new Map();
$('#overall_table td').each(function () {
let clubId = $(this).children('a').attr('club_link');
if (clubId) {
let clubName = $(this).children('a')[0].innerHTML;
clubMap.set(clubId, clubName);
}
});
var squadValue =
"
" +
"
" +
"
" +
"
" +
"
" +
"
Set show mode " +
"
FULL " +
"" +
"
OVER 21 " +
"" +
"
UNDER 21 " +
"" +
"
" +
"" +
"
";
$(".column3_a").append(squadValue);
document.getElementById('tm_script_league_squad_value_button_show_mode_set').addEventListener('click', (e) => {
setShowMode();
});
let showMode = localStorage.getItem(APPLICATION_PARAM.LOCAL_STORAGE_KEY);
if (showMode == null || showMode == "") {
showMode = APPLICATION_PARAM.DEFAULT_SHOW_MODE;
}
$('#tm_script_league_squad_value_input_show_mode').val(showMode);
let invidualMode = showMode.split("");
if (invidualMode[0] == "1") {
showFullSquad();
}
if (invidualMode[1] == "1") {
showOver21Squad();
}
if (invidualMode[2] == "1") {
showUnder21Squad();
}
function showFullSquad() {
let fullSquad_content = "" +
"Club BP(M) WA(K) # ";
let today = new Date();
let clubLinks = [];
let rowCount = 0;
clubMap.forEach((value, key) => {
rowCount++;
let classOdd = "";
if ((rowCount % 2) == 1) {
classOdd = "class='odd'";
}
let data = localStorage.getItem(key + "_SQUAD_VALUE");
if (data !== "" && data !== undefined && data !== null) {
let clubValue = JSON.parse(data);
let updateTime = clubValue.Time;
if (updateTime !== undefined && Math.ceil(Math.abs(today - new Date(updateTime)) / (1000 * 60 * 60 * 24)) < 15) {
fullSquad_content += "" + value + " ";
} else {
fullSquad_content += " " + value + " ";
}
fullSquad_content += (clubValue.BP !== undefined ? (clubValue.BP / 1000000).toFixed(1) : "") +
" " +
(clubValue.Wage !== undefined ? (clubValue.Wage / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") : "") +
" " +
(clubValue.Count !== undefined ? clubValue.Count : "") +
" ";
} else {
fullSquad_content += "" + value + " ";
}
clubLinks.push("https://trophymanager.com/club/" + key + "/squad/");
});
fullSquad_content += "
";
$("#fullSquad_content").append(fullSquad_content);
$('a.fullsquadvalue_link').click(function (e) {
e.preventDefault();
clubLinks.forEach(link => {
window.open(link);
});
});
}
function showOver21Squad() {
let o21Squad_content = "" +
"Club BP(M) WA(K) # ";
let rowCount = 0;
clubMap.forEach((value, key) => {
rowCount++;
let classOdd = "";
if ((rowCount % 2) == 1) {
classOdd = "class='odd'";
}
let data = localStorage.getItem(key + "_O21_SQUAD_VALUE");
if (data !== "" && data !== undefined && data !== null) {
let clubValue = JSON.parse(data);
o21Squad_content += "" + value + " " +
(clubValue.BP !== undefined ? (clubValue.BP / 1000000).toFixed(1) : "") +
" " +
(clubValue.Wage !== undefined ? (clubValue.Wage / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") : "") +
" " +
(clubValue.Count !== undefined ? clubValue.Count : "") +
" ";
} else {
o21Squad_content += "" + value + " ";
}
});
o21Squad_content += "
";
$("#o21Squad_content").append(o21Squad_content);
}
function showUnder21Squad() {
let u21Squad_content = "" +
"Club BP(M) WA(K) # ";
let rowCount = 0;
clubMap.forEach((value, key) => {
rowCount++;
let classOdd = "";
if ((rowCount % 2) == 1) {
classOdd = "class='odd'";
}
let data = localStorage.getItem(key + "_U21_SQUAD_VALUE");
if (data !== "" && data !== undefined && data !== null) {
let clubValue = JSON.parse(data);
u21Squad_content += "" + value + " " +
(clubValue.BP !== undefined ? (clubValue.BP / 1000000).toFixed(1) : "") +
" " +
(clubValue.Wage !== undefined ? (clubValue.Wage / 1000).toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, ",") : "") +
" " +
(clubValue.Count !== undefined ? clubValue.Count : "") +
" ";
} else {
u21Squad_content += "" + value + " ";
}
});
u21Squad_content += "
";
$("#u21Squad_content").append(u21Squad_content);
}
function setShowMode() {
let showMode = $('#tm_script_league_squad_value_input_show_mode')[0].value;
if (showMode == '') {
localStorage.removeItem(APPLICATION_PARAM.LOCAL_STORAGE_KEY);
} else if (!APPLICATION_PARAM.SHOW_MODE_ARR.includes(showMode)) {
alert('Allowable show mode values: ' + APPLICATION_PARAM.SHOW_MODE_ARR);
} else {
localStorage.setItem(APPLICATION_PARAM.LOCAL_STORAGE_KEY, showMode);
alert('Set successful, please refresh');
}
}
})();