X-Git-Url: https://projects.mako.cc/source/python-simplemediawiki.debian/blobdiff_plain/953d662d63e6a2ec278693fd523147a2559af2db..refs/heads/upstream:/simplemediawiki.py diff --git a/simplemediawiki.py b/simplemediawiki.py index b3e7f1d..ab0f3f7 100644 --- a/simplemediawiki.py +++ b/simplemediawiki.py @@ -49,8 +49,9 @@ class MediaWiki(): _high_limits = None _namespaces = None _psuedo_namespaces = None + _mediawiki_version = None - def __init__(self, api_url, cookie_file=None): + def __init__(self, api_url, cookie_file=None, user_agent=DEFAULT_UA): self._api_url = api_url if cookie_file: self._cj = cookielib.MozillaCookieJar(cookie_file) @@ -61,7 +62,10 @@ class MediaWiki(): self._cj.load() else: self._cj = cookielib.CookieJar() - self._opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self._cj)) + self._opener = urllib2.build_opener( + urllib2.HTTPCookieProcessor(self._cj) + ) + self._opener.addheaders = [('User-agent', user_agent)] def _fetch_http(self, url, params): request = urllib2.Request(url, urllib.urlencode(params)) @@ -137,12 +141,22 @@ class MediaWiki(): data['lgtoken'] = token result = self.call(data) if result['login']['result'] == 'Success': + self._high_limits = None return True elif result['login']['result'] == 'NeedToken' and not token: return self.login(user, passwd, result['login']['token']) else: return False + def logout(self): + """ + Conveinence function for logging out of the wiki. + """ + data = {'action': 'logout'} + self.call(data) + self._high_limits = None + return True + def limits(self, low, high): """ Convenience function for determining appropriate limits in the API. If @@ -195,4 +209,7 @@ class MediaWiki(): __author__ = 'Ian Weller ' -__version__ = '1.0.1' +__version__ = '1.0.2' +DEFAULT_UA = 'python-simplemediawiki/%s ' + \ + '+https://github.com/ianweller/python-simplemediawiki' \ + % __version__