Jump to content
MediaWiki

API:Revize

From mediawiki.org
This page is a translated version of the page API:Revisions and the translation is 100% complete.
Tato stránka je součástí dokumentace k API Action MediaWiki.
Akce API MediaWiki
Základní informace
Přihlášení
Uživatelské účty a uživatelé
Operace spojené se stránkou
Vyhledávání
Nástroje pro vývojáře
Návody
v · d · u
Verze MediaWiki:
≥ 1.8

Žádost GET pro získání informací o revizi stránky (stránek).

Dokumentace API

Následující dokumentace je výstupem Special:ApiHelp/query+revisions, automaticky generovaným pre-release verzí MediaWiki, která je spuštěna na tomto webu (MediaWiki.org).

prop=revisions (rv)

(main | query | revisions)
  • This module requires read rights.
  • This module can be used as a generator.
  • Source: MediaWiki
  • License: GPL-2.0-or-later

Get revision information.

May be used in several ways:

  1. Get data about a set of pages (last revision), by setting titles or pageids.
  2. Get revisions for one given page, by using titles or pageids with start, end, or limit.
  3. Get data about a set of revisions by setting their IDs with revids.
Specific parameters:
Other general parameters are available.
rvprop

Which properties to get for each revision:

ids
The ID of the revision.
flags
Revision flags (minor).
timestamp
The timestamp of the revision.
user
User that made the revision. If the user has been revision deleted, a userhidden property will be returned.
userid
User ID of the revision creator. If the user has been revision deleted, a userhidden property will be returned.
size
Length (bytes) of the revision.
slotsize
Length (bytes) of each revision slot.
sha1
SHA-1 (base 16) of the revision. If the content has been revision deleted, a sha1hidden property will be returned.
slotsha1
SHA-1 (base 16) of each revision slot. If the content has been revision deleted, a sha1hidden property will be returned.
contentmodel
Content model ID of each revision slot.
comment
Comment by the user for the revision. If the comment has been revision deleted, a commenthidden property will be returned.
parsedcomment
Parsed comment by the user for the revision. If the comment has been revision deleted, a commenthidden property will be returned.
content
Content of each revision slot. If the content has been revision deleted, a texthidden property will be returned. For performance reasons, if this option is used, rvlimit is enforced to 50.
tags
Tags for the revision.
roles
List content slot roles that exist in the revision.
parsetree
Deprecated. Use action=expandtemplates or action=parse instead. The XML parse tree of revision content (requires content model wikitext). For performance reasons, if this option is used, rvlimit is enforced to 50.
Values (separate with | or alternative): comment, content, contentmodel, flags, ids, parsedcomment, roles, sha1, size, slotsha1, slotsize, tags, timestamp, user, userid, parsetree
Default: ids|timestamp|flags|comment|user
rvslots

Which revision slots to return data for, when slot-related properties are included in rvprops. If omitted, data from the main slot will be returned in a backwards-compatible format.

Values (separate with | or alternative): main
To specify all values, use *.
rvcontentformat-{slot}

Content serialization format used for output of content.

This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of rvslots.
One of the following values: application/json, application/octet-stream, application/unknown, application/vue+xml, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
rvlimit

Limit how many revisions will be returned. If rvprop=content, rvprop=parsetree, rvdiffto or rvdifftotext is used, the limit is 50. If rvparse is used, the limit is 1.

