2012-01-31 5 views
4

私はMediaWiki API documentation を読んでいますが、 picture of the dayの現在のURLを取得する方法が見つかりません。 RTFMに続いてWikipedia API:今日の画像を照会できません

、私は、クエリ from Commons:Potd to its page URLを呼び出します。

それは、現在のPOTDページで、pageid=2518149を返します。

それから私は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から画像を取得しても、アルファベット順にすべての画像の巨大なリストが表示されます。

しかし、ここでは一つの解決策です。

:その後、URLを取得するには iiprop=urlと、のimageinfoするための個別の要求にそのファイル名(URLエンコード)のプラグ

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> 

:まず、現在のイメージの名前を把握するPOTDテンプレートを展開します

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> 
関連する問題