jayvdb added a subscriber: Omegat.
jayvdb added a comment.

@omegat, as @xzise has said, your URLs are wrong.  The MediaWiki API is just 
plain old HTTP.  If you cant get it to work in a web browser, it will not work 
in pywikibot.  1.23.8 (*.gamepedia.com) does __not__ support the new mode.

1.23
----

http://barterempire.gamepedia.com/api.php?action=query&meta=siteinfo

  <?xml version="1.0"?>
  <api>
    <query>
      <general mainpage="Barter Empire Wiki" 
base="http://barterempire.gamepedia.com/Barter_Empire_Wiki"; sitename="Barter 
Empire Wiki" 
logo="http://hydra-media.cursecdn.com/barterempire.gamepedia.com/b/bc/Wiki.png"; 
generator="MediaWiki 1.23.8" phpversion="5.4.28-1+deb.sury.org~precise+1" 
phpsapi="fpm-fcgi" dbtype="mysql" dbversion="5.5.31-55" 
imagewhitelistenabled="" langconversion="" titleconversion="" 
linkprefixcharset="" linkprefix="" linktrail="/^([a-z]+)(.*)$/sD" 
git-hash="cf64e03e367f4ce136933709c86dcf9a75969a4b" case="first-letter" 
lang="en" fallback8bitEncoding="windows-1252" writeapi="" timezone="UTC" 
timeoffset="0" articlepath="/$1" scriptpath="" script="/index.php" 
server="http://barterempire.gamepedia.com"; wikiid="barterempire_gamepedia" 
time="2014-12-24T07:58:36Z" maxuploadsize="104857600" 
favicon="http://hydra-media.cursecdn.com/barterempire.gamepedia.com/6/64/Favicon.ico";>
        <fallback />
        <thumblimits>
          <limit>120</limit>
          <limit>150</limit>
          <limit>180</limit>
          <limit>200</limit>
          <limit>250</limit>
          <limit>300</limit>
        </thumblimits>
        <imagelimits>
          <limit width="320" height="240" />
          <limit width="640" height="480" />
          <limit width="800" height="600" />
          <limit width="1024" height="768" />
          <limit width="1280" height="1024" />
        </imagelimits>
      </general>
    </query>
  </api>

http://barterempire.gamepedia.com/api.php?action=paraminfo&modules=query+info

  <?xml version="1.0"?>
  <api>
    <warnings>
      <paraminfo xml:space="preserve">Unrecognized value for parameter 
'modules': query info</paraminfo>
    </warnings>
    <paraminfo>
      <modules />
    </paraminfo>
  </api>

Using percent encoding of the + doesnt help:

http://barterempire.gamepedia.com/api.php?action=paraminfo&modules=query%2Binfo

  <?xml version="1.0"?>
  <api>
    <warnings>
      <paraminfo xml:space="preserve">Unrecognized value for parameter 
'modules': query+info</paraminfo>
    </warnings>
    <paraminfo>
      <modules />
    </paraminfo>
  </api>

And most importantly, the new mode test fails on this site, so it does not work 
on 1.23!

  $ python pwb.py generate_family_file.py http://barterempire.gamepedia.com/ 
barterempire
  Generating family file from http://barterempire.gamepedia.com/
  
  ==================================
  api url: http://barterempire.gamepedia.com/api.php
  MediaWiki version: 1.23.8
  ==================================
  
  Determining other languages...
  Loading wikis... 
    * en... in cache
  Writing pywikibot/families/barterempire_family.py... 
  $ gedit user-config.py
  $ python -m unittest -v tests.api_tests.TestParamInfo
  max_retries reduced from 25 to 1 for tests
  test_generators (tests.api_tests.TestParamInfo) ... ok
  test_init (tests.api_tests.TestParamInfo) ... ok
  test_init_pageset (tests.api_tests.TestParamInfo) ... ok
  test_modules (tests.api_tests.TestParamInfo)
  Test v1.8 modules exist. ... ok
  test_multiple_modules (tests.api_tests.TestParamInfo) ... ok
  test_new_mode (tests.api_tests.TestParamInfo) ... WARNING: API warning 
(paraminfo): Unrecognized value for parameter 'modules': main
  FAIL
  test_old_mode (tests.api_tests.TestParamInfo) ... ok
  test_prefixes (tests.api_tests.TestParamInfo)
  Test v1.8 module prefixes exist. ... ok
  test_query_modules_with_limits (tests.api_tests.TestParamInfo) ... ok
  test_with_invalid_module (tests.api_tests.TestParamInfo) ... WARNING: API 
