API:Beobachtungsliste
Diese Seite ist Teil der Dokumentation der MediaWiki action API. |
MediaWiki Version: | ≥ 1.9 |
GET-Abfrage um Seiten auf der Beobachtungsliste des aktuellen Benutzers aufzulisten, die im angegebenen Zeitraum geändert wurden, sortiert nach dem Zeitpunkt der letzten Änderung der beobachteten Seite.
Dieses Modul kann als Generator benutzt werden.
API-Dokumentation
Beispiel
GET-Anfrage
Erhält die Beobachtungsliste des derzeit angemeldeten Benutzers.
Antwort
{
"batchcomplete": "",
"query": {
"watchlist": [
{
"ns": 1,
"old_revid": 898447862,
"pageid": 5858,
"revid": 898447924,
"title": "Talk:Software",
"type": "edit"
},
{
"ns": 0,
"old_revid": 896386764,
"pageid": 18934886,
"revid": 897854521,
"title": "Proprietary software",
"type": "edit"
},
{
"minor": "",
"ns": 0,
"old_revid": 894771707,
"pageid": 1721496,
"revid": 897348916,
"title": "Free and open-source software",
"type": "edit"
}
]
}
}
Beispielcode
Python
#!/usr/bin/python3
"""
get_watchlist.py
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.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 bot credentials by visiting
# https://en.wikipedia.org/wiki/Special:BotPasswords/
# See https://www.mediawiki.org/wiki/API:Login for more
# information on log in methods.
PARAMS_2 = {
"action": "login",
"lgname": "username",
"lgpassword": "password",
"format": "json",
"lgtoken": LOGIN_TOKEN
}
R = S.post(URL, data=PARAMS_2)
# Step 3: While logged in, get the watchlist
PARAMS_3 = {
"action": "query",
"list": "watchlist",
"format": "json"
}
R = S.get(url=URL, params=PARAMS_3)
DATA = R.json()
print(DATA)
PHP
<?php
/*
get_watchlist.php
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT license
*/
$endPoint = "https://test.wikipedia.org/w/api.php";
$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
watchlist(); // 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: POST request to get the watchlist
function watchlist() {
global $endPoint;
$params4 = [
"action" => "query",
"list" => "watchlist",
"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( $params4 ) );
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"]["watchlist"] as $k => $v ) {
echo( $v["title"] . "\n" );
}
}
JavaScript
/*
get_watchlist.js
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT license
*/
var request = require('request').defaults({jar: true}),
url = "https://test.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;
}
get_watchlist();
});
}
// Step 3: POST request to get the watchlist
function get_watchlist() {
var params_3 = {
action: "query",
list: "watchlist",
format: "json"
};
request.post({ url: url, form: params_3 }, function (error, res, body) {
if (error) {
return;
}
console.log(body);
});
}
// Start From Step 1
getLoginToken();
MediaWiki JS
/*
get_watchlist.js
MediaWiki API Demos
Demo of `Watchlist` module: Get the currently logged-in user's watchlist.
MIT License
*/
var params = {
action: 'query',
list: 'watchlist',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
Mögliche Fehler
Code | Information |
---|---|
wlnotloggedin | You must be logged-in to have a watchlist |
wlpatrol | patrol property is not available |
wlshow | Incorrect parameter - mutually exclusive values may not be supplied. |
Parametergeschichte
- v1.24: Eingeführt
unread
,!unread
- v1.23: Eingeführt
wlcontinue
- v1.22: Eingeführt
wltype
- v1.18: Eingeführt
loginfo
- v1.17: Eingeführt
userid
- v1.16: Eingeführt
wluser
,wlexcludeuser
,parsedcomment
,notificationtimestamp
,wlowner
,wltoken
- v1.14: Eingeführt
patrolled
,!patrolled
- v1.12: Eingeführt
wlshow
- v1.11: Eingeführt
ids
,title
,flags
,sizes
Zusätzliche Anmerkungen
- Dieses Modul sollte nicht mit API:Beobachtungsliste roh verwechselt werden, welches alle Seiten auf der Beobachtungsliste des angemeldeten Benutzers auflistet, unabhängig davon, ob sie kürzlich geändert wurden oder nicht.
Siehe auch
- API:Beobachten - Bearbeiten Sie die Beobachtungsliste.
- API:Beobachtungsliste roh - Erhält alle Seiten auf der Beobachtungsliste des angemeldeten Benutzers auflistet, unabhängig davon, ob sie kürzlich geändert wurden oder nicht.
- API:Beobachtungslisten-Feed - Erhält einen RSS-Feed der Beobachtungsliste eines Benutzers.