Benutzer:WWWIG/monobook.js
< Benutzer:WWWIG
Zur Navigation springen
Zur Suche springen
Version vom 14. September 2010, 14:39 Uhr von WWWIG (Diskussion | Beiträge)
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
/* -- */
// my_vkdebug = true;
addOnloadHook( function () {
LoadTemCatGenForm();
});
var t_wikiurl = wgServer + wgScriptPath + '/api.php';
var t_Files = new Array();
var t_FilestoCheck = new Array();
var t_UserstoCheck = new Array();
var t_processnext = 0;
var t_restartintervall = 120*1000;
var t_dblmsg = true;
t_blackwordlist = new Array();
t_whitewordlist = new Array();
function LoadTemCatGenForm() {
if ( document.getElementById( 'InsertcheckRCForm' ) ) {
out = '<form method="get" style="width:100%" name="TemCatGenForm">' +
'<fieldset><legend>RecentChanges-Check</legend>' +
'<div style="margin-top:.5em; margin-left:1em; margin-right:1em;">' +
'<p><input type="button" value="Starte RC-Check" ' +
'title="" onClick="GetBadWordLists()"> ' +
'</p>' +
'<label for="Status" style="vertical-align:top;">Status:</label>' +
'<p id="Status" style="border: 1px solid #aaa; padding:.5em;" > ...</p>' +
'<div id="PreviewForm"></div>' +
'<div id="InsertRCForm"></div>' +
'</div></fieldset></form>';
document.getElementById( 'InsertcheckRCForm' ).innerHTML = out;
}
}
function GetBadWordLists() {
window.setTimeout( "GetBadWordLists()", t_restartintervall );
t_FilesToCheckString = 'MediaWiki:Spam-BlackList|MediaWiki:Spam-WhiteList';
var t_parameters = '?action=query&format=json&prop=revisions&rvprop=ids|content&titles=' +
encodeURIComponent( t_FilesToCheckString ) + '';
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("POST", CatGenForm.t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if(t_http_req.readyState != 4) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML = 'BadWord-Listen werden angefordert ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if(t_http_req.readyState == 4 && t_http_req.status == 200) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'BadWord-Listen erhalten ('+GetTimeStamp()+') ...';
GotBadWordLists( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
}
}
t_http_req.send(null);
}
function GotBadWordLists( queryData, rawData ) {
if ( queryData.query && queryData.query.pages ) {
for ( var t_Page in queryData.query.pages ) {
if ( queryData.query.pages[t_Page].pageid ) {
if ( queryData.query.pages[t_Page].revisions ) {
if ( queryData.query.pages[t_Page].title == 'MediaWiki:Spam-BlackList' ) {
t_blackwordlist = String( queryData.query.pages[t_Page].revisions[0]['*'] ).split( '\n' );
//document.getElementById( 'Status' ).innerHTML += '<br>' + 'BlackList-Inhalt ('+GetTimeStamp()+')<br>' + t_blackwordlist.join("/");
}
if ( queryData.query.pages[t_Page].title == 'MediaWiki:Spam-WhiteList' ) {
t_whitewordlist = String( queryData.query.pages[t_Page].revisions[0]['*'] ).split( '\n' );
//document.getElementById( 'Status' ).innerHTML += '<br>' + 'WhiteList-Inhalt ('+GetTimeStamp()+')<br>' + t_whitewordlist.join("/");
}
}
}
}
}
CheckRC();
}
function CheckRC() {
var t_parameters = '?action=query&format=json&list=recentchanges&rclimit=50&rctype=new&rcprop=user|comment|flags|timestamp|title|ids|sizes';
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("GET", t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if(t_http_req.readyState != 4) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'RC-Liste wird angefordert ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if(t_http_req.readyState == 4 && t_http_req.status == 200) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'RC-Liste erhalten ('+GetTimeStamp()+') ...';
GotRC( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
}
}
t_http_req.send(null);
}
function GotRC( queryData, rawData ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + rawData; //.substr(0, 500);
t_Files.splice( 0, t_Files.length );
t_FilestoCheck.splice( 0, t_FilestoCheck.length );
t_UserstoCheck.splice( 0, t_UserstoCheck.length );
t_processnext = 0;
if ( queryData.query && queryData.query.recentchanges ) {
for ( t_Change = 0; t_Change < queryData.query.recentchanges.length; t_Change++ ) {
if ( typeof queryData.query.recentchanges[t_Change].anon != 'undefined' ) {
if ( CheckBadWord( queryData.query.recentchanges[t_Change].comment, '' ) ) {
var t_File = new Array( queryData.query.recentchanges[t_Change].title,
queryData.query.recentchanges[t_Change].revid,
queryData.query.recentchanges[t_Change].user,
queryData.query.recentchanges[t_Change].comment );
t_Files.push( t_File );
} else {
document.getElementById( 'Status' ).innerHTML += '<br>[' + queryData.query.recentchanges[t_Change].title+']';
var t_File = new Array( queryData.query.recentchanges[t_Change].title,
queryData.query.recentchanges[t_Change].revid,
queryData.query.recentchanges[t_Change].user,
queryData.query.recentchanges[t_Change].comment );
t_FilestoCheck.push( t_File );
}
} else {
var t_File = new Array( queryData.query.recentchanges[t_Change].title,
queryData.query.recentchanges[t_Change].revid,
queryData.query.recentchanges[t_Change].user,
queryData.query.recentchanges[t_Change].comment );
t_UserstoCheck.push( t_File );
document.getElementById( 'Status' ).innerHTML +=
'<br>*Check [' +queryData.query.recentchanges[t_Change].title +']';
}
}
}
if ( t_Files.length == 0 && t_FilestoCheck.length == 0 && t_UserstoCheck.length == 0 ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
} else {
if ( t_FilestoCheck.length == 0 ) {
if ( t_UserstoCheck.length == 0 ) {
document.getElementById( 'InsertRCForm' ).innerHTML = '<hr style="margin-top:1em;">('+GetTimeStamp()+')<ul>';
CheckTitles();
} else {
PreCheckUsers();
}
} else {
PreCheckTitles();
}
}
}
function PreCheckTitles() {
t_FilesToCheckString = '';
for ( t_FiletoCheck = 0; t_FiletoCheck < t_FilestoCheck.length; t_FiletoCheck++ ) {
if ( t_FilesToCheckString != '' ) {
t_FilesToCheckString += '|';
}
t_FilesToCheckString += t_FilestoCheck[t_FiletoCheck][0];
}
var t_parameters = '?action=query&format=json&prop=revisions&rvprop=ids|timestamp|user|comment|content&titles=' +
encodeURIComponent( t_FilesToCheckString ) + '';
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("GET", CatGenForm.t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if(t_http_req.readyState != 4) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Datei-Inhalt wird angefordert ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if(t_http_req.readyState == 4 && t_http_req.status == 200) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Datei-Inhalt erhalten ('+GetTimeStamp()+') ...';
PreCheckTitlesProcess( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
}
}
t_http_req.send(null);
}
function PreCheckTitlesProcess( queryData, rawData ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + rawData.substr(0, 120);
if ( queryData.query && queryData.query.pages ) {
for ( var t_Page in queryData.query.pages ) {
if ( queryData.query.pages[t_Page].pageid ) {
if ( queryData.query.normalized ) {
for ( t_PageNorm= 0; t_PageNorm < queryData.query.normalized.length; t_PageNorm++ ) {
if ( queryData.query.normalized[t_PageNorm].to == queryData.query.pages[t_Page].title ) {
if ( queryData.query.pages[t_Page].revisions ) {
if ( CheckBadWord( queryData.query.pages[t_Page].revisions[0]['*'], 'http:' ) ) {
var t_File = new Array( queryData.query.pages[t_Page].title,
queryData.query.pages[t_Page].revisions[0].revid,
queryData.query.pages[t_Page].revisions[0].user,
queryData.query.pages[t_Page].revisions[0]['*'] );
t_Files.push( t_File );
}
}
}
}
} else
if ( queryData.query.pages[t_Page].revisions ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfe Datei-Inhalt ('+GetTimeStamp()+')<br>' + String( queryData.query.pages[t_Page].revisions[0]['*'] ).substr(0, 500);
if ( CheckBadWord( queryData.query.pages[t_Page].revisions[0]['*'], 'http:' ) ) {
var t_File = new Array( queryData.query.pages[t_Page].title,
queryData.query.pages[t_Page].revisions[0].revid,
queryData.query.pages[t_Page].revisions[0].user,
queryData.query.pages[t_Page].revisions[0]['*'] );
t_Files.push( t_File );
}
}
}
}
}
if ( t_Files.length == 0 ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
} else {
document.getElementById( 'InsertRCForm' ).innerHTML = '<hr style="margin-top:1em;">('+GetTimeStamp()+')<ul>';
CheckTitles();
}
}
function PreCheckUsers() {
t_UsersToCheckString = '';
for ( t_UsertoCheck = 0; t_UsertoCheck < t_UserstoCheck.length; t_UsertoCheck++ ) {
if ( t_UsersToCheckString != '' ) {
t_UsersToCheckString += '|';
}
t_UsersToCheckString += t_UserstoCheck[t_UsertoCheck][2];
}
var t_parameters = '?action=query&format=json&list=users&usprop=groups|editcount|registration&ususers=' +
encodeURIComponent( t_UsersToCheckString ) + '';
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("GET", CatGenForm.t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if(t_http_req.readyState != 4) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'User-Info wird angefordert ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if(t_http_req.readyState == 4 && t_http_req.status == 200) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'User-Info erhalten ('+GetTimeStamp()+') ...';
PreCheckUsersProcess( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
}
}
t_http_req.send(null);
}
function PreCheckUsersProcess( queryData, rawData ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + rawData;
if ( queryData.query && queryData.query.users ) {
for ( var t_User in queryData.query.users ) {
for ( t_UsertoCheck = 0; t_UsertoCheck < t_UserstoCheck.length; t_UsertoCheck++ ) {
if ( t_UserstoCheck[t_UsertoCheck][2] == queryData.query.users[t_User].name &&
queryData.query.users[t_User].editcount < 10 ) {
if ( CheckBadWord( t_UserstoCheck[t_UsertoCheck][3], '' ) ) {
var t_File = new Array( t_UserstoCheck[t_UsertoCheck][0],
t_UserstoCheck[t_UsertoCheck][1],
t_UserstoCheck[t_UsertoCheck][2],
t_UserstoCheck[t_UsertoCheck][3] );
t_Files.push( t_File );
} else {
document.getElementById( 'Status' ).innerHTML += '<br>USER: ' + queryData.query.users[t_User].name +
' [' + t_UserstoCheck[t_UsertoCheck][0] + ']';
var t_File = new Array( t_UserstoCheck[t_UsertoCheck][0],
t_UserstoCheck[t_UsertoCheck][1],
t_UserstoCheck[t_UsertoCheck][2],
t_UserstoCheck[t_UsertoCheck][3] );
t_FilestoCheck.push( t_File );
}
}
}
}
}
if ( t_Files.length == 0 && t_FilestoCheck.length == 0 ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
} else {
if ( t_FilestoCheck.length == 0 ) {
document.getElementById( 'InsertRCForm' ).innerHTML = '<hr style="margin-top:1em;">('+GetTimeStamp()+')<ul>';
CheckTitles();
} else {
PreCheckTitles();
}
}
}
function CheckTitles() {
if ( t_processnext < t_Files.length ) {
document.getElementById( 'InsertRCForm' ).innerHTML += '<li>' + t_Files[t_processnext][0]+'<br>'+t_Files[t_processnext][1]+'<br>'+t_Files[t_processnext][2]+'<br>'+t_Files[t_processnext][3] + '</li>';
var t_parameters = '?action=query&format=json&prop=info|revisions&intoken=delete&titles=' +
encodeURIComponent( t_Files[t_processnext][0] ) + '';
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("GET", CatGenForm.t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if(t_http_req.readyState != 4) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Datei-Token wird angefordert ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if(t_http_req.readyState == 4 && t_http_req.status == 200) {
DeleteTitles( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
}
}
t_http_req.send(null);
}
}
function DeleteTitles ( queryData, rawData ) {
if ( queryData ) {
if ( queryData.query && queryData.query.pages ) {
var t_token = "";
var t_timestamp = "";
var t_some_pages = queryData.query.pages;
for ( var t_Page in t_some_pages ) {
if ( t_some_pages[t_Page].edittoken ) {
t_token = encodeURIComponent( t_some_pages[t_Page].edittoken );
} else
if ( t_some_pages[t_Page].deletetoken ) {
t_token = encodeURIComponent( t_some_pages[t_Page].deletetoken );
}
if ( t_some_pages[t_Page].revisions ) {
var t_some_revisions = t_some_pages[t_Page].revisions;
for ( var i = 0; i < t_some_revisions.length; i++ ) {
if (t_some_revisions[i].timestamp) {
t_timestamp = t_some_revisions[i].timestamp;
}
}
}
document.getElementById( 'Status' ).innerHTML += '<br>' + t_some_pages[t_Page].starttimestamp;
}
t_summary = '&reason=' + encodeURIComponent( 'automatisch gelöscht' );
var t_parameters = '?action=delete&format=json&title=' + encodeURIComponent( t_some_pages[t_Page].title ) +
t_summary + '&watch&basetimestamp=' + t_timestamp +
'&token=' + t_token + '&bot=1';
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("POST", CatGenForm.t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if( t_http_req.readyState != 4 ) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML +=
'<br>' + '<small>'+t_some_pages[t_Page].title+'</small><br>wird gelöscht ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if( t_http_req.readyState == 4 && t_http_req.status == 200 ) {
DeleteTitlesProcessed( eval("(" + t_http_req.responseText + ")" ), t_http_req.responseText );
}
}
t_http_req.send(null);
}
}
}
function CheckUsers() {
if ( t_processnext < t_Files.length ) {
var t_parameters = '?action=block&format=json&user=' +
encodeURIComponent( t_Files[t_processnext][2] ) + '&gettoken';
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("POST", CatGenForm.t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if(t_http_req.readyState != 4) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Benutzer-Token wird angefordert ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if(t_http_req.readyState == 4 && t_http_req.status == 200) {
BlockUsers( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
}
}
t_http_req.send(null);
}
}
function BlockUsers ( queryData, rawData ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + rawData;
if ( queryData ) {
if ( queryData.block && queryData.block.blocktoken ) {
var t_token = queryData.block.blocktoken;
var t_parameters = '?action=block&format=json&nocreate&user=' +
encodeURIComponent( t_Files[t_processnext][2] ) + '&reason=' +
encodeURIComponent( 'spam (automatisch gesperrt)' ) + '&token=' +
encodeURIComponent( t_token );
var t_http_req = null;
if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
t_http_req.open("POST", CatGenForm.t_wikiurl + t_parameters, true);
t_dblmsg = true;
t_http_req.onreadystatechange = function() {
if(t_http_req.readyState != 4) {
if ( t_dblmsg ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Benutzer wird gesperrt ('+GetTimeStamp()+') ...';
t_dblmsg = false;
}
}
if(t_http_req.readyState == 4 && t_http_req.status == 200) {
DeleteTitlesProcessed( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
}
}
t_http_req.send(null);
}
}
}
function DeleteTitlesProcessed( queryData, rawData ) {
if ( queryData['delete'] ) {
if ( queryData['delete'].title && queryData['delete'].reason ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + queryData['delete'].title + '<br>' + queryData['delete'].reason;
t_processnext++;
if ( t_processnext < t_Files.length ) {
CheckTitles();
} else {
t_processnext = 0;
CheckUsers();
}
}
} else
if ( queryData['block'] && queryData['block'].user ) {
document.getElementById( 'Status' ).innerHTML += '<br>' + queryData['block'].user + ' wurde gesperrt ('+GetTimeStamp()+') ';
t_processnext++;
if ( t_processnext < t_Files.length ) {
CheckUsers();
}
} else {
document.getElementById( 'Status' ).innerHTML += '<br>Unbekannter Fehler ' + rawData + '<br>('+GetTimeStamp()+')';
}
if ( t_processnext >= t_Files.length ) {
document.getElementById( 'InsertRCForm' ).innerHTML += '</ul>';
document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
}
}
function GetTimeStamp() {
var t_now = new Date();
t_GetTimeStamp = ('0000'+t_now.getFullYear()).substr(String(t_now.getFullYear()).length,4)+'-'+('00'+(t_now.getMonth()+1)).substr(String((t_now.getMonth()+1)).length,2)+'-'+('00'+t_now.getDate()).substr(String(t_now.getDate()).length,2)+'T'+
('00'+t_now.getHours()).substr(String(t_now.getHours()).length,2)+':'+('00'+t_now.getMinutes()).substr(String(t_now.getMinutes()).length,2)+':'+('00'+t_now.getSeconds()).substr(String(t_now.getSeconds()).length,2)+'Z';
return t_GetTimeStamp;
}
function CheckBadWord( t_text, t_extra ) {
if ( t_text ) {
for ( t_bWord = 0; t_bWord < t_blackwordlist.length; t_bWord++ ) {
t_erg_bw = String( t_text.toUpperCase() ).indexOf( String( t_blackwordlist[t_bWord] ).toUpperCase() );
if ( t_erg_bw != -1 ) {
document.getElementById( 'Status' ).innerHTML += '<br>'+'BadWord ('+t_blackwordlist[t_bWord]+'/Pos: '+t_erg_bw+') in<br>['+String( t_text ).substr(0, 500)+']';
t_isblack = true;
for ( t_wWord = 0; t_wWord < t_whitewordlist.length; t_wWord++ ) {
t_erg_ww = String( t_text.toUpperCase() ).indexOf( String( t_whitewordlist[t_wWord] ).toUpperCase() );
if ( t_erg_ww == t_erg_bw ) {
document.getElementById( 'Status' ).innerHTML += '<br>'+'WhiteWord ('+t_whitewordlist[t_wWord]+')';
t_isblack = false;
}
}
t_erg_ex = 0;
if ( t_extra != '' ) {
t_erg_ex = String( t_text.toUpperCase() ).indexOf( String( t_extra ).toUpperCase() );
}
if ( t_isblack == true && t_erg_ex != -1 ) {
return true;
}
}
}
return false;
}
}