mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-15 13:38:26 +02:00
Guard against calling wikipedia service with empty query
This commit is contained in:
@@ -6,6 +6,11 @@ var wikipedia = {},
|
||||
|
||||
export function init() {
|
||||
wikipedia.search = function(lang, query, callback) {
|
||||
if (!query) {
|
||||
callback([]);
|
||||
return;
|
||||
}
|
||||
|
||||
lang = lang || 'en';
|
||||
jsonpRequest(endpoint.replace('en', lang) +
|
||||
qsString({
|
||||
@@ -17,14 +22,23 @@ export function init() {
|
||||
callback: '{callback}',
|
||||
srsearch: query
|
||||
}), function(data) {
|
||||
if (!data.query) return;
|
||||
if (!data || !data.query || !data.query.search) {
|
||||
callback([]);
|
||||
return;
|
||||
}
|
||||
callback(query, data.query.search.map(function(d) {
|
||||
return d.title;
|
||||
}));
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
wikipedia.suggestions = function(lang, query, callback) {
|
||||
if (!query) {
|
||||
callback('', []);
|
||||
return;
|
||||
}
|
||||
|
||||
lang = lang || 'en';
|
||||
jsonpRequest(endpoint.replace('en', lang) +
|
||||
qsString({
|
||||
@@ -35,11 +49,21 @@ export function init() {
|
||||
callback: '{callback}',
|
||||
search: query
|
||||
}), function(d) {
|
||||
if (!d || d.error) {
|
||||
callback('', []);
|
||||
return;
|
||||
}
|
||||
callback(d[0], d[1]);
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
wikipedia.translations = function(lang, title, callback) {
|
||||
if (!title) {
|
||||
callback({});
|
||||
return;
|
||||
}
|
||||
|
||||
jsonpRequest(endpoint.replace('en', lang) +
|
||||
qsString({
|
||||
action: 'query',
|
||||
@@ -49,6 +73,11 @@ export function init() {
|
||||
lllimit: 500,
|
||||
titles: title
|
||||
}), function(d) {
|
||||
if (!d || d.error) {
|
||||
callback({});
|
||||
return;
|
||||
}
|
||||
|
||||
var list = d.query.pages[Object.keys(d.query.pages)[0]],
|
||||
translations = {};
|
||||
if (list && list.langlinks) {
|
||||
@@ -57,7 +86,8 @@ export function init() {
|
||||
});
|
||||
callback(translations);
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
return wikipedia;
|
||||
|
||||
Reference in New Issue
Block a user