From 5ede3ee43b1676147653d39b23ade4df0e17416f Mon Sep 17 00:00:00 2001 From: Thomas Schneider Date: Thu, 8 Sep 2016 10:42:42 +0200 Subject: [PATCH 1/2] initial domain support --- simplemediawiki.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/simplemediawiki.py b/simplemediawiki.py index b7591d1..89ffa85 100644 --- a/simplemediawiki.py +++ b/simplemediawiki.py @@ -99,10 +99,11 @@ class MediaWiki(object): _psuedo_namespaces = None def __init__(self, api_url, cookie_file=None, cookiejar=None, - user_agent=DEFAULT_UA, http_user=None, http_password=None): + user_agent=DEFAULT_UA, http_user=None, http_password=None, domain=None): self._api_url = api_url self._http_user = http_user self._http_password = http_password + self.domain = domain if cookiejar: self._cj = cookiejar elif cookie_file: @@ -226,7 +227,7 @@ def login(self, user, passwd): :param passwd: password :returns: ``True`` on successful login, otherwise ``False`` """ - def do_login(self, user, passwd, token=None): + def do_login(self, user, passwd, token=None, domain=None): """ Login function that handles CSRF protection (see `MediaWiki bug 23076`_). Returns ``True`` on successful login. @@ -239,6 +240,9 @@ def do_login(self, user, passwd, token=None): 'lgpassword': passwd} if token: data['lgtoken'] = token + if domain: + data['lgdomain'] = domain + result = self.call(data) if result['login']['result'] == 'Success': self._high_limits = None From 0e352bb915380d7a72ec3ee4f71b3a9cb5433f38 Mon Sep 17 00:00:00 2001 From: Thomas Schneider Date: Thu, 8 Sep 2016 11:41:23 +0200 Subject: [PATCH 2/2] fixed the domain addition to data and added a debugging line --- simplemediawiki.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/simplemediawiki.py b/simplemediawiki.py index 89ffa85..d50ba4c 100644 --- a/simplemediawiki.py +++ b/simplemediawiki.py @@ -227,7 +227,7 @@ def login(self, user, passwd): :param passwd: password :returns: ``True`` on successful login, otherwise ``False`` """ - def do_login(self, user, passwd, token=None, domain=None): + def do_login(self, user, passwd, token=None): """ Login function that handles CSRF protection (see `MediaWiki bug 23076`_). Returns ``True`` on successful login. @@ -240,8 +240,8 @@ def do_login(self, user, passwd, token=None, domain=None): 'lgpassword': passwd} if token: data['lgtoken'] = token - if domain: - data['lgdomain'] = domain + if self.domain: + data['lgdomain'] = self.domain result = self.call(data) if result['login']['result'] == 'Success': @@ -250,6 +250,7 @@ def do_login(self, user, passwd, token=None, domain=None): elif result['login']['result'] == 'NeedToken' and not token: return do_login(self, user, passwd, result['login']['token']) else: + print("Login Failed: %s" % result['login']['result']) return False return do_login(self, user, passwd)