API:Watchlistraw - MediaWiki (original) (raw)

This page is part of the MediaWiki Action API documentation.
MediaWiki version: ≥ 1.14

GET request to list all the pages on the logged in user's watchlist, regardless of whether they were recently changed or not.

This module can be used as a generator.

The following documentation is the output of Special:ApiHelp/query+watchlistraw, automatically generated by the pre-release version of MediaWiki that is running on this site (MediaWiki.org).

Get all pages on the current user's watchlist.

Specific parameters:

wrcontinue

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

wrnamespace

Only list pages in the given namespaces.

Values (separate with | or alternative): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 710, 711, 828, 829, 1198, 1199, 1728, 1729, 2600, 5500, 5501

To specify all values, use *.

wrlimit

How many total results to return per request.

Type: integer or max

The value must be between 1 and 500.

Default: 10

wrprop

Which additional properties to get:

changed

Adds timestamp of when the user was last notified about the edit.

Values (separate with | or alternative): changed

wrshow

Only list items that meet these criteria.

Values (separate with | or alternative): !changed, changed

wrowner

Used along with wrtoken to access a different user's watchlist.

Type: user, by username

wrtoken

A security token (available in the user's preferences) to allow access to another user's watchlist.

wrdir

The direction in which to list.

One of the following values: ascending, descending

Default: ascending

wrfromtitle

Title (with namespace prefix) to begin enumerating from.

wrtotitle

Title (with namespace prefix) to stop enumerating at.

Get three pages on the logged-in user's watchlist from the main namespace.

{ "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" } ] }

#!/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)

"query", "meta" => "tokens", "type" => "login", "format" => "json" ]; url=url = url=endPoint . "?" . http_build_query( $params1 ); ch=curlinit(ch = curl_init( ch=curlinit(url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); output=curlexec(output = curl_exec( output=curlexec(ch ); curl_close( $ch ); result=jsondecode(result = json_decode( result=jsondecode(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,CURLOPTURL,ch, CURLOPT_URL, ch,CURLOPTURL,endPoint ); curl_setopt( $ch, CURLOPT_POST, true ); curl_setopt( ch,CURLOPTPOSTFIELDS,httpbuildquery(ch, CURLOPT_POSTFIELDS, http_build_query( ch,CURLOPTPOSTFIELDS,httpbuildquery(params2 ) ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); output=curlexec(output = curl_exec( output=curlexec(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=url = url=endPoint . "?" . http_build_query( $params3 ); ch=curlinit(ch = curl_init( ch=curlinit(url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); output=curlexec(output = curl_exec( output=curlexec(ch ); curl_close( $ch ); echo ( $output ); } /* 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(); /* 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 ); } ); | Code | Info | | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | | bad\_wlowner | Specified user does not exist. | | bad\_wltoken | Incorrect watchlist token provided. Please set a correct token in [Special:Preferences](/wiki/Special:Preferences "Special:Preferences"). | | notloggedin | You must be logged-in to have a watchlist. | | show | Incorrect parameter - mutually exclusive values may not be supplied. | * v1.20: Introduced `wrdir` * v1.17: Introduced `wrowner`, `wrtoken` * This module should not be confused with [API:Watchlist](/wiki/Special:MyLanguage/API:Watchlist "Special:MyLanguage/API:Watchlist")[ ](/wiki/API:Watchlist "API:Watchlist"), which returns pages on the current user's watchlist that were changed within the given time period, ordered by time of the last change of the watched page. * The results of this query module are returned as part of the `api` node, not the `query` node. * [API:Watchlist](/wiki/Special:MyLanguage/API:Watchlist "Special:MyLanguage/API:Watchlist")[ ](/wiki/API:Watchlist "API:Watchlist") – Get pages on a user's watchlist that were changed within the given time period, ordered by time of the last change of the watched page. * [API:Watchlist feed](/wiki/Special:MyLanguage/API:Watchlist%5Ffeed "Special:MyLanguage/API:Watchlist feed")[ ](/wiki/API:Watchlist%5Ffeed "API:Watchlist feed") – Get the RSS feed of a user's watchlist.