NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name noMyTT
// @version 2.0
// @author MaoDelinSc
// @copyright 2017, MaoDelinSc (https://openuserjs.org/users/MaoDelinSc)
// @license MIT
// @namespace Violentmonkey Scripts
// @description replaces mytt with click-tt links
// @match *://*.click-tt.de/*
// @grant none
// based on http://forum.tt-news.de/search.php?searchid=4749226
// credits to Das Phantom
// ==/UserScript==
function substspecial(name) {
switch (name) {
case "byttv":
return "bttv";
case "hettv":
return "httv";
case "sbttv":
case "battv":
return "ttvbw";
default:
return name;
}
}
function substsubject(id, subject, range) {
if (subject.endsWith("/mannschaften/")) {
return "clubTeams" + range;
} else if (subject.endsWith("/mannschaftsmeldungen/")) {
return "clubPools" + range;
} else {
return "groupPage" + range + "&group=" + id;
}
}
function replacer(match, p1, p2, offset, string) {
return p2 === undefined ? "+" + p1 : "+" + p1 + p2.toLowerCase();
}
function rellink(components, range) {
return "/cgi-bin/WebObjects/nuLigaTTDE.woa/wa/" + substsubject(components[2], components[3], range.replace(/dttb/i, components[1].replace(/ ([^-]+)(?:-(.*))?/, replacer)));
}
function main() {
var myTTLinks = document.getElementsByTagName("a");
var metas = document.getElementsByTagName("meta");
for (var i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") == "nuLigaStatsUrl") {
var content = metas[i].getAttribute("content");
var idx = content.indexOf("?");
if (idx >= 0) {
var range = content.substring(idx);
} else {
for (var j = 0; j < myTTLinks.length; j++) {
if (myTTLinks[j].textContent === "Regionsspielplan") {
var region = myTTLinks[j].getAttribute("href");
idx = region.indexOf("?");
if (idx >= 0) {
var range = region.substring(idx);
break;
} else {
return;
}
}
}
}
break;
}
}
var pattern = new RegExp("^https://www\.mytischtennis\.de/clicktt/([^/]+)/.+?/(?:gruppe|verein)/([^/]+)/(.*)");
for (var i = 0; i < myTTLinks.length; i++) {
var match = myTTLinks[i].getAttribute("href").match(pattern);
if (match) {
myTTLinks[i].removeAttribute("target");
myTTLinks[i].setAttribute("href", match[1].indexOf(" ") >= 0 ? rellink(match, range) : "https://" + substspecial(match[1].toLowerCase()) + ".click-tt.de/cgi-bin/WebObjects/nuLigaTTDE.woa/wa/" + substsubject(match[2], match[3], range));
}
}
}
main();