OS2.spielplan: Unterschied zwischen den Versionen

Aus Online-Soccer-Wiki
Zur Navigation springen Zur Suche springen
(OS2.spielplan, Version 0.1)
 
(OS2.spielplan, Version 0.2)
Zeile 7: Zeile 7:
|- bgcolor="#FFCC00"
|- bgcolor="#FFCC00"
| '''Version'''
| '''Version'''
| '''0.1'''
| '''0.2'''
|- bgcolor="#FFCC00"
|- bgcolor="#FFCC00"
| '''Autor'''
| '''Autor'''
Zeile 29: Zeile 29:
// @name OS2.spielplan
// @name OS2.spielplan
// @namespace  http://os.ongapo.com/
// @namespace  http://os.ongapo.com/
// @version    0.1
// @version    0.2
// @copyright  2013+, Sven Loges (SLC)
// @copyright  2013+, Sven Loges (SLC)
// @description Spielplan-Abschnitt aus dem Master-Script fuer Online Soccer 2.0
// @description Spielplan-Abschnitt aus dem Master-Script fuer Online Soccer 2.0
Zeile 41: Zeile 41:
// @include http://www.online-soccer.eu/showteam.php?s=*
// @include http://www.online-soccer.eu/showteam.php?s=*
// ==/UserScript==
// ==/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("&amp;", "/");
        }
        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:
// URL-Legende:
Zeile 53: Zeile 206:
// s=8Transferhistorie
// s=8Transferhistorie
// s=9Leihhistorie
// s=9Leihhistorie
// Optionen (hier editieren):
sepMonths = true; // Im Spielplan Striche zwischen den Monaten
shortKom = true; // Vorbericht(e) & Kommentar(e) nicht ausschreiben
// Variablen zur Identifikation der Seite
var st = false; // Teamansicht Popupfenster
var showteam = false; // Teamansicht Hauptfenster
var s = -1; // Seitenindex
url = window.location.href;
borderString = "solid white 1px";
// Seite ermitteln
if (url.match(/st\.php/)) { st = true; }
if (url.match(/showteam\.php/)) { showteam = true; }
// Wenn nicht Spielerprofil, dann Wert von s (Seitenindex) ermitteln
// Annahme: Entscheidend ist jeweils das letzte Vorkommnis von "s=" und ggf. von "&"
indexS = url.lastIndexOf("s=");
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));
} else {
// Wert von s setzt sich aus allen Zeichen zwischen "s=" und "&" zusammen
indexAmpersand = url.lastIndexOf("&");
s = parseInt(url.substring(indexS + 2, indexAmpersand));
}


// Verzweige in unterschiedliche Verarbeitungen je nach Wert von s:
// Verzweige in unterschiedliche Verarbeitungen je nach Wert von s:
switch (s) {
switch (getPageIdFromURL(window.location.href)) {
case 6: procSpielplan(sepMonths, shortKom); break;
    case 6: procSpielplan(sepMonths, shortKom); break;
}
 
// Verarbeitet Ansicht "Saisonplan"
// sepMonths Im Spielplan Striche zwischen den Monaten
// shortKom Vorbericht(e) & Kommentar(e) nicht ausschreiben
function procSpielplan(sepMonths, shortKom) {
table = document.getElementsByTagName("table")[1];
saisons = document.getElementsByTagName("option");
var saison = 0;
for (var i = 0; i < saisons.length; i++) {
if (saisons[i].outerHTML.indexOf("selected") > -1) {
saison = saisons[i].textContent;
}
}
anzZATperMonth = (saison < 2) ? 7 : 6;
rowOffsetUpper = 1;
rowOffsetLower = 0;
columnIndexArt = 1;
columnIndexZus = 5;
columnIndexKom = 6;
pokalRunden = new Array("1. Runde", "2. Runde", "3. Runde", "Achtelfinale", "Viertelfinale", "Halbfinale", "Finale");
qualiRunden = new Array("Quali 1", "Quali 2", "Quali 3");
oscRunden = new Array("Viertelfinale", "Halbfinale", "Finale");
oseRunden = new Array("Runde 1", "Runde 2", "Runde 3", "Runde 4", "Achtelfinale", "Viertelfinale", "Halbfinale", "Finale");
hinrueck = new Array(" Hin", " Rück", "");
var ligaSpieltag = 0;
var pokalRunde = 0;
var euroRunde = -1;
var hinrueckspiel = 0;
var ZATrueck = 0;
var ZATkorr = 0;
var ZAT = 1;
for (var 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("&amp;", "/");
}
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 == "") {
var 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 (var j = 0; j < table.rows[i].cells.length; j++) {
table.rows[i].cells[j].style.borderBottom = borderString;
}
}
}
}
}


// *** EOF ***
// *** EOF ***
</pre>
</pre>

Version vom 14. Februar 2013, 19:36 Uhr

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 14.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 ***