Skip to main content

stalcraft-api unofficial python library

Project description

stalcraft-api unofficial python library

PyPi Package Version

Supported python versions

MIT License

📄 Official API documentation: https://eapi.stalcraft.net

ℹ️ Before you can use the API, you must register your application and receive approval

ℹ️ For testing Demo API is available

more about applications


Setup

pip install stalcraft-api --upgrade
pip install -r requirements.txt

Quick Start

from stalcraft import AppClient



TOKEN = "YOUR_TOKEN"



client = AppClient(token=TOKEN)

Usage Examples

AppClient
from stalcraft import AppClient, Region, Sort, Order



CLIENT_ID = "YOUR_CLIENT_ID"

CLIENT_SECRET = "YOUR_CLIENT_SECRET"



TOKEN = "YOUR_TOKEN"



# Method 1:

client = AppClient(token=TOKEN)



# Method 2:

client = AppClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)



print()

print("List of regions")

print(client.regions())



print()

print("List of clans with limit 2")

print(client.clans(limit=2))



print()

print("Information about emission on NA server")

print(client.emission(Region.NA))



print()

print("List of lots for item with id 'y1q9'")

print("With offset 5, limit 2, sort by buyout price and order by descending")

print(client.auction("y1q9").lots(offset=5, limit=2, sort=Sort.BUYOUT_PRICE, order=Order.DESC))



print()

print("List of price history for item with id 'y1q9'")

print(client.auction("y1q9").price_history())



print()

print("Information about clan with id '562968e7-4282-4ac6-900f-f7f1581495e8'")

print(client.clan("562968e7-4282-4ac6-900f-f7f1581495e8").info())

UserClient
from stalcraft import UserClient, BaseUrl, Region



TOKEN = "YOUR_TOKEN"



client = UserClient(token=TOKEN, base_url=BaseUrl.DEMO)



# + all methods from AppClient



print("List of characters created by the user on EU server by which used access token was provided")

print(client.characters(Region.EU))



print()

print("List of friends character names who are friend with 'Test-1'")

print(client.friends("Test-1"))





# Members in clan with id '562968e7-4282-4ac6-900f-f7f1581495e8'

# (Can be used only when using user access token and that user has at least one character in that clan)

# client.clan("562968e7-4282-4ac6-900f-f7f1581495e8").members()



#

# Information about player's profile. Includes alliance, profile description, last login time, stats, etc.

# (Not working in DEMO API)

# client.character_profile("ZIV")

Find Item ID by name
from stalcraft import AppClient, LocalItem, WebItem



TOKEN = "YOUR_TOKEN"



client = AppClient(token=TOKEN)



print()

print("Search by local file")

print(client.auction(LocalItem("Snowflake")).lots())



print()

print("(Not reliable)")

print("Search by listing.json in stalcraft-database github repository")

print(client.auction(WebItem("Snowflake", folder="ru")).lots())

Exceptions
from stalcraft import UserClient, LocalItem



from stalcraft.exceptions import (

    InvalidToken, StalcraftApiException, ItemException

)



TOKEN = "YOUR_TOKEN"



client = UserClient(token=TOKEN)



def handle_exception(func, exception):

    try:

        func()

    except exception as e:

        print("Error:", e)



print()

print("If token is invalid")

handle_exception(lambda: UserClient("test1234567890"), InvalidToken)



print()

print("If an item with that name does not exist")

handle_exception(lambda: LocalItem("test"), ItemException)



print()

print("If one of parameters is invalid")

handle_exception(lambda: client.auction("test").price_history(), StalcraftApiException)

About Tokens

CLIENT_ID = "YOUR_CLIENT_ID"

CLIENT_SECRET = "YOUR_CLIENT_SECRET"



auth = Authorization(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)



print()

print("Get App Token")

print(auth.get_app_token())



print()

print("Get User Code")

print(auth.get_user_code())



auth.input_code()



# or

# auth.code = "USER_CODE"



print()

print("Get User Token")

print(auth.get_user_token())

Refresh User Token

CLIENT_ID = "YOUR_CLIENT_ID"

CLIENT_SECRET = "YOUR_CLIENT_SECRET"

REDIRECT_URI = "YOUR_REDIRECT_URI"



auth = Authorization(client_id=CLIENT_ID, client_secret=CLIENT_SECRET, redirect_uri=REDIRECT_URI)



REFRESH_TOKEN = "USER_REFRESH_TOKEN"



print()

print("Refresh User Token")

print(auth.update_token(REFRESH_TOKEN))

Output Formats

from stalcraft import AppClient



# Optional

from rich import print



TOKEN = "YOUR_TOKEN"



client = AppClient(token=TOKEN)



print()

print("Object:")

print(client.emission())



# or client = AppClient(TOKEN, json=True)

client.json = True



print()

print("Json:")

print(client.emission())

Output:

Object:

Emission(

    current_start=None,

    previous_start=datetime.datetime(2023, 1, 30, 5, 16, 52, tzinfo=datetime.timezone.utc),

    previous_end=datetime.datetime(2023, 1, 30, 5, 21, 52, tzinfo=datetime.timezone.utc)

)



Json:

{

    'previousStart': '2023-01-30T05:16:52Z',

    'previousEnd': '2023-01-30T05:21:52Z'

}

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

stalcraft-api-0.2.4.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stalcraft_api-0.2.4-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file stalcraft-api-0.2.4.tar.gz.

File metadata

  • Download URL: stalcraft-api-0.2.4.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for stalcraft-api-0.2.4.tar.gz
Algorithm Hash digest
SHA256 5bfea2d2b79e33061c230bc619cc7f430d6727d02be44a060d8b7170b4b0b378
MD5 0430162aa3d51b3e9d09d8c14cc1c157
BLAKE2b-256 de835c826db4a61f82958a0c1085bb4d60fffc0bd26dd5b0de13ef41fd811533

See more details on using hashes here.

File details

Details for the file stalcraft_api-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: stalcraft_api-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for stalcraft_api-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1a866e1c2380ce9b113cb697bd71841714bec95efca2cf6e9d7a8fbfc6e6fc93
MD5 14d1d97404236df0c0e52687cc0433bd
BLAKE2b-256 21aa269dab2d4b41333382d2f9447b215902a825cad7aba353fed4509651f31f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page