summaryrefslogtreecommitdiff
path: root/wikibania/api/Query.py
diff options
context:
space:
mode:
authorPacien TRAN-GIRARD2014-10-24 18:05:48 +0000
committerPacien TRAN-GIRARD2014-10-24 18:05:48 +0000
commit4403fda939ef42aeffeccb343d74f3dc3b840f91 (patch)
tree63fd704f15f3030f1455aad0ef92403c5d093c70 /wikibania/api/Query.py
parent16529a0d212e1387eacd590c0e5e1b1a13dc2641 (diff)
parentbdf9099df8c2a4636b0ad0e710b73330877eef37 (diff)
downloadwikistats-4403fda939ef42aeffeccb343d74f3dc3b840f91.tar.gz
Merge branch 'refactor' into 'master'
Refactor See merge request !1
Diffstat (limited to 'wikibania/api/Query.py')
-rw-r--r--wikibania/api/Query.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/wikibania/api/Query.py b/wikibania/api/Query.py
new file mode 100644
index 0000000..0928478
--- /dev/null
+++ b/wikibania/api/Query.py
@@ -0,0 +1,24 @@
1import urllib.parse
2import urllib.request
3import json
4
5
6class Query:
7 def __init__(self, base_url="", params=None, encoding="utf8"):
8 if params is None:
9 params = {}
10
11 self.base_url = base_url
12 self.params = params
13 self.encoding = encoding
14
15 def fetch_raw_result(self):
16 post_query = urllib.parse.urlencode(self.params)
17 post_query = post_query.encode(self.encoding)
18 document = urllib.request.urlopen(self.base_url, post_query)
19 return document.read().decode(self.encoding)
20
21
22class JSONQuery(Query):
23 def fetch_result(self):
24 return json.loads(self.fetch_raw_result())