OS2.spielplan: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
SLC (Diskussion | Beiträge) (OS2.spielplan, Version 0.1) |
SLC (Diskussion | Beiträge) (OS2.spielplan, Version 0.2) |
||
| Zeile 7: | Zeile 7: | ||
|- bgcolor="#FFCC00" | |- bgcolor="#FFCC00" | ||
| '''Version''' | | '''Version''' | ||
| '''0. | | '''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. | // @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("&", "/"); | |||
} | |||
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 | ||
// Verzweige in unterschiedliche Verarbeitungen je nach Wert von s: | // Verzweige in unterschiedliche Verarbeitungen je nach Wert von s: | ||
switch ( | switch (getPageIdFromURL(window.location.href)) { | ||
case 6: procSpielplan(sepMonths, shortKom); break; | |||
} | } | ||
// *** 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 ***