-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathGTItemData.py
126 lines (122 loc) · 7.15 KB
/
GTItemData.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import requests
from bs4 import BeautifulSoup
def ItemData(NameItem, Region = "en"):
try:
ItemFinder = requests.get(f"https://growtopia.fandom.com/"+Region+"/api/v1/SearchSuggestions/List?query="+NameItem).json()
try:
ItemPage = requests.get("https://growtopia.fandom.com/"+Region+"/"+"wiki/"+ItemFinder["items"][0]["title"])
try:
Result = {}
HTMLResult = BeautifulSoup(ItemPage.text, "html.parser")
if len(HTMLResult.select(".gtw-card")) == 1:
Properties = HTMLResult.find_all('div', class_= "card-text")
Data = HTMLResult.select(".card-field")
Rarity = BeautifulSoup((str((HTMLResult.find('small'))).replace("(Rarity: ", "")).replace(")", ""), "html.parser").text
PropertiesResult = []
for add in Properties:
hum = BeautifulSoup(str(add).replace("<br/>", "--split--"), "html.parser")
PropertiesResult.append(hum.text)
Result.update({"Description": PropertiesResult[0].strip()})
Result.update({"Properties": (PropertiesResult[1].strip()).split("--split--")})
try:
Result.update({"Rarity": int(Rarity)})
except:
Result.update({"Rarity": "None"})
DataResult = []
for typ in Data:
mus = BeautifulSoup((str(typ).replace("</tr>", ",")).replace("</th>", ","), "html.parser")
DataResult = (((mus.text).split(",")))
res = 0
while res <= (len(DataResult)-3):
Result.update({DataResult[res].strip(): DataResult[res+1].strip()})
res = res+2
check = 0
for fix in Result.keys():
if check == 3:
Result[fix] = Result[fix].split(" - ")
if check == 8:
Result[fix] = Result[fix].split(" ")
if check == 7:
restore = []
for number in Result[fix].split(" "):
input = ""
for number2 in number:
if number2.isdigit():
input = input+number2
if input != "":
restore.append(input)
Result[fix] = {
"Fist":restore[0],
"Pickaxe":restore[1],
"Restore":restore[2]
}
check +=1
try:
ItemTitle = ((((HTMLResult.find('span', class_= "mw-headline")).small).decompose()).get_text(strip=True)).replace(u'\xa0', u' ')
except:
ItemTitle = (HTMLResult.find('span', class_= "mw-headline").get_text(strip=True)).replace(u'\xa0', u' ')
Result["Title"] = ItemTitle
else:
for HTMLResultTabber in HTMLResult.select(".gtw-card"):
Result2 = {}
PropertiesResult = []
Properties = HTMLResultTabber.find_all('div', class_= "card-text")
Data = HTMLResultTabber.select(".card-field")
Rarity = BeautifulSoup((str((HTMLResultTabber.find('small'))).replace("(Rarity: ","")).replace(")", ""), "html.parser").text
for add in Properties:
hum = BeautifulSoup(str(add).replace("<br/>", "--split--"), "html.parser")
PropertiesResult.append(hum.text)
Result2.update({"Description": PropertiesResult[0].strip()})
Result2.update({"Properties": (PropertiesResult[1].strip()).split("--split--")})
try:
Result2.update({"Rarity": int(Rarity)})
except:
Result2.update({"Rarity": "None"})
DataResult = []
for typ in Data:
mus = BeautifulSoup((str(typ).replace("</tr>", ",")).replace("</th>", ","), "html.parser")
DataResult = (mus.get_text(" ",strip=True)).split(",")
res = 0
while res <= (len(DataResult)-3):
Result2.update({DataResult[res].strip(): DataResult[res+1].strip()})
res = res+2
check = 0
for fix in Result2.keys():
if check == 3:
Result2[fix] = Result2[fix].split(" - ")
if check == 8:
Result2[fix] = Result2[fix].split(" ")
if check == 7:
restore = []
for number in Result2[fix].split(" "):
input = ""
for number2 in number:
if number2.isdigit():
input = input+number2
if input != "":
restore.append(input)
Result2[fix] = {
"Fist":restore[0],
"Pickaxe":restore[1],
"Restore":restore[2]
}
check +=1
try:
ItemTitle = ((((HTMLResultTabber.find('span', class_= "mw-headline")).small).decompose()).get_text(strip=True)).replace(u'\xa0', u' ')
except:
ItemTitle = (HTMLResultTabber.find('span', class_= "mw-headline").get_text(strip=True)).replace(u'\xa0', u' ')
Result[ItemTitle] = Result2
Result[ItemTitle]["Title"] = ItemTitle
try:
return Result[ItemFinder["items"][0]["title"]]
except:
if NameItem in Result.keys():
return Result[NameItem]
else:
return Result
except:
return({"Error": "Sorry! I can't find "+NameItem+" in Growtopia Fandom "+Region+" Error Code 3"})
except IndexError:
return({"Error": "Sorry! I can't find "+NameItem+" in Growtopia Fandom "+Region+" Error Code 2"})
except:
return({"Error": "It looks like we can't reach fandom.com "+Region+"! Try again later. Error Code 1"})