Wikia.__init__()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 2
c 1
b 0
f 0
rs 10
cc 1
1
#    Copyright 2017 Starbot Discord Project
2
#
3
#    Licensed under the Apache License, Version 2.0 (the "License");
4
#    you may not use this file except in compliance with the License.
5
#    You may obtain a copy of the License at
6
#
7
#        http://www.apache.org/licenses/LICENSE-2.0
8
#
9
#    Unless required by applicable law or agreed to in writing, software
10
#    distributed under the License is distributed on an "AS IS" BASIS,
11
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
#    See the License for the specific language governing permissions and
13
#    limitations under the License.
14
'''Wikia API'''
15
import urllib.request
16
import json
17
18
class Wikia:
19
    wiki_name = ""
20
21
    def __init__(self, wiki):
22
        self.wiki_name = wiki
23
24
    def wikia_search(self, term, limit=1):
25
        '''Search for a page on Wikia'''
26
        # TODO: make limits over 1 return an array
27
        search_term = term.replace(" ", "+")
28
        url = "http://{}.wikia.com/api/v1/Search/List?query={}&limit=1&minArticleQuality=10&batch=1&namespaces=0%2C14".format(self.wiki_name, search_term)
29
30
        json_string = urllib.request.urlopen(url).read().decode("utf-8")
31
        json_d = json.loads(json_string)
32
33
        return json_d['items']
34
35
    def wikia_getpage(self, page_id):
36
        '''Get a page on Wikia based on the page ID'''
37
        url = "http://{}.wikia.com/api/v1/Articles/AsSimpleJson?id={}".format(self.wiki_name, page_id)
38
39
        json_string = urllib.request.urlopen(url).read().decode("utf-8")
40
        json_d = json.loads(json_string)
41
42
        return json_d['sections']
43
44
    def wikia_getdetails(self, page_id):
45
        '''Get details of a wikia page based on a page ID'''
46
        url = "http://{}.wikia.com/api/v1/Articles/Details?ids={}&abstract=100&width=200&height=200".format(self.wiki_name, page_id)
47
48
        json_string = urllib.request.urlopen(url).read().decode("utf-8")
49
        json_d = json.loads(json_string)
50
51
        return json_d['items']
52