mirror of
https://github.com/deesiigneer/pyspapi.git
synced 2026-04-20 12:35:26 +00:00
- Добавлены классы исключений SPAPIError и ValidationError для улучшенной обработки ошибок API - В APISession добавлен параметр raise_exception, который позволяет выбрасывать исключения при ошибках API - Обновлены методы request, get, post, put для поддержки raise_exception - Расширена модель SPAPI с передачей параметра raise_exception refactor(api, models): улучшена структура кода и модели данных - Упрощена и улучшена реализация APISession, исправлены устаревшие методы и типы - Модель City переработана: добавлены новые поля (nether_x, nether_z, lane, role, created_at), улучшены свойства и __repr__ - Исправлена модель Card (исправлено имя класса с Cards на Card) - В модели Account добавлено поле minecraftuuid, заменено поле city на cities с поддержкой списка объектов City - Исправлены типы возвращаемых значений и добавлены аннотации типов в ключевых местах - Устранены дублирования и улучшена читаемость кода - Комментарии и докстринги уточнены и унифицированы fix(api): исправлены ошибки и опечатки в коде - Исправлено использование устаревших методов для запросов к API - Удалены лишние пустые строки и форматирование под PEP8 Fixes #16 Signed-off-by: deesiigneer <goldenrump@gmail.com>
153 lines
3.6 KiB
Python
153 lines
3.6 KiB
Python
class City:
|
|
def __init__(self, city_id=None, name=None, x=None, z=None, nether_x=None, nether_z=None, lane=None, role=None,
|
|
created_at=None):
|
|
self._id = city_id
|
|
self._name = name
|
|
self._x = x
|
|
self._z = z
|
|
self._nether_x = nether_x
|
|
self._nether_z = nether_z
|
|
self._lane = lane
|
|
self._role = role
|
|
self._created_at = created_at
|
|
|
|
@property
|
|
def id(self):
|
|
return self._id
|
|
|
|
@property
|
|
def name(self):
|
|
return self._name
|
|
|
|
@property
|
|
def x(self):
|
|
return self._x
|
|
|
|
@property
|
|
def z(self):
|
|
return self._z
|
|
|
|
@property
|
|
def nether_x(self):
|
|
return self._nether_x
|
|
|
|
@property
|
|
def nether_z(self):
|
|
return self._nether_z
|
|
|
|
@property
|
|
def lane(self):
|
|
return self._lane
|
|
|
|
@property
|
|
def role(self):
|
|
return self._role
|
|
|
|
@property
|
|
def created_at(self):
|
|
return self._created_at
|
|
|
|
def __repr__(self):
|
|
return (
|
|
f"City(id={self._id}, name={self._name}, x={self._x}, z={self._z}, "
|
|
f"nether_x={self._nether_x}, nether_z={self._nether_z}, lane={self._lane}, role={self._role}, "
|
|
f"created_at={self._created_at})"
|
|
)
|
|
|
|
|
|
class Card:
|
|
def __init__(self, card_id=None, name=None, number=None, color=None):
|
|
self._id = card_id
|
|
self._name = name
|
|
self._number = number
|
|
self._color = color
|
|
|
|
@property
|
|
def id(self):
|
|
return self._id
|
|
|
|
@property
|
|
def name(self):
|
|
return self._name
|
|
|
|
@property
|
|
def number(self):
|
|
return self._number
|
|
|
|
@property
|
|
def color(self):
|
|
return self._color
|
|
|
|
def __repr__(self):
|
|
return f"Card(id={self._id}, name={self._name}, number={self._number}, color={self._color})"
|
|
|
|
|
|
class Account:
|
|
def __init__(self, account_id, username, minecraftuuid, status, roles, created_at, cards, cities):
|
|
self._id = account_id
|
|
self._username = username
|
|
self._minecraftuuid = minecraftuuid
|
|
self._status = status
|
|
self._roles = roles
|
|
self._cities = [
|
|
City(
|
|
city_id=city['city_id'],
|
|
name=city['name'],
|
|
x=city['x'],
|
|
z=city['z'],
|
|
nether_x=city['nether_x'],
|
|
nether_z=city['nether_z'],
|
|
lane=city['lane'],
|
|
role=city['role'],
|
|
created_at=city['created_at'],
|
|
)
|
|
for city in cities
|
|
]
|
|
self._cards = [
|
|
Card(
|
|
card_id=card["id"],
|
|
name=card["name"],
|
|
number=card["number"],
|
|
color=card["color"],
|
|
)
|
|
for card in cards
|
|
]
|
|
self._created_at = created_at
|
|
|
|
@property
|
|
def id(self):
|
|
return self._id
|
|
|
|
@property
|
|
def username(self):
|
|
return self._username
|
|
|
|
@property
|
|
def minecraftuuid(self):
|
|
return self._minecraftuuid
|
|
|
|
@property
|
|
def status(self):
|
|
return self._status
|
|
|
|
@property
|
|
def roles(self):
|
|
return self._roles
|
|
|
|
@property
|
|
def cities(self):
|
|
return self._cities
|
|
|
|
@property
|
|
def cards(self):
|
|
return self._cards
|
|
|
|
@property
|
|
def created_at(self):
|
|
return self._created_at
|
|
|
|
def __repr__(self):
|
|
return (f"Account(id={self._id}, username={self._username}, minecraftUUID={self._minecraftuuid}, "
|
|
f"status={self._status}, roles={self._roles}, cities={self._cities}, cards={self._cards}, "
|
|
f"created_at={self._created_at})")
|