jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/361484 )
Change subject: Allow pywikibot to authenticate against a private wiki.
......................................................................
Allow pywikibot to authenticate against a private wiki.
Currently, pywikibot cannot authenticate if MediaWiki is configured
to require logins in order to read. This patch takes an approach
suggested by user @zhuyifei1999 in ticket T153903. It tells
pywikibot not to require the parameter "meta=userinfo" if
'tokens' in present in parameter 'meta' and 'login' is present in
parameter 'type'.
Bug: T153903
Change-Id: I55768b735dbddcf35dbb35b94e9ba493621ff51b
---
M pywikibot/data/api.py
1 file changed, 7 insertions(+), 1 deletion(-)
Approvals:
Zhuyifei1999: Looks good to me, but someone else must approve
jenkins-bot: Verified
Xqt: Looks good to me, approved
diff --git a/pywikibot/data/api.py b/pywikibot/data/api.py
index 448394c..ff4dcd9 100644
--- a/pywikibot/data/api.py
+++ b/pywikibot/data/api.py
@@ -1682,7 +1682,13 @@
if self.action == 'query':
meta = self._params.get("meta", [])
- if "userinfo" not in meta:
+ # Special logic for private wikis (T153903).
+ # If the wiki requires login privileges to read articles, pywikibot
+ # will be blocked from accessing the userinfo.
+ # Work around this by requiring userinfo only if 'tokens' and
'login'
+ # are not both set.
+ typep = self._params.get('type', [])
+ if 'userinfo' not in meta and not ('tokens' in meta and
'login' in typep):
meta = set(meta + ['userinfo'])
self._params['meta'] = sorted(meta)
uiprop = self._params.get("uiprop", [])
--
To view, visit
https://gerrit.wikimedia.org/r/361484
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I55768b735dbddcf35dbb35b94e9ba493621ff51b
Gerrit-PatchSet: 3
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Dbarrett <mediawiki(a)blazemonger.com>
Gerrit-Reviewer: Dbarrett <mediawiki(a)blazemonger.com>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Magul <tomasz.magulski(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: Zhuyifei1999 <zhuyifei1999(a)gmail.com>
Gerrit-Reviewer: jenkins-bot <>