API:Watchlist feed
MediaWiki Action API |
---|
Basics |
Authentication |
Accounts and Users |
Page Operations |
|
Search |
Developer Utilities |
Tutorials |
v · d · e |
GET request that returns a Manual:Watchlist feed.
API documentation
[edit ]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]
Example
[edit ]If no user is specified via the wlowner
parameter, this API defaults to showing you your own watchlist feed -- or, at least, the watchlist feed of the account you are currently logged in as.
GET request
[edit ]Response
[edit ]<?xml version="1.0"?> <rssversion="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>MediaWiki1.33.0-wmf.13</generator> <lastBuildDate>Tue,22Jan201916:20:52GMT</lastBuildDate> <item> <title>ArticleonWatchlist</title> ... </item> </channel> </rss>
Sample code
[edit ]Python
[edit ]#!/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 """ importrequests 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
[edit ]<?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
[edit ]/* get_my_watchlist_feed.js MediaWiki API Demos Demo of `Feedwatchlist` module: Get the watchlist feed for the account making the request. MIT license */ varrequest=require('request').defaults({jar:true}), url="https://test.wikipedia.org/w/api.php"; // Step 1: GET request to fetch login token functiongetLoginToken(){ varparams_1={ action:"query", meta:"tokens", type:"login", format:"json" }; request.get({url:url,qs:params_1},function(error,res,body){ if(error){ return; } vardata=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 functionloginRequest(login_token){ varparams_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 functiongetWatchlistFeed(){ varparams_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();
Parameter history
[edit ]- v1.27: Introduced
wltype: categorize
- v1.25: Introduced
wlshow: unread
,wlshow: !unread
- v1.24: Deprecated
linktodiffs
- v1.22: Introduced
wltype
- v1.19: Introduced
wlexcludeuser
- v1.17: Introduced
linktodiffs
- v1.16: Introduced
wltoken
,wlowner
- v1.12: Introduced
allrev
- v1.11: Introduced
hours
Additional notes
[edit ]- This API also allows you to access another user's watchlist feed, via their private watchlist token. You can view or reset your own watchlist token by visiting Special:Preferences, under "Manage tokens".
- The
wlexcludeuser
parameter only accepts one value; it is not possible to exclude multiple users in a single query. - This API does not return JSON -- the response will always be an xml object representing the feed, regardless of whether you add
format=json
to your query. - The feed only displays the most recently modified pages. You will not be able to view pages modified more than 72 hours ago via the API.
- Although ordinary accounts are granted the right to view their own watchlist by default, bots work differently. You must manually grant the bot this right yourself. You can do so by checking off the "View your own watchlist" right on Special:BotPasswords.
See also
[edit ]- API:Watch - adds or removes pages from your own watchlist.
- API:Watchlist - an
action=query
module; gets a list of pages in the watchlist of a user, within a given time period. - API:Watchlistraw - an
action=query
module; gets a list of all pages within the watchlist of a user.