All notable changes to this project will be documented in this file.
- Implemented an endpoint with
Client.get_event_rotation
which gets the events in the current rotation. - Added a method
Player.get_battle_logs
which directly gets the player's battle log.
- Client actually uses session passed into parameters now instead of creating a new one anyways
UnexpectedError
now properly shows the returned text in the message- The
use_cache
parameter now works forget_brawlers
and the async client
- Removed the prevent_ratelimit option for the Client
- Dropped support for Python 3.5, 3.6, 3.7, and 3.8
- Removed
Client.get_constants
as the site that was hosting it is no longer running
- Installation dependency issue with aiohttp
use_cache
parameter for methods to specify whether or not to use cache for a specific API call
- Wrapper no longer replaces the letter O with 0 for tags to better represent a valid tag
- Format of the string of
utils.get_datetime
Player.get_club
now works for the async client if the player is not in a club
- Removed the print statement on client initialization
- Actually uses asyncio.Lock properly if the async client has the option
prevent_ratelimit=True
get_brawlers
function to get available brawlers
- Split
BaseBox
intoBaseBox
andBaseBoxList
for convenience
- Brawler leaderboards for Python 3.5
- Player model bug
- An alias for
Player.x3vs3_victories
calledteam_victories
reason
attribute forNotFoundError
- BrawlAPI client
Client.get_datetime
moved to utilsget_rankings
now requires all arguments to be keyword arguments
- Brawler leaderboard now works
- Leaderboard functions reverted to one function for all types of leaderboards/rankings
invalid_chars
attribute forNotFoundError
when applicableurl
attribute for all errors that have requested a URLstr(error)
will return the message attribute of the error.
- The
error
attribute for all errors have been renamed tomessage
- For BrawlAPI:
get_leaderboard
split up intoget_player_leaderboard
,get_club_leaderboard
, andget_brawler_leaderboard
- For the official API:
get_rankings
split up intoget_player_rankings
,get_club_rankings
, andget_brawler_rankings
- A bug with brawler leaderboards for the BrawlAPI
- Base url for BrawlAPI now https://api.starlist.pro/v1
- Official API support (all endpoints implemented, all methods documented)
Forbidden
error raised when code 403 received- New terminology! "BrawlAPI" refers to the unofficial API while "OfficialAPI" refers to the official API
- The unofficial API's client will now be accessed as
brawlstats.BrawlAPI
(frombrawlstats.Client
) - The unofficial API's models will now be accessed as
brawlstats.brawlapi.ModelName
- The official API's client will be accessed by
brawlstats.OfficialAPI
- The official API's models will be accessed by
brawlstats.officialapi.ModelName
get_leaderboard()
will now require "brawlers" for the ranking type and the actual brawler name passed through the brawler kwarg.get_leaderboard()
count
argument has been renamed tolimit
- BrawlAPI
get_leaderboard
parameter documentation fixed - Arguments passed into functions that require player/club tags now properly get formatted correctly.
- Default timeout from 10 to 30
- Cache is smaller due to smaller 3 r/s ratelimit (from 5)
- Fixed a bug where
UnexpectedError
did not work due to a typo.
- New brawler 8-Bit
- Player battle logs
- Local leaderboards
- Fixed the sync version of the wrapper to not raise a RuntimeWarning due to using
asyncio.sleep()
instead oftime.sleep()
- New brawler tick
- Renamed ricochet to rico
- Fixed the sync client when not using
prevent_ratelimit
- Bibi!
- Changed the Base URL back to the new URL.
- Now waits the number of seconds instead of raising a
RateLimitError
when a rate limit will be detected BEFORE it requests.
- Changed the BASE URL to the old API URL. VERSION 2.3.6 WILL NOT WORK DUE TO API TIMEOUT ISSUES. PLEASE UPDATE.
- Rosa to the brawler list
prevent_ratelimit
option when initializing a client to wait when chaining requests
- Base URL for requests to the new API URL
- Ratelimit updated to API's 3 requests per second
- Fixed the rate limit handler when error code 429 was returned by the API.
- Fixed a mistake where
time()
was being called directly (instead oftime.time()
)
- Added carl to the brawler list
- Renamed
Profile
class toPlayer
- Allows users to pass in a connector for the async client which fixes issue #19.
- Creates requests with gzip encoding enabled to cut request times.
- Detect a rate limit before it requests from the API.
- Changed the request log.
- No longer imports itself in
utils.py
for the version number.
- Added caching that clears after 180 seconds to not spam the API with the same requests.
- Fixed debug on the sync client.
- Added the text that the API returns when an
UnexpectedError
is raised. If you see this, you should report the error to the discord server
- Fixed the club search request URL
- Fixed sync
search_club
- Fixed issue #20
- Removed
pytest
from the package requirements.
- Club search actually returns a list now.
- Added wrapper and python version numbers to the User Agent when making API requests.
url
param in the client changed tobase_url
debug
option to pass in when intializingbrawlstats.core.Client
to log requests.
- Fixed installation error where the
constants.json
info key was removed.
- Added gene to the list of brawlers to get for the brawler leaderboard.
- Fixed
search_club()
- Fixed some attribute typos in docs for the Misc category
- Providing no loop while setting
is_async
toTrue
now correctly defaults toasyncio.get_event_loop()
- Fixed the URL for
get_club()
- Fixed some typos in docs
- Fixed attribute charts in docs
- Change the way you get a brawler with
get_leaderboard()
- Updated documentation for added keys
- Search Clubs (
search_club()
) - Season and Shop Data (
get_misc()
)
- Loop parameter for the client for aiohttp sessions if one has not yet been specified. If you specify a session, you must set the loop to that session before you pass it in otherwise the loop will not be applied.
- MaintenanceError raised when the game is undergoing maintenance.
- Fix any data that involves a list (Leaderboard)
get_datetime
function for easier date and time conversions
- No longer need to access a players or clubs attribute when getting a leaderboard
- Fixed a bug in the sync version of
get_constants()
where there was an extraawait
- Constants extracted from the Brawl Stars App using
Client.get_constants
BREAKING CHANGES: Brawl Stars dev team changed "Band" to "Club". This update fixes all of that.
Band
has been changed toClub
SimpleBand
has been changed toPartialClub
- Documentation has been updated for this
- All methods that originally had "band" in them have been changed to "club"
- All attributes that originally had "band" in them have been changed to "club"
RateLimitError
to handle the 2 requests/sec ratelimit of the API.
- Remove warnings and stuff to prevent memory leaks and fix session initialization (PR from Kyber)
- Resp accessible in data models via
Model.resp
- Added documentation for below change and new attributes that the API introduced.
InvalidTag
changed toNotFoundError
- Allows developers to change the base URL to make request to. This addresses issue #6
- Synchronous support! You can now set if you want an async client by using
is_async=True
asyncio.TimeoutError
now properly raisesServerError
BadRequest
andNotFoundError
(negates v2.0.6). These were found to not be needed
- Support for the new
/events
endpoint for current and upcoming event rotations
- Change the Unauthorized code from 403 to 401 due to API error code changes
BadRequest
andNotFoundError
for more API versatility
- Leaderboards fixed
- Support for the brand new API at https://brawlapi.cf/api
- Python 3.5 support!
- Base links for the new API changes
- Essential core
- Request maker