API:Deletedrevisions/Sample code 1
Appearance
From mediawiki.org
Python
[edit ]#!/usr/bin/python3 """ deleted_revisions.py MediaWiki API Demos Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page. MIT License """ importrequests S = requests.Session() URL = "https://test.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://www.test.wikipedia.org/wiki/Manual:Bot_passwords # 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) DATA = R.json() # Step 3: While logged in, send a get reguest to get a list of deleted revisions for Talk:Main Page. PARAMS = { "action": "query", "titles": "Talk:Main_Page", "prop": "deletedrevisions", "drvprop": "user|comment|content", "drvslots": "*", "format": "json" } R = S.get(url=URL, params=PARAMS) DATA = R.json() print(DATA)
PHP
[edit ]<?php /* deleted_revisions.php MediaWiki API Demos Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page. MIT License */ $endPoint = "https://test.wikipedia.org/w/api.php"; $login_Token = getLoginToken(); // Step 1 loginRequest( $login_Token ); // Step 2 deletedRevisions(); // 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: Send a POST request to log in. For this login method, // obtain credentials by first visiting https://www.test.wikipedia.org/wiki/Manual:Bot_passwords // See https://www.mediawiki.org/wiki/API:Login for more information on log in methods. 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: Send a GET request to get a list of deleted revisions for Talk:Main Page. function deletedRevisions() { $params = [ "action" => "query", "titles" => "Talk:Main_Page", "prop" => "deletedrevisions", "drvprop" => "user|comment|content", "drvslots" => "*", "format" => "json" ]; $url = $endPoint . "?" . http_build_query( $params ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $output = curl_exec( $ch ); curl_close( $ch ); $result = json_decode( $output, true ); var_dump( $result ); }
JavaScript
[edit ]/* deleted_revisions.js MediaWiki API Demos Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page. MIT License */ varrequest=require("request").defaults({jar:true}), url="https://en.wikipedia.org/w/api.php"; // Step 1: GET Request to fetch login token functiongetLoginToken(){ varparams_0={ action:"query", meta:"tokens", type:"login", format:"json" }; request.get({url:url,qs:params_0},function(error,res,body){ if(error){ return; } vardata=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 functionloginRequest(login_token){ varparams_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; } deletedRevisions(); }); } // Step 3: Get a list of deleted revisions for Talk:Main Page. functiondeletedRevisions(){ varparams={ action:"query", titles:"Talk:Main_Page", prop:"deletedrevisions", drvprop:"user|comment|content", drvslots:"*", format:"json" }; url=url+"?origin=*"; Object.keys(params).forEach(function(key){url+="&"+key+"="+params[key];}); fetch(url) .then(function(response){returnresponse.json();}) .then(function(response){console.log(response);}) .catch(function(error){console.log(error);}); }
MediaWiki JS
[edit ]/* deleted_revisions.js MediaWiki API Demos Demo of `Deletedrevisions` module: Get a list of deleted revisions for Talk:Main Page. MIT License */ varparams={ action:'query', titles:'Talk:Main_Page', prop:'deletedrevisions', drvprop:'user|comment|content', drvslots:'*', format:'json' }, api=newmw.Api(); api.get(params).done(function(data){ console.log(data); });