May only be used with a single page (mode #2).
Type: integer or max
The value must be between 1 and 500.
rvexpandtemplates
Deprecated.

Use action=expandtemplates instead. Expand templates in revision content (requires rvprop=content).

Type: boolean (details)
rvgeneratexml
Deprecated.

Use action=expandtemplates or action=parse instead. Generate XML parse tree for revision content (requires rvprop=content).

Type: boolean (details)
rvparse
Deprecated.

Use action=parse instead. Parse revision content (requires rvprop=content). For performance reasons, if this option is used, rvlimit is enforced to 1.

Type: boolean (details)
rvsection

Only retrieve the content of the section with this identifier.

rvdiffto
Deprecated.

Use action=compare instead. Revision ID to diff each revision to. Use prev, next and cur for the previous, next and current revision respectively. For performance reasons, if this option is used, rvlimit is enforced to 50.

rvdifftotext
Deprecated.

Use action=compare instead. Text to diff each revision to. Only diffs a limited number of revisions. Overrides rvdiffto. If rvsection is set, only that section will be diffed against this text. For performance reasons, if this option is used, rvlimit is enforced to 50.

rvdifftotextpst
Deprecated.

Use action=compare instead. Perform a pre-save transform on the text before diffing it. Only valid when used with rvdifftotext.

Type: boolean (details)
rvcontentformat
Deprecated.

Serialization format used for rvdifftotext and expected for output of content.

One of the following values: application/json, application/octet-stream, application/unknown, application/vue+xml, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
rvstartid

Start enumeration from the timestamp of the revision with this ID. The revision must exist, but need not belong to this page.

May only be used with a single page (mode #2).
Type: integer
rvendid

Stop enumeration at the timestamp of the revision with this ID. The revision must exist, but need not belong to this page.

May only be used with a single page (mode #2).
Type: integer
rvstart

From which revision timestamp to start enumeration.

May only be used with a single page (mode #2).
Type: timestamp (allowed formats)
rvend

Enumerate up to this timestamp.

May only be used with a single page (mode #2).
Type: timestamp (allowed formats)
rvdir

In which direction to enumerate:

newer
List oldest first. Note: rvstart has to be before rvend.
older
List newest first (default). Note: rvstart has to be later than rvend.
May only be used with a single page (mode #2).
One of the following values: newer, older
Default: older
rvuser

Only include revisions made by user.

May only be used with a single page (mode #2).
Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
rvexcludeuser

Exclude revisions made by user.

May only be used with a single page (mode #2).
Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
rvtag

Only list revisions tagged with this tag.

rvcontinue

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

Examples:
Get data with content for the last revision of titles API and MediaWiki.
api.php?action=query&prop=revisions&titles=API|MediaWiki&rvslots=*&rvprop=timestamp|user|comment|content [open in sandbox]
Get last 5 revisions of the MediaWiki.
api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment [open in sandbox]
Get first 5 revisions of the MediaWiki.
api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvdir=newer [open in sandbox]
Get first 5 revisions of the MediaWiki made after 2006年05月01日.
api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvdir=newer&rvstart=2006年05月01日T00:00:00Z [open in sandbox]
Get first 5 revisions of the MediaWiki that were not made by anonymous user 127.0.0.1.
api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvexcludeuser=127.0.0.1 [open in sandbox]
Get first 5 revisions of the MediaWiki that were made by the user MediaWiki default.
api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvuser=MediaWiki%20default [open in sandbox]

Příklad 1: Získání dat revizí několika stránek

Dotazování přes GET

Výše uvedený požadavek je získat data revizí stránek s názvy API a Main Page

Odpověď

Odpověď
{
"batchcomplete":true,
"query":{
"pages":[
{
"pageid":1423,
"ns":0,
"title":"Main Page",
"revisions":[
{
"user":"Bdk",
"timestamp":"2005年09月16日T01:14:43Z",
"comment":"Reverted edit of 82.36.210.14, changed back to last version by Brion VIBBER"
}
]
},
{
"pageid":55332,
"ns":0,
"title":"API",
"revisions":[
{
"user":"Mainframe98",
"timestamp":"2017年08月19日T18:23:42Z",
"comment":"Reverted edits by [[Special:Contributions/Sankaran kumar|Sankaran kumar]] ([[User talk:Sankaran kumar|talk]]) to last revision by [[User:Shirayuki|Shirayuki]]"
}
]
}
]
}
}

Ukázkový kód

Python

#!/usr/bin/python3
"""
 get_pages_revisions.py
 MediaWiki API Demos
 Demo of `Revisions` module: Get revision data with content for pages
 with titles [[API]] and [[Main Page]]
 MIT License
"""
importrequests
S = requests.Session()
URL = "https://www.mediawiki.org/w/api.php"
PARAMS = {
 "action": "query",
 "prop": "revisions",
 "titles": "API|Main Page",
 "rvprop": "timestamp|user|comment|content",
 "rvslots": "main",
 "formatversion": "2",
 "format": "json"
}
R = S.get(url=URL, params=PARAMS)
data = R.json()
pages = data["query"]["pages"]
for page in pages:
 print(page["revisions"])

PHP

<?php
/*
 get_pages_revisions.php
 MediaWiki API Demos
 Demo of `Revisions` module: Get revision data with content for pages with titles [[API]] and [[Main Page]]
 MIT License
*/
$endPoint = "https://www.mediawiki.org/w/api.php";
$params = [
 "action" => "query",
 "prop" => "revisions",
 "titles" => "API|Main Page",
 "rvprop" => "timestamp|user|comment|content",
 "rvslots" => "main",
 "formatversion" => "2",
 "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 );
foreach( $result["query"]["pages"] as $k => $v ) {
 var_dump( $v["revisions"] );
}

JavaScript

/*
 get_pages_revisions.js
 MediaWiki API Demos
 Demo of `Revisions` module: Get revision data with content for pages with titles [[API]] and [[Main Page]]
 MIT License
*/
varurl="https://www.mediawiki.org/w/api.php";
varparams={
action:"query",
prop:"revisions",
titles:"API|Main Page",
rvprop:"timestamp|user|comment|content",
rvslots:"main",
formatversion:"2",
format:"json"
};
url=url+"?origin=*";
Object.keys(params).forEach(function(key){url+="&"+key+"="+params[key];});
fetch(url)
.then(function(response){returnresponse.json();})
.then(function(response){
varpages=response.query.pages;
for(varpinpages){
console.log(pages[p].revisions);
}
})
.catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_pages_revisions.js
	MediaWiki API Demos
	Demo of `Revisions` module: Get revision data with content for pages with
	titles [[API]] and [[Main Page]]
	MIT License
*/
varparams={
action:'query',
prop:'revisions',
titles:'API|Main Page',
rvprop:'timestamp|user|comment|content',
rvslots:'main',
formatversion:'2',
format:'json'
},
api=newmw.Api();
api.get(params).done(function(data){
varpages=data.query.pages,
p;
for(pinpages){
console.log(pages[p].revisions);
}
});

Příklad 2: Získání posledních pět revizí stránky filtrovaných podle data a uživatele

Dotazování přes GET

Výše uvedený požadavek je získat data za posledních pět revizí stránky API:Geosynchronizace provedených po 1. červenci 2018, tj. 2018年07月01日, s výjimkou změn provedených uživatelem SSethi (WMF)

Odpověď

Odpověď
{
"batchcomplete":"",
"query":{
"pages":{
"812323":{
"pageid":812323,
"ns":104,
"title":"API:Geosearch",
"revisions":[
{
"user":"Shirayuki",
"timestamp":"2018年11月04日T05:25:34Z",
"comment":"translation tweaks"
},
{
"user":"Shirayuki",
"timestamp":"2018年11月25日T06:06:50Z",
"comment":"translation tweaks"
}
]
}
}
}
}

Ukázkový kód

get_filtered_page_revisions.py


Python

#!/usr/bin/python3
"""
 get_filtered_page_revisions.py
 MediaWiki API Demos
 Demo of `Revisions` module: Get data including content of last 5 revisions
 of the title [[API:Geosearch]] made after the 1st of July 2018 i.e 2018年07月01日
 excluding changes made by the user SSethi (WMF)
 MIT License
"""
importrequests
S = requests.Session()
URL = "https://www.mediawiki.org/w/api.php"
PARAMS = {
 "action": "query",
 "prop": "revisions",
 "titles": "API:Geosearch",
 "rvlimit": "5",
 "rvprop": "timestamp|user|comment|content",
 "rvdir": "newer",
 "rvstart": "2018年07月01日T00:00:00Z",
 "rvexcludeuser": "SSethi (WMF)",
 "rvslots": "main",
 "formatversion": "2",
 "format": "json"
}
r = S.get(url=URL, params=PARAMS)
data = r.json()
pages = data["query"]["pages"]
for page in pages:
 print(page["revisions"])

PHP

<?php
/*
 get_filtered_page_revisions.php
 MediaWiki API Demos
 Demo of `Revisions` module: Get data including content of last 5 revisions of the title [[API:Geosearch]] made after July 1st 2018 excluding changes made by the user SSethi (WMF)
 MIT License
*/
$endPoint = "https://www.mediawiki.org/w/api.php";
$params = [
 "action" => "query",
 "prop" => "revisions",
 "titles" => "API:Geosearch",
 "rvlimit" => "5",
 "rvprop" => "timestamp|user|comment|content",
 "rvdir" => "newer",
 "rvstart" => "2018年07月01日T00:00:00Z",
 "rvexcludeuser" => "SSethi (WMF)",
 "rvslots" => "main",
 "formatversion" => "2",
 "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 );
foreach( $result["query"]["pages"] as $k => $v ) {
 var_dump( $v["revisions"] );
}

JavaScript

/*
 get_filtered_page_revisions.js
 MediaWiki API Demos
 Demo of `Revisions` module: Get data including content of last 5 revisions of the title [[API:Geosearch]] made after July 1st 2018 excluding changes made by the user SSethi (WMF)
 MIT License
*/
varurl="https://www.mediawiki.org/w/api.php";
varparams={
action:"query",
prop:"revisions",
titles:"API:Geosearch",
rvlimit:"5",
rvprop:"timestamp|user|comment|content",
rvdir:"newer",
rvstart:"2018年07月01日T00:00:00Z",
rvexcludeuser:"SSethi (WMF)",
rvslots:"main",
formatversion:"2",
format:"json"
};
url=url+"?origin=*";
Object.keys(params).forEach(function(key){url+="&"+key+"="+params[key];});
fetch(url)
.then(function(response){returnresponse.json();})
.then(function(response){
varpages=response.query.pages;
for(varpinpages){
console.log(pages[p].revisions);
}
})
.catch(function(error){console.log(error);});

MediaWiki JS

/*
	get_filtered_page_revisions.js
	MediaWiki API Demos
	Demo of `Revisions` module: Get data including content of last 5 revisions of the
	title [[API:Geosearch]] made after July 1st 2018 excluding changes made by the user SSethi (WMF)
	MIT License
*/
varparams={
action:'query',
prop:'revisions',
titles:'API:Geosearch',
rvlimit:'5',
rvprop:'timestamp|user|comment|content',
rvdir:'newer',
rvstart:'2018年07月01日T00:00:00Z',
rvexcludeuser:'SSethi (WMF)',
rvslots:'main',
formatversion:'2',
format:'json'
},
api=newmw.Api();
api.get(params).done(function(data){
varpages=data.query.pages,
p;
for(pinpages){
console.log(pages[p].revisions);
}
});

Příklad 3: Získání poslední revize stránky po všech přesměrováních

Dotazování přes GET

Výše uvedený požadavek je získat data o revizi stránky AntiSpoof po jakýchkoli přesměrováních. Protože AntiSpoof přesměrovává na Extension:AntiSpoof , ve skutečnosti vrátí data revize na Extension:AntiSpoof .

Odpověď

Odpověď
{
"batchcomplete":true,
"query":{
"redirects":[
{
"from":"AntiSpoof",
"to":"Extension:AntiSpoof"
}
],
"pages":[
{
"pageid":8993,
"ns":102,
"title":"Extension:AntiSpoof",
"revisions":[
{
"revid":3419761,
"parentid":3053177,
"minor":true,
"user":"Shirayuki",
"timestamp":"2019年09月22日T05:14:46Z",
"comment":""
}
]
}
]
}
}

Možné chyby

Kód Popis
rvdiffto rvdiffto musí být nastaveno na "prev", "next", "cur" nebo nezáporné číslo.
rvnosuchrevid There is no revision with ID ID.
rvnosuchsection V rID není žádná sekce section
rvrevids The revids parameter may not be used with the list options (rvlimit, rvstartid, rvendid, rvdir=newer, rvuser, rvexcludeuser, rvstart, and rvend).
rvmultpages titles, pageids or a generator was used to supply multiple pages, but the rvlimit, rvstartid, rvendid, rvdir=newer, rvuser, rvexcludeuser, rvstart, and rvend parameters may only be used on a single page.
rvaccessdenied Aktuální uživatel nemá povolení číst title
rvbadparams start a startid nelze použít společně
rvbadparams end a endid nelze použít společně
rvbadparams user a excludeuser nelze použít společně
invalidparammix titles, pageids or a generator was used to supply multiple pages, but the rvlimit, rvstartid, rvendid, rvdir=newer, rvuser, rvexcludeuser, rvstart, and rvend parameters may only be used on a single page.
accessdenied You are not allowed to view title.
badid_startid No revision was found for parameter startid.
badid_endid No revision was found for parameter endid.

Další poznámky

  • Stránky jsou specifikovány parametrem pageids nebo titles. Jednotlivé revize jsou specifikovány parametrem revids. Podívejte se na stránku API:Dotazy .
  • Sloty lze zadat pomocí parametru rvslots. Pokud parametr není přítomen, API vrátí pouze informace o hlavním slotu.
  • Při použití parametrů označených jako (enum) musí mít titles= uveden pouze jeden titul.
  • Tento modul nebylo možné použít jako generátor před verzí 1.25.
  • Funkce rozdílů tohoto modulu byla ve verzi 1.30 zastaralá a byla přesunuta na API:Compare .
  • Kód pro tento dotaz se nachází v úložišti git na ApiQueryRevisions.php .

Historie parametrů

  • v1.32: Představeno rvslots, roles Zastaralé rvcontentformat
  • v1.30: Zastaralé rvprop=parsetree, rvexpandtemplates, rvparse, rvdiffto, rvdifftotext, rvdifftotextpst
  • v1.27: Představeno rvdifftotextpst
  • v1.26: Představeno parsetree Zastaralé rvgeneratexml
  • v1.24: Zastaralé rvtoken
  • v1.21: Představeno contentmodel, rvcontentformat
  • v1.19: Představeno sha1, rvparse
  • v1.17: Představeno userid, rvparse
  • v1.16: Představeno parsedcomment, tags, rvdifftotext, rvtag
  • v1.15: Představeno rvdiffto, rvcontinue
  • v1.14: Představeno rvgeneratexml
  • v1.13: Představeno rvsection
  • v1.12: Představeno rvexpandtemplates, rvtoken
  • v1.11: Představeno ids, flags, size, rvuser, rvexcludeuser

Související odkazy

AltStyle によって変換されたページ (->オリジナル) /