Spaces:
Sleeping
Sleeping
Abhinav
commited on
feat: Helper functions
Browse files- utils/models.py +50 -0
- utils/wolvesville.py +24 -0
utils/models.py
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from pydantic import BaseModel
|
2 |
+
from typing import Dict, List, Union
|
3 |
+
|
4 |
+
|
5 |
+
class Image(BaseModel):
|
6 |
+
url: str
|
7 |
+
width: int
|
8 |
+
height: int
|
9 |
+
|
10 |
+
|
11 |
+
class Role(BaseModel):
|
12 |
+
id: str
|
13 |
+
team: str
|
14 |
+
aura: str
|
15 |
+
name: str
|
16 |
+
description: str
|
17 |
+
image: Image
|
18 |
+
|
19 |
+
|
20 |
+
def _getRoleObjects(roles: List[Dict[str, Union[str, Dict]]]):
|
21 |
+
roleList = []
|
22 |
+
for role in roles:
|
23 |
+
try:
|
24 |
+
entry = Role(**role)
|
25 |
+
roleList.append(entry)
|
26 |
+
except Exception as e:
|
27 |
+
print(e)
|
28 |
+
print(role)
|
29 |
+
return roleList
|
30 |
+
|
31 |
+
|
32 |
+
class Emoji(BaseModel):
|
33 |
+
id: str
|
34 |
+
name: str
|
35 |
+
rarity: str
|
36 |
+
urlPreview: str
|
37 |
+
urlAnimation: str
|
38 |
+
event: str = None
|
39 |
+
|
40 |
+
|
41 |
+
def _getEmojiObjects(emojis: List[Dict[str, Union[str, Dict]]]):
|
42 |
+
emojiList = []
|
43 |
+
for emoji in emojis:
|
44 |
+
try:
|
45 |
+
entry = Emoji(**emoji)
|
46 |
+
emojiList.append(entry)
|
47 |
+
except Exception as e:
|
48 |
+
print(e)
|
49 |
+
print(emoji)
|
50 |
+
return emojiList
|
utils/wolvesville.py
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from utils.models import _getRoleObjects, _getEmojiObjects
|
2 |
+
from dotenv import load_dotenv
|
3 |
+
from os import getenv
|
4 |
+
import requests
|
5 |
+
|
6 |
+
load_dotenv()
|
7 |
+
|
8 |
+
|
9 |
+
class Wolvesville:
|
10 |
+
def __init__(self):
|
11 |
+
API_KEY = getenv("API_KEY")
|
12 |
+
self.headers = {"Authorization": f"Bot {API_KEY}"}
|
13 |
+
self.url = "https://api.wolvesville.com"
|
14 |
+
|
15 |
+
def getRoles(self):
|
16 |
+
data = requests.get(f"{self.url}/roles", headers=self.headers).json()
|
17 |
+
roles = data["roles"]
|
18 |
+
resp = _getRoleObjects(roles=roles)
|
19 |
+
return resp
|
20 |
+
|
21 |
+
def getEmojis(self):
|
22 |
+
emojis = requests.get(f"{self.url}/items/emojis", headers=self.headers).json()
|
23 |
+
resp = _getEmojiObjects(emojis=emojis)
|
24 |
+
return resp
|