User:Saintrain/J/deSpamWiki.js

// //================ deSpamWiki  ============================================================ function deSpamWiki { var GBUG = false; var BUG = GBUG;

var SpamObj = { id:"", class:"", clsNdx:0,  act:"" };

var spamList = new Array;

var sndx = 0; ///-m- spamList[sndx] = SpamObj = { id : "newarticletext",        act : "delete node" };  sndx++; ///-m- spamList[sndx] = SpamObj = { id : "userinvalidcssjstitle", act : "delete node" };  sndx++; ///-m- spamList[sndx] = SpamObj = { id : "editpage-copywarn",     act : "delete node" };  sndx++; ///-m- spamList[sndx] = SpamObj = { id : "editpage-copywarn2",    act : "delete node" };  sndx++; ///-m- spamList[sndx] = SpamObj = { id : "editpage-copywarn3",    act : "delete node" };  sndx++; spamList[sndx] = SpamObj = { id : "editpage-specialchars", act : "hide node" };    sndx++; ///-m- spamList[sndx] = SpamObj = { id : "talkpagetext",          act : "delete node" };  sndx++;

for(var s=0; s<spamList.length; s++) { if(BUG)console.log('dSW: spamList[',s,'].id={',spamList[s].id,'} .class={',spamList[s].class,'}  .act={',spamList[s].act,'} '); var spamStr; with( spamList[s] ) { if( "" != id ) { spamStr = id; var spam = document.getElementById( id ); }    else if( "" != class ) { spamStr = class; var hits = document.getElementsByClass( class, null, null ); if( hits ) var spam = hits[clsNdx]; // this is silly! just use 1st. }    else { if(BUG)console.log('dSW: spamList[s][',s,'].id == .class == "" '); continue; }

if ( !spam ) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}' ); continue; }

switch( act ) { case "delete node": //==========  "delete node"  ======================================= if( !GBUG ) BUG = false; var spamMom = spam.parentNode; if ( !spamMom ) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.parentNode' ); continue; } spamMom.removeChild( spam ); spam = null; break;

case "hide node": //==========  "hide node"  ======================================= if( !GBUG ) BUG = false; var spamMom = spam.parentNode; if ( !spamMom ) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.parentNode' ); continue; } var hndx = 666 + s; // bump index so as not to interfere with "legit" navframe stuff var NavFrame = document.createElement("div"); NavFrame.setAttribute('id', 'NavFrame' + hndx ); NavFrame.className = 'NavFrame'; spamMom.insertBefore( NavFrame, spam ); var NavHead = document.createElement( "div" ); NavHead.textContent = spamStr; NavHead.className = 'NavHead'; NavFrame.appendChild( NavHead ); var NavToggle = document.createElement("a"); NavHead.appendChild( NavToggle ); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + hndx ); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + hndx + ');'); NavToggle.textContent = "[hide]"; spam.id = "NavFrame" + hndx; spam.className += " NavContent"; NavFrame.appendChild( spam ); // re-parents "spam" toggleNavigationBar( hndx ); break;

case "delete last kids": //==========  "delete last kids"  ======================================= if( !GBUG ) BUG = false; if( ! spam.hasChildNodes) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.hasChildNodes' ); continue; } var c0 = spam.firstChild; if(BUG)console.log('dSW: LEAVING: tagName={',c0.tagName,'}, name={',c0.name,'}, kid=',c0 ); if(BUG)console.log(' innerHTML={',c0.innerHTML,'}' ); while( 1 < spam.childNodes.length ) { var lc = spam.lastChild; if(BUG)console.log('dSW: removing: tagName={',lc.tagName,'}, name={',lc.name,'}, kid=',lc ); if(BUG)console.log(' innerHTML={',lc.innerHTML,'}' ); spam.removeChild( spam.lastChild ); if(BUG)console.log(' '); }       break; case "delete last tags": //==========  "delete last tags"  ======================================= if( !GBUG ) BUG = false; if( ! spam.hasChildNodes) { if(BUG)console.log('dSW: NO FIND spam={',spamStr,'}.hasChildNodes' ); continue; } var it0 = -1; for(k=0; k<spam.childNodes.length; k++) { if( spam.childNodes[k].tagName ) { // 1st tag it0 = k + 1; break; }         }        if( it0 < 0 )  // no tags break; var tag0 = spam.childNodes[it0]; if(BUG)console.log('dSW: LEAVING: tagName={',tag0.tagName,'}, name={',tag0.name,'}, kid=',tag0 ); if(BUG)console.log(' innerHTML={',tag0.innerHTML,'}' ); while( it0 < spam.childNodes.length ) { var lc = spam.lastChild; if(BUG)console.log('dSW: removing: tagName={',lc.tagName,'}, name={',lc.name,'}, kid=',lc ); if(BUG)console.log(' innerHTML={',lc.innerHTML,'}' ); spam.removeChild( spam.lastChild ); if(BUG)console.log(' '); }       break; default: if(BUG)console.log('dSW: UNKNOWN act[',s,'] = {',act,'}.' ); continue; } // switch } // with( spam ) BUG = GBUG; } // for(s) } //============================================================================ addOnloadHook( deSpamWiki);

//