Документация пакета gvapi¶
Пакет gvapi это неофициальный враппер для API игры Годвилль.
Фичи:
- Создание объекта героя с соответствующими атрибутами
- Автоматическое обновление данных внутри объекта
- Отслеживание ошибок с соответствующими исключениями
- Возможность использоваться расширенного доступа с использованием токена
Полезные ссылки:
Оглавление¶
Быстрый старт¶
Установка¶
Данный пакет доступен для установки из PyPi:
python3 -m pip install gvapi
Также можно установить самую последнюю версию из репозитория:
git clone https://github.com/TitaniumHocker/gvapi.git
cd gvapi
python3 -m pip install .
Пример использования¶
Простейший пример использования будет выглядеть следующим образом.
from gvapi import Hero
hero = Hero('Mars', token='awudhawiudh')
print('ЗЛ: ~{}k, КП: {:.1f}%'.format(hero.goldf, hero.bricks_percent))
Данный скрипт выведет примерное количество золота героя и количество кирпичей.
python3 simple.py
ЗЛ: 8.0k, КП: 43.0%
API пакета gvapi¶
Модуль gvapi.hero¶
-
class
gvapi.hero.
Hero
(god: str, token: str = None, api_url: str = 'https://godville.net/gods/api', threshold: int = 300)¶ - Базовые классы:
object
Основной класс пакета.
Через данный класс осуществляется доступ к данным героя.
-
god
¶ Имя бога.
Type: str
-
base_url
¶ URL для доступа к API.
Type: str
-
data
¶ Словарь с последними полученными данными.
Type: dict
Параметры: - god (str) – Имя бога.
- token (str, optional) – Токен для доступа к API. Если не указан, то обращение производится к открытому API.
- api_url (str, optional) – URL для доступа к API. Если не указан, то используется https://godville.net/gods/api.
- threshold (int, optional) – Задержка обновления данных о герое в секундах, по умолчанию 300 секунд или 5 минут. Данный параметр не может быть меньше 60(1 минута).
-
activatables
¶ Список активируемых предметов.
Type: list
-
alignment
¶ Характер героя.
Type: str
-
arena
¶ число побед и поражений на арене.
Type: tuple
-
ark
¶ Число тварей(ж, м)
Type: tuple
-
ark_completed_at
¶ Дата постройки ковчега.
Type: str
-
aura
¶ Аура, если отсутствует - пустая строка
Type: str
-
boss_name
¶ Имя собранного в лаборатории босса.
Type: str
-
boss_power
¶ Мощь собранного в лаборатории босса.
Type: str
-
bricks
¶ Число кирпичей для храма.
Type: int
-
bricks_percent
¶ Число кирпичей для храма в процентах.
Type: float
-
clan
¶ Название гильдии героя.
Type: str
-
clan_pos
¶ Ранг героя в гильдии.
Type: str
-
diary_last
¶ Последняя запись в дневнике.
Type: str
-
distance
¶ Дистанция до столицы, при нахождении в любом городе - 0.
Type: int
-
exp
¶ Прогресс опыта.
Type: int
-
expired
¶ Флаг актуальности данных, True в случае, когда данные неакутальны.
Type: bool
-
fight_type
¶ Тип боя
Type: str
-
from_last_updated
¶ Количество секунд, прошедших с последнего обновления данных.
Type: int
-
gender
¶ Пол героя.
Type: str
-
godpower
¶ Количество праны.
Type: int
-
godpower_percent
¶ Количество праны в процентах.
Type: int
-
gold
¶ Примерное количество золота.
Type: str
-
goldf
¶ Приверное количество золота, отформатированное в тысячи.
Type: float
-
health
¶ Количество очков здоровья героя.
Type: int
-
health_percent
¶ Количество очков здоровья героя в процентах.
Type: float
-
inventory
¶ Корнеж из количества предметов в инвентаре, максимального количества предметов и количества активируемых предметов.
Type: tuple
-
inventory_max_num
¶ Максимальное количество предметов в инвентаре.
Type: int
-
inventory_num
¶ Количество предметов в инвентаре.
Type: int
-
is_alive
¶ Жив ли герой.
Type: bool
-
is_fighting
¶ Находится ли герой в бою(арена, босс, заплыв, подземка).
Type: bool
-
last_upd
¶ Время последнего обновления данных.
Type: datetime
-
level
¶ Уровень героя.
Type: int
-
lock
¶ Заблокированы ли запросы к API.
Type: bool
-
max_godpower
¶ Максимальное количество праны.
Type: int
-
max_health
¶ Максимальное количество очков здоровья героя.
Type: int
-
motto
¶ Девиз героя.
Type: str
-
name
¶ Имя героя.
Type: str
-
quest
¶ Текст текущего задания.
Type: str
-
quest_progress
¶ Процесс выполнения задания в процентах.
Type: float
-
savings
¶ Примерное число сбережений.
Type: str
-
savings_completed_at
¶ Дата окончания сбора пенсии.
Type: str
-
shop_name
¶ Название лавки, только у пенсионеров.
Type: str
-
sync
() → None¶ Синхронизировать данные
Произвести синхронизацию данных. Синхронизация производится только в случае если прошла задержка обновления данных(threshold).
-
t_level
¶ Троговый уровень.
Type: int
-
temple_completed_at
¶ Когда был достроен храм.
Type: str
-
threshold
¶ Задержка обновления данных о герое в секундах.
Type: int
-
token
¶ Токен в защищенном формате(не скрыты только последние 4 символа). Если токен не используется, то возвращает None
Type: str
-
town_name
¶ Имя города, пустая строка если в поле или в бою.
Type: str
-
wood_count
¶ Количество поленьев.
Type: int
-
words
¶ Количество слов в книге.
Type: int
-
Модуль gvapi.pet¶
-
class
gvapi.pet.
Pet
(hero)¶ - Базовые классы:
object
Класс питомца
Данный класс описывает питомца.
Параметры: hero ( Hero
) – Экземпляр класса героя, которому принадлежит данный питомец.-
class_name
¶ Вид питомца.
Type: str
-
level
¶ Уровень питомца.
Type: int
-
name
¶ Имя питомца.
Type: str
-
wounded
¶ Контужен ли питомец.
Type: bool
-
Модуль gvapi.util¶
-
gvapi.util.
syncing
(func: Callable[[Any], Any]) → Callable[[Any], Any]¶ Декоратор для принудительной синхронизации при вызове метода.
Параметры: func (func) – Декорируемая функция. Результат: Функция, обернутая в декоратор. Тип результата: func
-
gvapi.util.
tokenized
(func: Callable[[Any], Any]) → Callable[[Any], Any]¶ Декоратор для метода, требующего использования токена.
Параметры: func (func) – Декорируемая функция.
Результат: Функция, обернутая в декоратор.
Тип результата: func
Raises: NeedToken
– в случае, если производится обращение к атрибуту, доступнопу только при использовании токена, без использования токена.TokenWasResetted
– в случае, если токен был сброшен.
Модуль gvapi.errors¶
Модуль с исключениями.
В данном модуле описаны исключения, использующиеся в пакете.
- Базовые классы:
gvapi.errors.GVAPIException
API недоступно.
-
exception
gvapi.errors.
GVAPIException
¶ - Базовые классы:
Exception
Общее исключение пакета. От данного исключения наследуются остальные исключения пакета.
-
exception
gvapi.errors.
InvalidToken
¶ - Базовые классы:
gvapi.errors.GVAPIException
Токен невалилен или был сброшен.
-
exception
gvapi.errors.
MinThresholdException
¶ - Базовые классы:
gvapi.errors.GVAPIException
Порог обновления меньше минимального значения.
-
exception
gvapi.errors.
NeedToken
¶ - Базовые классы:
gvapi.errors.GVAPIException
Для доступа необходим токен.
-
exception
gvapi.errors.
TheArkIsUndone
¶ - Базовые классы:
gvapi.errors.GVAPIException
Ковчег еще не построен.
-
exception
gvapi.errors.
TheSavingsInUndone
¶ - Базовые классы:
gvapi.errors.GVAPIException
Сбережения(пенсия) еще не собраны.
-
exception
gvapi.errors.
TheTempleIsUndone
¶ - Базовые классы:
gvapi.errors.GVAPIException
Храм еще не построен.
-
exception
gvapi.errors.
UnexpectedAPIResponse
¶ - Базовые классы:
gvapi.errors.GVAPIException
Непредвиденный ответ API.
-
exception
gvapi.errors.
UnknownGod
¶ - Базовые классы:
gvapi.errors.GVAPIException
Бог не был найден.
Лицензия исходного кода¶
MIT License
Copyright (c) 2020 Ivan Fedorov
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the «Software»), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.