summaryrefslogtreecommitdiff
path: root/wikibania/api/Query.py
diff options
context:
space:
mode:
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())