X-Git-Url: https://projects.mako.cc/source/python-simplemediawiki.debian/blobdiff_plain/327b1d8a47808454c38a480e385b8e9f8c70c11b..10ccfd5025e85c972884d608f23169c6ad23aa6f:/debian/patches/0003-Refactor-normalize_api_url.patch diff --git a/debian/patches/0003-Refactor-normalize_api_url.patch b/debian/patches/0003-Refactor-normalize_api_url.patch new file mode 100644 index 0000000..8a2566b --- /dev/null +++ b/debian/patches/0003-Refactor-normalize_api_url.patch @@ -0,0 +1,78 @@ +From de97f3ccde6527ac63bde701ae759291d93d1aa4 Mon Sep 17 00:00:00 2001 +From: Ian Weller +Date: Fri, 4 Feb 2011 23:58:26 -0600 +Subject: Refactor normalize_api_url + +--- + simplemediawiki.py | 42 +++++++++++++++++++++++------------------- + 1 files changed, 23 insertions(+), 19 deletions(-) + +diff --git a/simplemediawiki.py b/simplemediawiki.py +index ff879ed..e123a5b 100644 +--- a/simplemediawiki.py ++++ b/simplemediawiki.py +@@ -101,7 +101,28 @@ class MediaWiki(): + returns that URL, while also helpfully setting this object's API URL to + it. If it can't magically conjure an API endpoint, it returns False. + """ +- data, data_json = self._normalize_api_url_tester(self._api_url) ++ def tester(self, api_url): ++ """ ++ Attempts to fetch general information about the MediaWiki instance ++ in order to test whether the given URL will return JSON. ++ """ ++ data = self._fetch_http(api_url, {'action': 'query', ++ 'meta': 'siteinfo', ++ 'siprop': 'general', ++ 'format': 'json'}) ++ try: ++ data_json = json.loads(data) ++ # may as well set the version ++ try: ++ version_string = data_json['query']['general']['generator'] ++ self._mediawiki_version = version_string.split(' ', 1)[1] ++ except KeyError: ++ pass ++ return (data, data_json) ++ except ValueError: ++ return (data, None) ++ ++ data, data_json = tester(self, self._api_url) + if data_json: + return self._api_url + else: +@@ -109,30 +130,13 @@ class MediaWiki(): + if 'index.php' in self._api_url: + test_api_url = self._api_url.split('index.php')[0] + 'api.php' + print test_api_url +- test_data, test_data_json = \ +- self._normalize_api_url_tester(test_api_url) ++ test_data, test_data_json = tester(self, test_api_url) + print (test_data, test_data_json) + if test_data_json: + self._api_url = test_api_url + return self._api_url + return False + +- def _normalize_api_url_tester(self, api_url): +- data = self._fetch_http(api_url, {'action': 'query', +- 'meta': 'siteinfo', +- 'siprop': 'general', +- 'format': 'json'}) +- try: +- data_json = json.loads(data) +- # may as well set the version +- try: +- version_string = data_json['query']['general']['generator'] +- self._mediawiki_version = version_string.split(' ', 1)[1] +- except KeyError: +- pass +- return (data, data_json) +- except ValueError: +- return (data, None) + + def login(self, user, passwd, token=None): + """ +-- +1.7.2.3 +