API:Alldeletedrevisions
Appearance
This page is part of the MediaWiki Action API documentation. |
MediaWiki version: | ≥ 1.25 |
GET request to list all deleted revisions by a user or in a namespace.
API documentation
[edit]
Example
[edit]GET request
[edit]Get a list of deleted revisions in the main namespace.
Response
[edit]{
"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
[edit]Python
[edit]#!/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
[edit]<?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
[edit]/*
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
[edit]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
[edit]- This module can be used as a generator.
See also
[edit]- API:Recentchanges - List recent changes.
- API:Deletedrevisions - List revisions which have been deleted from a page.