User:A. B./monobook.js
Jump to navigation
Jump to search
Note: After saving, changes may not occur immediately. Click here to learn how to bypass your browser's cache.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Cmd-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (Cmd-Shift-R on a Mac)
- Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Clear the cache in Tools → Preferences
For details and instructions about other browsers, see Wikipedia:Bypass your cache.
Code that you insert on this page could contain malicious content capable of compromising your account. If you are unsure whether code you are adding to this page is safe, you can ask at the central discussion page, Scriptorium. The code will be executed when previewing this page under some skins, including Monobook. You can in the interim if you wish to refresh the content sooner under another skin. |
The accompanying .css page for this skin can be added at User:A. B./monobook.css. |
//removespam.js
var remSpamSummary = {
'bs' : 'Uklonjen vanjski link: __LINK__ -- po osnovi __REPORT__.',
'ca' : 'Llevant l\'enllaç extern: __LINK__ -- per __REPORT__.',
'cs' : 'Odstranění externího odkazu __LINK__ -- na základě __REPORT__.',
'da' : 'Fjerner ekstern henvisning __LINK__ jf. __REPORT__.',
'de' : 'Externer Link __LINK_ gemäß __REPORT__ entfernt.',
'el' : 'Αφαίρεση εξ. συνδ.: __LINK__ -- κατά το __REPORT__.',
'en' : 'Removing external link: __LINK__ -- per __REPORT__.',
'es' : 'Eliminando enlace externo __LINK__ por __REPORT__.',
'eu' : '__LINK__ kanpo lotura kendu da arrazoi honegatik: __REPORT__.',
'fa' : 'حذف پیوند به بیرون: __LINK__ بر طبق __REPORT__.',
'fr' : 'Lien externe __LINK__ enlevé par __REPORT__.',
'fy' : 'Keppeling om utens __LINK__ fuorthelle oerienkomstich __REPORT__.',
'he' : 'מסיר קישור חיצוני: __LINK__ -- לפי __REPORT__.',
'id' : 'Membuang pranala luar: __LINK__ -- per __REPORT__.',
'ja' : '不適切な外部リンクの除去: __LINK__ (関連ページ: __REPORT__)',
'ms' : 'Mengeluarkan pautan luar: __LINK__ -- per __REPORT__.',
'nb' : 'Fjerner ekstern lenke __LINK__ per __REPORT__.',
'nl' : 'Link naar __LINK__ verwijderd per __REPORT__.',
'nn' : 'Fjernar utlenkja __LINK__ per __REPORT__.',
'no' : 'Fjerner ekstern lenke __LINK__ per __REPORT__.',
'pt' : 'Removendo ligação externa __LINK__ por __REPORT__.',
'ru' : 'Удалена внешняя ссылка __LINK__ согласно __REPORT__.',
'sk' : 'Odstránenie externého odkazu __LINK__ -- na základe __REPORT__.',
'uk' : 'Вилучена зовнішня посилання __LINK__ згідно __REPORT__.'
};
function dorem_spam() {
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;
// var elreg = /.*\s*={1,6}external\s*links?={1,6}\s*.*/ig;
// var elreg2 = /(\s*={1,6}external\s*links?={1,6}.*)$/
// if(elreg.test(newtext)) {
// alert('MATCHED');
// var elsect = newtext.replace(elreg, '$1');
// document.getElementById('content').appendChild(document.createTextNode(elreg));
// document.getElementById('content').appendChild(document.createElement('br'));
// document.getElementById('content').appendChild(document.createTextNode(elsect));
// fuu();
// elsect = elsect.replace(new RegExp('^\\s*\\*.*?\\[?https?\\://'+reg+'/?.+?(?:\\s+(.+?)\\]|(\\s)).*?$', 'igm'), '');
// newtext = newtext.replace(elreg, elsect);
// }
if(!query_get('options') || (',' + query_get('options') + ',').indexOf(',lines,') != -1) newtext = newtext.replace(new RegExp('^\\s*\\*.*?\\[?https?\\://'+reg+'/?.+?(?:\\s+(.+?)\\]|.*?)$', 'igm'), '');
if(!query_get('options') || (',' + query_get('options') + ',').indexOf(',citeweb,') != -1) newtext = newtext.replace(new RegExp('(?:<ref(?:\\s*name=["\'].*?["\'])?>\\s*)?\\{\\{\\s*cite[_ ]web\\s*\\|(?:.*?\\|)*\\s*url\\s*=\\s*https?\\://'+reg+'/?.*?\\s*(?:\\|.*?)?\\}\\}(?:\\s*<\/ref>)?', 'ig'), '');
if(!query_get('options') || (',' + query_get('options') + ',').indexOf(',inline,') != -1) newtext = newtext.replace(new RegExp('(?:<ref(?:\\s*name=["\'].*?["\'])?>\\s*)?\\[?https?\\://'+reg+'/?.+?(?:\\s+(.+?)\\]|(\\s))(?:\\s*<\/ref>)?', 'ig'), '$1');
box.value = newtext;
if (query_get('usesummary')) {
summary = query_get('usesummary').replace(/__LINK__/g, tag);
} else if (query_get('remspam') && query_get('report')) {
summary = remSpamSummary[wgContentLanguage] || 'Removing external link: __LINK__ -- per __REPORT__. [[:m:RemSpam|Translate this summary]].';
summary = summary.replace(/__LINK__/g, tag)
summary = summary.replace(/__REPORT__/g, '[[:m:' + query_get('report') + ']]');
} else {
summary = 'Removing external link: '+tag+' per [[m:Talk:Spam_blacklist]]';
}
document.getElementById('wpSummary').value = summary;
document.getElementById('wpMinoredit').checked = true;
document.getElementById('wpWatchthis').checked = false;
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 options = prompt('Please enter the option modes you would want.\nEnter each one in the textbox (without any seperation marker)\ne=Remove lines of External Links that contain the link\ni=Remove links inline in text\nc=Remove Cite_web templates using the link\nExample: ci\nLeave the box blank for all modes');
if(options == null) { alert('Action canceled.'); return; }
if(options == "") options = 'eic';
options = options.split(new RegExp(''));
var opt = '';
for(var x in options) {
var y = options[x];
if(y == 'c') opt += ',citeweb';
if(y == 'i') opt += ',inline';
if(y == 'e') opt += ',lines';
}
opt = opt.substring(1);
options = opt;
var usesummary = prompt('Please enter a summary to use\nDefault: Removing external link: __LINK__ per [[m:Talk:Spam blacklist]]');
if(usesummary == null) { alert('Action canceled.'); return; }
if(usesummary == '') usesummary = 'Removing external link: __LINK__ -- per [[m:Talk:Spam blacklist]]';
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)+'&options='+escape(options)+'&usesummary='+escape(usesummary);
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 = '';
}
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 = '';
}
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';
}
}
}
function addfilter_main() {
mw.util.addPortletLink('p-cactions', "javascript:filter_main()", "filter links", 'ca-filter', 'Filter all pages on here to only be for mainspace');
}
function addrem_spam() {
mw.util.addPortletLink('p-cactions', "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(dorem_spam);
if(wgCanonicalSpecialPageName == "LinkSearch") {
addOnloadHook(addrem_spam);
addOnloadHook(addfilter_main);
}
//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;
}