„Benutzer:SpBot/TAXman-tool-dev.js“ – Versionsunterschied
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
SpBot (Diskussion | Beiträge) K AZ: Die Seite wurde neu angelegt. |
SpBot (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 13: | Zeile 13: | ||
tmpAttrib.nodeValue = attrib; |
tmpAttrib.nodeValue = attrib; |
||
return tmpAttrib; |
return tmpAttrib; |
||
} |
|||
function showErrorMesage(htmlText) { |
|||
var img = '<img height="17" width="20" longdesc="/wiki/Bild:Zeichen_101.svg" alt="Achtung" src="/media/wikipedia/commons/thumb/3/38/Zeichen_101.svg/20px-Zeichen_101.svg.png"/> ' |
|||
document.getElementById("no-gadget-active").innerHTML = img + htmlText; |
|||
} |
} |
||
Zeile 19: | Zeile 24: | ||
var rawText = loadFile('Benutzer:Euku/alle Benutzer'); |
var rawText = loadFile('Benutzer:Euku/alle Benutzer'); |
||
if (!rawText) { |
if (!rawText) { |
||
showErrorMesage('Ein Fehler ist aufgetreten. Benutzerliste konnte nicht geladen werden. Melde es bitte <a href="/wiki/Benutzer:Euku">Benutzer:Euku</a>!'); |
|||
return; |
return; |
||
} |
} |
||
Zeile 40: | Zeile 45: | ||
} |
} |
||
// add hidden iframe, add text and save it |
|||
function addTextAndSavePage(newText, comment) { |
function addTextAndSavePage(newText, comment) { |
||
// get a token |
// get a token |
||
Zeile 62: | Zeile 66: | ||
var section=0; |
var section=0; |
||
var basetimestamp = rawXML.getElementsByTagName("page")[0].getAttribute("touched"); |
var basetimestamp = rawXML.getElementsByTagName("page")[0].getAttribute("touched"); |
||
var oldText = loadFile(requestPage); |
// var oldText = loadFile(requestPage); |
||
// save it |
// save it |
||
Zeile 82: | Zeile 86: | ||
} |
} |
||
} |
} |
||
var parm = 'action=edit&title=' + encodeURI(requestPage) + '§ion=' + section + |
var parm = 'format=xml&action=edit&title=' + encodeURI(requestPage) + '§ion=' + section + |
||
'&basetimestamp=' + basetimestamp + '&token=' + token + '&summary=' + encodeURIComponent(comment) + |
'&basetimestamp=' + basetimestamp + '&bot=0&recreate=0&token=' + token + '&summary=' + encodeURIComponent(comment) + |
||
'& |
'&appendtext=' + encodeURI(newText); |
||
xmlHttp.open("POST", 'http://de.wikipedia.org/w/api.php |
xmlHttp.open("POST", 'http://de.wikipedia.org/w/api.php', false); |
||
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); |
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); |
||
xmlHttp.setRequestHeader("title", encodeURI(requestPage)); |
|||
xmlHttp.setRequestHeader("section", section); |
|||
xmlHttp.setRequestHeader("basetimestamp", basetimestamp); |
|||
xmlHttp.setRequestHeader("token", token); |
|||
xmlHttp.setRequestHeader("summary", encodeURI(comment)); |
|||
xmlHttp.setRequestHeader("text", encodeURI(oldText + "\n" + newText)); |
|||
xmlHttp.setRequestHeader("Content-length", parm.length); |
xmlHttp.setRequestHeader("Content-length", parm.length); |
||
xmlHttp.setRequestHeader("Connection", "close"); |
|||
xmlHttp.onreadystatechange = function() { |
xmlHttp.onreadystatechange = function() { |
||
if (xmlHttp.readyState == 4 && xmlHttp.status == 200 && xmlHttp.responseText) { |
if (xmlHttp.readyState == 4 && xmlHttp.status == 200 && xmlHttp.responseText) { |
||
Zeile 127: | Zeile 124: | ||
var comment = document.getElementById('comment').value; |
var comment = document.getElementById('comment').value; |
||
if (confirmed == wgUserName) { |
if (confirmed == wgUserName) { |
||
showErrorMesage('<a href="/wiki/Cogito_ergo_sum">Cogito ergo sum</a>: Du kannst dich nicht selbst bestätigen!'); |
|||
return; |
return; |
||
} |
} |
||
Zeile 149: | Zeile 146: | ||
tellUserToWait(); |
tellUserToWait(); |
||
if (!AmIin) { |
if (!AmIin) { |
||
showErrorMesage('Du bist noch nicht in der Liste eingetragen und damit nicht bestätigt. Du darfst noch nicht selber bestätigen. Lade die Seite neu und trage dich erstmal in die Liste ein! Warte dann bis du 3 Bestätigungen bekommen hast!'); |
|||
window.location.href = wgServer + '/wiki/' + workPage; |
window.location.href = wgServer + '/wiki/' + workPage; |
||
return; |
return; |
||
Zeile 156: | Zeile 153: | ||
var rawText = loadFile('Benutzer:Euku/alle Benutzer'); |
var rawText = loadFile('Benutzer:Euku/alle Benutzer'); |
||
if (!rawText) { |
if (!rawText) { |
||
showErrorMesage('Ein Fehler ist aufgetreten. Benutzerliste konnte nicht geladen werden. Melde es bitte <a href="/wiki/Benutzer:Euku">Benutzer:Euku</a>!'); |
|||
return; |
return; |
||
} |
} |
Version vom 8. September 2008, 14:46 Uhr
// for [[Benutzer:TAXman/Gemeinschaftsseite]]
// //könnte etwas Refactoring vertragen
//
// <nowiki>
workPage = "Benutzer:Euku/neue_Anfragen";
requestPage = "Benutzer:Euku/neue_Einträge";
// creates a new attribute
// e.g. newAttrib("href", "bla") returns
// href="bla" as an attribute for the <a>-tag
function newAttrib(name, attrib) {
var tmpAttrib = document.createAttribute(name);
tmpAttrib.nodeValue = attrib;
return tmpAttrib;
}
function showErrorMesage(htmlText) {
var img = '<img height="17" width="20" longdesc="/wiki/Bild:Zeichen_101.svg" alt="Achtung" src="/media/wikipedia/commons/thumb/3/38/Zeichen_101.svg/20px-Zeichen_101.svg.png"/> '
document.getElementById("no-gadget-active").innerHTML = img + htmlText;
}
function AmIin() {
// load user list
var rawText = loadFile('Benutzer:Euku/alle Benutzer');
if (!rawText) {
showErrorMesage('Ein Fehler ist aufgetreten. Benutzerliste konnte nicht geladen werden. Melde es bitte <a href="/wiki/Benutzer:Euku">Benutzer:Euku</a>!');
return;
}
var userNameArray = rawText.split('\n');
for (i in userNameArray)
if (wgUserName == userNameArray[i])
return true;
return false;
}
function AddMeToThisList() {
if (AmIin)
alert("Du bist bereits in der Liste eingetragen. Normalerweise wird diese Aktion nun abgebrochen, doch dies ist ein Test...")
userComment = prompt("Hier kannst du einen Kommentar zu dir abgeben. z. B. wenn du im Vorstand von Wikimedia bist, gibst du 'Wikimedia Deutschland' ein; ansonsten leer lassen.", "");
if (userComment == null) return; // Abgebrochen
tellUserToWait();
// concat the string to save
addTextAndSavePage('{{Benutzer:Euku/neuer Benutzer|Name=' + wgUserName + '|Kommentar=' + userComment + '|Zeit=~~~~~}}', "füge mich selbst hinzu");
}
function addTextAndSavePage(newText, comment) {
// get a token
xmlHttp = null;
if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); }
if (!xmlHttp) {
try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {
try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) { throw 'Konnte keinen XMLHttpRequest erstellen. Breche ab.'; }
}
}
if (xmlHttp) {
xmlHttp.open('GET', 'http://de.wikipedia.org/w/api.php?action=query&prop=info&intoken=edit&titles=' + requestPage + '&format=xml', false);
xmlHttp.send(null);
}
rawXML = xmlHttp.responseXML;
// get information
var token = rawXML.getElementsByTagName("page")[0].getAttribute("edittoken");
var section=0;
var basetimestamp = rawXML.getElementsByTagName("page")[0].getAttribute("touched");
// var oldText = loadFile(requestPage);
// save it
xmlHttp = null;
// Mozilla, Opera, Safari and Internet Explorer 7
if (typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
// <= Internet Explorer 6
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
var parm = 'format=xml&action=edit&title=' + encodeURI(requestPage) + '§ion=' + section +
'&basetimestamp=' + basetimestamp + '&bot=0&recreate=0&token=' + token + '&summary=' + encodeURIComponent(comment) +
'&appendtext=' + encodeURI(newText);
xmlHttp.open("POST", 'http://de.wikipedia.org/w/api.php', false);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", parm.length);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200 && xmlHttp.responseText) {
// load current page again
xmlHttp.abort();
window.location.href = wgServer + '/wiki/' + workPage;
}
};
xmlHttp.send(parm);
}
function loadFile(file) {
xmlHttp = null;
if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); }
if (!xmlHttp) {
try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {
try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) { throw 'Konnte keinen XMLHttpRequest erstellen. Breche loadFile ab.'; }
}
}
if (xmlHttp) {
xmlHttp.open('GET', 'http://de.wikipedia.org/w/index.php?title='+ file +'&action=raw&ctype=text/javascript&dontcountme=s', false);
xmlHttp.send(null);
return (xmlHttp.responseText);
}
return false;
}
function saveACKForm() {
var confirmed = document.getElementById('confirmed').value;
var comment = document.getElementById('comment').value;
if (confirmed == wgUserName) {
showErrorMesage('<a href="/wiki/Cogito_ergo_sum">Cogito ergo sum</a>: Du kannst dich nicht selbst bestätigen!');
return;
}
tellUserToWait();
addTextAndSavePage('{{Benutzer:Euku/neue Bestätigung|Bestätiger=' + wgUserName + '|Bestätigter=' + confirmed +
'|Kommentar=' + comment + '|Zeit=~~~~~}}', "Bestätige [[Benutzer:" + confirmed + "|" + confirmed + "]]");
}
function tellUserToWait() {
// tell the user to wait
document.getElementById('no-gadget-active').innerHTML = 'bitte warten ... ';
var newElement = document.createElement("img");
newElement.setAttributeNode(newAttrib("src", "/media/wikipedia/commons/4/42/Loading.gif"));
newElement.setAttributeNode(newAttrib("width", 18));
newElement.setAttributeNode(newAttrib("id", "busyImg"));
newElement.setAttributeNode(newAttrib("height", 18));
document.getElementById("no-gadget-active").appendChild(newElement);
}
function showFormToACKsomeone() {
tellUserToWait();
if (!AmIin) {
showErrorMesage('Du bist noch nicht in der Liste eingetragen und damit nicht bestätigt. Du darfst noch nicht selber bestätigen. Lade die Seite neu und trage dich erstmal in die Liste ein! Warte dann bis du 3 Bestätigungen bekommen hast!');
window.location.href = wgServer + '/wiki/' + workPage;
return;
}
// load user list
var rawText = loadFile('Benutzer:Euku/alle Benutzer');
if (!rawText) {
showErrorMesage('Ein Fehler ist aufgetreten. Benutzerliste konnte nicht geladen werden. Melde es bitte <a href="/wiki/Benutzer:Euku">Benutzer:Euku</a>!');
return;
}
var userNameArray = rawText.split('\n');
var usersToConfirm = '<optgroup label="0-9">';
var currentLetter = "0-9";
for (var userCounter in userNameArray) {
var tmpUser = userNameArray[userCounter];
// new header?
if ((currentLetter == "0-9") && (tmpUser[0] == "A")) {
currentLetter = "A";
usersToConfirm += '</optgroup><optgroup label="A">';
}
else if ((currentLetter != "0-9") && (tmpUser[0] > currentLetter)) {
currentLetter = tmpUser[0];
usersToConfirm += '</optgroup><optgroup label="' + currentLetter + '">';
}
usersToConfirm += '<option label="' + userNameArray[userCounter] + '">' + userNameArray[userCounter] + '</option>';
}
usersToConfirm += '</optgroup>';
var formHTMLcode = '<table width="500" align="center" class="wikitable" id="ACKtable">'+
'<tbody><tr><td>dein Benutzername</td><td width="150" id="myUserName">' + wgUserName +
'</td></tr>'+
'<tr><td>Wen möchtest du bestätigen?</td><td>'+
' <select id="confirmed" style="width: 100%;">' + usersToConfirm +
' </select>' +
'</td></tr>'+
'<tr><td>Kommentar zur Bestätigung<br/><small>vermeide Details, die die Identität offenlegen könnten</small></td><td>'+
'<input type="text" maxlength="250" id="comment" title="hier auf Wunsch Kommentar eingeben" value="" maxlenght="250"/>'+
'</td></tr>'+
'<tr><td align="right" colspan="2"><b><a href="javascript:saveACKForm();">Speichern</a></b> <a href="javascript:startTAXmanPage();">Abbrechen</a></td></tr>'+
'</tbody></table>';
document.getElementById('no-gadget-active').innerHTML = formHTMLcode; //write form
}
function startTAXmanPage() {
// ersetze den Hinweis und entferne den Edit-Knopf
document.getElementById('no-gadget-active').innerHTML = '<div align="center" id="new-user-link"><b><a href="javascript:AddMeToThisList();">ich möchte mich in das System eintragen</a></b></div><br /><div align="center" id="new-ack-link"><b><a href="javascript:showFormToACKsomeone();">ich möchte jemanden bestätigen</a></b></div>';
document.getElementById('ca-edit').innerHTML = '';
}
if (document.URL == wgServer + '/wiki/' + workPage)
addOnloadHook(startTAXmanPage);
// </nowiki>