@@ -160,8 +160,6 @@ async function getWikidata(wikidataItemID, language) {
160160 } ) ;
161161 } ) ;
162162
163- // TODO get 50 ids at a time
164-
165163 const entities = await collectWikidataInfo ( ids , language ) ;
166164
167165 const translations =
@@ -411,37 +409,31 @@ async function getWikidata(wikidataItemID, language) {
411409 wikidata . statements . push ( statement ) ;
412410 }
413411 }
414- // DEV
415- // responseData.wikipedia = undefined;
416- // responseData.wikipediaExcerptHTML = undefined;
417- // responseData.wikipediaRemainingHTML = undefined;
418- // END DEV
419412
420413 return {
421414 topic,
422415 wikidata,
423416 } ;
424417}
425418
426-
419+ // Try to find a label in language (or English) for entity with id within entities
420+ // Return the first found: label in language, label in English, id within entities, empty string
427421const findLabel = function ( entities , id , language ) {
428- var label = "" ;
429- for ( var j = 0 ; j < entities . length ; j ++ ) {
430- if ( entities [ j ] . id == id ) {
431- if ( entities [ j ] . labels ) {
432- label = entities [ j ] . labels [ language ] != undefined ? entities [ j ] . labels [ language ] . value : "" ;
433- if ( label == "" ) {
434- label = entities [ j ] . labels . en != undefined ? entities [ j ] . labels . en . value : "" ;
435- }
422+ for ( let j = 0 ; j < entities . length ; j ++ ) {
423+ if ( entities [ j ] . id === id ) {
424+ const labels = entities [ j ] . labels ;
425+ let label = labels && labels [ language ] && labels [ language ] . value ;
426+ if ( ! label ) {
427+ label = labels && labels [ "en" ] && labels [ "en" ] . value ;
436428 }
437- if ( label == "" ) {
429+ if ( ! label ) {
438430 label = id ;
439431 }
440- break ;
432+ return label ;
441433 }
442434 }
443435
444- return label ;
436+ return "" ;
445437}
446438
447439const collectWikidataInfo = async function ( allIDs , language ) {
0 commit comments