API:Watchlist feed/es
![]() | Esta página es parte de la documentación de la API de acciones de MediaWiki. |
Versión de MediaWiki: | ≥ 1.9 |
Solicitud GET que devuelve un Manual:Watchlist feed.
API Documentación
![]() | La siguiente documentación es la salida de Special: |
action=feedwatchlist
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0-or-later
Returns a watchlist feed.
- feedformat
The format of the feed.
- One of the following values: atom, rss
- Default: rss
- hours
List pages modified within this many hours from now.
- Type: integer
- The value must be between 1 and 72.
- Default: 24
- linktosections
Link directly to changed sections if possible.
- Type: boolean (details)
- allrev
Include multiple revisions of the same page within given timeframe.
- Type: boolean (details)
- wlowner
Used along with token to access a different user's watchlist.
- Type: user, by username
- wltoken
A security token (available in the user's preferences) to allow access to another user's watchlist.
- wlshow
Show only items that meet these criteria. For example, to see only minor edits done by logged-in users, set show=minor|!anon.
- Values (separate with | or alternative): !anon, !autopatrolled, !bot, !minor, !patrolled, !unread, anon, autopatrolled, bot, minor, patrolled, unread
- wltype
Which types of changes to show:
- edit
- Regular page edits.
- new
- Page creations.
- log
- Log entries.
- external
- External changes.
- categorize
- Category membership changes.
- Values (separate with | or alternative): categorize, edit, external, log, new
- Default: edit|new|log|categorize
- wlexcludeuser
Don't list changes by this user.
- Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
- Show the watchlist feed.
- api.php?action=feedwatchlist [open in sandbox]
- Show all changes to watched pages in the past 6 hours.
- api.php?action=feedwatchlist&allrev=&hours=6 [open in sandbox]
Ejemplo
Si no se especifica ningún usuario a través del parámetro wlowner
, esta API te muestra por defecto tu propia la lista de observación feed, al menos, la lista de observación feed de la cuenta con la que actualmente has iniciado sesión.
Solicitud GET
Respuesta
<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Wikipedia - Watchlist [en]</title>
<link>https://en.wikipedia.org/wiki/Special:Watchlist</link>
<description>Watchlist</description>
<language>en</language>
<generator>MediaWiki 1.33.0-wmf.13</generator>
<lastBuildDate>Tue, 22 Jan 2019 16:20:52 GMT</lastBuildDate>
<item>
<title>Article on Watchlist</title>
...
</item>
</channel>
</rss>
Código de muestra
Python
#!/usr/bin/python3
"""
get_my_watchlist_feed.py
MediaWiki API Demos
Demo of `Feedwatchlist` module: Get the watchlist feed
for the account making the request.
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 credentials by first 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": "user_name",
"lgpassword": "password",
"format": "json",
"lgtoken": LOGIN_TOKEN
}
R = S.post(URL, data=PARAMS_2)
# Step 3: Request the account's own watchlist feed
PARAMS_3 = {
"action": "feedwatchlist"
}
R = S.get(url=URL, params=PARAMS_3)
DATA = R.text
print(DATA)
PHP
<?php
/*
get_my_watchlist_feed.php
MediaWiki API Demos
Demo of `Feedwatchlist` module: Get the watchlist feed
for the account making the request.
MIT license
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$login_Token = getLoginToken(); // Step 1
loginRequest( $login_Token ); // Step 2
get_watchlist_feed(); // 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: Request the account's own watchlist feed
function get_watchlist_feed() {
global $endPoint;
$params3 = [
"action" => "feedwatchlist",
"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_my_watchlist_feed.js
MediaWiki API Demos
Demo of `Feedwatchlist` module: Get the watchlist feed
for the account making the request.
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_1 = {
action: "query",
meta: "tokens",
type: "login",
format: "json"
};
request.get({ url: url, qs: params_1 }, function(error, res, body) {
if (error) {
return;
}
var data = JSON.parse(body);
loginRequest(data.query.tokens.logintoken);
});
}
// Step2: Send a post request to login. 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_2 = {
action: "login",
lgname: "bot_username",
lgpassword: "bot_password",
lgtoken: login_token,
format: "json"
};
request.post({
url: url,
form: params_2,
}, function(error, res, body) {
if (error) {
return;
}
getWatchlistFeed();
});
}
// Step 3: Request the account's own watchlist feed
function getWatchlistFeed() {
var params_3 = {
action: "feedwatchlist"
};
request.get({ url: url, qs: params_3 }, function(error, res, body) {
if (error) {
return;
}
console.log(body);
});
}
// Start From Step 1
getLoginToken();
Historia de parámetro
- v1.27: Introducido
wltype: categorize
- v1.25: Introducido
wlshow: unread
,wlshow: !unread
- v1.24: En desuso
linktodiffs
- v1.22: Introducido
wltype
- v1.19: Introducido
wlexcludeuser
- v1.17: Introducido
linktodiffs
- v1.16: Introducido
wltoken
,wlowner
- v1.12: Introducido
allrev
- v1.11: Introducido
hours
Notas adicionales
- Este API también te permite acceder al feed de la lista de observación de otro usuario, a través de su token de lista de observación privada. Puedes ver o restablecer tu propio token de la lista de observación visitando Especial:Preferencias, bajo "Gestionar fichas".
- El parámetro
wlexcludeuser
solo acepta un valor; No es posible excluir a varios usuarios en una sola consulta. - Este API no devuelve JSON -- la respuesta siempre será un objeto xml representando el feed, sin importar si tú agregas
format=json
a tu consulta. - El feed solo muestra las páginas modificadas más recientemente. No podrás ver páginas modificadas hace más de 72 horas a través de la API.
- Aunque las cuentas ordinarias tienen concedido el derecho de ver su propia lista de observación por defecto, los bots trabajan de manera diferente. Tienes que concederle manualmente al bot este derecho. Puede hacerlo marcando el "Ver su propia lista de seguimiento" correcto en Special:BotPasswords.
Véase también
- API:Seguir - agrega o elimina páginas de tu propia lista de observación.
- API:Watchlist - un módulo
action=query
; obtiene una lista de páginas de la lista de observación de un usuario, dentro de un período de tiempo determinado. - API:Watchlistraw - un módulo
action=query
; obtiene una lista de todas las páginas dentro de la lista de observación de un usuario.