An asynchronous Python client for XIVAPI
Project description
pyxivapi
An asynchronous Python client for XIVAPI
Requirements
python>=3.6.0
asyncio
aiohttp
Installation
pip install pyxivapi
Supported API end points
- /character/search
- /character/id
- /freecompany/search
- /freecompany/id
- /linkshell/search
- /linkshell/id
- /pvpteam/search
- /pvpteam/id
- /index/search (e.g. recipe, item, action, pvpaction, mount, e.t.c.)
- /index/id
- /lore/search
- /lodestone/worldstatus
Documentation
Example
import asyncio
import logging
import aiohttp
import pyxivapi
from pyxivapi.models import Filter, Sort
async def fetch_example_results():
client = pyxivapi.XIVAPIClient(api_key="your_key_here")
# Search Lodestone for a character
character = await client.character_search(
world="odin",
forename="lethys",
surname="lightpaw"
)
# Get a character by Lodestone ID with extended data & include their Free Company information, if it has been synced.
character = await client.character_by_id(
lodestone_id=8255311,
extended=True,
include_freecompany=True
)
# Search Lodestone for a free company
freecompany = await client.freecompany_search(
world="gilgamesh",
name="Elysium"
)
# Item search with paging
item = await client.index_search(
name="Eden",
indexes=["Item"],
columns=["ID", "Name"],
filters=[
Filter("LevelItem", "gt", 520)
],
sort=Sort("LevelItem", False),
page=0,
per_page=10
)
# Fuzzy search XIVAPI game data for a recipe by name. Results will be in English.
recipe = await client.index_search(
name="Crimson Cider",
indexes=["Recipe"],
columns=["ID", "Name", "Icon", "ItemResult.Description"]
)
# Fuzzy search XIVAPI game data for a recipe by name. Results will be in French.
recipe = await client.index_search(
name="Cidre carmin",
indexes=["Recipe"],
columns=["ID", "Name", "Icon", "ItemResult.Description"],
language="fr"
)
# Get an item by its ID (Omega Rod) and return the data in German
item = await client.index_by_id(
index="Item",
content_id=23575,
columns=["ID", "Name", "Icon", "ItemUICategory.Name"],
language="de"
)
filters = [
Filter("ClassJobLevel", "gte", 0)
]
# Get non-npc actions matching a given term (Defiance)
action = await client.index_search(
name="Defiance",
indexes=["Action", "PvPAction", "CraftAction"],
columns=["ID", "Name", "Icon", "Description", "ClassJobCategory.Name", "ClassJobLevel", "ActionCategory.Name"],
filters=filters,
string_algo="match"
)
# Search ingame data for matches against a given query. Includes item, minion, mount & achievement descriptions, quest dialog & more.
lore = await client.lore_search(
query="Shiva",
language="fr"
)
# Search for an item using specific filters
filters = [
Filter("LevelItem", "gte", 100)
]
sort = Sort("LevelItem", True)
item = await client.index_search(
name="Omega Rod",
indexes=["Item"],
columns=["ID", "Name", "Icon", "Description", "LevelItem"],
filters=filters,
sort=sort,
language="de"
)
await client.session.close()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO, format='%(message)s', datefmt='%H:%M')
loop = asyncio.get_event_loop()
loop.run_until_complete(fetch_example_results())
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyxivapi-0.5.1.tar.gz
(8.5 kB
view details)
Built Distribution
File details
Details for the file pyxivapi-0.5.1.tar.gz
.
File metadata
- Download URL: pyxivapi-0.5.1.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b9135fa6042cd31193ea76f4e2cbc55d189375cea78fbfedd8255a2dc5de662 |
|
MD5 | 1d518b80c80065ae7768c93035b5b15d |
|
BLAKE2b-256 | f389ee60e97c68af6112ed19e9df13793050fc35eadce7d834dfe8d0c5fec4e3 |
File details
Details for the file pyxivapi-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: pyxivapi-0.5.1-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90da2ec1810eea060be624a8fefa098fdc1ce54fd5f37117ceb30eea9d3c5733 |
|
MD5 | ed6f816cf5a2ea074b69b695f4f6e02b |
|
BLAKE2b-256 | 7f9ecf99a2d6063001554e03d55e83a2e00253c7429704b23d471ff3aa9deb0d |