OS2.spielplan
Zur Navigation springen
Zur Suche springen
OS2.spielplan | |
Dateiname | os2.spielplan.user.js |
Version | 0.2 |
Autor | Sven Loges (SLC), Choromonets Odessa |
Beschreibung | Strukturiert und erweitert die Spielplananzeige eines OS2-Teams |
Webseiten | showteam.php?s=6 st.php?s=6 Saisonplan |
Funktionalität | Trennstriche zwischen den Abrechnungsmonaten Verkürzung von "Vorbericht(e)" und "Kommentar(e)" Details zu den Spielen |
Letzte Änderung | 15.02.2013 |
// ==UserScript== // @name OS2.spielplan // @namespace http://os.ongapo.com/ // @version 0.2 // @copyright 2013+, Sven Loges (SLC) // @description Spielplan-Abschnitt aus dem Master-Script fuer Online Soccer 2.0 // @include http://os.ongapo.com/st.php?s=* // @include http://os.ongapo.com/showteam.php?s=* // @include http://www.os.ongapo.com/st.php?s=* // @include http://www.os.ongapo.com/showteam.php?s=* // @include http://online-soccer.eu/st.php?s=* // @include http://online-soccer.eu/showteam.php?s=* // @include http://www.online-soccer.eu/st.php?s=* // @include http://www.online-soccer.eu/showteam.php?s=* // ==/UserScript== // Optionen (hier editieren): var sepMonths = true; // Im Spielplan Striche zwischen den Monaten var shortKom = true; // Vorbericht(e) & Kommentar(e) nicht ausschreiben var borderString = "solid white 1px"; // Verarbeitet die URL der Seite und ermittelt die Nummer der gewünschten Unterseite // url Adresse der Seite function getPageIdFromURL(url) { // Variablen zur Identifikation der Seite var indexS = url.lastIndexOf("s="); var st = url.match(/st\.php/); // Teamansicht Popupfenster var showteam = url.match(/showteam\.php/); // Teamansicht Hauptfenster var s = -1; // Seitenindex (Rückgabewert) // Wert von s (Seitenindex) ermitteln... // Annahme: Entscheidend ist jeweils das letzte Vorkommnis von "s=" und ggf. von "&" if (indexS < 0) { s = 0; } else if (showteam) { // Wert von s setzt sich aus allen Zeichen hinter "s=" zusammen s = parseInt(url.substring(indexS + 2, url.length), 10); } else { // Wert von s setzt sich aus allen Zeichen zwischen "s=" und "&" zusammen s = parseInt(url.substring(indexS + 2, url.indexOf("&", indexS)), 10); } return s; } // Verarbeitet die URL der Seite und ermittelt die Nummer der gewünschten Unterseite // saisons Alle "option"-Einträge der Combo-Box function getSaisonFromComboBox(saisons) { var saison = 0; var i; for (i = 0; i < saisons.length; i++) { if (saisons[i].outerHTML.match(/selected/)) { saison = saisons[i].textContent; } } return saison; } // Verarbeitet Ansicht "Saisonplan" // sepMonths Im Spielplan Striche zwischen den Monaten // shortKom Vorbericht(e) & Kommentar(e) nicht ausschreiben function procSpielplan(sepMonths, shortKom) { var pokalRunden = [ "1. Runde", "2. Runde", "3. Runde", "Achtelfinale", "Viertelfinale", "Halbfinale", "Finale" ]; var qualiRunden = [ "Quali 1", "Quali 2", "Quali 3" ]; var oscRunden = [ "Viertelfinale", "Halbfinale", "Finale" ]; var oseRunden = [ "Runde 1", "Runde 2", "Runde 3", "Runde 4", "Achtelfinale", "Viertelfinale", "Halbfinale", "Finale" ]; var hinrueck = [ " Hin", " Rück", "" ]; var table = document.getElementsByTagName("table")[1]; var saisons = document.getElementsByTagName("option"); var saison = getSaisonFromComboBox(saisons); var anzZATperMonth = (saison < 2) ? 7 : 6; // Erste Saison 7, danach 6... var rowOffsetUpper = 1; var rowOffsetLower = 0; var columnIndexArt = 1; var columnIndexZus = 5; var columnIndexKom = 6; var ligaSpieltag = 0; var pokalRunde = 0; var euroRunde = -1; var hinrueckspiel = 0; var ZATrueck = 0; var ZATkorr = 0; var ZAT = 1; var kommentar; var spielart; var zusatz; var gruppenPhase; var i; var j; for (i = rowOffsetUpper; i < table.rows.length - rowOffsetLower; i++, ZAT++) { if ((ZAT > 12) && (ZAT % 10 == 5)) { // paßt für alle Saisons: 12, 20, 30, 40, 48, 58, 68 / 3, 15, 27, 39, 51, 63, 69 pokalRunde++; } if ((ZAT + ZATkorr) % 6 == 4) { if (ZAT < 63) { ZATrueck = ZAT + 2; euroRunde++; hinrueckspiel = 0; } else { euroRunde = 10; // Finale hinrueckspiel = 2; } } if (ZAT == ZATrueck) { hinrueckspiel = 1; // 5, 7; 11, 13; (17, 19) / 23, 25; 29, 31; 35, 37; 41, 43; 47, 49; 53, 55; 59, 61; 69 if (saison < 3) { // 4, 6; 10, 14*; (16, 22*) / 24**, 26; 34, 36; 38*, 42; 44*, 50; 52, 54; 56*, 60; 62*, 66; 70 if ((ZAT < 18) || (ZAT == 26) || (ZAT == 46)) { ZATkorr = 0; } else if (ZAT == 22) { ZATkorr = 4; } else { ZATkorr = 2; } if ((ZAT == 22) || (ZAT == 30)) { euroRunde--; // Früher: 3. Quali-Rückspiel erst knapp vor 1. Hauptrunde } } } if (shortKom) { kommentar = table.rows[i].cells[columnIndexKom].innerHTML; table.rows[i].cells[columnIndexKom].innerHTML = kommentar.replace("Vorbericht(e)", "V").replace("Kommentar(e)", "K").replace("&", "/"); } spielart = table.rows[i].cells[columnIndexArt].textContent.split(" : ", 2); table.rows[i].cells[columnIndexZus].className = table.rows[i].cells[columnIndexArt].className; if (table.rows[i].cells[columnIndexZus].textContent == "") { zusatz = spielart[0]; if (zusatz == "Liga") { if (ZAT < 70) { zusatz = ++ligaSpieltag + ". Spieltag"; } else { zusatz = "Relegation"; } } else if (zusatz == "LP") { zusatz = pokalRunden[pokalRunde]; } else if ((zusatz == "OSCQ") || (zusatz == "OSEQ")) { zusatz = qualiRunden[euroRunde] + hinrueck[hinrueckspiel]; } else if (zusatz == "OSC") { if (euroRunde < 8) { gruppenPhase = (euroRunde < 5) ? "HR-Grp. " : "ZR-Grp. "; zusatz = gruppenPhase + "Spiel " + (((euroRunde - 2) % 3) * 2 + 1 + hinrueckspiel); } else { zusatz = oscRunden[euroRunde - 8] + hinrueck[hinrueckspiel]; } } else if (zusatz == "OSE") { zusatz = oseRunden[euroRunde - 3] + hinrueck[hinrueckspiel]; } else if (zusatz == "Friendly") { zusatz = ""; // irgendwie besser lesbar! } table.rows[i].cells[columnIndexZus].textContent = zusatz; } if (sepMonths && (ZAT % anzZATperMonth == 0) && (i < table.rows.length - rowOffsetLower - 1)) { for (j = 0; j < table.rows[i].cells.length; j++) { table.rows[i].cells[j].style.borderBottom = borderString; } } } } // URL-Legende: // s=0Teamübersicht // s=1Vertragsdaten // s=2Einzelwerte // s=3Statistik Saison // s=4Statistik Gesamt // s=5Teaminfo // s=6Saisonplan // s=7Vereinshistorie // s=8Transferhistorie // s=9Leihhistorie // Verzweige in unterschiedliche Verarbeitungen je nach Wert von s: switch (getPageIdFromURL(window.location.href)) { case 6: procSpielplan(sepMonths, shortKom); break; } // *** EOF ***