API:Seznam sledovaných položek v surovém stavu
Appearance
| Tato stránka je součástí dokumentace k API Action MediaWiki. |
| Verze MediaWiki: | ≥ 1.14 |
GET požadavek pro zobrazení všech stránek na seznamu sledovaných stránek přihlášeného uživatele, bez ohledu na to, zda byly nedávno změněny či nikoli.
Tento modul nelze použít jako zdroj.
Dokumentace API
Příklad
Dotazování přes GET
Získejte tři stránky ze seznamu sledovaných položek přihlášeného uživatele z hlavního jmenného prostoru.
Odpověď
{
"batchcomplete": "",
"continue": {
"continue": "-||",
"wrcontinue": "0|Software"
},
"watchlistraw": [
{
"ns": 0,
"title": "Free and open-source software"
},
{
"ns": 0,
"title": "Free software"
},
{
"ns": 0,
"title": "Proprietary software"
}
]
}
Ukázkový kód
Python
#!/usr/bin/python3
"""
get_watchlistraw.py
MediaWiki API Demos
Demo of `Watchlistraw` module: Get three pages on the logged-in user's
watchlist from the main namespace.
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": "watchlistraw",
"format": "json",
"wrnamespace": "0",
"wrlimit": "3"
}
R = S.get(url=URL, params=PARAMS_3)
DATA = R.json()
print(DATA)
PHP
<?php
/*
get_watchlistraw.php
MediaWiki API Demos
Demo of `Watchlistraw` module: Get three pages on the logged-in user's
watchlist from the main namespace.
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: GET request to get the watchlist
function watchlist() {
global $endPoint;
$params3 = [
"action" => "query",
"list" => "watchlistraw",
"wrnamespace" => "0",
"wrlimit" => "3",
"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 );
echo ( $output );
}
JavaScript
/*
get_watchlistraw.js
MediaWiki API Demos
Demo of `Watchlistraw` module: Get three pages on the logged-in user's
watchlist from the main namespace.
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_watchlistraw();
});
}
// Step 3: POST request to get the watchlist
function get_watchlistraw() {
var params_3 = {
action: "query",
list: "watchlistraw",
wrnamespace: "0",
wrlimit: "3",
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_watchlistraw.js
MediaWiki API Demos
Demo of `Watchlistraw` module: Get three pages on the logged-in user's
watchlist from the main namespace.
MIT License
*/
var params = {
action: 'query',
list: 'watchlistraw',
wrnamespace: '0',
wrlimit: '3',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
Možné chyby
| Kód | Popis |
|---|---|
| bad_wlowner | Zadaný uživatel neexistuje. |
| bad_wltoken | Incorrect watchlist token provided. Please set a correct token in Special:Preferences. |
| notloggedin | Pro zobrazení seznamu sledovaných položek se musíte přihlásit. |
| show | Incorrect parameter - mutually exclusive values may not be supplied. |
Historie parametrů
- v1.20: Představeno
wrdir - v1.17: Představeno
wrowner,wrtoken
Další poznámky
- Tento modul by se neměl zaměňovat s modulem API:Seznam sledovaných položek, který vrací stránky na seznamu sledovaných stránek aktuálního uživatele, které byly změněny v daném časovém období, seřazené podle času poslední změny sledované stránky.
- Výsledky tohoto dotazovacího modulu jsou vráceny jako součást uzlu
api, nikoli uzluquery.
Související odkazy
- API:Seznam sledovaných položek – získá stránky ze seznamu sledovaných stránek uživatele, které byly změněny v daném časovém období, seřazené podle času poslední změny sledované stránky.
- API:Zdroj sledovaných položek – získá RSS kanál seznamu sledovaných položek uživatele.