User:Mike.lifeguard/autoDelete.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// Outline for an automatic delete link generator.
// Not highly tested. Started by Splarka @ test.wikipedia
// Written for & maintained by Mike_lifeguard @ en.wikibooks
//GO IF contribs, RC, whatlinkshere, log, prefixindex, newpages, (article and not special and [submit or view or purge])
var wgCanonicalNamespace = mw.config.get('wgCanonicalNamespace');
var wgCanonicalSpecialPageName = mw.config.get('wgCanonicalSpecialPageName');
var wgAction = mw.config.get('wgAction');
var wgIsArticle = mw.config.get('wgIsArticle');
var wgServer = mw.config.get('wgServer');
var wgArticlePath = mw.config.get('wgArticlePath');
if( wgCanonicalSpecialPageName == "Contributions"
|| wgCanonicalSpecialPageName == "Recentchanges"
|| wgCanonicalSpecialPageName == "Whatlinkshere"
|| wgCanonicalSpecialPageName == "Log"
|| wgCanonicalSpecialPageName == "Prefixindex"
|| wgCanonicalSpecialPageName == "Newpages"
|| (wgIsArticle == true
&& wgCanonicalNamespace != "Special"
&& ( wgAction == "submit" || wgAction == "view" || wgAction == "purge" )
)
) $(function(){
mw.util.addPortletLink('p-cactions','javascript:deleteLinkify()','autodelete','ca-dellink','generate deletion links');
})
function deleteLinkify() {
var reason = prompt('Enter default delete reason','per speedy deletion policy');
if(!reason) return;
var links = document.getElementById('bodyContent').getElementsByTagName('a');
var arp = wgServer + wgArticlePath.replace(/\$1/,'');
if(links.length == 0) return
for(var i=0;i<links.length;i++) {
if(links[i].href.indexOf(arp)==0 && links[i].href.indexOf('action=delete') == -1 && links[i].href.indexOf('/Special:') == -1 ) {
links[i].href += '?action=delete&submitdelete=true&deletetalkalso=true&wpReason=' + encodeURIComponent(reason);
links[i].innerHTML += ' (delete)';
}
}
}
if(queryString('submitdelete') == 'true') addOnloadHook(function() {
if(document.getElementById('ca-talk').className.indexOf('new')==-1 && queryString('deletetalkalso')=='true' && ( wgNamespaceNumber % 2 == 0 ) ) {//if the talk tab is redlinked and this is the first time 'round AND this is not a talk page then:
document.getElementById('deleteconfirm').action += '&deletetalk=true&wpReason=' + queryString('wpReason');
}
var sub = (document.getElementById('wpConfirmB')) ? document.getElementById('wpConfirmB') : document.getElementById('mw-filedelete-submit')
sub.click();
})
if(wgAction == 'delete' && queryString('deletetalk') == 'true') addOnloadHook(function() {
var url = document.getElementById('ca-talk').getElementsByTagName('a')[0].href + '?action=delete&submitdelete=true&wpReason=' + queryString('wpReason');
document.location.href = url;
})
function queryString(p) {
var re = RegExp('[&?]' + p + '=([^&]*)');
var matches;
if (matches = re.exec(document.location)) {
try {
return decodeURI(matches[1]);
}
catch (e) {
}
}
return null;
}