I en Facebooktråd om slumpartikelfunktionen på Wikipedia och en ny variant som Holger Motzkau har byggt så kom David Castor med en idé om ett frågesportspel baserat på slumpartiklarna. Hans idé var:
Jag gjorde häromsistens en frågesport där jag visade en bild från en slumpmässig och namnen på den och tre slumpartiklar till. Sedan skulle deltagarna gissa från vilken av de fyra artiklarna som bilden var hämtad.
Det tänkte jag kunde vara något för mig att använda som exempel, jag har ju tidigare testat lite med att programmera i PHP och jag har en ganska bra koll på Wikipedias API. Sagt och gjort, jag hackade på lite och nu finns det en färdig prototyp. Inga finesser, bara en enkel frågesport. Den bygger på att man kan fråga API:et efter slumpade artiklar och att man kan begära bilder från dessa. Jag gör dessutom en dubbelkoll så att inte samma bild används två gånger. En utmärkt hjälp till utvecklingen var API-sandlådan på Wikipedia. (I min kod har jag konsekvent använt mig av pageid istället för title på artiklarna som i exemplen nedan, detta för att jag i PHP inte lyckades få mellanslag i artikelnamn att hanteras på rätt sätt, men principen är ju densamma.)
Slumpade artiklar
Detta görs med kommandot action=query&list=random
I mitt fall begär jag dessutom fyra bilder på en gång. Detta är den exakta frågan jag använder: https://sv.wikipedia.org/w/api.php?action=query&list=random&format=json&rnnamespace=0&rnlimit=4
Hämta bilder
Detta görs med kommandot action=query&prop=pageimages
Jag passar dessutom på att i samma anrop begära rätt bildstorlek som jag senare kan använda när jag skapar sidan. Här en hårdkodad variant på anropet (jag använder ju egentligen resultatet från slumpartiklarna):
https://sv.wikipedia.org/w/api.php?action=query&prop=pageimages&format=json&piprop=thumbnail%7Cname&pithumbsize=400&pilimit=4&titles=Stj%C3%A4rtand%7CAnka%7CSn%C3%B6%7CMonotypisk
Hittas inga bilder i någon av de fyra artiklarna begär jag fyra nya slumpartiklar. Under mina testomgångar behövde jag aldrig göra detta mer än en gång, men teoretiskt sett så kan detta ta en stund om man har otur med slumpartiklarna.
Kontrollera dubbletter
Jag väljer helt enkelt en bild från föregående omgång och kolla om den finns i någon av de andra artiklarna. Detta kan göras med kommandot action=query&prop=images
och att skicka med en bild och artiklarna som ska kollas som parametrar. Här en hårdkodad variant på anropet: https://sv.wikipedia.org/w/api.php?action=query&prop=images&format=json&imimages=File%3ANorthern_Pintails_(Male_%26_Female)_I_IMG_0911.jpg&titles=Stj%C3%A4rtand%7CGr%C3%A4sand%7CAnka%7C%C3%84nder
Finns bilden i mer än en artikel gör jag det superlätt för mig och börjar om med fyra nya slumpartiklar. Här skulle man kunna effektivisera det genom att kolla andra bilder i de fyra första artiklarn (om det fanns några).
Kontextualisera
När jag visar svaret hämtar jag även ut det första stycket från Wikipedia så att man kan få ett sammanhang av ämnet. Detta görs med kommandot action=query&prop=extracts
Här en hårdkodad variant på anropet: http://sv.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&explaintext=&titles=Stj%C3%A4rtand
Resultatet
Det färdiga resultatet hittas på: http://nyval.wtf/bildquiz/
Idéer för utveckling:
- Poängräknare
- Använda Holgers slumpgenerator som tar bort de robotskapade artiklarna.
Har du några andra idéer får du gärna höra av dig.