Jump to content

User:Δ/Spam.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//<nowiki>
//Written by [[User:GeorgeMoney]], thanks to [[User:Where]] and [[User:Eagle_101]] for help with this!
//Modified by [[User:Betacommand]]


if(mw.config.get('wgNamespaceNumber') == -1) {
 addOnloadHook(function() {
 var tbs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
 addlilink(tbs, "javascript:rem_spam()", "remove external links", 'ca-remspam', 'Alter all the links on this page to autorem the external link on the page when clicked');
 });
}

if(location.href.indexOf('action=edit') != -1 && location.href.indexOf('remspam=') != -1) {
 addOnloadHook(function() {
 var tag = query_get('remspam');
 var box = document.getElementById('wpTextbox1');
 var txt = box.value;
 var reg = tag.replace('http://', '').replace(/\./g, '\\.').replace(/\*\\?\./g, '(?:.*?\\.)?');
 var newtext = ''+txt;
 newtext = newtext.replace(new RegExp('^\\s*\\*.*?\\[?https?://'+reg+'/?(\\s*.*?)?\\]?.*?$', 'igm'), '');
 newtext = newtext.replace(new RegExp('(?:<ref(?:\\s*name=["\'].*?["\'])?>\\s*)?\\{\\{\\s*cite[_ ]web\\s*\\|(?:.*?\\|)*\\s*url\\s*=\\s*https?\\://'+reg+'/?.*?\\s*(?:\\|.*?)?\\}\\}(?:\\s*<\/ref>)?', 'ig'), '');
 newtext = newtext.replace(new RegExp('(?:<ref(?:\\s*name=["\'].*?["\'])?>\\s*)?\\[?https?\\://'+reg+'/?.*?(\\s+.+?)\\]?(?:\\s*<\/ref>)?', 'ig'), '$1');
 box.value = newtext;
 document.getElementById('wpSummary').value = 'Removing external link: '+tag+' -- per [[WP:EL|external link guidelines]]';
 document.getElementById('wpMinoredit').checked = true;
 document.getElementById('wpWatchthis').checked = true;
 document.getElementById('wpDiff').click();
 });
}

function rem_spam() {
 var targ = query_get('target') || unescape(location.href).split('/').reverse()[0].split('?')[0].split('#')[0];
 var tag = prompt('Please insert a link (without http://) to remove from\nall pages listed here. Example (and default if textbox is blank):\n'+targ);
 if(tag == null) { alert('Action canceled.'); return; }
 if(tag === "") tag = targ;
 var links = document.getElementById('bodyContent').getElementsByTagName('a');
 for(var i=0; i<links.length; i++) {
 var link = links[i];
 var cha = (link.href.indexOf('?') != -1) ? '&' : '?';
 link.href += cha + 'linkmodified=yes&action=edit&remspam='+escape(tag);
 link.style.color = "green";
 link.onmouseup = function() { this.style.color = 'orange'; }; 
 link.innerHTML = link.innerHTML.replace(/(<([^>]+)>)/g, '');
 }
 var btn = document.getElementById('ca-remspam').firstChild;
 btn.href = 'javascript:unrem_spam();';
 btn.innerHTML = 'un-highlight links';
 btn.title = '';
 addTab(tbs, "javascript:void(filter_main())", "filter", 'ca-filter', 'Filter all pages on here to only be for mainspace');
};

function unrem_spam() {
 var links = document.getElementById('bodyContent').getElementsByTagName('a');
 for(var i=0; i<links.length; i++) {
 var link = links[i];
 link.href = link.href.split('linkmodified=yes')[0];
 link.style.color = "";
 }
 alert('All links will now be safe to click...');
 var btn = document.getElementById('ca-remspam').firstChild;
 btn.href = 'javascript:rem_spam();';
 btn.innerHTML = 'remove external links';
 btn.title = '';
};

//parse paramName out of query string
//stolen from Lupin's popups
function query_get(paramName) {
  var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
  var h=document.location;
  var m;
  if (m=cmdRe.exec(h)) {
    try { 
      return unescape(m[1]);
    } catch (someError) {}
  }
  return null;
};


function filter_main() {
 var lis = document.getElementById('bodyContent').getElementsByTagName('li'); 
 var len = lis.length;
 for(var i=0; i<len; i++) { 
 var li = lis[i]; 
 if(li.getElementsByTagName('a')[1].innerHTML.indexOf(':') != -1) { 
 //li.parentNode.removeChild(li);
 li.style.display = 'none';
 }
 }
};

if(mw.config.get('wgPageName') == 'Special:LinkSearch') {
 addOnloadHook(function() {
 var tbs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
 addlilink(tbs, "javascript:filter_main();", "filter", 'ca-filter', 'Filter all pages on here to only be for mainspace');
 });
};

function substNRD() {
  if (document.editform) {
    document.editform.wpTextbox1.value = "\n{{" + "db-f8}}\n"+document.editform.wpTextbox1.value;
    document.editform.wpSummary.value = "commons dupe";
    document.editform.submit();
  } else
    document.location = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + mw.config.get('wgPageName') + "&action=edit&substNRD=1";
};
function addSubstNRD(){
  if (mw.config.get('wgCanonicalNamespace') == "File")
    mw.util.addPortletLink("p-cactions", "javascript:substNRD()", "{{" + "dfu}}", "");
  if (document.location.href.indexOf("substNRD=1") > 0)
    substNRD();
};
$(addSubstNRD);
//</nowiki>