All notable changes to this project will be documented in this file.
- Implemented an endpoint with
Client.get_event_rotationwhich gets the events in the current rotation. - Added a method
Player.get_battle_logswhich directly gets the player's battle log.
- Client actually uses session passed into parameters now instead of creating a new one anyways
UnexpectedErrornow properly shows the returned text in the message- The
use_cacheparameter now works forget_brawlersand 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_constantsas the site that was hosting it is no longer running
- Installation dependency issue with aiohttp
use_cacheparameter 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_clubnow 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_brawlersfunction to get available brawlers
- Split
BaseBoxintoBaseBoxandBaseBoxListfor convenience
- Brawler leaderboards for Python 3.5
- Player model bug
- An alias for
Player.x3vs3_victoriescalledteam_victories
reasonattribute forNotFoundError
- BrawlAPI client
Client.get_datetimemoved to utilsget_rankingsnow requires all arguments to be keyword arguments
- Brawler leaderboard now works
- Leaderboard functions reverted to one function for all types of leaderboards/rankings
invalid_charsattribute forNotFoundErrorwhen applicableurlattribute for all errors that have requested a URLstr(error)will return the message attribute of the error.
- The
errorattribute for all errors have been renamed tomessage - For BrawlAPI:
get_leaderboardsplit up intoget_player_leaderboard,get_club_leaderboard, andget_brawler_leaderboard - For the official API:
get_rankingssplit 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)
Forbiddenerror 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()countargument has been renamed tolimit
- BrawlAPI
get_leaderboardparameter 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
UnexpectedErrordid 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
RateLimitErrorwhen 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_ratelimitoption 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
Profileclass 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.pyfor 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
UnexpectedErroris 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
pytestfrom the package requirements.
- Club search actually returns a list now.
- Added wrapper and python version numbers to the User Agent when making API requests.
urlparam in the client changed tobase_url
debugoption to pass in when intializingbrawlstats.core.Clientto log requests.
- Fixed installation error where the
constants.jsoninfo 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_asynctoTruenow 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_datetimefunction 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.
Bandhas been changed toClubSimpleBandhas 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"
RateLimitErrorto 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.
InvalidTagchanged 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.TimeoutErrornow properly raisesServerError
BadRequestandNotFoundError(negates v2.0.6). These were found to not be needed
- Support for the new
/eventsendpoint for current and upcoming event rotations
- Change the Unauthorized code from 403 to 401 due to API error code changes
BadRequestandNotFoundErrorfor 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