mirror of
https://github.com/Hopiu/webapi-eca.git
synced 2026-03-17 06:20:23 +00:00
49 lines
2 KiB
JavaScript
49 lines
2 KiB
JavaScript
'use strict';
|
|
|
|
var urlService = 'http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&exchars=200&explaintext&titles=Computer%20science';
|
|
//http://www.mediawiki.org/wiki/API:Search
|
|
/*
|
|
* 1. try to get title right away: http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&titles=Computer%20science
|
|
* if success add it in comment, else issue search:
|
|
* 2. http://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srwhat=text&srsearch=cs&srlimit=3
|
|
* get snippets and add comments
|
|
*
|
|
*/
|
|
|
|
function search(text) {
|
|
var ret = requestTitle(text);
|
|
if(!ret) ret = searchText(text);
|
|
}
|
|
|
|
function requestTitle(title, cbDone, cbFail) {
|
|
needle.get('http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&exchars=200&explaintext&titles=' + encodeURI(title),
|
|
function handleResponse(error, response, body) {
|
|
obj = JSON.parse(body);
|
|
if(error || response.statusCode != 200 || !obj || !obj.query || !obj.query.pages || obj.query.pages['-1']) {
|
|
searchText(title, cbDone, cbFail);
|
|
} else {
|
|
var pgs = obj.query.pages;
|
|
for(var el in pgs) console.log('found: ' + pgs[el].title);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
function searchText(text, cbDone, cbFail) {
|
|
needle.get('http://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srwhat=text&srlimit=3&srsearch=' + encodeURI(text),
|
|
function handleResponse(error, response, body) {
|
|
obj = JSON.parse(body);
|
|
if(error || response.statusCode != 200 || !obj || !obj.query || !obj.query.search || obj.query.search.length == 0) {
|
|
console.log('nothing found for this tag');
|
|
if(cbFail) cbFail('nothing found for this tag');
|
|
} else {
|
|
var srch = obj.query.search;
|
|
for(var i = 0; i < srch.length; i++) {
|
|
console.log('found: ' + srch[i].title + ' [' + srch[i].snippet + ']');
|
|
if(cbDone) cbDone('found: ' + srch[i].title + ' [' + srch[i].snippet + ']');
|
|
}
|
|
}
|
|
}
|
|
);
|
|
|
|
}
|