diff options
author | Pacien TRAN-GIRARD | 2014-10-24 19:59:05 +0200 |
---|---|---|
committer | Pacien TRAN-GIRARD | 2014-10-24 19:59:05 +0200 |
commit | bdf9099df8c2a4636b0ad0e710b73330877eef37 (patch) | |
tree | 63fd704f15f3030f1455aad0ef92403c5d093c70 /banapedia | |
parent | 16529a0d212e1387eacd590c0e5e1b1a13dc2641 (diff) | |
download | wikistats-bdf9099df8c2a4636b0ad0e710b73330877eef37.tar.gz |
Very cleaner, much class, such readable, wow
Diffstat (limited to 'banapedia')
-rw-r--r-- | banapedia/Ban.py | 36 | ||||
-rw-r--r-- | banapedia/__init__.py | 1 | ||||
-rw-r--r-- | banapedia/api/Query.py | 23 | ||||
-rw-r--r-- | banapedia/api/__init__.py | 0 | ||||
-rw-r--r-- | banapedia/wapi/WikipediaQuery.py | 42 | ||||
-rw-r--r-- | banapedia/wapi/__init__.py | 0 |
6 files changed, 0 insertions, 102 deletions
diff --git a/banapedia/Ban.py b/banapedia/Ban.py deleted file mode 100644 index 4714274..0000000 --- a/banapedia/Ban.py +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | from banapedia.wapi.WikipediaQuery import BlockQuery | ||
2 | from datetime import datetime | ||
3 | import pygeoip | ||
4 | |||
5 | __author__ = 'pacien' | ||
6 | |||
7 | |||
8 | GEOIP_FILE = "/usr/share/GeoIP/GeoIP.dat" | ||
9 | geoip = pygeoip.GeoIP(GEOIP_FILE) | ||
10 | |||
11 | ISO_TIMESTAMP = "%Y-%m-%dT%H:%M:%SZ" | ||
12 | |||
13 | |||
14 | class Ban: | ||
15 | def __init__(self, ip, start, end): | ||
16 | self.ip = ip | ||
17 | self.start = start | ||
18 | self.end = end | ||
19 | self.country_code = None | ||
20 | |||
21 | def get_duration(self): | ||
22 | return (self.end - self.start).days | ||
23 | |||
24 | def get_country_code(self): | ||
25 | if self.country_code is not None: | ||
26 | return self.country_code | ||
27 | |||
28 | country_code = "" | ||
29 | |||
30 | try: | ||
31 | country_code = geoip.country_code_by_addr(self.ip).lower() | ||
32 | except pygeoip.GeoIPError: | ||
33 | print("[ERROR]", "Could not determine country for ip", self.ip) | ||
34 | |||
35 | self.country_code = country_code | ||
36 | return country_code | ||
diff --git a/banapedia/__init__.py b/banapedia/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/banapedia/__init__.py +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | |||
diff --git a/banapedia/api/Query.py b/banapedia/api/Query.py deleted file mode 100644 index 7453df9..0000000 --- a/banapedia/api/Query.py +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | import urllib.parse | ||
2 | import urllib.request | ||
3 | import json | ||
4 | |||
5 | __author__ = 'pacien' | ||
6 | |||
7 | |||
8 | class Query: | ||
9 | def __init__(self, base_url="", params={}, encoding="utf8"): | ||
10 | self.base_url = base_url | ||
11 | self.params = params | ||
12 | self.encoding = encoding | ||
13 | |||
14 | def fetch_raw_result(self): | ||
15 | post_query = urllib.parse.urlencode(self.params) | ||
16 | post_query = post_query.encode(self.encoding) | ||
17 | document = urllib.request.urlopen(self.base_url, post_query) | ||
18 | return document.read().decode(self.encoding) | ||
19 | |||
20 | |||
21 | class JSONQuery(Query): | ||
22 | def fetch_result(self): | ||
23 | return json.loads(self.fetch_raw_result()) | ||
diff --git a/banapedia/api/__init__.py b/banapedia/api/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/banapedia/api/__init__.py +++ /dev/null | |||
diff --git a/banapedia/wapi/WikipediaQuery.py b/banapedia/wapi/WikipediaQuery.py deleted file mode 100644 index d3d2f94..0000000 --- a/banapedia/wapi/WikipediaQuery.py +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | from ..api.Query import JSONQuery | ||
2 | |||
3 | __author__ = 'pacien' | ||
4 | |||
5 | WIKIPEDIA_QUERY_BASE_URL = "https://en.wikipedia.org/w/api.php" | ||
6 | LIST_SEPARATOR = "|" | ||
7 | DEFAULT_BKPROP = ["id", "user", "userid", "by", "byid", "timestamp", "expiry", "reason", "range", "flags"] | ||
8 | DEFAULT_BKSHOW = ["account", "temp", "ip", "range"] | ||
9 | |||
10 | |||
11 | class WikipediaQuery(JSONQuery): | ||
12 | def __init__(self, params={}): | ||
13 | params.update({ | ||
14 | "action": "query", | ||
15 | "format": "json", | ||
16 | }) | ||
17 | JSONQuery.__init__(self, base_url=WIKIPEDIA_QUERY_BASE_URL, params=params) | ||
18 | |||
19 | |||
20 | class ListQuery(WikipediaQuery): | ||
21 | def __init__(self, list_name, params={}): | ||
22 | params.update({ | ||
23 | "list": list_name, | ||
24 | }) | ||
25 | WikipediaQuery.__init__(self, params) | ||
26 | |||
27 | |||
28 | class BlockQuery(ListQuery): | ||
29 | def __init__(self, bkprop=DEFAULT_BKPROP, bkshow=DEFAULT_BKSHOW, bkdir="newer", limit=500, continue_token=None): | ||
30 | params = { | ||
31 | "bkprop": LIST_SEPARATOR.join(bkprop), | ||
32 | "bkshow": LIST_SEPARATOR.join(bkshow), | ||
33 | "bkdir": bkdir, | ||
34 | "bklimit": limit, | ||
35 | } | ||
36 | |||
37 | if continue_token is not None: | ||
38 | params.update({"bkcontinue": continue_token}) | ||
39 | |||
40 | ListQuery.__init__(self, "blocks", params=params) | ||
41 | |||
42 | |||
diff --git a/banapedia/wapi/__init__.py b/banapedia/wapi/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/banapedia/wapi/__init__.py +++ /dev/null | |||