User:Msh210/watchlist.js

//Adds "unwatch" links to watchlist and recentchanges. //Seems good for FF; not tested elsewhere. //Todo: Add links for watchlist's log-entry lines also. (Difficulty is finding the right pagename.) function unwatchlinks { switch(mw.config.get('wgCanonicalSpecialPageName')){ case 'Watchlist': lists=document.getElementsByTagName('ul'); for (i=0;i-1;j--) { if (items[j].nodeType>1) continue;//li elements, not whitespace difflink=items[j].firstChild; while (difflink.nodeType>1) difflink=difflink.nextSibling;//first element sub the li      diffurl=difflink.getAttribute('href');// /w/index.php?title=TITLE&amp;OTHERPARAMS if not a log entry if (diffurl.indexOf('/wiki/')) {//not a log entry title=diffurl.split('=')[1]; title=title.split('&')[0];//pagename of the watchlist item newurl='/wiki/'+title+'?action=unwatch'; anch=document.createElement('a'); anch.setAttribute('href',newurl); anch.appendChild(document.createTextNode('unwatch')); items[j].insertBefore(anch,difflink); spacer=document.createTextNode(') ('); items[j].insertBefore(spacer,difflink); }//end if indexOf }//end for j    }//end if special }//end if hasAttr };//end for i break;//case 'My watchlist' case 'Recentchanges': strongs=document.getElementsByTagName('strong'); for (i=0;i1) continue;//elements only, so a element pageurl=children[j].getAttribute('href');// /wiki/TITLE unwatchurl=pageurl+'?action=unwatch'; anch=document.createElement('a'); anch.setAttribute('href',unwatchurl); anch.appendChild(document.createTextNode('(unwatch)')); strong.parentNode.insertBefore(anch,strong); spacer=document.createTextNode(' '); strong.parentNode.insertBefore(spacer,strong); break;//for j, don't look at subsequent whitespace }//end for j   }//end if mw-watched }//end for i break;//case 'Recent changes' }//end switch };//end function $(unwatchlinks);