API:Compare/tr
![]() | Bu sayfa MediaWiki Eylem API'si belgelerinin bir parçasıdır. |
İki sayfa arasındaki farkı elde etmek için GET isteği.
MediaWiki sürümü: | ≥ 1.18 |
API belgesi
![]() | Aşağıdaki belgelendirme, bu sitede (MediaWiki.org) çalışan MediaWiki'nin sürüm öncesi sürümü tarafından otomatik olarak oluşturulan Special: |
action=compare
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0-or-later
Get the difference between two pages.
A revision number, a page title, a page ID, text, or a relative reference for both "from" and "to" must be passed.
- fromtitle
First title to compare.
- fromid
First page ID to compare.
- Type: integer
- fromrev
First revision to compare.
- Type: integer
- fromslots
Override content of the revision specified by fromtitle, fromid or fromrev.
This parameter specifies the slots that are to be modified. Use fromtext-{slot}, fromcontentmodel-{slot}, and fromcontentformat-{slot} to specify content for each slot.
- Values (separate with | or alternative): main
- fromtext-{slot}
Text of the specified slot. If omitted, the slot is removed from the revision.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of fromslots.
- fromsection-{slot}
When fromtext-{slot} is the content of a single section, this is the section identifier. It will be merged into the revision specified by fromtitle, fromid or fromrev as if for a section edit.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of fromslots.
- fromcontentformat-{slot}
Content serialization format of fromtext-{slot}.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of fromslots.
- 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
- fromcontentmodel-{slot}
Content model of fromtext-{slot}. If not supplied, it will be guessed based on the other parameters.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of fromslots.
- One of the following values: GadgetDefinition, Json.JsonConfig, JsonSchema, MassMessageListContent, NewsletterContent, Scribunto, SecurePoll, css, flow-board, javascript, json, sanitized-css, text, translate-messagebundle, unknown, vue, wikitext
- frompst
Do a pre-save transform on fromtext-{slot}.
- Type: boolean (details)
- fromtext
- Deprecated.
Specify fromslots=main and use fromtext-main instead.
- fromcontentformat
- Deprecated.
Specify fromslots=main and use fromcontentformat-main instead.
- 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
- fromcontentmodel
- Deprecated.
Specify fromslots=main and use fromcontentmodel-main instead.
- One of the following values: GadgetDefinition, Json.JsonConfig, JsonSchema, MassMessageListContent, NewsletterContent, Scribunto, SecurePoll, css, flow-board, javascript, json, sanitized-css, text, translate-messagebundle, unknown, vue, wikitext
- fromsection
- Deprecated.
Only use the specified section of the specified 'from' content.
- totitle
Second title to compare.
- toid
Second page ID to compare.
- Type: integer
- torev
Second revision to compare.
- Type: integer
- torelative
Use a revision relative to the revision determined from fromtitle, fromid or fromrev. All of the other 'to' options will be ignored.
- One of the following values: cur, next, prev
- toslots
Override content of the revision specified by totitle, toid or torev.
This parameter specifies the slots that are to be modified. Use totext-{slot}, tocontentmodel-{slot}, and tocontentformat-{slot} to specify content for each slot.
- Values (separate with | or alternative): main
- totext-{slot}
Text of the specified slot. If omitted, the slot is removed from the revision.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of toslots.
- tosection-{slot}
When totext-{slot} is the content of a single section, this is the section identifier. It will be merged into the revision specified by totitle, toid or torev as if for a section edit.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of toslots.
- tocontentformat-{slot}
Content serialization format of totext-{slot}.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of toslots.
- 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
- tocontentmodel-{slot}
Content model of totext-{slot}. If not supplied, it will be guessed based on the other parameters.
- This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of toslots.
- One of the following values: GadgetDefinition, Json.JsonConfig, JsonSchema, MassMessageListContent, NewsletterContent, Scribunto, SecurePoll, css, flow-board, javascript, json, sanitized-css, text, translate-messagebundle, unknown, vue, wikitext
- topst
Do a pre-save transform on totext.
- Type: boolean (details)
- totext
- Deprecated.
Specify toslots=main and use totext-main instead.
- tocontentformat
- Deprecated.
Specify toslots=main and use tocontentformat-main instead.
- 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
- tocontentmodel
- Deprecated.
Specify toslots=main and use tocontentmodel-main instead.
- One of the following values: GadgetDefinition, Json.JsonConfig, JsonSchema, MassMessageListContent, NewsletterContent, Scribunto, SecurePoll, css, flow-board, javascript, json, sanitized-css, text, translate-messagebundle, unknown, vue, wikitext
- tosection
- Deprecated.
Only use the specified section of the specified 'to' content.
- prop
Which pieces of information to get.
- diff
- The diff HTML.
- diffsize
- The size of the diff HTML, in bytes.
- rel
- The revision IDs of the revision previous to 'from' and after 'to', if any.
- ids
- The page and revision IDs of the 'from' and 'to' revisions.
- title
- The page titles of the 'from' and 'to' revisions.
- user
- The username and ID of the 'from' and 'to' revisions. If the user has been revision deleted, a fromuserhidden or touserhidden property will be returned.
- comment
- The comment on the 'from' and 'to' revisions. If the comment has been revision deleted, a fromcommenthidden or tocommenthidden property will be returned.
- parsedcomment
- The parsed comment on the 'from' and 'to' revisions. If the comment has been revision deleted, a fromcommenthidden or tocommenthidden property will be returned.
- size
- The size of the 'from' and 'to' revisions.
- timestamp
- The timestamp of the 'from' and 'to' revisions.
- Values (separate with | or alternative): comment, diff, diffsize, ids, parsedcomment, rel, size, timestamp, title, user
- Default: diff|ids|title
- slots
Return individual diffs for these slots, rather than one combined diff for all slots.
- Values (separate with | or alternative): main
- To specify all values, use *.
- difftype
Return the comparison formatted as inline HTML.
- One of the following values: inline, table, unified
- Default: table
- Create a diff between revision 1 and 2.
- api.php?action=compare&fromrev=1&torev=2 [open in sandbox]
Örnek
GET isteği
Yanıt
{
"compare": {
"fromid": 1882196,
"fromrevid": 739666518,
"fromns": 10,
"fromtitle": "Template:Unsigned",
"toid": 32371774,
"torevid": 909784724,
"tons": 10,
"totitle": "Template:UnsignedIP",
...
}
}
Örnek kod
Python
#!/usr/bin/python3
"""
compare.py
MediaWiki Action API Code Samples
Demo of `Compare` module: Compare the current revisions of two different pages
MIT license
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
'action':"compare",
'format':"json",
'fromtitle':'Template:Unsigned',
'totitle':'Template:UnsignedIP'
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA)
PHP
<?php
/*
compare.php
MediaWiki Action API Code Samples
Demo of `Compare` module: Compare the current revisions of two different pages
MIT license
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "compare",
"format" => "json",
"fromtitle" => "Template:Unsigned",
"totitle" => "Template:UnsignedIP"
];
$url = $endPoint . "?" . http_build_query( $params );
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec( $ch );
curl_close( $ch );
echo( $output );
JavaScript
/*
compare.js
MediaWiki Action API Code Samples
Demo of `Compare` module: Compare the current revisions of two different pages
MIT license
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "compare",
format: "json",
fromtitle: "Template:Unsigned",
totitle: "Template:UnsignedIP"
};
request.get({ url: url, qs: params }, function(error, res, body) {
if (error) {
return;
}
console.log(body);
});
MediaWiki JS
/*
compare.js
MediaWiki Action API Code Samples
Demo of `Compare` module: Compare the current revisions of two different pages
MIT license
*/
var params = {
action: "compare",
format: "json",
fromtitle: "Template:Unsigned",
totitle: "Template:UnsignedIP"
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
Olası hatalar
Kod | Bilgi |
---|---|
compare-relative-to-nothing | torelative göreli olması için 'from' revizyonu yok. |
compare-relative-to-deleted | Silinmiş bir düzeltmeye göre torelative=value kullanılamaz. |
missingrev-title | title başlıkta şu anki düzeltme yok. |
baddiff | Fark alınamıyor. Düzeltmelerden biri veya her ikisi mevcut değil veya bunları görüntüleme izniniz yok. |
missingcontent-revid | Düzeltme kimliği revid için eksik içerik. |
invalidtitle | Kötü başlık "title". |
nosuchpageid | id kimliğine sahip sayfa yok. |
missingtitle-byname | name sayfası mevcut değil. |
nosuchrevid | id kimliğine sahip bir düzeltme yok. |
missingcontent-revid-role | main rolü için id düzeltme kimliği için eksik içerik. |
compare-nosuchfromsection | 'from' içeriğinde name bölüm yok. |
compare-nosuchtosection | 'to' içeriğinde name bölüm yok. |
compare-maintextrequired | fromslots main içerdiğinde fromtext-main parametresi gereklidir (ana yuvayı silemezsiniz). |
compare-maintextrequired | toslots main içerdiğinde totext-main parametresi gereklidir (ana yuvayı silemezsiniz). |
compare-notext | $1 parametresi, $2 olmadan kullanılamaz. |
compare-no-title | Başlık olmadan dönüşüm önceden kaydedilemez. fromtitle veya totitle belirtmeyi deneyin. |
compare-nofromrevision | 'from' revizyonu yok. fromrev, fromtitle veya fromid öğelerini belirtin. |
compare-notorevision | 'to' revizyonu yok. torev, totitle veya toid belirtin. |
sectionsnotsupported | Bölümler, içerik modeli model için desteklenmiyor. |
sectionreplacefailed | Güncellenen bölüm birleştirilemedi. |
missingparam | fromtitle , fromid , fromrev , fromtext , fromrelative ve fromslots parametrelerden en az biri gerekli. |
missingparam | totitle , toid , torev , totext , torelative ve toslots parametrelerden en az biri gerekli. |
Parametre geçmişi
- v1.32:
fromslots
,toslots
,fromtext-{slot}
,fromsection-{slot}
,fromcontentformat-{slot}
,fromcontentmodel-{slot}
,totext-{slot}
,tosection-{slot}
,tocontentformat-{slot}
,tocontentmodel-{slot}
tanıtıldı - v1.30:
frompst
,torelative
,topst
,prop
tanıtıldı - v1.20:
fromid
,toid
tanıtıldı
Ek notlar
İki sayfa arasındaki farkı elde etmek için bir revizyon numarası, bir sayfa başlığı veya hem from
hem de to
için bir sayfa kimliği geçirilmelidir.
İlk ve son revizyonda göreceli karşılaştırma
- Bir sayfanın ilk revizyonunda önceki ile göreceli bir karşılaştırma isteyebilirsiniz, bu, ilk revizyonun tam metninin fark olarak döndürülmesiyle sonuçlanır. Bunun doğru olmadığını unutmayın, çünkü bazı durumlarda ilk revizyondan önce sayfa için varsayılan içerik olabilir.
fromrevid
mülkü sonuçlarda yer almayacak. - Benzer şekilde, bir sayfanın son revizyonunda bir sonraki göreceli karşılaştırmayı isteyebilirsiniz.
- (Not: Bu konunun yazılmasıyla ilgili son düzeltmedir. Sayfa korunduğundan, büyük olasılıkla değişmemelidir.) Sonuç boş bir farktır ve
torevid
olmayacaktır. Çoğu revizyon karşılaştırmasının aksine, yeni bir revizyon oluşturulursa bu sonuçlar değişecektir.
API'deki bu davranış tarihseldir. Bir dizi revizyon olarak sayfa tarihinin kavramsal modeliyle tutarlı değildir. İlk revizyonla karşılaştırılacak previous
revizyon veya son revizyonla karşılaştırılacak next
revizyon yoktur. Bu nedenle, MediaWiki'nin gelecekteki sürümleri bu API çağrısı için farklı sonuçlar verebilir.
HTML çıkışını kullanma
prop
, diff
ve parsedcomment
değerlerinin HTML pasajlarını döndürmesini sağlar.
diff
HTML, en azından aşağıdaki işaretlemeyle bir tabloya gömülmesi gereken tablo satırlarının (<tr>
öğeleri) bir listesidir:
<table class="diff">
<colgroup>
<col class="diff-marker">
<col class="diff-content">
<col class="diff-marker">
<col class="diff-content">
</colgroup>
<tbody>
FARK HTML PASAJINI BURAYA GİDER
</tbody>
</table>
Meta verileri de görüntülemek için, ör. kullanıcı veya yorum ekleyin, fazladan satır ekleyin ve meta verileri <td colspan="2">
öğesinin içine yerleştirin.
Bu farkın doğru görüntülendiğinden emin olmak için (ör. fark işaretçisi ve içerik sütunları aynı genişlikte olmadığından) sayfanıza mediawiki.diff.styles
ResourceLoader modülünü ekleyebilirsiniz:
<link rel="stylesheet" href="https://www.mediawiki.org/w/load.php?modules=mediawiki.diff.styles&only=styles">
parsedcomment
görüntülemek istiyorsanız, aynı şekilde yorumlar ve otomatik teklifler için bazı temel stiller içeren mediawiki.legacy.shared
modülünü eklemek istersiniz:
<link rel="stylesheet" href="https://www.mediawiki.org/w/load.php?modules=mediawiki.legacy.shared&only=styles">
Sayfada hem diff
hem de parsedcomment
HTML'yi görüntülemek istiyorsanız, bu iki etiketi bir araya getirebilirsiniz:
<link rel="stylesheet" href="https://www.mediawiki.org/w/load.php?modules=mediawiki.legacy.shared|mediawiki.diff.styles&only=styles">