GET request to get deleted revision information.

MediaWiki version:
1.25

API documentation


Special:ApiHelp/query+deletedrevisions

Example

GET request

Get a list of deleted revisions for Talk:Main Page.

Response

"query": {
        "pages": [
            {
                "ns": 1,
                "title": "Talk:Main Page",
                "missing": "",
                "deletedrevisions": [
                    {
                        "user": "192.168.0.193",
                        "anon": "",
                        "comment": "I iz in yer wiki, blanking yer talk pages",
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "content": ""
                    },
                ]
            },
        ]
    }

Sample code

Python

#!/usr/bin/python3

"""
    deleted_revisions.py

    MediaWiki API Demos
    Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page.

    MIT License
"""

import requests

S = requests.Session()

URL = "https://test.wikipedia.org/w/api.php"

# Step 1: Retrieve a login token
PARAMS_1 = {
    "action": "query",
    "meta": "tokens",
    "type": "login",
    "format": "json"
}

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

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

# Step 2: Send a POST request to log in. For this login
# method, obtain credentials by first visiting
# https://www.test.wikipedia.org/wiki/Manual:Bot_passwords
# See https://www.mediawiki.org/wiki/API:Login for more
# information on log in methods.
PARAMS_2 = {
    "action": "login",
    "lgname": "user_name",
    "lgpassword": "password",
    "format": "json",
    "lgtoken": LOGIN_TOKEN
}

R = S.post(URL, data=PARAMS_2)
DATA = R.json()

# Step 3: While logged in, send a get reguest to get a list of deleted revisions for Talk:Main Page.
PARAMS = {
    "action": "query",
    "titles": "Talk:Main_Page",
    "prop": "deletedrevisions",
    "drvprop": "user|comment|content",
    "drvslots": "*",
    "format": "json"
}

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

print(DATA)

PHP

<?php

/*
    deleted_revisions.php

    MediaWiki API Demos
    Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page.

    MIT License
*/

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

$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
deletedRevisions(); // 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: Send a POST request to log in. For this login method, 
// obtain credentials by first visiting https://www.test.wikipedia.org/wiki/Manual:Bot_passwords
// See https://www.mediawiki.org/wiki/API:Login for more information on log in methods.
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: Send a GET request to get a list of deleted revisions for Talk:Main Page.
function deletedRevisions() {
    $params = [
        "action" => "query",
        "titles" => "Talk:Main_Page",
        "prop" => "deletedrevisions",
        "drvprop" => "user|comment|content",
        "drvslots" => "*",
        "format" => "json"
    ];

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

    $ch = curl_init( $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    $output = curl_exec( $ch );
    curl_close( $ch );

    $result = json_decode( $output, true );
    var_dump( $result );
}

JavaScript

/*
    deleted_revisions.js

    MediaWiki API Demos
    Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page.

    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;
        }
        deletedRevisions();
    });
}

// Step 3: Get a list of deleted revisions for Talk:Main Page.
function deletedRevisions() {

    var params = {
        action: "query",
        titles: "Talk:Main_Page",
        prop: "deletedrevisions",
        drvprop: "user|comment|content",
        drvslots: "*",
        format: "json"
    };

    url = url + "?origin=*";
    Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});

    fetch(url)
        .then(function(response){return response.json();})
        .then(function(response) {console.log(response);})
        .catch(function(error){console.log(error);});
}

MediaWiki JS

/*
	deleted_revisions.js

	MediaWiki API Demos
	Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page.

	MIT License
*/

var params = {
		action: 'query',
		titles: 'Talk:Main_Page',
		prop: 'deletedrevisions',
		drvprop: 'user|comment|content',
		drvslots: '*',
		format: 'json'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	console.log( data );
} );

Possible errors

Code Info
drvdiffto drvdiffto must be set to a non-negative number, prev, next or cur.
drvnosuchrevid There is no revision with ID ID.
drvnosuchsection There is no section section in rID
permissiondenied You don't have permission to view deleted comments.
drvpermissiondenied You don't have permission to view deleted revision information
adrpermissiondenied You don't have permission to view deleted revision content
drvbadparams user and excludeuser cannot be used together

Possible warnings

Code Warning Info
difftohidden Couldn't diff to r#####: content is hidden. Thrown when the revision has been hidden (e.g., using RevisionDelete or Oversight).
Conversion to XML is supported for wikitext only, title uses content model content model Thrown when the parsetree property or generatexml parameter is used and the content model (as returned by the content property) is not set to wikitext
templateexpansion-notwikitext Template expansion is only supported for wikitext content. title uses content model content model. Thrown when the expandtemplates parameter is used and the content model (as returned by the content property) is not set to wikitext
apierror-badformat The requested format contentFormat is not supported for content model model used by name. Thrown when the content of either the current revision or one being diffed to is not supported (typically, not text).

Parameter history

  • v1.32: Introduced slotsize, slotsha1, roles, drvslots
  • v1.32: Deprecated drvcontentformat
  • v1.30: Deprecated parsetree, drvexpandtemplates, drvparse, drvdiffto, drvdifftotext, drvdifftotextpst
  • v1.27: Introduced drvdifftotextpst
  • v1.27: Deprecated drvdifftotextpst
  • v1.26: Deprecated drvgeneratexml

Additional notes

  • This module can be used as a {{ll|API:Query#Generators|generator}}.
  • This module lists revisions which have been deleted from a page, as you would see in Special:Undelete. It should not be confused with revisions which have been hidden via the {{ll|Manual:RevisionDelete|Revision Delete}} feature.

See also

  • Manual:RevisionDelete - To show and hide individual page revisions.
  • Help:RevisionDelete - To hide individual entries in a page history or log.
  • API:Deletedrevs - API parameters used for listing deleted revisions.
  • API:Revisiondelete - To delete and undelete revisions.
This article is issued from Mediawiki. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.