OS2.haupt

Aus Online-Soccer-Wiki
Version vom 25. Mai 2016, 03:30 Uhr von SLC (Diskussion | Beiträge) (OS2.haupt, Version 0.1)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
OS2.haupt
Dateiname os2.haupt.user.js
Version 0.1
Autor Sven Loges (SLC), Choromonets Odessa
Beschreibung Strukturiert und erweitert das Managerbüro eines OS2-Teams
Webseiten haupt.php
Managerbüro
Funktionalität Vorschau für das letzte Spiel: Bilanz
Letzte Änderung 25.05.2016
// ==UserScript==
// @name        OS2.haupt
// @namespace   http://os.ongapo.com/
// @version     0.1
// @copyright   2016+, Sven Loges (SLC)
// @description Managerbuero-Abschnitt aus dem Master-Script fuer Online Soccer 2.0
// @include     http://os.ongapo.com/haupt.php
// @include     http://www.online-soccer.eu/haupt.php
// @grant       none
// ==/UserScript==

// Ermittelt die Spielart aus einer Tabellenzelle, etwa "Liga : Heim" und liefert zwei Werte zurueck
// cell Tabellenzelle mit Eintrag "Liga : Heim" oder "Liga Heim"
// return { "Liga", "Heim" } im Beispiel
function getSpielArtFromCell(cell) {
    var ret = cell.textContent.split(" ", 2);

    if (ret.length > 1) {
        // Alle ":" und " " raus...
        ret[1] = ret[1].replace(":", "").replace(" ", "");
    }

    return ret;
}

// Gibt die ID fuer den Namen eines Wettbewerbs zurueck
// gameType Name des Wettbewerbs eines Spiels
// return OS2-ID für den Spieltyp (1 bis 7)
function getGameTypeID(gameType) {
    var ID = -1;

    switch (gameType) {
        case "Friendly":   ID = 1; break;
        case "Liga":       ID = 2; break;
        case "LP":         ID = 3; break;
        case "OSEQ":       ID = 4; break;
        case "OSE":        ID = 5; break;
        case "OSCQ":       ID = 6; break;
        case "OSC":        ID = 7; break;
        default:           ID = 0; break;
    }

    return ID;
}

// Gibt die ID fuer den Namen eines Wettbewerbs zurueck
// cell Tabellenzelle mit Link auf den Spielberichts-Link
// gameType Name des Wettbewerbs eines Spiels
// label Anzuklickender Text des neuen Links
// return HTML-Link auf die Preview-Seite für diesen Spielbericht
function getBilanzLinkFromCell(cell, gameType, label) {
    var bericht = cell.textContent;
    var gameTypeID = getGameTypeID(gameType);
    var ret = "";

    if (bericht != "Vorschau") {   // Nur falls Link nicht bereits vorhanden
        if (gameTypeID > 1) {      // nicht möglich für "Friendly" bzw. "spielfrei"
            var searchFun = "javascript:os_bericht(";
            var paarung = cell.innerHTML.substr(cell.innerHTML.indexOf(searchFun) + searchFun.length);
            paarung = paarung.substr(0, paarung.indexOf(")"));
            paarung = paarung.substr(0, paarung.lastIndexOf(","));
            paarung = paarung.substr(0, paarung.lastIndexOf(","));
            ret = " <a href=\"javascript:spielpreview(" + paarung + "," + gameTypeID + ")\">" + label + "</a>";
        }
    }

    return ret;
}

// Addiert einen Link auf die Bilanz hinter den Spielberichts-Link
// cell Tabellenzelle mit Link auf den Spielberichts-Link
// gameType Name des Wettbewerbs eines Spiels
// label Anzuklickender Text des neuen Links
function addBilanzLinkToCell(cell, gameType, label) {
    var bilanzLink = getBilanzLinkFromCell(cell, gameType, label);
    if (bilanzLink != "") {
        cell.innerHTML += bilanzLink;
    }
}

// Verarbeitet Ansicht "Haupt" (Managerbuero)
function procHaupt() {
    var table = document.getElementsByTagName("table")[2];

    var columnIndexArt = 1;
    var columnIndexBer = 2;

    var spielart = getSpielArtFromCell(table.rows[0].cells[columnIndexArt]);
    var gameType = spielart[0];

    addBilanzLinkToCell(table.rows[0].cells[columnIndexBer], gameType, "(Bilanz)");
}

procHaupt();

// *** EOF ***