API:Gelöschte Versionen
Appearance
Diese Seite ist Teil der Dokumentation der MediaWiki action API. |
GET-Abfrage um gelöschte Versionsinformationen zu erhalten.
MediaWiki Version: | ≥ 1.25 |
API-Dokumentation
Beispiel
GET-Abfrage
Erhalte eine Liste der gelöschten Versionen für Talk:Main Page.
api.php? action=query& titles=Talk:Main%20Page& prop=deletedrevisions& drvprop=user|comment|content& drvslots=*& format=json [In der ApiSandbox ausprobieren]
Antwort
"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": ""
},
]
},
]
}
Beispielcode
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 );
} );
Mögliche Fehler
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 | Es gibt keinen Abschnitt Abschnitt in rID |
permissiondenied | You don't have permission to view deleted comments. |
drvpermissiondenied | Du hast nicht die Berechtigung, um gelöschte Versionsinformationen einzusehen |
adrpermissiondenied | Du hast nicht die Berechtigung, um gelöschten Versionsinhalt einzusehen |
drvbadparams | user und excludeuser können nicht zusammen genutzt werden |
Mögliche Warnungen
Code | Warnung | Info |
---|---|---|
difftohidden | Couldn't diff to r#####: content is hidden. | Wird ausgegeben, wenn die Version versteckt wurde (z.B. durch Versionslöschung oder Oversight). |
Conversion to XML is supported for wikitext only, title uses content model content model | Wird ausgegeben, wenn die Eigenschaft parsetree oder der Parameter generatexml genutzt wird und das (von der Eigenschaft content ausgegebene) Inhaltsmodell nicht auf wikitext gesetzt wurde.
| |
templateexpansion-notwikitext | Template expansion is only supported for wikitext content. title uses content model content model. | Wird ausgegeben, wenn der Parameter expandtemplates genutzt wird und das (von der Eigenschaft content ausgegebene) Inhaltsmodell nicht auf wikitext gesetzt wurde.
|
apierror-badformat | The requested format contentFormat is not supported for content model model used by name. | Wird ausgegeben, wenn der Inhalt der aktuellen Version oder des Versionsunterschieds nicht unterstützt wird (typischerweise kein Text). |
Parameterhistorie
- v1.32:
slotsize
,slotsha1
,roles
,drvslots
eingeführt - v1.32:
drvcontentformat
veraltet - v1.30:
parsetree
,drvexpandtemplates
,drvparse
,drvdiffto
,drvdifftotext
,drvdifftotextpst
veraltet - v1.27:
drvdifftotextpst
eingeführt - v1.27:
drvdifftotextpst
veraltet - v1.26:
drvgeneratexml
veraltet
Zusätzliche Anmerkungen
- Dieses Modul kann als Generator benutzt werden.
- Dieses Modul listet Versionen auf, die von einer Seite gelöscht wurden, so wie du sie auf Special:Undelete sehen würdest. Sie sollten nicht mit Versionen verwechselt werden, die über die Funktion Versionslöschung versteckt wurden.
Siehe auch
- Manual:RevisionDelete - Um einzelne Seitenversionen zu zeigen und zu verstecken.
- Hilfe:Versionslöschung - Um einzelne Einträge in einer Versionsgeschichte oder einem Logbuch zu verstecken.
- API:Gelöschte Versionen - Zum Auflisten von gelöschten Versionen genutzte API-Parameter.
- API:Versionslöschung - Um Versionen zu löschen und wiederherzustellen.