Page MenuHomePhabricator

prop=info doesn't behave consistently when given a Special Page, vs when given a non special page which redirects to a special page (in comparison to another redirect)
Closed, ResolvedPublic

Description

So, on enwiki:
https://en.wikipedia.org/wiki/Template:Categorytree_mode

#REDIRECT [[Special:CategoryTree]]

Points to https://en.wikipedia.org/wiki/Special:CategoryTree

If I ask the API for information on Special:CategoryTree

https://en.wikipedia.org/w/api.php?action=query&prop=info|revisions&intoken=edit&titles=Special:CategoryTree&rvprop=timestamp|user|comment|content&redirects=

We get

<api>
  <query>
    <pages>
      <page ns="-1" title="Special:CategoryTree" special="" />
    </pages>
  </query>
</api>

If I ask for a normal redirect, I get a pages entry for the target

https://en.wikipedia.org/w/api.php?action=query&prop=info|revisions&intoken=edit&titles=WP:AWB&rvprop=timestamp|user|comment&redirects=

<api>
  <query>
    <normalized>
      <n from="WP:AWB" to="Wikipedia:AWB" />
    </normalized>
    <redirects>
      <r from="Wikipedia:AWB" to="Wikipedia:AutoWikiBrowser" />
    </redirects>
    <pages>
      <page pageid="3619512" ns="4" title="Wikipedia:AutoWikiBrowser" touched="2012-08-18T16:12:20Z" lastrevid="506905280" counter="" length="15308" starttimestamp="2012-08-19T22:21:24Z" edittoken="a835be486a973279fa19914f0eabf91d+\">
        <revisions>
          <rev user="Klutzy" timestamp="2012-08-11T16:30:40Z" comment="-[[Category:Windows software]]; category for main namespace" />
        </revisions>
      </page>
    </pages>
  </query>
</api>

If I ask for a page which redirects to a special page, we don't get the pages information at all, which is inconsistent.

https://en.wikipedia.org/w/api.php?action=query&prop=info|revisions&intoken=edit&titles=Template:Categorytree%20mode&rvprop=timestamp|user|comment|content&redirects=

<api>
  <query>
    <redirects>
      <r from="Template:Categorytree mode" to="Special:CategoryTree" />
    </redirects>
  </query>
</api>

The desired result should be something along the lines of:

<api>
  <query>
    <redirects>
      <r from="Template:Categorytree mode" to="Special:CategoryTree" />
    </redirects>
	<pages>
      <page ns="-1" title="Special:CategoryTree" special="" />
    </pages>
  </query>
</api>

Version: 1.20.x
Severity: minor
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=73184

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 12:58 AM
bzimport added a project: MediaWiki-API.
bzimport set Reference to bz39492.
bzimport added a subscriber: Unknown Object (MLST).

It is wrong, that the api follows the redirect, see bug 26865

Reedy set Security to None.
Restricted Application added a subscriber: Unknown Object (MLST). · View Herald TranscriptJun 9 2015, 4:11 AM

Per https://old-bugzilla.wikimedia.org/show_bug.cgi?id=26865#c7 , if special pages are in wgInvalidRedirectTargets then this bug sounds invalid?

Change 336426 had a related patch set uploaded (by Anomie):
ApiPageSet: Use processTitlesArray() in getRedirectTargets()

https://gerrit.wikimedia.org/r/336426

Change 336426 merged by Anomie:
[mediawiki/core] ApiPageSet: Use processTitlesArray() in getRedirectTargets()

https://gerrit.wikimedia.org/r/336426

Anomie claimed this task.