By Robbie
Has 1 other script.
// ==UserScript==
// @name StudiVZ Schnelleinladung
// @namespace http://rovo.ath.cx
// @description Fügt auf bestimmten Seiten im StudiVZ einen Link zum Einladen der jeweiligen Person in zuvor angegebene Gruppen ein.
// @include http://www.studivz.net/*
// @include http://studivz.net/*
// ==/UserScript==
var groups = new Array();
function addInviteLinks() {
if (document.location.pathname.indexOf("/Friends/") == 0 || document.location.pathname.indexOf("/Search/") == 0) {
var target = document.getElementById("FriendsList") || document.getElementById("Search_Results");
if (!target) return;
var people = target.getElementsByTagName('li');
for (i=0; i < people.length; i++) {
var person = people.item(i);
if (person.className == "clearFix") {
var lists = person.getElementsByTagName("ul");
var ulLinkList = null;
for (j=0; j < lists.length; j++) {
if (lists.item(j).className == "linkList") {
ulLinkList = lists.item(j);
break;
}
}
if (!ulLinkList) continue;
person.childNodes[1].childNodes[1].href.match(/(.*)\/Profile\/([0-9a-zA-z]{16})/i);
var friendid = RegExp.$2;
if (friendid.length != 16) continue;
for (var groupid in groups) {
var newLI = document.createElement("li");
var newLink = document.createElement("a");
newLink.href = "/Groups/Invite/" + groupid + "/" + friendid;
newLink.innerHTML = "In Gruppe \"" + groups[groupid] + "\" einladen";
newLI.appendChild(newLink);
ulLinkList.appendChild(newLI);
}
}
}
} else if (document.location.pathname.indexOf("/Profile/") == 0) {
var divProfileLeft = document.getElementById("profileLeft");
if (!divProfileLeft) return;
var ulLinkList = divProfileLeft.getElementsByTagName("ul")[0];
document.location.pathname.match(/^\/Profile\/([0-9a-zA-z]{16})/i);
var friendid = RegExp.$1;
if (friendid.length != 16) return;
for (var groupid in groups) {
var newLI = document.createElement("li");
var newLink = document.createElement("a");
newLink.href = "/Groups/Invite/" + groupid + "/" + friendid;
newLink.innerHTML = "In Gruppe \"" + groups[groupid] + "\" einladen";
newLI.appendChild(newLink);
ulLinkList.appendChild(newLI);
}
} else if(document.location.pathname.indexOf("/Groups/Overview/") == 0) {
var divGroupsRight = document.getElementById("GroupsRight");
if (!divGroupsRight) return;
var ulLinkList = divGroupsRight.getElementsByTagName("ul")[0];
document.location.pathname.match(/^\/Groups\/Overview\/([0-9a-zA-z]{16})/i);
var groupid = RegExp.$1;
if (groupid.length != 16) return;
var newLI = document.createElement("li");
var newLink = document.createElement("a");
newLink.href = "#";
newLink.setAttribute("onclick", "return false;");
newLink.addEventListener("click", openConfigDlg, true);
newLink.id = "svzil_conf";
newLink.setAttribute("groupid", groupid);
newLink.setAttribute("groupname", groups[groupid]);
linkChangeActive(newLink, (groups[groupid] != null));
newLI.appendChild(newLink);
ulLinkList.appendChild(newLI);
}
}
function linkChangeActive(newLink, toActive) {
if (toActive) {
newLink.innerHTML = "Schnelleinladung => \"" + newLink.getAttribute("groupname") + "\"";
newLink.style.textDecoration = "";
newLink.style.color = "green";
newLink.title = "Schnelleinladung deaktivieren";
newLink.setAttribute("svzil_act", true);
} else {
newLink.innerHTML = "Schnelleinladung (inaktiv)";
newLink.style.textDecoration = "line-through";
newLink.style.color = "";
newLink.title = "Schnelleinladung aktivieren";
newLink.setAttribute("svzil_act", false);
}
}
function loadSettings() {
var num = GM_getValue("num_groups", 0);
for (var i = 1; i <= num; i++) {
var s = GM_getValue("group" + i, "");
if (s != "") {
var sArr = s.split("|||");
groups[sArr[0]] = sArr[1];
}
}
}
function saveSettings() {
var i = 1;
for (var groupid in groups) {
if (groups[groupid] != null) {
GM_setValue("group" + i, groupid + "|||" + groups[groupid]);
i++;
}
}
GM_setValue("num_groups", i - 1);
}
function openConfigDlg() {
var theLink = document.getElementById("svzil_conf");
var isActive = (theLink.getAttribute("svzil_act") == "true");
var groupid = theLink.getAttribute("groupid");
var groupname = null;
if (!isActive) {
groupname = prompt("Name für die Gruppe:", document.getElementsByTagName("h1")[0].textContent);
if (!groupname || groupname == "") return;
theLink.setAttribute("groupname", groupname);
} else {
if (!confirm("Schnelleinladung wirklich deaktivieren?")) return;
groupname = null;
}
groups[groupid] = groupname;
saveSettings();
linkChangeActive(theLink, !isActive);
}
loadSettings();
addInviteLinks();