Skip to content

moonburnt/pykagapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pykagapi

Description:

pykagapi - a python wrapper for King Arthurs Gold-related APIs (KAG API v1 and KAG Stats API). Use it as you please, feel free to contribute!

Dependencies:

  • python 3.10+
  • requests
  • aiohttp (for async client)

Installation:

From source:

  • Install poetry
  • Clone this repo: git clone https://github.com/moonburnt/pykagapi.git
  • Enter project's directory: cd pykagapi
  • poetry install

From pypi:

  • pip install pykagapi

Example Usage:

Getting general api info:

from pykagapi import kag

with kag.get_client() as c:
    print(c.get_api_info())

Getting general api info asynchroniously:

from pykagapi import kag
import asyncio

async def main():
    async with kag.get_async_client() as c:
        print(await c.get_api_info())

asyncio.run(main())

Getting amount of currently active servers:

from pykagapi import kag

with kag.get_client() as c:
    servers_amount = len(kag.extra.get_active_servers()["serverList"])

print(f"There are currently {servers_amount} servers with players!")

Example output: There are currently 6 servers with players!

Currently unimplemented api calls:

KAG API:

  • Everything that isn't "get" requests, because Im just a regular player and dont have ability to upload or remove anything

KAGSTATS API:

  • https://kagstats.com/api/players/{id}/refresh, because it doesnt seem to do anything
  • Whatever I didnt notice while casually reading api's source codes

TODO:

  • Support for non-GET requests
  • Automated tests
  • Support for "limit"/"start" in list views of kagstats api
  • Make async client optional

LICENSE:

MIT