MediaWiki version:
1.25

GET request to list all deleted revisions by a user or in a namespace.

API documentation


Special:ApiHelp/query+alldeletedrevisions

Example

GET request

Get a list of deleted revisions in the main namespace.

Response

{
    "query": {
        "alldeletedrevisions": [
            {
                "pageid": 0,
                "revisions": [
                    {
                        "user": "Mahesh",
                        "comment": "Test for my all deleted revisions",
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "content": "Page for alldeletedrevisions"
                    }
                ],
                "ns": 0,
                "title": "ADR Page"
            }
        ]
    }
}

Sample code

Python

#!/usr/bin/python3

"""
    get_all_deleted_revisions.py

    MediaWiki API Demos
    Demo of `alldeletedrevisions` module: List all deleted revisions from a User.

    MIT License
"""
import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"
# Step1: Retrieve login token
PARAMS_0 = {
    'action':"query",
    'meta':"tokens",
    'type':"login",
    'format':"json"
}

R = S.get(url=URL, params=PARAMS_0)
DATA = R.json()

LOGIN_TOKEN = DATA['query']['tokens']['logintoken']

# Step2: Send a post request to login. Use of main account for login is not
# supported. Obtain credentials via Special:BotPasswords
# (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
PARAMS_1 = {
    'action':"login",
    'lgname':"your_bot_username",
    'lgpassword':"your_bot_password",
    'lgtoken':LOGIN_TOKEN,
    'format':"json"
}

R = S.post(URL, data=PARAMS_1)

# Step 3: Send a get request to get all the deleted revisions

PARAMS_2 = {
    "action": "query",
    "list": "alldeletedrevisions",
    "adruser": "Mahesh",
    "adrprop": "ids|user|comment",
    "format": "json"
}

R = S.get(url=URL, params=PARAMS_2)
DATA = R.json()

PAGES = DATA['query']['alldeletedrevisions']

for p in PAGES:
    print("Revision for Page " + p["title"])
    for adrev in p["revisions"]:
        print(adrev)


PHP

<?php

/*
    get_all_deleted_revisions.php

    MediaWiki API Demos
    Demo of `alldeletedrevisions` module: List all the deleted revisions from a user.

    MIT License
*/

$endPoint ="https://en.wikipedia.org/w/api.php"

$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
all_deleted_revisions(); // Step 3

// Step 1: GET request to fetch login token
function getLoginToken() {
	global $endPoint;

	$params1 = [
		"action" => "query",
		"meta" => "tokens",
		"type" => "login",
		"format" => "json"
	];

	$url = $endPoint . "?" . http_build_query( $params1 );

	$ch = curl_init( $url );
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
	curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
	curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );

	$output = curl_exec( $ch );
	curl_close( $ch );

	$result = json_decode( $output, true );
	return $result["query"]["tokens"]["logintoken"];
}

// Step 2: POST request to log in. Use of main account for login is not
// supported. Obtain credentials via Special:BotPasswords
// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
function loginRequest( $logintoken ) {
	global $endPoint;

	$params2 = [
		"action" => "login",
		"lgname" => "bot_user_name",
		"lgpassword" => "bot_password",
		"lgtoken" => $logintoken,
		"format" => "json"
	];

	$ch = curl_init();

	curl_setopt( $ch, CURLOPT_URL, $endPoint );
	curl_setopt( $ch, CURLOPT_POST, true );
	curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params2 ) );
	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
	curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
	curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );

	$output = curl_exec( $ch );
	curl_close( $ch );

}

// Step 3: GET request to get all the deleted revisions
function all_deleted_revisions() {
	global $endPoint;

    $params3 = [
        "action" => "query",
        "list" => "alldeletedrevisions",
        "adruser" => "mahesh",
        "adrprop" => "ids|user|comment",

        "format" => "json"
    ];

	$url = $endPoint . "?" . http_build_query( $params3 );

	$ch = curl_init( $url );

	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
	curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" );
	curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" );

	$output = curl_exec( $ch );
	curl_close( $ch );

    $result = json_decode( $output, true );

	foreach( $result["query"]["alldeletedrevisions"] as $page ){
        echo( "Revision for page " . $page["title"] . "\n" );
        foreach( $page["revisions"] as $adrev ){
            var_dump( $adrev );
        }
    }
}

JavaScript

/*
    get_all_deleted_revisions.js

    MediaWiki API Demos
    Demo of `alldeletedrevisions` module: List all the deleted revisions from a User.

    MIT License
*/

var request = require('request').defaults({jar: true}),
    url = "https://en.wikipedia.org/w/api.php";

// Step 1: GET request to fetch login token
function getLoginToken() {
    var params_0 = {
        action: "query",
        meta: "tokens",
        type: "login",
        format: "json"
    };

    request.get({ url: url, qs: params_0 }, function (error, res, body) {
        if (error) {
            return;
        }
        var data = JSON.parse(body);
        loginRequest(data.query.tokens.logintoken);
    });
}

// Step 2: POST request to log in.
// Use of main account for login is not
// supported. Obtain credentials via Special:BotPasswords
// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword
function loginRequest(login_token) {
    var params_1 = {
        action: "login",
        lgname: "bot_username",
        lgpassword: "bot_password",
        lgtoken: login_token,
        format: "json"
    };

    request.post({ url: url, form: params_1 }, function (error, res, body) {
        if (error) {
            return;
        }
        all_deleted_revisions();
    });
}

// Step 3: GET request to get the deleted revisions
function all_deleted_revisions() {
    var params_2 = {
        action: "query",
        list: "alldeletedrevisions",
        adruser: "Mahesh",
        adrprop: "ids|user|comment",
        format: "json"
    };

    request.get({ url: url, qs: params_2 }, function(error, res, body) {
        if (error) {
            return;
        }
        var data = JSON.parse(body);
        var pages = data.query.alldeletedrevisions;
        for (var p in pages) {
            console.log("Revision for Page " + pages[p].title);
            for (var adrev in pages[p].revisions) {
                console.log(pages[p].revisions[adrev]);
            }
        }
    });
}

// Start From Step 1
getLoginToken();

Possible errors

Code Info
adrdiffto adrdiffto must be set to a non-negative number, "prev", "next" or "cur"
adrnosuchrevid There is no revision with ID ID
adrnosuchsection There is no section section in rID
adrpermissiondenied You don't have permission to view deleted comments.
adrpermissiondenied You don't have permission to view content of deleted revisions.
adrbadparams The adrfrom/adrto/adrprefix/adrexcludeuser parameter cannot be used with adruser
adrbadparams The adrstart/adrend parameter may only be used with adruser

Additional notes

  • This module can be used as a generator.

See also

  • API:Recentchanges - List recent changes.
  • API:Deletedrevisions - List revisions which have been deleted from a page.
This article is issued from Mediawiki. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.