5

MediaWiki APIのドキュメントを読みましたが、その日の写真の 現在のURLを取得する方法が見つかりません 。

RTFMに続いて、Commons:PotdからそのページURLへのクエリを呼び出し ます。

戻りpageid=2518149ます。現在のPOTDページです。

次に、に電話をかけようとしましprop=imageinfoたが、画像のURLを取得する方法が見つかりませんでした。

成功した唯一の呼び出しはこれです:

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

「成功」とは、画像のURLを返すことを意味します...ただし、別のURL pageid(現在のPOTDではありません)です。

4

1 に答える 1

6

うーん、これは簡単ではありません。Commons:Potdこれは単なるリダイレクトであるため、何も返されませんが、から画像を取得した場合でもCommons:Picture of the Day、すべての画像の膨大なリストがアルファベット順に表示されます。

しかし、ここに1つの解決策があります。まず、Podtテンプレートを展開して、現在の画像名を確認します。

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、URLを取得します。

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

そして、それがあります!画像ファイル自体は、属性
の値を使用して取得できます。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>
于 2012-02-01T06:14:31.257 に答える