A client for the Pixel Starships Fleet Data API.
Project description
Pixel Starships Fleet Data API client
An async client library to access the PSS Fleet Data API. Currently supported API version is 1.5.0.
Built with
✨ Features
- Fully typehinted so your favorite IDE can assist you with code completion.
- Easy access to any instance of a PSS Fleet Data API server.
- Fast setup to get you started quickly.
🔍 Future plans
- Support more Python versions
🚀 Demo
To retrieve the last month's tournament results (a specific Collection):
import asyncio
from datetime import datetime, timezone
from pss_fleet_data import ParameterInterval, PssFleetDataClient, utils
# Create the client, specifying the API server's base URL. If you don't specify a base URL, it defaults to https://fleetdata.dolores2.xyz
client = PssFleetDataClient(base_url="https://fleetdata.dolores2.xyz")
async def print_latest_tournament_results():
# Get the current time
now = datetime.now(tz=timezone.utc)
# Tournament results are collected shortly before the start of a new month.
# Calculate the most recent start of month relative to now.
most_recent_timestamp = utils.get_most_recent_timestamp(now, ParameterInterval.MONTHLY)
# Then get the most recent data collected before the calculated timestamp.
collection = await client.get_most_recent_collection_by_timestamp(most_recent_timestamp)
# Work with the Collection.
print(f"Collection with ID {collection.metadata.collection_id} collected at {collection.metadata.timestamp}.")
print(f"It has collected {collection.metadata.fleet_count} fleets and {len(collection.users)} players.")
# You can use the Collection's ID in other methods, too, e.g. get the top 100 players at the end of the month.
_, top_100_users = await client.get_top_100_users_from_collection(collection.metadata.collection_id)
print(f"The player ranked 3rd last month was: {top_100_users[2].name}")
# Or obtain the player stats of the 2nd best player last month over time
user_history = await client.get_user_history(top_100_users[1].id, interval=ParameterInterval.MONTHLY)
print(
"Found %i history entries for player %s from %s to %s",
len(user_history),
top_100_users[1].name,
user_history[0].collection.timestamp.isoformat(),
user_history[-1].collection.timestamp.isoformat(),
)
if __name__ == "__main__":
asyncio.run(print_latest_tournament_results())
The library converts localized datetime
objects to UTC or assumes UTC, if now timezone
information is given. Any datetime
objects returned are in UTC.
⚙️ Installation
Python 3.11 or higher is required
To install the latest version of this library, run the following command:
pip install -U pss-fleet-data-client
🖊️ Contribute
If you ran across a bug or have a feature request, please check if there's already an issue for that and if not, open a new one.
If you want to fix a bug or add a feature, please check out the Contribution Guide.
🆘 Support
If you need help using the library or want to contribute, you can join my support Discord at: discord.gg/kKguSec
🔗 Links
- Documentation (tbd)
- Official Support Discord server
- PSS Fleet Data API
- Buy me a can of cat food
- Or a coffee
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pss_fleet_data_client-0.7.0.tar.gz
.
File metadata
- Download URL: pss_fleet_data_client-0.7.0.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1e71eb7f57ec137fdc9d15a1e4612bd1e4a8f14045b6545d4495baa5313cff1 |
|
MD5 | 3f32e45d68f53e3fff83ac529de848fd |
|
BLAKE2b-256 | a9113e28420a73cab4ebda0b2bf44b2189fdbf596294d97f8b38732a9c278435 |
File details
Details for the file pss_fleet_data_client-0.7.0-py3-none-any.whl
.
File metadata
- Download URL: pss_fleet_data_client-0.7.0-py3-none-any.whl
- Upload date:
- Size: 26.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3c23f594c8c4ee666571ce6c044cce145f311eb323617fb8b52b07e3ca39e1f |
|
MD5 | 41a68388cca147388e29a086f27c6c7d |
|
BLAKE2b-256 | 7388994e91f0e75a64562cd4449b4e244891455110db025ee3d37b0e231d95f3 |