User:Sreejithk2000/deleteorphans.js

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
// $('table.wikitable').find('a').length

'use strict'
var currentCount = 0;
var totalCount = 0;
var successCount = 0;
var failCount = 0;

function printError(message) {
	currentCount++;
	failCount++;
	console.log(message);
	AjaxQuickDelete.showProgress('Done with ' + currentCount + ' of ' + totalCount + ' links. Success: ' + successCount + " Failure: " + failCount);
}

function printSuccess(message) {
	currentCount++;
	successCount++;
	console.log(message);
	AjaxQuickDelete.showProgress('Done with ' + currentCount + ' of ' + totalCount + ' links. Success: ' + successCount + " Failure: " + failCount);
}

function deleteTalkpage(fileName) {
	var params = {
		action: 'delete',
		title: fileName,
		token: mw.user.tokens.get('editToken'),
		reason: 'Orphaned talk page',
		format: 'json'
	};

	$.ajax({
		url: mw.util.wikiScript('api'),
		cache: false,
		dataType: 'json',
		data: params,
		type: 'POST',
		success: function(result, status, x) {
			if (!result) printError("Receive empty API response:\n" + x.responseText);

			else if (result.error) printError("API request failed (" + result.error.code + "): " + result.error.info);
			else printSuccess('Deleted ' + fileName);
		},
		error: function(x, status, error) {
			printError("API request returned code " + x.status + " " + status + "Error code is " + error);
		}
	});
}

totalCount = $('table.wikitable').find('a').length;

function deleteOrphans() {
	$.each($('table.wikitable').find('a'), function(index, value) {
		var fileName = $(value).text();
		deleteTalkpage(fileName);
	});
}

if (mw.config.get("wgPageName") === "Commons:Database_reports/Orphaned_talk_pages") {
	var deleteLink = $('<a>').attr({
		href: "javascript:deleteOrphans()"
	}).html("[delete all]");
	$('h1#firstHeading').append("  ").append($(deleteLink));
}