API Википедии: Невозможно запросить URL-адрес «Картинка дня» - PullRequest
5 голосов
/ 31 января 2012

Я прочитал документацию по 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 изображения ... но другого pageid (не текущего POTD)!

1 Ответ

6 голосов
/ 01 февраля 2012

Хм, это не очень легко.Вы не получите ничего от 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 чтобы получить 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>
...