NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Pmanager.org Club Team Players // @namespace http://tampermonkey.net/ // @description Fetch All of the Club Team Players // @include https://www.pmanager.org/ver_equipa.asp?equipa=*&vjog=1 // @require http://code.jquery.com/jquery-latest.js // @version 2.03 // @license MIT // @grant GM_xmlhttpRequest // ==/UserScript== let $ = window.$; let button; let tbody; let players; const originalColumnCount = 13; let originalTeamPlayersFontCount; const teamPlayersFontPerPlayer = 8; let fetched = false; $(document).ready(function() { tbody = $("#feature").find("tbody").eq(1); players = tbody.find(".list1, .list2"); if(players.eq(0).find("td").size() == originalColumnCount) CreateButton(); }); // ready async function FetchPlayers() { if (fetched || false == confirm("Ne használd gyakran, mert az ingyenes tárhelyünk nem szereti!\nBiztosan szeretnéd?")) return; fetched = true; button.find("img").attr("src","https://style-cdn.ravelrycache.com/images/progress.gif"); originalTeamPlayersFontCount = players.find("font.team_players").size(); while (originalTeamPlayersFontCount != players.find("font.team_players").size() + teamPlayersFontPerPlayer * players.size()) { DownloadPlayerData(); await Sleep(2000); } ModifyHeader(); console.log("DONE!"); button.find("img").attr("src","http://www.pmanagertutorial.nhely.hu/images/other/ok.png"); } function Sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function DownloadPlayerData() { console.log("DownloadPlayerData"); // gathering data const playerLinks = players.find("a[href*='jog_id']"); for (let playerNumber = 0; playerNumber < playerLinks.size(); ++playerNumber) { if (players.eq(playerNumber).find("td").size() != originalColumnCount) { console.log(playerNumber + " already downloaded"); continue; } const href = playerLinks.eq(playerNumber).attr("href"); const afterEqualityPos = href.indexOf("=") + 1; const playerId = href.substr(afterEqualityPos, href.length - afterEqualityPos); console.log(playerId + " download"); (function(playerNumber) { // save playerNumber, because ajax is asyncronous GM_xmlhttpRequest({ method: "GET", url: "http://www.pmanagertutorial.nhely.hu/pm_piac/json.php?name=json_name&password=json_password&id=" + playerId, timeout: 5000, onload: function (xhr) { if (xhr.responseText.charAt(0) == "[") { let data; try { data = JSON.parse(xhr.responseText); } catch(e) { data = eval("(" + xhr.responseText + ")"); } ShowPlayerData(data, playerNumber); } } }); })(playerNumber);//*/ // test for not found /*const responseText = '[{"Poszt":"?","Nev":"?","ID":"?","Kor":"?","Vedes":"?","Keresztezes":"?","Reflex":"?","Hatarozottsag":"?",\n' + '"Szereles":"?","Fejjatek":"?","Atadas":"?","Helyezkedes":"?","Golszerzes":"?","Technika":"?","Gyorsasag":"?",\n' + '"Ero":"?","Datum":"?","GS":"?","Orszag":"?","Adottsag":"?","Tehetseg":"?"}]'; const data = JSON.parse(responseText); //ShowPlayer(data, playerNumber); // test for found const responseText2 = '[{"Poszt":"V JK","Nev":"A. Karaivanov","ID":"15558582","Kor":"31","Vedes":"8","Keresztezes":"1","Reflex":"8",' + '"Hatarozottsag":"4","Szereles":"19","Fejjatek":"20","Atadas":"6","Helyezkedes":"1","Golszerzes":"2","Technika":"5",' + '"Gyorsasag":"5","Ero":"20","Datum":"2018-02-12","GS":"73.0%","Orszag":"99","Adottsag":"Nincs","Tehetseg":"Pocsék"}]' const data2 = JSON.parse(responseText2); //ShowPlayer(data, playerNumber); ShowPlayerData(playerNumber % 2 ? data2 : data, playerNumber);//*/ } } function ModifyHeader() { // modify existed columns const header = tbody.find("td.cabecalhos"); header.eq(0).replaceWith("<td class=\"cabecalhos\" width=\"3%\" align=\"center\">Poz</td>"); header.eq(2).text("Kor"); header.eq(4).replaceWith("<td class=\"cabecalhos\" width=\"2%\" align=\"center\"></td>"); header.eq(5).replaceWith("<td class=\"cabecalhos\" width=\"3%\" align=\"center\">M</td>"); // remove header.eq(9).remove(); header.eq(8).remove(); header.eq(7).remove(); // the new column header.eq(6).replaceWith("<td class=\"cabecalhos\" width=\"100%\" align=\"center\">Adat</td>"); header.eq(10).attr("align", "center"); header.eq(11).attr("align", "center"); } function ShowPlayerData(data, playerNumber) { const myLineTd = players.eq(playerNumber).find("td"); myLineTd.eq(10).remove(); myLineTd.eq(9).remove(); myLineTd.eq(8).remove(); for (let column = 11; column < 13; ++column) { const cell = myLineTd.eq(column); const imgs = cell.find("img"); const cellSrc = imgs.eq(1).attr("src"); const color = cellSrc.substr(4, cellSrc.length - 4 - 7); imgs.remove(); cell.attr("align", "center"); cell.attr("style", "background-color:" + (color == "green" ? "LightGreen" : color == "red" ? "Tomato" : "LightSalmon ") + ";"); } if (data[0].ID == "?") { myLineTd.eq(7).text(""); return; } // add myLineTd.eq(3).append("(" + data[0].Kor + ")"); myLineTd.eq(7).html(GetDataString(data)); myLineTd.eq(12).append("(" + data[0].Tehetseg.trim() + ")"); } function GetDataString(data) { let ret = "<u>" + data[0].Datum + ":</u> "; if (data[0].Poszt.charAt(0) == "G") { ret += "<b><u> " + data[0].Vedes + "</u>-<u>" + data[0].Keresztezes + "</b></u> " + "<b> " + data[0].Reflex + "-" + data[0].Hatarozottsag + "</b> " + data[0].Gyorsasag + "-" + data[0].Ero + "<br>(Sz: " +data[0].Szereles + ", F: " + data[0].Fejjatek + ", Á: " + data[0].Atadas + ")"; } else if (data[0].Poszt.charAt(0) == "V") { ret += "<b><u> " + data[0].Szereles + "</u>-<u>" + data[0].Fejjatek + "</b></u> " + "<b> " + data[0].Atadas + "-" + data[0].Helyezkedes + "</b> " + data[0].Gyorsasag + "-" + data[0].Ero + "<br>"; } else if (data[0].Poszt.charAt(0) == "K") { ret += "<b><u> " + data[0].Atadas + "</u>-<u>" + data[0].Helyezkedes + "</b></u> " + "<b> " + data[0].Szereles + "-" + data[0].Technika + "</b> " + data[0].Gyorsasag + "-" + data[0].Ero + "<br>(F: " + data[0].Fejjatek + ", G: " + data[0].Golszerzes + ")"; } else if (data[0].Poszt.charAt(0) == "T") { ret += "<b><u> " + data[0].Golszerzes + "</u>-<u>" + data[0].Technika + "</b></u> " + "<b> " + data[0].Fejjatek + "-" + data[0].Helyezkedes + "</b> " + data[0].Gyorsasag + "-" + data[0].Ero + "<br>(Sz: " + data[0].Szereles + ", Á: " + data[0].Atadas + ")"; } ret += " <u>Adottság:</u> " + data[0].Adottsag; return ret; } function CreateButton() { button = tbody.find("td").eq(0); button.html( "<a href=\"javascript:void(0);\"><img title=\"Adat Lekérés\" src=\"http://www.pmanagertutorial.nhely.hu/images/other/arrow_down.png\"></a>" ); button.click(function() { FetchPlayers(); }); }