2012-01-31 74 views
4

我看了MediaWiki API documentation 但我找不到如何獲得當前網址的 picture of the day維基百科的API:不能查詢當天的圖片網址

繼RTFM之後,我打電話給查詢 from Commons:Potd to its page URL

它返回pageid=2518149,它是當前的POTD頁面。

然後我嘗試撥打prop=imageinfo,但我沒有找到獲取圖片URL的方式。

唯一成功的調用是這樣的:

http://commons.wikimedia.org/w/api.php?titles=File:POTD&action=query&prop=images

「成功」 意味着它返回一個圖像URL ...但不同的pageid(不是當前POTD)的!

回答

4

嗯,這不是很容易。你沒有從Commons:Potd得到任何回報,因爲這只是一個重定向,但即使你從Commons:Picture of the Day獲取圖像,你也可以按字母順序獲得所有圖像的大量列表。

但這裏有一個解決方案。一是擴大POTD模板找出當前圖像名稱:

http://commons.wikimedia.org/w/api.php?action=expandtemplates&text={{Potd/{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}}}

<api> 
    <expandtemplates xml:space="preserve">20110421 Tbilisi Georgia Panoramic.jpg</expandtemplates> 
</api> 

然後將該文件名(URL編碼)插入到一個單獨的請求的imageinfo,與iiprop=url得到的網址:

http://commons.wikimedia.org/w/api.php?titles=Image:20110421%20Tbilisi%20Georgia%20Panoramic.jpg&action=query&prop=imageinfo&iiprop=url

就在那裏!

<api> 
    <query> 
    <normalized> 
     <n from="Image:20110421 Tbilisi Georgia Panoramic.jpg" to="File:20110421 Tbilisi Georgia Panoramic.jpg" /> 
    </normalized> 
    <pages> 
     <page pageid="15527584" ns="6" title="File:20110421 Tbilisi Georgia Panoramic.jpg" imagerepository="local"> 
     <imageinfo> 
      <ii url="http://upload.wikimedia.org/wikipedia/commons/a/ae/20110421_Tbilisi_Georgia_Panoramic.jpg" descriptionurl="http://commons.wikimedia.org/wiki/File:20110421_Tbilisi_Georgia_Panoramic.jpg" /> 
     </imageinfo> 
     </page> 
    </pages> 
    </query> 
</api>