warning (paraminfo): Unrecognized value for parameter 'modules': foobar
  ok
  test_with_module_info (tests.api_tests.TestParamInfo) ... ok
  test_with_module_revisions (tests.api_tests.TestParamInfo) ... ok
  
  ======================================================================
  FAIL: test_new_mode (tests.api_tests.TestParamInfo)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "tests/api_tests.py", line 233, in test_new_mode
      pi.fetch(['info'])
    File "pywikibot/data/api.py", line 268, in fetch
      self._init()
    File "pywikibot/data/api.py", line 202, in _init
      main_modules_param = self.parameter('main', 'action')
    File "pywikibot/data/api.py", line 379, in parameter
      self.fetch(set([module]))
    File "pywikibot/data/api.py", line 281, in fetch
      assert(self._query_modules or _init)
  AssertionError
  
  ----------------------------------------------------------------------
  Ran 12 tests in 12.518s



1..24
-----

It also does not work on 1.24

  $ python pwb.py generate_family_file.py http://baseballpedia.shoutwiki.com/ 
baseballpedia
  Generating family file from http://baseballpedia.shoutwiki.com/
  
  ==================================
  api url: http://baseballpedia.shoutwiki.com/w/api.php
  MediaWiki version: 1.24.1
  ==================================
  
  Determining other languages...
  Loading wikis... 
    * ru... in cache
  Writing pywikibot/families/baseballpedia_family.py... 
  
  $ python -m unittest -v tests.api_tests.TestParamInfo
  max_retries reduced from 25 to 1 for tests
  test_generators (tests.api_tests.TestParamInfo) ... ok
  test_init (tests.api_tests.TestParamInfo) ... ok
  test_init_pageset (tests.api_tests.TestParamInfo) ... ok
  test_modules (tests.api_tests.TestParamInfo)
  Test v1.8 modules exist. ... ok
  test_multiple_modules (tests.api_tests.TestParamInfo) ... ok
  test_new_mode (tests.api_tests.TestParamInfo) ... WARNING: API warning 
(paraminfo): Unrecognized value for parameter 'modules': main
  FAIL
  test_old_mode (tests.api_tests.TestParamInfo) ... ok
  test_prefixes (tests.api_tests.TestParamInfo)
  Test v1.8 module prefixes exist. ... ok
  test_query_modules_with_limits (tests.api_tests.TestParamInfo) ... ok
  test_with_invalid_module (tests.api_tests.TestParamInfo) ... WARNING: API 
warning (paraminfo): Unrecognized value for parameter 'modules': foobar
  ok
  test_with_module_info (tests.api_tests.TestParamInfo) ... ok
  test_with_module_revisions (tests.api_tests.TestParamInfo) ... ok
  
  ======================================================================
  FAIL: test_new_mode (tests.api_tests.TestParamInfo)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "tests/api_tests.py", line 233, in test_new_mode
      pi.fetch(['info'])
    File "pywikibot/data/api.py", line 268, in fetch
      self._init()
    File "pywikibot/data/api.py", line 202, in _init
      main_modules_param = self.parameter('main', 'action')
    File "pywikibot/data/api.py", line 379, in parameter
      self.fetch(set([module]))
    File "pywikibot/data/api.py", line 281, in fetch
      assert(self._query_modules or _init)
  AssertionError
  
  ----------------------------------------------------------------------
  Ran 12 tests in 14.438s
  
  FAILED (failures=1)

http://baseballpedia.shoutwiki.com/w/api.php?action=paraminfo&modules=query+info
http://baseballpedia.shoutwiki.com/w/api.php?action=paraminfo&modules=query%2Binfo

1.25
----

It does work on the WMF projects, because they are running 1.25.

https://en.wikipedia.org/w/api.php?action=paraminfo&modules=query%2Binfo

Here is the change which introduced the new mode.

https://gerrit.wikimedia.org/r/#/c/160798/

The WMF team has not added it to the release notes on the wiki

https://www.mediawiki.org/wiki/MediaWiki_1.25

But it is mentioned in their release notes in Git.

https://git.wikimedia.org/blob/mediawiki%2Fcore.git/master/RELEASE-NOTES-1.25


TASK DETAIL
  https://phabricator.wikimedia.org/T77966

REPLY HANDLER ACTIONS
  Reply to comment or attach files, or !close, !claim, !unsubscribe or !assign 
<username>.

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Omegat, jayvdb
Cc: Aklapper, jayvdb, XZise, Omegat, pywikipedia-bugs



_______________________________________________
Pywikipedia-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-bugs

Reply via email to