$(function() { new WOW().init(); let laurentApiURL ="http://api.nobelprize.org/v1/laureate.json"; console.log(laurentApiURL); $("#URLNobel").html('<b<b>API call Nobel:</b> <a href="' + laurentApiURL + '" target=_blank>' + laurentApiURL + '</a>'); $.ajax({ type: "GET", url: laurentApiURL, dataType: "json", success: function(data) { console.log("Done"); let laurentInfo = data.laureates; console.log(laurentInfo); var nrHits = laurentInfo.length; $("#Hits").html("We retrieved from NobelPrize.org " + nrHits + " records. Please <div data-wow-duration='6s' data-wow-offset='10' class='wow bounceInUp more'>select an Laureate</div>"); $.each(laurentInfo, (i, val) => { surname = val.surname || '' firstname = val.firstname || '' year = val.prizes[0].year || '' category = val.prizes[0].category || '' name = firstname + " " + surname; nameFull = name + " - " + year + ": " + category ; if (nameFull.length > 7) // workaround as API returns garbage // https://phabricator.wikimedia.org/T206444 Error reported {$('.laureateList').append($('<option/>').text(nameFull).val(name));} } ) }}); console.log("After"); }); $( '.searchOptionList' ).change(function() { var srcopt = '&srqiprofile=' + $('.searchOptionList').val(); $("#URL").html(srcopt); }); $( '.wikiLang' ).change(function() { retrieveWiki(); }); $( '.laureateList' ).change(function() { retrieveWiki(); }); $( '.searchOptionList' ).change(function() { retrieveWiki(); }); function retrieveWiki(){ var input = $('.laureateList').val(); //var srcopt = '&srqiprofile=classic'; var srcopt = $('.searchOptionList').val(); // srcopt = '&srqiprofile=' + $('.searchOptionList').val(); // $("#URL").html(srcopt); var searchLimit = 400 // number of results in search var wikiLang = $('.wikiLang').val(); var wikiLangText = $('.wikiLang').val(); var url = `https://` + wikiLang + `.wikipedia.org/w/api.php?action=query&list=search&srsearch=` + input + `&srlimit=` + searchLimit + `&format=json&prop=info&inprop=url` + srcopt; $("#URL").html('<b<b>API Wikipedia:</b> <a href="' + url + '" target=_blank>' + url + '</a>'); $.ajax({ type: "GET", url: url, dataType: "jsonp", success: function(data) { let info = data.query.search; console.log(info); if (info.length === 0) { let notFound = ""; let output = ""; let numberofHits = "no hits in " + wikiLangText + " Wikipedia" ; $("#Hits").html(numberofHits); notFound += ` <div id="not-found" class="wow fadeIn text-center" data-wow-duration="0.5s"> <p> No result</p> </div> ` $("#output").html(notFound); $("#not-found").delay(5000).fadeOut(500); } else { let output = ""; let numberofHits = "Number of hits in " + wikiLangText + " Wikipedia " + info.length + " using searchtype = " + srcopt + " <div data-wow-duration='6s' data-wow-offset='10' class='wow bounceInUp more'>scroll down to learn more about " + input + " in " + wikiLangText + " Wikipedia</div>"; $("#Hits").html(numberofHits); $.each(info, (i, val) => { output += ` <div class="text-left" id="results"> <div class="wow slideInLeft result" data-wow-offset="100" data-wow-duration="1s"> <h2 id="title"><a href="https://${wikiLang}.wikipedia.org/wiki/${val.title}" target="_blank">${val.title}</a></h2> <p id="desc">${val.snippet}</p> </div> </div> ` }); $("#output").html(output); } }, error: function() { console.log("Error"); } }) }
<h2>Integration with Wikipedia:<br /> Prototype to test searching Nobel API <a href="https://nobelprize.readme.io/docs/laureate" target=_blank>laureate</a> version 1 </h2> <div id="explain"> What knows different language Wikipedia about laureate? <br /><br /> Below all laureate at Nobelprize.org . When selecting one prize winner a Wikipedia search is done... lesson learned is <ul> <li>that we write a lot about Nobel prize winners but using text retrieval is not a good way to get good precision</li><li>a tool like <a href="https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder" target=_blank>Article Placeholder</a> could be very helpful for small Wikipedia languages to get "articles" about all Nobel prize winners</li> </ul>if you have questions dont hesitate to contact Magnus Sälgö +46-70-5937579, <a href="https://twitter.com/salgo60" target=_blank>twitter</a></div> <br />See also <table border=0 width=800px><tr><td><ll class="list"> <li><a href="https://www.mediawiki.org/wiki/API:Search">API:Search</a></li> <li><a href="https://phabricator.wikimedia.org/T200668">Task T200668 SPARQL federated search Nobel</a></li> <li><a href="https://phabricator.wikimedia.org/T203915">Task T203915 P3188 Nobel prize ID new URL?</a></li></ll></td><td valign="top"><ll> <li><a href="https://phabricator.wikimedia.org/T202034">Task T202034 Missing data 2017 at Nobel - fixed</a></li> <li><a target=_blank href="https://jsfiddle.net/salgo60/wkrug0bL/embedded/result/">Same but for SKBL</a></li></ll></td></tr></table><br />Wiki Language <select class="wikiLang"> <option value="en">English</option> <option value="sv">Swedish</option> <option value="de">German</option> <option value="no">Norway</option> <option value="da">Danish</option> <option value="fi">Finland</option> <option value="it">Italy</option> <option value="ru">Russian</option> <option value="eo">Esperanto</option> <option value="ja">Japan</option> <option value="zh">China</option> <option value="pl">Poland</option> <option value="sq">Albanian</option> <option value="als">Alemannic</option> <option value="roa-rup">Aromanian</option> <option value="map-bms">Banyumasan</option> <option value="nds-nl">Dutch Low Saxon</option> <option value="bh">Bihari</option> <option value="zh-yue">Cantonese</option> <option value="ms">Min Nan</option> <option value="ksh">Ripuarian</option> </select><select class="laureateList" > <option>Select an Laureate</option> </select><select class="searchOptionList" > <option value="classic">Search option srqiprofile</option> <option value="classic">classic</option> <option value="wsum_inclinks">Weighted sum based on incoming links</option> <option value="wsum_inclinks_pv">Weighted sum based on incoming links and weekly pageviews</option> <option value="popular_inclinks_pv">Ranking based primarily on page views</option> <option value="popular_inclinks">Ranking based primarily on incoming link counts</option> <option value="engine_autoselect">Let the search engine decide on the best profile to use.</option> </select><br /> <br /> <div id="currLaureate"> <div id="URLNobel"></div> <div id="URL"></div> <div id="Hits"></div> <div id="output"></div>
body { color: #444; background: #e2ffff; /* fallback for old browsers */ background: -webkit-linear-gradient(to left, #9ab800, #e2ffff); /* Chrome 10-25, Safari 5.1-6 */ background: linear-gradient(to left, #9ab800, #e2ffff); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ font-family: 'Dosis', sans-serif; background-repeat: no-repeat; background-size: cover; min-height: 100vh; font-size: 16px; } a { color: #444; cursor: pointer; } a:hover { color: #555; text-decoration: none; } #URLNobel #URL { margin-top: 20px; padding: 0 5%; color: darkblue; } #Hits { margin-top: 20px; padding: 0 5%; color: #437746; font-size: 30px; } .more { color: darkgreen; } #output { margin-top: 40px; padding: 0 5%; } .list a { text-decoration: none; } li a:hover { background: lightgreen; } h2 a:hover { background: lightgreen; } #text { padding: 10px 20px; border-top-left-radius: 30px; border-bottom-left-radius: 30px; border: 0px solid; width: 50%; } #text:focus { box-shadow: 1px 3px 40px 5px #536970; outline: none; } #not-found p { font-size: 20px; } .result { padding: 0.5% 2%; background: #fff; margin: 1.5%; border-left: 7px solid #536976; } .result h2 { color: #536976; } button { background: #536976; color: #fff; padding: 10px 20px; border: 1px solid #536976; border-radius: 30px; margin-left: -55px; } .currLaureate{ background-color: aliceblue; margin: 8px; size: 12px; border-radius: 25px; border: 2px solid darkBlue; padding: 20px; width: 500px; height:150px; } .searchmatch{ color: #a0ccd2; } #explain { color: darkgreen; font-family: "Times New Roman", Times, serif; }