API:Zdroj sledovaných položek
Akce API MediaWiki |
---|
Základní informace |
Přihlášení |
Uživatelské účty a uživatelé |
Operace spojené se stránkou |
|
Vyhledávání |
Nástroje pro vývojáře |
Návody |
v · d · u |
Požadavek GET, který vrací zdroj Příručka:Seznam sledovaných .
Dokumentace API
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]
Příklad
Pokud pomocí parametru wlowner
není zadán žádný uživatel, toto rozhraní API vám ve výchozím nastavení zobrazí váš vlastní zdroj seznamu sledovaných položek – nebo alespoň zdroj seznamu sledovaných položek účtu, pod kterým jste aktuálně přihlášeni.
Požadavek GET
Odpověď
<?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>
Ukázkový kód
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 """ 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
<?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 */ 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();
Historie parametrů
- v1.27: Představeno
wltype: categorize
- v1.25: Představeno
wlshow: unread
,wlshow: !unread
- v1.24: Zastaralé
linktodiffs
- v1.22: Představeno
wltype
- v1.19: Představeno
wlexcludeuser
- v1.17: Představeno
linktodiffs
- v1.16: Představeno
wltoken
,wlowner
- v1.12: Představeno
allrev
- v1.11: Představeno
hours
Další poznámky
- Toto rozhraní API vám také umožňuje přístup ke zdroji seznamu sledovaných uživatelů prostřednictvím jejich soukromého tokenu seznamu sledovaných. Svůj vlastní token seznamu sledovaných můžete zobrazit nebo resetovat na stránce Special:Preferences pod "Správa klíčů".
- Parametr
wlexcludeuser
přijímá pouze jednu hodnotu. Není možné vyloučit více uživatelů v jednom dotazu. - Toto rozhraní API nevrací JSON – odpovědí bude vždy objekt xml představující zdroj, bez ohledu na to, zda k dotazu přidáte
format=json
. - Zdroj zobrazuje pouze naposledy upravené stránky. Prostřednictvím rozhraní API nebudete moci zobrazit stránky upravené před více než 72 hodinami.
Prostřednictvím rozhraní API nebudete moci zobrazit stránky upravené před více než 72 hodinami. Toto právo musíte robotovi udělit ručně sami. Můžete tak učinit zaškrtnutím "Prohlížení vlastního seznamu sledovaných stránek" přímo na Special:BotPasswords.
Související odkazy
- API:Sledování - přidává nebo odebírá stránky z vašeho vlastního seznamu sledovaných.
- API:Seznam sledovaných položek - modul
action=query
. Získá seznam stránek v seznamu sledovaných uživatelů v daném časovém období. - API:Seznam sledovaných položek v surovém stavu - modul
action=query
. Získá seznam všech stránek v seznamu sledovaných uživatele.